--[[ ULTIMATE ESP + AIMBOT v7.2 — WITH FOV CIRCLE - Boxes, Names, Tools, Health, Distance - Highlight ESP - Tracers (V) - FOV Circle (C) - Aimbot (Hold RMB, toggle K) - Whitelist GUI (P) - Keybind GUI (B) - Respawn-proof ]] -- SERVICES local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer -- KEYBINDS local Keybinds = { ToggleTeamESP = Enum.KeyCode.N, ToggleNames = Enum.KeyCode.T, ToggleBox = Enum.KeyCode.Q, ToggleHighlight = Enum.KeyCode.H, ToggleTracers = Enum.KeyCode.V, ToggleFOV = Enum.KeyCode.C, SwitchAimPart = Enum.KeyCode.E, ToggleAimbot = Enum.KeyCode.K, TeamTarget = Enum.KeyCode.LeftAlt, OpenWhitelist = Enum.KeyCode.P, OpenKeybinds = Enum.KeyCode.B } -- SETTINGS local Settings = { AimPart = "Head", AimbotEnabled = false, AimbotActive = true, TargetTeam = false, ESPMode = "Box", -- Box / Highlight / Off ShowNames = true, ShowTeamESP = true, ShowTracers = true, FOVEnabled = true, FOVRadius = 150, FOVColor = Color3.fromRGB(255, 0, 0), FOVThickness = 2 } local Whitelist = {} local ESP = {} -- FOV CIRCLE local FOVCircle = Drawing.new("Circle") FOVCircle.Radius = Settings.FOVRadius FOVCircle.Color = Settings.FOVColor FOVCircle.Thickness = Settings.FOVThickness FOVCircle.Filled = false FOVCircle.Visible = Settings.FOVEnabled -- CREATE ESP local function CreateESP(plr) if plr == LocalPlayer or ESP[plr] then return end local d = { Box = Drawing.new("Square"), Name = Drawing.new("Text"), Dist = Drawing.new("Text"), Tool = Drawing.new("Text"), HBarBG = Drawing.new("Square"), HBar = Drawing.new("Square"), HText = Drawing.new("Text"), Tracer = Drawing.new("Line") } d.Box.Thickness = 2; d.Box.Filled = false; d.Box.Transparency = 1 d.Name.Size = 16; d.Name.Center = true; d.Name.Outline = true d.Dist.Size = 14; d.Dist.Center = true; d.Dist.Outline = true d.Tool.Size = 14; d.Tool.Center = true; d.Tool.Outline = true d.HBarBG.Filled = true; d.HBarBG.Color = Color3.new(0,0,0); d.HBarBG.Transparency = 0.5 d.HBar.Filled = true d.HText.Size = 14; d.HText.Center = true; d.HText.Outline = true d.Tracer.Thickness = 2 d.Tracer.Transparency = 1 local hl = Instance.new("Highlight") hl.Parent = Camera hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop ESP[plr] = {Draw = d, HL = hl} RunService.RenderStepped:Connect(function() local char = plr.Character local hum = char and char:FindFirstChild("Humanoid") local root = char and char:FindFirstChild("HumanoidRootPart") local head = char and char:FindFirstChild("Head") local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not (char and hum and root and hum.Health > 0) then for _,v in pairs(d) do v.Visible = false end hl.Enabled = false return end local pos, on = Camera:WorldToViewportPoint(root.Position) local isTeam = plr.Team == LocalPlayer.Team and LocalPlayer.Team ~= nil if not on or (isTeam and not Settings.ShowTeamESP) then for _,v in pairs(d) do v.Visible = false end hl.Enabled = false return end local color = isTeam and Color3.fromRGB(0,255,255) or Color3.fromRGB(255,0,0) local hp = hum.Health / hum.MaxHealth local dist = myRoot and math.floor((root.Position - myRoot.Position).Magnitude).."m" or "" local tool = char:FindFirstChildWhichIsA("Tool") -- Highlight hl.Adornee = char hl.FillColor = color hl.OutlineColor = color hl.Enabled = Settings.ESPMode == "Highlight" local top = Camera:WorldToViewportPoint(root.Position + Vector3.new(0,3,0)) local bot = Camera:WorldToViewportPoint(root.Position - Vector3.new(0,4,0)) local height = math.abs(top.Y - bot.Y) local width = height * 0.7 d.Box.Size = Vector2.new(width, height) d.Box.Position = Vector2.new(pos.X - width/2, pos.Y - height/2) d.Box.Color = color d.Box.Visible = Settings.ESPMode == "Box" local headPos = head and Camera:WorldToViewportPoint(head.Position + Vector3.new(0,1,0)) or pos d.Name.Text = plr.DisplayName d.Name.Position = Vector2.new(headPos.X, headPos.Y - 40) d.Name.Visible = Settings.ShowNames d.Dist.Text = dist d.Dist.Position = Vector2.new(headPos.X, headPos.Y - 25) d.Dist.Visible = Settings.ShowNames d.Tool.Text = tool and tool.Name or "None" d.Tool.Position = Vector2.new(headPos.X, headPos.Y - 10) d.Tool.Visible = Settings.ShowNames local bx = pos.X - width/2 - 20 local by = pos.Y - height/2 d.HBarBG.Position = Vector2.new(bx-2, by-2) d.HBarBG.Size = Vector2.new(6, height+4) d.HBarBG.Visible = Settings.ShowNames d.HBar.Position = Vector2.new(bx, by + height - height*hp) d.HBar.Size = Vector2.new(4, height*hp) d.HBar.Color = Color3.fromRGB(255*(1-hp),255*hp,0) d.HBar.Visible = Settings.ShowNames d.HText.Text = math.floor(hum.Health).." HP" d.HText.Position = Vector2.new(bx-25, by + height/2 - 8) d.HText.Visible = Settings.ShowNames d.Tracer.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) d.Tracer.To = Vector2.new(pos.X, pos.Y) d.Tracer.Color = color d.Tracer.Visible = Settings.ShowTracers end) end -- PLAYER SETUP for _,p in pairs(Players:GetPlayers()) do if p ~= LocalPlayer then if p.Character then CreateESP(p) end p.CharacterAdded:Connect(function() task.wait(1) CreateESP(p) end) end end Players.PlayerAdded:Connect(CreateESP) -- AIMBOT TARGET local function GetTarget() local best, closest = nil, Settings.FOVRadius local mouse = UserInputService:GetMouseLocation() for _,p in pairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild(Settings.AimPart) then local hum = p.Character:FindFirstChild("Humanoid") if hum and hum.Health > 0 then local teammate = p.Team == LocalPlayer.Team and LocalPlayer.Team ~= nil if not teammate or Settings.TargetTeam then local pos, on = Camera:WorldToViewportPoint(p.Character[Settings.AimPart].Position) if on then local dist = (Vector2.new(pos.X, pos.Y) - mouse).Magnitude if dist < closest then closest = dist best = p.Character[Settings.AimPart] end end end end end end return best end -- AIMBOT LOOP RunService.Heartbeat:Connect(function() if Settings.AimbotEnabled and Settings.AimbotActive then local t = GetTarget() if t then Camera.CFrame = CFrame.new(Camera.CFrame.Position, t.Position) end end end) -- INPUT UserInputService.InputBegan:Connect(function(input, gp) if gp then return end local k = input.KeyCode if k == Keybinds.ToggleTeamESP then Settings.ShowTeamESP = not Settings.ShowTeamESP elseif k == Keybinds.ToggleNames then Settings.ShowNames = not Settings.ShowNames elseif k == Keybinds.ToggleBox then Settings.ESPMode = Settings.ESPMode == "Box" and "Off" or "Box" elseif k == Keybinds.ToggleHighlight then Settings.ESPMode = Settings.ESPMode == "Highlight" and "Off" or "Highlight" elseif k == Keybinds.ToggleTracers then Settings.ShowTracers = not Settings.ShowTracers elseif k == Keybinds.ToggleFOV then Settings.FOVEnabled = not Settings.FOVEnabled elseif k == Keybinds.SwitchAimPart then Settings.AimPart = Settings.AimPart == "Head" and "HumanoidRootPart" or "Head" elseif k == Keybinds.ToggleAimbot then Settings.AimbotActive = not Settings.AimbotActive end if input.UserInputType == Enum.UserInputType.MouseButton2 and Settings.AimbotActive then Settings.AimbotEnabled = true UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then Settings.AimbotEnabled = false UserInputService.MouseBehavior = Enum.MouseBehavior.Default end end) -- UPDATE FOV CIRCLE RunService.RenderStepped:Connect(function() FOVCircle.Position = UserInputService:GetMouseLocation() FOVCircle.Radius = Settings.FOVRadius FOVCircle.Visible = Settings.FOVEnabled end) print("ULTIMATE ESP + AIMBOT v7.2 LOADED") print("V = Tracers | C = FOV | K = Toggle Aimbot | RMB = Hold Aim")