aimbot esp -- Full Aimbot + ESP LocalScript -- Combines your original aimbot GUI + fixed toggle behavior + ESP + Team ESP + Aim part selector (Head/Torso/Random) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local mouse = player:GetMouse() aimbot esp How to dowload it? aimbot esp -- Default Settings local aimbotEnabled = false local aimPartOption = "Head" -- "Head", "Torso", "Random" local circleRadius = 150 local smoothness = 0.15 local aimbotMode = "Hold" -- "Hold" or "Toggle" local activationKey = Enum.UserInputType.MouseButton2 -- default Right Click -- ESP Settings local espEnabled = false aimbot esp How to get it for free? aimbot esp local teamEspEnabled = false local defaultESPColor = Color3.fromRGB(255,255,255) -- Runtime Vars local holdingKey = false local target = nil -- current target part local toggleActive = false -- Toggle-mode aiming on/off local playerESPs = {} -- map player -> {BillboardGui, Frame, TextLabel} local aimCandidates = {"Head", "Torso"} -- used for Random aimbot esp How to use it? aimbot esp --// Create Circle (same as before) local circle = Drawing.new("Circle") circle.Thickness = 1.5 circle.NumSides = 64 circle.Radius = circleRadius circle.Color = Color3.fromRGB(0, 255, 255) circle.Filled = false circle.Visible = true circle.Transparency = 0.8 aimbot esp How to use it? aimbot esp --// Create UI local ScreenGui = Instance.new("ScreenGui", game.CoreGui) ScreenGui.Name = "AimbotSettingsUI" local Frame = Instance.new("Frame", ScreenGui) Frame.Size = UDim2.new(0, 340, 0, 300) Frame.Position = UDim2.new(0.5, -170, 0.5, -150) Frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Frame.Active = true Frame.Draggable = true aimbot esp PasteShr aimbot esp Frame.Visible = true Frame.BorderSizePixel = 0 local Title = Instance.new("TextLabel", Frame) Title.Text = "Aimbot Settings" Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundColor3 = Color3.fromRGB(0, 170, 255) Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.SourceSansBold Title.TextSize = 20 aimbot esp How to get it for free? aimbot esp -- Aimbot toggle button local toggleButton = Instance.new("TextButton", Frame) toggleButton.Size = UDim2.new(0.45, 0, 0, 30) toggleButton.Position = UDim2.new(0.05, 0, 0.2, 0) toggleButton.Text = "Aimbot: OFF" toggleButton.BackgroundColor3 = Color3.fromRGB(255, 60, 60) toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.MouseButton1Click:Connect(function() aimbot esp How to use it? aimbot esp aimbotEnabled = not aimbotEnabled if aimbotEnabled then toggleButton.Text = "Aimbot: ON" toggleButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100) else toggleButton.Text = "Aimbot: OFF" toggleButton.BackgroundColor3 = Color3.fromRGB(255, 60, 60) toggleActive = false target = nil end aimbot esp How to use it? aimbot esp end) -- Mode selector (Hold/Toggle) local modeButton = Instance.new("TextButton", Frame) modeButton.Size = UDim2.new(0.45, 0, 0, 30) modeButton.Position = UDim2.new(0.52, 0, 0.2, 0) modeButton.Text = "Mode: Hold" modeButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) modeButton.TextColor3 = Color3.fromRGB(255, 255, 255) aimbot esp How to use it? aimbot esp modeButton.MouseButton1Click:Connect(function() aimbotMode = (aimbotMode == "Hold" and "Toggle" or "Hold") modeButton.Text = "Mode: " .. aimbotMode -- Reset toggle state when switching mode toggleActive = false target = nil end) -- Activation key button local keyButton = Instance.new("TextButton", Frame) aimbot esp How to get it? aimbot esp keyButton.Size = UDim2.new(0.9, 0, 0, 30) keyButton.Position = UDim2.new(0.05, 0, 0.35, 0) keyButton.Text = "Activation Key: Right Click" keyButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) keyButton.TextColor3 = Color3.fromRGB(255, 255, 255) local waitingForKey = false keyButton.MouseButton1Click:Connect(function() waitingForKey = true keyButton.Text = "Press any key..." aimbot esp PasteShr aimbot esp end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if waitingForKey and not gameProcessed then waitingForKey = false if input.UserInputType == Enum.UserInputType.Keyboard then activationKey = input.KeyCode keyButton.Text = "Key: " .. activationKey.Name else activationKey = input.UserInputType aimbot esp How to dowload it? aimbot esp -- nicer display keyButton.Text = "Key: " .. tostring(activationKey):gsub("Enum.UserInputType.", "") end end end) -- Range controls local leftArrow = Instance.new("TextButton", Frame) leftArrow.Size = UDim2.new(0.18, 0, 0, 25) leftArrow.Position = UDim2.new(0.05, 0, 0.53, 0) aimbot esp PasteShr aimbot esp leftArrow.Text = "<" leftArrow.BackgroundColor3 = Color3.fromRGB(100, 100, 100) leftArrow.TextColor3 = Color3.fromRGB(255, 255, 255) local rightArrow = Instance.new("TextButton", Frame) rightArrow.Size = UDim2.new(0.18, 0, 0, 25) rightArrow.Position = UDim2.new(0.77, 0, 0.53, 0) rightArrow.Text = ">" rightArrow.BackgroundColor3 = Color3.fromRGB(100, 100, 100) rightArrow.TextColor3 = Color3.fromRGB(255, 255, 255) aimbot esp How to use it? aimbot esp local rangeLabel = Instance.new("TextLabel", Frame) rangeLabel.Size = UDim2.new(0.6, 0, 0, 25) rangeLabel.Position = UDim2.new(0.23, 0, 0.53, 0) rangeLabel.Text = "Range: " .. circleRadius rangeLabel.TextColor3 = Color3.fromRGB(255, 255, 255) rangeLabel.BackgroundTransparency = 1 leftArrow.MouseButton1Click:Connect(function() circleRadius = math.clamp(circleRadius - 10, 50, 800) aimbot esp How to use it? aimbot esp rangeLabel.Text = "Range: " .. circleRadius circle.Radius = circleRadius end) rightArrow.MouseButton1Click:Connect(function() circleRadius = math.clamp(circleRadius + 10, 50, 800) rangeLabel.Text = "Range: " .. circleRadius circle.Radius = circleRadius end) aimbot esp How to dowload it? aimbot esp -- Sensitivity dropdown local sensitivityButton = Instance.new("TextButton", Frame) sensitivityButton.Size = UDim2.new(0.9, 0, 0, 30) sensitivityButton.Position = UDim2.new(0.05, 0, 0.63, 0) sensitivityButton.Text = "Sensitivity: Smooth" sensitivityButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) sensitivityButton.TextColor3 = Color3.fromRGB(255, 255, 255) local sensitivityOptions = {Slow = 0.05, Smooth = 0.15, Fast = 1} local currentSense = "Smooth" aimbot esp How to use it? aimbot esp sensitivityButton.MouseButton1Click:Connect(function() if currentSense == "Slow" then currentSense = "Smooth" elseif currentSense == "Smooth" then currentSense = "Fast" else currentSense = "Slow" end sensitivityButton.Text = "Sensitivity: " .. currentSense aimbot esp How to use it? aimbot esp smoothness = sensitivityOptions[currentSense] end) -- Aim part selector UI (Head / Torso / Random) local aimLabel = Instance.new("TextLabel", Frame) aimLabel.Size = UDim2.new(0.9, 0, 0, 20) aimLabel.Position = UDim2.new(0.05, 0, 0.75, 0) aimLabel.Text = "Aim Part: " .. aimPartOption aimLabel.TextColor3 = Color3.fromRGB(255,255,255) aimLabel.BackgroundTransparency = 1 aimbot esp PasteShr aimbot esp local aimCycleButton = Instance.new("TextButton", Frame) aimCycleButton.Size = UDim2.new(0.9, 0, 0, 24) aimCycleButton.Position = UDim2.new(0.05, 0, 0.79, 0) aimCycleButton.Text = "Cycle Aim Part" aimCycleButton.BackgroundColor3 = Color3.fromRGB(70,70,70) aimCycleButton.TextColor3 = Color3.fromRGB(255,255,255) aimCycleButton.MouseButton1Click:Connect(function() if aimPartOption == "Head" then aimbot esp How to get it? aimbot esp aimPartOption = "Torso" elseif aimPartOption == "Torso" then aimPartOption = "Random" else aimPartOption = "Head" end aimLabel.Text = "Aim Part: " .. aimPartOption end) -- ESP toggle button aimbot esp PasteShr aimbot esp local espButton = Instance.new("TextButton", Frame) espButton.Size = UDim2.new(0.45, 0, 0, 26) espButton.Position = UDim2.new(0.05, 0, 0.9, 0) espButton.Text = "ESP: OFF" espButton.BackgroundColor3 = Color3.fromRGB(255,60,60) espButton.TextColor3 = Color3.fromRGB(255,255,255) espButton.MouseButton1Click:Connect(function() espEnabled = not espEnabled if espEnabled then aimbot esp How to use it? aimbot esp espButton.Text = "ESP: ON" espButton.BackgroundColor3 = Color3.fromRGB(0,200,100) else espButton.Text = "ESP: OFF" espButton.BackgroundColor3 = Color3.fromRGB(255,60,60) -- remove all ESP GUIs for pl, obj in pairs(playerESPs) do if obj.gui then obj.gui:Destroy() end end playerESPs = {} aimbot esp How to get it? aimbot esp end end) -- Team ESP toggle local teamEspButton = Instance.new("TextButton", Frame) teamEspButton.Size = UDim2.new(0.45, 0, 0, 26) teamEspButton.Position = UDim2.new(0.52, 0, 0.9, 0) teamEspButton.Text = "Team ESP: OFF" teamEspButton.BackgroundColor3 = Color3.fromRGB(70,70,70) teamEspButton.TextColor3 = Color3.fromRGB(255,255,255) aimbot esp How to dowload it? aimbot esp teamEspButton.MouseButton1Click:Connect(function() teamEspEnabled = not teamEspEnabled if teamEspEnabled then teamEspButton.Text = "Team ESP: ON" teamEspButton.BackgroundColor3 = Color3.fromRGB(0,200,100) else teamEspButton.Text = "Team ESP: OFF" teamEspButton.BackgroundColor3 = Color3.fromRGB(70,70,70) end aimbot esp How to dowload it? aimbot esp end) --// Helpers -- find appropriate aiming part name in a character (tries requested, falls back) local function findAimPartInCharacter(character, wantPartName) if not character then return nil end if wantPartName == "Head" then return character:FindFirstChild("Head") elseif wantPartName == "Torso" then aimbot esp How to get it for free? aimbot esp -- prefer HumanoidRootPart, then Torso return character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso") or character:FindFirstChild("LowerTorso") else -- Random choice between Head and Torso local choice = aimCandidates[math.random(1, #aimCandidates)] return findAimPartInCharacter(character, choice) end end local function isPartValid(p) aimbot esp How to dowload it? aimbot esp if not p then return false end if not p:IsDescendantOf(workspace) then return false end local model = p:FindFirstAncestorOfClass("Model") if not model then return false end local humanoid = model:FindFirstChildOfClass("Humanoid") if not humanoid then return false end if humanoid.Health <= 0 then return false end return true end aimbot esp PasteShr aimbot esp -- get closest part to mouse within circleRadius using aimPartOption logic local function getClosestToMouse() local closest, dist = nil, circleRadius local mousePos = UserInputService:GetMouseLocation() for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer ~= player and otherPlayer.Character then local part = findAimPartInCharacter(otherPlayer.Character, aimPartOption) if part then local screenPoint, onScreen = camera:WorldToViewportPoint(part.Position) aimbot esp How to get it for free? aimbot esp if onScreen then local mag = (Vector2.new(screenPoint.X, screenPoint.Y) - mousePos).Magnitude if mag < dist then dist = mag closest = part end end end end end aimbot esp How to get it? aimbot esp return closest end -- Acquire best target local function acquireTarget() local p = getClosestToMouse() if isPartValid(p) then target = p return true aimbot esp How to use it? aimbot esp end target = nil return false end local function clearTarget() target = nil end -- Create BillboardGui ESP for a player's character aimbot esp How to dowload it? aimbot esp local function createESP(playerObj) if not playerObj or not playerObj.Character then return nil end local char = playerObj.Character if playerESPs[playerObj] and playerESPs[playerObj].gui then return playerESPs[playerObj] end local head = char:FindFirstChild("Head") local root = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") local attachPart = head or root aimbot esp How to get it? aimbot esp if not attachPart then return nil end -- BillboardGui local billboard = Instance.new("BillboardGui") billboard.Name = "ESP_Billboard" billboard.Adornee = attachPart billboard.Size = UDim2.new(0, 120, 0, 48) billboard.AlwaysOnTop = true billboard.MaxDistance = 1000 billboard.Parent = ScreenGui aimbot esp How to get it? aimbot esp local frame = Instance.new("Frame", billboard) frame.Size = UDim2.new(1,0,1,0) frame.BackgroundTransparency = 1 local nameLabel = Instance.new("TextLabel", frame) nameLabel.Size = UDim2.new(1,0,0.6,0) nameLabel.Position = UDim2.new(0,0,0,0) nameLabel.BackgroundTransparency = 1 nameLabel.TextStrokeTransparency = 0 aimbot esp How to get it? aimbot esp nameLabel.TextStrokeColor3 = Color3.new(0,0,0) nameLabel.Text = playerObj.Name nameLabel.Font = Enum.Font.SourceSansBold nameLabel.TextSize = 14 nameLabel.TextColor3 = defaultESPColor local distLabel = Instance.new("TextLabel", frame) distLabel.Size = UDim2.new(1,0,0.4,0) distLabel.Position = UDim2.new(0,0,0.6,0) distLabel.BackgroundTransparency = 1 aimbot esp How to get it for free? aimbot esp distLabel.Text = "" distLabel.Font = Enum.Font.SourceSans distLabel.TextSize = 12 distLabel.TextColor3 = defaultESPColor playerESPs[playerObj] = { gui = billboard, nameLabel = nameLabel, distLabel = distLabel, attachedPart = attachPart aimbot esp How to use it? aimbot esp } return playerESPs[playerObj] end -- Remove ESP for player local function removeESP(playerObj) if playerESPs[playerObj] then if playerESPs[playerObj].gui then playerESPs[playerObj].gui:Destroy() end aimbot esp How to dowload it? aimbot esp playerESPs[playerObj] = nil end end -- Update ESP colors and distance local function updateESPForPlayer(playerObj) local data = playerESPs[playerObj] if not data or not data.attachedPart then return end local char = playerObj.Character if not char then removeESP(playerObj) return end aimbot esp PasteShr aimbot esp local root = player.Character and (player.Character:FindFirstChild("HumanoidRootPart") or player.Character:FindFirstChild("Torso")) local dist = root and (root.Position - camera.CFrame.Position).Magnitude or 0 data.distLabel.Text = string.format("%.0f stud", dist) local color = defaultESPColor if teamEspEnabled and playerObj.Team and playerObj.TeamColor then -- TeamColor is BrickColor; convert to Color3 color = playerObj.TeamColor.Color end aimbot esp How to get it for free? aimbot esp data.nameLabel.TextColor3 = color data.distLabel.TextColor3 = color end -- Ensure ESP exists/cleared for all players (constantly called) local function refreshAllESP() if not espEnabled then return end for _, pl in ipairs(Players:GetPlayers()) do if pl ~= player and pl.Character and pl.Character:FindFirstChildOfClass("Humanoid") and pl.Character:FindFirstChild("Humanoid").Health > 0 then if not playerESPs[pl] then aimbot esp How to use it? aimbot esp createESP(pl) end else removeESP(pl) end end end -- Connect player join/leave to maintain ESP Players.PlayerAdded:Connect(function(pl) aimbot esp How to get it for free? aimbot esp -- create esp when they spawn if ESP enabled pl.CharacterAdded:Connect(function() if espEnabled then -- slight delay for parts to exist wait(0.05) createESP(pl) end end) end) aimbot esp How to use it? aimbot esp Players.PlayerRemoving:Connect(function(pl) removeESP(pl) end) -- Also respond to characters added/removed to create/destroy ESP for _, pl in ipairs(Players:GetPlayers()) do pl.CharacterAdded:Connect(function() if espEnabled then wait(0.05) createESP(pl) aimbot esp How to dowload it? aimbot esp end end) end --// Update Circle Position RunService.RenderStepped:Connect(function() local mousePos = UserInputService:GetMouseLocation() circle.Position = Vector2.new(mousePos.X, mousePos.Y) end) aimbot esp How to use it? aimbot esp --// Aimbot Loop RunService.RenderStepped:Connect(function() -- Keep ESP updated constantly if espEnabled then refreshAllESP() for pl, _ in pairs(playerESPs) do updateESPForPlayer(pl) end end aimbot esp How to get it for free? aimbot esp if not aimbotEnabled then return end if aimbotMode == "Hold" then if holdingKey then local targetPart = getClosestToMouse() if targetPart then local targetPos = targetPart.Position local newCFrame = CFrame.new(camera.CFrame.Position, targetPos) camera.CFrame = camera.CFrame:Lerp(newCFrame, smoothness) end aimbot esp How to dowload it? aimbot esp end else -- Toggle mode if toggleActive then if isPartValid(target) then local targetPos = target.Position local newCFrame = CFrame.new(camera.CFrame.Position, targetPos) camera.CFrame = camera.CFrame:Lerp(newCFrame, smoothness) else -- target died or invalid -> try to acquire new one automatically if not acquireTarget() then aimbot esp How to dowload it? aimbot esp -- no valid target currently; keep toggleActive true and keep trying next frames end end end end end) --// Input handling local function matchesActivation(input) -- Activation key can be KeyCode or UserInputType aimbot esp How to dowload it? aimbot esp if typeof(activationKey) == "EnumItem" then -- If it's a KeyCode if activationKey.EnumType == Enum.KeyCode then return input.KeyCode == activationKey else return input.UserInputType == activationKey end else return (input.UserInputType == activationKey or input.KeyCode == activationKey) end aimbot esp How to use it? aimbot esp end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if waitingForKey and not gameProcessed then return end if matchesActivation(input) then if aimbotMode == "Hold" then holdingKey = true else aimbot esp How to use it? aimbot esp -- Toggle mode: flip toggleActive and acquire target if turning on toggleActive = not toggleActive if toggleActive then -- If aimPartOption == Random, we might pick a part per acquireTarget call; acquireTarget uses findAimPartInCharacter which handles Random acquireTarget() else clearTarget() end end end aimbot esp How to dowload it? aimbot esp end) UserInputService.InputEnded:Connect(function(input) if matchesActivation(input) then if aimbotMode == "Hold" then holdingKey = false else -- For Toggle mode we DO NOT clear the target here (keeps locked until they die or you toggle off) end end aimbot esp PasteShr aimbot esp end) -- Clear target on player leave or local character removal Players.PlayerRemoving:Connect(function(p) if target and target:FindFirstAncestorOfClass("Model") == p.Character then clearTarget() end end) player.CharacterRemoving:Connect(function() aimbot esp How to use it? aimbot esp clearTarget() toggleActive = false end) -- Ensure ESP cleans up if we toggle off later -- (already handled in espButton) -- End of script aimbot esp