
KeylessUniversal

local uis = game:GetService("UserInputService")
local plr = game.Players.LocalPlayer
local cam = workspace.CurrentCamera
local rs = game:GetService("RunService")
local aiming = false
local fovRadius = 120
local espEnabled = true
-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Radius = fovRadius
fovCircle.Color = Color3.fromRGB(255, 255, 0)
fovCircle.Thickness = 1.5
fovCircle.Transparency = 0.7
fovCircle.Visible = true
fovCircle.Filled = false
-- ESP Tables
local esp = {}
-- ==================== MENU ====================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AimbotESP_Menu"
screenGui.ResetOnSpawn = false
screenGui.Parent = plr:WaitForChild("PlayerGui")
local menuFrame = Instance.new("Frame")
menuFrame.Size = UDim2.new(0, 380, 0, 520)
menuFrame.Position = UDim2.new(0.5, -190, 0.5, -260)
menuFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
menuFrame.BorderSizePixel = 0
menuFrame.Visible = false
menuFrame.Parent = screenGui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 50)
title.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
title.Text = "Advanced Aimbot + ESP"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextSize = 18
title.Font = Enum.Font.GothamBold
title.Parent = menuFrame
-- Close Button
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 10)
closeBtn.BackgroundTransparency = 1
closeBtn.Text = "✕"
closeBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
closeBtn.TextSize = 20
closeBtn.Font = Enum.Font.GothamBold
closeBtn.Parent = menuFrame
-- Menu Items
local function createToggle(name, default, yOffset, callback)
local toggleFrame = Instance.new("Frame")
toggleFrame.Size = UDim2.new(1, -20, 0, 40)
toggleFrame.Position = UDim2.new(0, 10, 0, yOffset)
toggleFrame.BackgroundTransparency = 1
toggleFrame.Parent = menuFrame
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.7, 0, 1, 0)
label.BackgroundTransparency = 1
label.Text = name
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = toggleFrame
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 60, 0, 25)
toggleBtn.Position = UDim2.new(1, -70, 0.5, -12.5)
toggleBtn.BackgroundColor3 = default and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(100, 100, 100)
toggleBtn.Text = default and "ON" or "OFF"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.TextSize = 13
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.Parent = toggleFrame
local enabled = default
toggleBtn.MouseButton1Click:Connect(function()
enabled = not enabled
toggleBtn.BackgroundColor3 = enabled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(100, 100, 100)
toggleBtn.Text = enabled and "ON" or "OFF"
callback(enabled)
end)
return toggleBtn
end
local function createSlider(name, min, max, default, yOffset, callback)
local sliderFrame = Instance.new("Frame")
sliderFrame.Size = UDim2.new(1, -20, 0, 50)
sliderFrame.Position = UDim2.new(0, 10, 0, yOffset)
sliderFrame.BackgroundTransparency = 1
sliderFrame.Parent = menuFrame
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 0, 20)
label.BackgroundTransparency = 1
label.Text = name .. ": " .. default
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.TextSize = 15
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = sliderFrame
local bar = Instance.new("Frame")
bar.Size = UDim2.new(1, 0, 0, 8)
bar.Position = UDim2.new(0, 0, 0, 30)
bar.BackgroundColor3 = Color3.fromRGB(50, 50, 65)
bar.BorderSizePixel = 0
bar.Parent = sliderFrame
local fill = Instance.new("Frame")
fill.Size = UDim2.new((default - min)/(max - min), 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
fill.BorderSizePixel = 0
fill.Parent = bar
local dragging = false
bar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
end
end)
uis.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
uis.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local mousePos = uis:GetMouseLocation().X
local barPos = bar.AbsolutePosition.X
local barSize = bar.AbsoluteSize.X
local percent = math.clamp((mousePos - barPos) / barSize, 0, 1)
local value = math.floor(min + (max - min) * percent)
fill.Size = UDim2.new(percent, 0, 1, 0)
label.Text = name .. ": " .. value
callback(value)
end
end)
end
-- Menu Toggles
createToggle("Aimbot (Right Click)", true, 60, function(state) aiming = state end)
createToggle("ESP Master", true, 110, function(state) espEnabled = state end)
createToggle("Show Boxes", true, 160, function(state) for _,v in pairs(esp) do if v.Box then v.Box.Visible = state and espEnabled end end end)
createToggle("Show Names + Distance", true, 210, function(state) for _,v in pairs(esp) do if v.Name then v.Name.Visible = state and espEnabled end end end)
createToggle("Health Bars", true, 260, function(state) for _,v in pairs(esp) do if v.HealthBar then v.HealthBar.Visible = state and espEnabled end end end)
createToggle("Tracers", true, 310, function(state) for _,v in pairs(esp) do if v.Tracer then v.Tracer.Visible = state and espEnabled end end end)
createToggle("Head Dots", true, 360, function(state) for _,v in pairs(esp) do if v.HeadDot then v.HeadDot.Visible = state and espEnabled end end end)
createSlider("FOV Radius", 50, 300, 120, 410, function(value)
fovRadius = value
fovCircle.Radius = value
end)
-- Toggle Menu with Insert Key
uis.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.Insert then
menuFrame.Visible = not menuFrame.Visible
end
end)
closeBtn.MouseButton1Click:Connect(function()
menuFrame.Visible = false
end)
-- ==================== ESP & Aimbot ====================
local function createESP(player)
if player == plr then return end
-- (Same advanced ESP as before)
esp[player] = {
Box = Drawing.new("Square"), BoxOutline = Drawing.new("Square"),
Name = Drawing.new("Text"), Distance = Drawing.new("Text"),
HealthBar = Drawing.new("Square"), HealthBarOutline = Drawing.new("Square"),
Tracer = Drawing.new("Line"), HeadDot = Drawing.new("Circle")
}
local v = esp[player]
-- Box Setup
v.Box.Thickness = 1.5; v.Box.Filled = false; v.Box.Color = Color3.fromRGB(255, 0, 0); v.Box.Transparency = 1
v.BoxOutline.Thickness = 3; v.BoxOutline.Filled = false; v.BoxOutline.Color = Color3.fromRGB(0,0,0); v.BoxOutline.Transparency = 1
-- Name & Distance
v.Name.Size = 14; v.Name.Center = true; v.Name.Outline = true; v.Name.Color = Color3.fromRGB(255,255,255)
v.Distance.Size = 13; v.Distance.Center = true; v.Distance.Outline = true; v.Distance.Color = Color3.fromRGB(200,200,200)
-- Health Bar
v.HealthBar.Filled = true; v.HealthBar.Transparency = 1
v.HealthBarOutline.Filled = true; v.HealthBarOutline.Color = Color3.fromRGB(0,0,0); v.HealthBarOutline.Transparency = 1
-- Tracer & Head Dot
v.Tracer.Thickness = 1.5; v.Tracer.Color = Color3.fromRGB(255, 0, 0); v.Tracer.Transparency = 0.7
v.HeadDot.Radius = 2.5; v.HeadDot.Color = Color3.fromRGB(255, 0, 0); v.HeadDot.Filled = true
end
for _, p in pairs(game.Players:GetPlayers()) do createESP(p) end
game.Players.PlayerAdded:Connect(createESP)
game.Players.PlayerRemoving:Connect(function(player)
if esp[player] then
for _, obj in pairs(esp[player]) do obj:Remove() end
esp[player] = nil
end
end)
-- Get Closest Target
local function getClosest()
local closest = nil
local shortest = math.huge
for _, v in pairs(game.Players:GetPlayers()) do
if v ~= plr and v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health > 0 then
local head = v.Character:FindFirstChild("Head")
if head then
local screenPos, onScreen = cam:WorldToViewportPoint(head.Position)
if onScreen then
local distFromCenter = (Vector2.new(screenPos.X, screenPos.Y) - fovCircle.Position).Magnitude
local myHead = plr.Character and plr.Character:FindFirstChild("Head")
local dist3D = myHead and (head.Position - myHead.Position).Magnitude or math.huge
if distFromCenter <= fovRadius and dist3D < shortest then
shortest = dist3D
closest = head
end
end
end
end
end
return closest
end
-- Right Click Aimbot
uis.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.UserInputType == Enum.UserInputType.MouseButton2 then
aiming = true
end
end)
uis.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
aiming = false
end
end)
-- Main Render Loop
rs.RenderStepped:Connect(function()
fovCircle.Position = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2)
if aiming then
local target = getClosest()
if target then
cam.CFrame = CFrame.new(cam.CFrame.Position, target.Position)
end
end
if not espEnabled then return end
for _, player in pairs(game.Players:GetPlayers()) do
if player ~= plr and esp[player] and player.Character then
local char = player.Character
local root = char:FindFirstChild("HumanoidRootPart")
local head = char:FindFirstChild("Head")
local humanoid = char:FindFirstChild("Humanoid")
if root and head and humanoid then
local rootPos, onScreen = cam:WorldToViewportPoint(root.Position)
if onScreen then
local headPos = cam:WorldToViewportPoint(head.Position + Vector3.new(0, 0.8, 0))
local legPos = cam:WorldToViewportPoint(root.Position - Vector3.new(0, 3.5, 0))
local height = math.abs(headPos.Y - legPos.Y)
local width = height * 0.55
local distance = math.floor((cam.CFrame.Position - root.Position).Magnitude)
local v = esp[player]
-- Box
v.Box.Size = Vector2.new(width, height)
v.Box.Position = Vector2.new(rootPos.X - width/2, rootPos.Y - height/2)
v.Box.Visible = true
v.BoxOutline.Size = v.Box.Size
v.BoxOutline.Position = v.Box.Position
v.BoxOutline.Visible = true
-- Name + Distance
v.Name.Text = player.Name
v.Name.Position = Vector2.new(rootPos.X, rootPos.Y - height/2 - 18)
v.Name.Visible = true
v.Distance.Text = distance .. "m"
v.Distance.Position = Vector2.new(rootPos.X, rootPos.Y - height/2 - 5)
v.Distance.Visible = true
-- Health Bar
local hpPct = humanoid.Health / humanoid.MaxHealth
v.HealthBar.Size = Vector2.new(4, height * hpPct)
v.HealthBar.Position = Vector2.new(rootPos.X - width/2 - 8, rootPos.Y - height/2 + height * (1 - hpPct))
v.HealthBar.Color = Color3.fromRGB(255 * (1 - hpPct), 255 * hpPct, 0)
v.HealthBar.Visible = true
v.HealthBarOutline.Size = Vector2.new(6, height)
v.HealthBarOutline.Position = Vector2.new(rootPos.X - width/2 - 9, rootPos.Y - height/2)
v.HealthBarOutline.Visible = true
-- Head Dot
v.HeadDot.Position = Vector2.new(headPos.X, headPos.Y)
v.HeadDot.Visible = true
-- Tracer
v.Tracer.From = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y)
v.Tracer.To = Vector2.new(rootPos.X, rootPos.Y + height/2)
v.Tracer.Visible = true
else
for _, obj in pairs(esp[player]) do obj.Visible = false end
end
end
end
end
end)
print("Advanced Aimbot + ESP with Menu Loaded! Press INSERT to open menu.")No comments yet for this script.



