
KeylessUniversal

local ENABLED_BY_DEFAULT = true
local MAX_DISTANCE = 2500
local REFRESH_RATE = 1/60
local BOX_FILL_TRANSPARENCY = 0.8
local BOX_OUTLINE_THICKNESS = 2
local BOX_COLOR = Color3.fromRGB(255, 0, 0)
local BOX_FILL_COLOR = Color3.fromRGB(30, 30, 30)
local HEALTH_BAR_WIDTH = 6
local HEALTH_BAR_MARGIN = 4
local SNAPLINE_THICKNESS = 2
local NAME_TEXT_SIZE = 14
local SHOW_SKELETON = false
local TRACER_ORIGIN = "Bottom"
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
if not PlayerGui then
error("PlayerGui not available")
end
local rootGui = Instance.new("ScreenGui")
rootGui.Name = "ESP_RootGui_rx"
rootGui.ResetOnSpawn = false
rootGui.DisplayOrder = 9999
rootGui.Parent = PlayerGui
local UIs = {}
local function makeFrame(parent)
local f = Instance.new("Frame")
f.BackgroundTransparency = 1
f.BorderSizePixel = 0
f.AnchorPoint = Vector2.new(0,0)
f.Position = UDim2.new(0,0,0,0)
f.Size = UDim2.new(0,0,0,0)
f.Parent = parent
f.Visible = false
return f
end
local function makeLabel(parent)
local t = Instance.new("TextLabel")
t.BackgroundTransparency = 1
t.BorderSizePixel = 0
t.AnchorPoint = Vector2.new(0.5,0.5)
t.Position = UDim2.new(0.5,0,0,0)
t.Size = UDim2.new(0,100,0,16)
t.Font = Enum.Font.SourceSansBold
t.TextSize = NAME_TEXT_SIZE
t.TextScaled = true
t.TextStrokeTransparency = 0
t.TextColor3 = Color3.new(1,1,1)
t.Parent = parent
t.Visible = false
return t
end
local function createPlayerUI(player)
if player == LocalPlayer then return end
if UIs[player] then return end
local container = Instance.new("Frame")
container.Name = "ESP_Container_" .. player.Name
container.Size = UDim2.new(0,0,0,0)
container.Position = UDim2.new(0,0,0,0)
container.BackgroundTransparency = 1
container.BorderSizePixel = 0
container.Parent = rootGui
container.Visible = false
local boxFill = Instance.new("Frame")
boxFill.Name = "BoxFill"
boxFill.Size = UDim2.new(1,0,1,0)
boxFill.Position = UDim2.new(0,0,0,0)
boxFill.AnchorPoint = Vector2.new(0,0)
boxFill.BackgroundColor3 = BOX_FILL_COLOR
boxFill.BackgroundTransparency = BOX_FILL_TRANSPARENCY
boxFill.BorderSizePixel = 0
boxFill.Parent = container
local topEdge = Instance.new("Frame")
topEdge.Name = "TopEdge"
topEdge.BackgroundColor3 = BOX_COLOR
topEdge.BorderSizePixel = 0
topEdge.Size = UDim2.new(1,0,0,BOX_OUTLINE_THICKNESS)
topEdge.Position = UDim2.new(0,0,0,0)
topEdge.Parent = container
local bottomEdge = topEdge:Clone()
bottomEdge.Name = "BottomEdge"
bottomEdge.Position = UDim2.new(0,0,1, -BOX_OUTLINE_THICKNESS)
bottomEdge.Parent = container
local leftEdge = Instance.new("Frame")
leftEdge.Name = "LeftEdge"
leftEdge.BackgroundColor3 = BOX_COLOR
leftEdge.BorderSizePixel = 0
leftEdge.Size = UDim2.new(0,BOX_OUTLINE_THICKNESS,1,0)
leftEdge.Position = UDim2.new(0,0,0,0)
leftEdge.Parent = container
local rightEdge = leftEdge:Clone()
rightEdge.Name = "RightEdge"
rightEdge.Position = UDim2.new(1, -BOX_OUTLINE_THICKNESS, 0, 0)
rightEdge.Parent = container
local nameLabel = makeLabel(container)
nameLabel.Name = "NameLabel"
nameLabel.AnchorPoint = Vector2.new(0.5,1)
nameLabel.Position = UDim2.new(0.5,0,0, -6)
local healthLabel = makeLabel(container)
healthLabel.Name = "HealthLabel"
healthLabel.AnchorPoint = Vector2.new(0.5,0)
healthLabel.Position = UDim2.new(0.5,0,0,2)
local healthOutline = Instance.new("Frame")
healthOutline.Name = "HealthOutline"
healthOutline.Size = UDim2.new(0, HEALTH_BAR_WIDTH + 2, 1, 0)
healthOutline.Position = UDim2.new(0, -HEALTH_BAR_WIDTH - HEALTH_BAR_MARGIN - 2, 0, 0)
healthOutline.AnchorPoint = Vector2.new(0,0)
healthOutline.BackgroundColor3 = Color3.fromRGB(30,30,30)
healthOutline.BorderSizePixel = 0
healthOutline.Parent = container
local healthFill = Instance.new("Frame")
healthFill.Name = "HealthFill"
healthFill.Size = UDim2.new(1, -2, 0, 10)
healthFill.Position = UDim2.new(0,1,1, -11)
healthFill.AnchorPoint = Vector2.new(0,1)
healthFill.BackgroundColor3 = Color3.fromRGB(0,255,0)
healthFill.BorderSizePixel = 0
healthFill.Parent = healthOutline
local snapline = Instance.new("Frame")
snapline.Name = "Snapline_" .. player.Name
snapline.Size = UDim2.new(0, 0, 0, SNAPLINE_THICKNESS)
snapline.Position = UDim2.new(0,0,0,0)
snapline.BorderSizePixel = 0
snapline.BackgroundColor3 = BOX_COLOR
snapline.Rotation = 0
snapline.AnchorPoint = Vector2.new(0,0)
snapline.Parent = rootGui
snapline.Visible = false
UIs[player] = {
Container = container,
BoxFill = boxFill,
TopEdge = topEdge,
BottomEdge = bottomEdge,
LeftEdge = leftEdge,
RightEdge = rightEdge,
NameLabel = nameLabel,
HealthLabel = healthLabel,
HealthOutline = healthOutline,
HealthFill = healthFill,
Snapline = snapline,
}
end
local function cleanup(player)
local entry = UIs[player]
if not entry then return end
if entry.Snapline and entry.Snapline.Parent then entry.Snapline:Destroy() end
if entry.Container and entry.Container.Parent then entry.Container:Destroy() end
UIs[player] = nil
end
local function worldToScreenPoint(pos, camera)
camera = camera or workspace.CurrentCamera
local screenPoint, onScreen = camera:WorldToViewportPoint(pos)
return Vector2.new(screenPoint.X, screenPoint.Y), onScreen, screenPoint.Z
end
local camera = workspace.CurrentCamera
local lastTick = 0
local function update(delta)
if not ENABLED_BY_DEFAULT then return end
if not camera or not camera.Parent then camera = workspace.CurrentCamera end
local localChar = LocalPlayer.Character
local localHrp = localChar and localChar:FindFirstChild("HumanoidRootPart")
if not localHrp then
for p, ui in pairs(UIs) do
ui.Container.Visible = false
ui.Snapline.Visible = false
end
return
end
for player, ui in pairs(UIs) do
local char = player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
ui.Container.Visible = false
ui.Snapline.Visible = false
if char and hrp and hum and hum.Health > 0 then
local dist = (localHrp.Position - hrp.Position).Magnitude
if dist <= MAX_DISTANCE then
local size = char:GetExtentsSize() or Vector3.new(2,5,1)
local cf = hrp.CFrame
local topWorld = cf * CFrame.new(0, size.Y/2, 0).p
local bottomWorld = cf * CFrame.new(0, -size.Y/2, 0).p
local leftWorld = cf * CFrame.new(-size.X/2, 0, 0).p
local rightWorld = cf * CFrame.new(size.X/2, 0, 0).p
local top2, _, topZ = worldToScreenPoint(topWorld, camera)
local bottom2, _, bottomZ = worldToScreenPoint(bottomWorld, camera)
local left2, _, _ = worldToScreenPoint(leftWorld, camera)
local right2, _, _ = worldToScreenPoint(rightWorld, camera)
if topZ > 0 and bottomZ > 0 then
local centerX = (left2.X + right2.X) / 2
local topY = top2.Y
local bottomY = bottom2.Y
local height = math.max(20, bottomY - topY)
local width = math.max(10, math.abs(right2.X - left2.X))
local tlX = centerX - width/2
local tlY = topY
ui.Container.Position = UDim2.new(0, math.floor(tlX), 0, math.floor(tlY))
ui.Container.Size = UDim2.new(0, math.ceil(width), 0, math.ceil(height))
ui.Container.Visible = true
ui.TopEdge.Size = UDim2.new(1,0,0, BOX_OUTLINE_THICKNESS)
ui.BottomEdge.Size = UDim2.new(1,0,0, BOX_OUTLINE_THICKNESS)
ui.LeftEdge.Size = UDim2.new(0, BOX_OUTLINE_THICKNESS, 1, 0)
ui.RightEdge.Size = UDim2.new(0, BOX_OUTLINE_THICKNESS, 1, 0)
ui.TopEdge.BackgroundColor3 = BOX_COLOR
ui.BottomEdge.BackgroundColor3 = BOX_COLOR
ui.LeftEdge.BackgroundColor3 = BOX_COLOR
ui.RightEdge.BackgroundColor3 = BOX_COLOR
ui.BoxFill.BackgroundColor3 = BOX_FILL_COLOR
ui.BoxFill.BackgroundTransparency = BOX_FILL_TRANSPARENCY
ui.NameLabel.Text = player.DisplayName or player.Name
ui.NameLabel.TextColor3 = BOX_COLOR
ui.NameLabel.Position = UDim2.new(0.5, 0, 0, -6)
ui.NameLabel.Visible = true
local health = math.max(0, math.floor(hum.Health))
local maxH = math.max(1, math.floor(hum.MaxHealth or 100))
ui.HealthLabel.Text = string.format("[%d/%d HP]", health, maxH)
ui.HealthLabel.TextColor3 = Color3.fromRGB(230,230,230)
ui.HealthLabel.Position = UDim2.new(0.5, 0, 0, 6)
ui.HealthLabel.Visible = true
local hbOutline = ui.HealthOutline
local hbFill = ui.HealthFill
hbOutline.Size = UDim2.new(0, HEALTH_BAR_WIDTH + 2, 1, 0)
hbOutline.Position = UDim2.new(0, -HEALTH_BAR_WIDTH - HEALTH_BAR_MARGIN - 2, 0, 0)
hbOutline.Visible = true
local percent = math.clamp(health / maxH, 0, 1)
local outlinePxHeight = ui.Container.AbsoluteSize.Y - 4
local fillPx = math.max(1, math.floor(outlinePxHeight * percent))
hbFill.Size = UDim2.new(1, -2, 0, fillPx)
hbFill.Position = UDim2.new(0, 1, 1, -2)
if percent > 0.66 then
hbFill.BackgroundColor3 = Color3.fromRGB(0,200,0)
elseif percent > 0.33 then
hbFill.BackgroundColor3 = Color3.fromRGB(255,200,0)
else
hbFill.BackgroundColor3 = Color3.fromRGB(255,50,50)
end
hbFill.Visible = true
local screenCenterX = camera.ViewportSize.X/2
local screenBottomY = camera.ViewportSize.Y
local targetX = centerX
local targetY = topY + height/2
local dx = targetX - screenCenterX
local dy = targetY - screenBottomY
local length = math.sqrt(dx*dx + dy*dy)
if length < 2 then
ui.Snapline.Visible = false
else
ui.Snapline.Size = UDim2.new(0, math.max(2, math.floor(length)), 0, SNAPLINE_THICKNESS)
ui.Snapline.Position = UDim2.new(0, screenCenterX, 0, screenBottomY - SNAPLINE_THICKNESS)
ui.Snapline.Rotation = math.deg(math.atan2(dy, dx))
ui.Snapline.BackgroundColor3 = BOX_COLOR
ui.Snapline.Visible = true
end
end
end
end
end
end
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer then
createPlayerUI(p)
end
end
Players.PlayerAdded:Connect(function(p)
if p ~= LocalPlayer then
createPlayerUI(p)
end
end)
Players.PlayerRemoving:Connect(function(p)
cleanup(p)
end)
Players.PlayerRemoving:Connect(function() end)
local accum = 0
RunService.RenderStepped:Connect(function(dt)
accum = accum + dt
if accum >= REFRESH_RATE then
local ok, err = pcall(update, accum)
if not ok then
warn("ESP update error:", err)
end
accum = 0
end
end)
print("GUI-based ESP loaded.")No comments yet for this script.



