
KeylessUniversal

local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local RunService = game:GetService("RunService")
local ESPEnabled = false
local ESPTransparency = 0.5
local ESPUpdateDelay = 0.1 -- Ajusta este valor según lo que consideres rápido
local function getRoot(part)
return part:IsA("Model") and part.PrimaryPart or part:FindFirstChildWhichIsA("BasePart") or part
end
local function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
local function createESP(plr)
local CoreGuiFolder = CoreGui:FindFirstChild(plr.Name .. "_ESP")
if CoreGuiFolder then
CoreGuiFolder:Destroy()
end
local ESPholder = Instance.new("Folder")
ESPholder.Name = plr.Name .. "_ESP"
ESPholder.Parent = CoreGui
local function createAdornment(part)
local a = Instance.new("BoxHandleAdornment")
a.Name = plr.Name
a.Parent = ESPholder
a.Adornee = part
a.AlwaysOnTop = true
a.ZIndex = 10
a.Size = part.Size
a.Transparency = ESPTransparency
a.Color = plr.TeamColor
return a
end
repeat wait(ESPUpdateDelay) until plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid")
for _, part in pairs(plr.Character:GetChildren()) do
if part:IsA("BasePart") then
createAdornment(part)
end
end
if plr.Character and plr.Character:FindFirstChild("Head") then
local BillboardGui = Instance.new("BillboardGui")
local TextLabel = Instance.new("TextLabel")
BillboardGui.Adornee = plr.Character.Head
BillboardGui.Name = plr.Name
BillboardGui.Parent = ESPholder
BillboardGui.Size = UDim2.new(0, 100, 0, 150)
BillboardGui.StudsOffset = Vector3.new(0, 1, 0)
BillboardGui.AlwaysOnTop = true
TextLabel.Parent = BillboardGui
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(0, 0, 0, -50)
TextLabel.Size = UDim2.new(0, 100, 0, 100)
TextLabel.Font = Enum.Font.SourceSansSemibold
TextLabel.TextSize = 20
TextLabel.TextColor3 = Color3.new(1, 1, 1)
TextLabel.TextStrokeTransparency = 0
TextLabel.TextYAlignment = Enum.TextYAlignment.Bottom
TextLabel.Text = 'Name: ' .. plr.Name
TextLabel.ZIndex = 10
local espLoopFunc
local teamChange
local addedFunc
addedFunc = plr.CharacterAdded:Connect(function()
if ESPEnabled then
espLoopFunc:Disconnect()
teamChange:Disconnect()
ESPholder:Destroy()
wait(ESPUpdateDelay)
createESP(plr)
addedFunc:Disconnect()
else
teamChange:Disconnect()
addedFunc:Disconnect()
end
end)
teamChange = plr:GetPropertyChangedSignal("TeamColor"):Connect(function()
if ESPEnabled then
espLoopFunc:Disconnect()
addedFunc:Disconnect()
ESPholder:Destroy()
wait(ESPUpdateDelay)
createESP(plr)
teamChange:Disconnect()
else
teamChange:Disconnect()
end
end)
local function espLoop()
if CoreGui:FindFirstChild(plr.Name .. "_ESP") then
if plr.Character and getRoot(plr.Character) and plr.Character:FindFirstChildOfClass("Humanoid") and Players.LocalPlayer.Character and getRoot(Players.LocalPlayer.Character) and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
local pos = math.floor((getRoot(Players.LocalPlayer.Character).Position - getRoot(plr.Character).Position).magnitude)
TextLabel.Text = 'Name: ' .. plr.Name .. ' | Health: ' .. round(plr.Character:FindFirstChildOfClass('Humanoid').Health, 1) .. ' | Studs: ' .. pos
end
else
teamChange:Disconnect()
addedFunc:Disconnect()
espLoopFunc:Disconnect()
end
end
espLoopFunc = RunService.RenderStepped:Connect(espLoop)
end
end
local function toggleESP()
ESPEnabled = not ESPEnabled
for _, plr in pairs(Players:GetPlayers()) do
createESP(plr)
end
end
-- Puedes activar/desactivar el ESP llamando a esta función
toggleESP()



Why is it in spainsh also you can use infinte yield and get the same thing