
KeylessUniversal

--// Developer ESP + Aim Assist
--// Place this LocalScript in StarterPlayer > StarterPlayerScripts
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
-- SETTINGS
local ESP_ENABLED = true
local AIM_ENABLED = false
local MAX_AIM_DISTANCE = 500
local AIM_SMOOTHNESS = 0.15
local ESP_COLOR = Color3.fromRGB(255, 255, 255)
local TRACER_COLOR = Color3.fromRGB(255, 255, 255)
local drawings = {}
local function createESP(player)
if player == LocalPlayer then
return
end
if drawings[player] then
return
end
local gui = Instance.new("BillboardGui")
gui.Name = "DeveloperESP"
gui.Size = UDim2.fromOffset(120, 160)
gui.StudsOffset = Vector3.new(0, 2.5, 0)
gui.AlwaysOnTop = true
gui.Parent = game:GetService("CoreGui")
local box = Instance.new("Frame")
box.Name = "Box"
box.BackgroundTransparency = 1
box.BorderSizePixel = 2
box.BorderColor3 = ESP_COLOR
box.Size = UDim2.fromScale(1, 1)
box.Parent = gui
local name = Instance.new("TextLabel")
name.BackgroundTransparency = 1
name.Size = UDim2.new(1, 0, 0, 20)
name.Position = UDim2.new(0, 0, 0, -22)
name.TextColor3 = Color3.new(1, 1, 1)
name.TextStrokeTransparency = 0
name.TextScaled = true
name.Text = player.Name
name.Parent = gui
local healthBackground = Instance.new("Frame")
healthBackground.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
healthBackground.BorderSizePixel = 0
healthBackground.Size = UDim2.new(0, 6, 1, 0)
healthBackground.Position = UDim2.new(0, -10, 0, 0)
healthBackground.Parent = gui
local health = Instance.new("Frame")
health.Name = "Health"
health.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
health.BorderSizePixel = 0
health.AnchorPoint = Vector2.new(0, 1)
health.Position = UDim2.fromScale(0, 1)
health.Size = UDim2.fromScale(1, 1)
health.Parent = healthBackground
drawings[player] = {
gui = gui,
box = box,
health = health
}
end
local function removeESP(player)
if drawings[player] then
drawings[player].gui:Destroy()
drawings[player] = nil
end
end
local function getCharacter(player)
return player.Character
end
local function getClosestTarget()
local closest = nil
local closestDistance = MAX_AIM_DISTANCE
local center = Vector2.new(
Camera.ViewportSize.X / 2,
Camera.ViewportSize.Y / 2
)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local character = getCharacter(player)
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local head = character and character:FindFirstChild("Head")
if humanoid and head and humanoid.Health > 0 then
local screenPosition, visible =
Camera:WorldToViewportPoint(head.Position)
if visible and screenPosition.Z > 0 then
local distance = (
Vector2.new(screenPosition.X, screenPosition.Y)
- center
).Magnitude
if distance < closestDistance then
closestDistance = distance
closest = head
end
end
end
end
end
return closest
end
-- Create ESP for existing players
for _, player in ipairs(Players:GetPlayers()) do
createESP(player)
end
Players.PlayerAdded:Connect(createESP)
Players.PlayerRemoving:Connect(removeESP)
-- Main loop
RunService.RenderStepped:Connect(function()
for player, data in pairs(drawings) do
if not ESP_ENABLED then
data.gui.Enabled = false
continue
end
local character = player.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local root = character and character:FindFirstChild("HumanoidRootPart")
if humanoid and root and humanoid.Health > 0 then
data.gui.Adornee = root
data.gui.Enabled = true
local healthPercent =
math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1)
data.health.Size = UDim2.fromScale(1, healthPercent)
if healthPercent > 0.5 then
data.health.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
elseif healthPercent > 0.25 then
data.health.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
else
data.health.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
end
else
data.gui.Enabled = false
end
end
-- Aim assist
if AIM_ENABLED then
local target = getClosestTarget()
if target then
local targetPosition = Camera:WorldToViewportPoint(target.Position)
local screenCenter = Vector2.new(
Camera.ViewportSize.X / 2,
Camera.ViewportSize.Y / 2
)
local targetScreen = Vector2.new(
targetPosition.X,
targetPosition.Y
)
local newPosition =
screenCenter:Lerp(targetScreen, AIM_SMOOTHNESS)
local ray = Camera:ViewportPointToRay(
newPosition.X,
newPosition.Y
)
Camera.CFrame = CFrame.lookAt(
Camera.CFrame.Position,
ray.Origin + ray.Direction * 1000
)
end
end
end)
-- Controls
UserInputService.InputBegan:Connect(function(input, processed)
if processed then
return
end
if input.KeyCode == Enum.KeyCode.F then
ESP_ENABLED = not ESP_ENABLED
end
if input.KeyCode == Enum.KeyCode.Q then
AIM_ENABLED = not AIM_ENABLED
end
end)No comments yet for this script.



