local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local Camera = Workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local settings = { esp = false, noclip = false, teamCheck = true, fogRemover = true, hitbox = false, infjump = false, speed = false, triggerbot = false, hitboxSize = 10, jumpPower = 50, speedMultiplier = 2, triggerbotDelay = 0.3, maxDistance = 300, keybinds = { esp = Enum.KeyCode.F1, noclip = Enum.KeyCode.F2, teamCheck = Enum.KeyCode.F3, fogRemover = Enum.KeyCode.F4, hitbox = Enum.KeyCode.F5, infjump = Enum.KeyCode.F6, speed = Enum.KeyCode.F7, triggerbot = Enum.KeyCode.F8 } } local state = { noclipConnection = nil, speedConnection = nil, hitboxConnection = nil, triggerbotConnection = nil, espObjects = {}, hitboxParts = {}, changingKeybind = nil, canJump = true, lastShot = 0, playerCharacters = {} } local COLORS = { background = Color3.fromRGB(15, 15, 18), surface = Color3.fromRGB(22, 22, 26), surfaceLight = Color3.fromRGB(32, 32, 36), accent = Color3.fromRGB(88, 101, 242), accentHover = Color3.fromRGB(71, 82, 196), success = Color3.fromRGB(67, 181, 129), text = Color3.fromRGB(224, 225, 227), textDim = Color3.fromRGB(148, 152, 157), border = Color3.fromRGB(38, 38, 42) } local function createGUI() local sg = Instance.new("ScreenGui") sg.Name = "AceHelper" sg.ResetOnSpawn = false sg.ZIndexBehavior = Enum.ZIndexBehavior.Sibling sg.IgnoreGuiInset = true local main = Instance.new("Frame") main.Name = "Main" main.Size = UDim2.new(0, 280, 0, 420) main.Position = UDim2.new(0.5, -140, 0.5, -210) main.BackgroundColor3 = COLORS.background main.BorderSizePixel = 0 main.Active = true main.ClipsDescendants = true main.BackgroundTransparency = 1 main.AnchorPoint = Vector2.new(0.5, 0.5) main.Parent = sg local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 10) mainCorner.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Color = COLORS.border mainStroke.Thickness = 1 mainStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border mainStroke.Transparency = 1 mainStroke.Parent = main local title = Instance.new("Frame") title.Name = "Title" title.Size = UDim2.new(1, 0, 0, 38) title.BackgroundColor3 = COLORS.surface title.BorderSizePixel = 0 title.Parent = main local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 10) titleCorner.Parent = title local titleFix = Instance.new("Frame") titleFix.Size = UDim2.new(1, 0, 0, 10) titleFix.Position = UDim2.new(0, 0, 1, -10) titleFix.BackgroundColor3 = COLORS.surface titleFix.BorderSizePixel = 0 titleFix.Parent = title local titleText = Instance.new("TextLabel") titleText.Size = UDim2.new(1, -20, 1, 0) titleText.Position = UDim2.new(0, 20, 0, 0) titleText.BackgroundTransparency = 1 titleText.Text = "ACE HELPER" titleText.TextColor3 = COLORS.text titleText.Font = Enum.Font.GothamBold titleText.TextSize = 14 titleText.TextXAlignment = Enum.TextXAlignment.Left titleText.Parent = title local accent = Instance.new("Frame") accent.Size = UDim2.new(1, 0, 0, 2) accent.Position = UDim2.new(0, 0, 0, 38) accent.BackgroundColor3 = COLORS.accent accent.BorderSizePixel = 0 accent.Parent = main local scrollContainer = Instance.new("Frame") scrollContainer.Name = "ScrollContainer" scrollContainer.Size = UDim2.new(1, 0, 1, -40) scrollContainer.Position = UDim2.new(0, 0, 0, 40) scrollContainer.BackgroundTransparency = 1 scrollContainer.ClipsDescendants = true scrollContainer.Parent = main local scroll = Instance.new("ScrollingFrame") scroll.Name = "Scroll" scroll.Size = UDim2.new(1, 0, 1, 0) scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.BackgroundTransparency = 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 4 scroll.ScrollBarImageColor3 = COLORS.accent scroll.ScrollingDirection = Enum.ScrollingDirection.Y scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.ScrollBarImageTransparency = 0.5 scroll.Parent = scrollContainer local content = Instance.new("Frame") content.Name = "Content" content.Size = UDim2.new(1, -24, 1, 0) content.Position = UDim2.new(0, 12, 0, 8) content.BackgroundTransparency = 1 content.AutomaticSize = Enum.AutomaticSize.Y content.Parent = scroll local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 6) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = content local topGradient = Instance.new("Frame") topGradient.Name = "TopGradient" topGradient.Size = UDim2.new(1, 0, 0, 20) topGradient.Position = UDim2.new(0, 0, 0, 40) topGradient.BackgroundColor3 = COLORS.background topGradient.BorderSizePixel = 0 topGradient.ZIndex = 10 topGradient.Parent = main local topGrad = Instance.new("UIGradient") topGrad.Rotation = 90 topGrad.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1) }) topGrad.Parent = topGradient local bottomGradient = Instance.new("Frame") bottomGradient.Name = "BottomGradient" bottomGradient.Size = UDim2.new(1, 0, 0, 20) bottomGradient.Position = UDim2.new(0, 0, 1, -20) bottomGradient.BackgroundColor3 = COLORS.background bottomGradient.BorderSizePixel = 0 bottomGradient.ZIndex = 10 bottomGradient.Parent = main local bottomGrad = Instance.new("UIGradient") bottomGrad.Rotation = 90 bottomGrad.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 0) }) bottomGrad.Parent = bottomGradient local bottomCorner = Instance.new("UICorner") bottomCorner.CornerRadius = UDim.new(0, 10) bottomCorner.Parent = bottomGradient return sg, content, main, mainStroke, title end local gui, content, mainFrame, mainStroke, titleFrame = createGUI() local yOffset = 0 local function createToggle(name: string, setting: string) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 32) frame.BackgroundColor3 = COLORS.surface frame.BorderSizePixel = 0 frame.LayoutOrder = yOffset frame.Parent = content yOffset += 1 local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 6) frameCorner.Parent = frame local label = Instance.new("TextLabel") label.Size = UDim2.new(0, 110, 1, 0) label.Position = UDim2.new(0, 10, 0, 0) label.BackgroundTransparency = 1 label.Text = name label.TextColor3 = COLORS.text label.Font = Enum.Font.GothamMedium label.TextSize = 12 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local toggle = Instance.new("TextButton") toggle.Name = "Toggle" toggle.Size = UDim2.new(0, 42, 0, 20) toggle.Position = UDim2.new(0, 115, 0.5, -10) toggle.BackgroundColor3 = COLORS.surfaceLight toggle.BorderSizePixel = 0 toggle.AutoButtonColor = false toggle.Text = "OFF" toggle.TextColor3 = COLORS.textDim toggle.Font = Enum.Font.GothamBold toggle.TextSize = 9 toggle.Parent = frame local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 5) toggleCorner.Parent = toggle local keybind = Instance.new("TextButton") keybind.Name = "Keybind" keybind.Size = UDim2.new(0, 50, 0, 20) keybind.Position = UDim2.new(1, -60, 0.5, -10) keybind.BackgroundColor3 = COLORS.surfaceLight keybind.BorderSizePixel = 0 keybind.AutoButtonColor = false keybind.Text = settings.keybinds[setting].Name keybind.TextColor3 = COLORS.textDim keybind.Font = Enum.Font.GothamMedium keybind.TextSize = 9 keybind.Parent = frame local keybindCorner = Instance.new("UICorner") keybindCorner.CornerRadius = UDim.new(0, 5) keybindCorner.Parent = keybind return toggle, keybind end local function createSlider(name: string, min: number, max: number, default: number, setting: string) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 44) frame.BackgroundColor3 = COLORS.surface frame.BorderSizePixel = 0 frame.LayoutOrder = yOffset frame.Parent = content yOffset += 1 local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 6) frameCorner.Parent = frame local label = Instance.new("TextLabel") label.Size = UDim2.new(0, 110, 0, 16) label.Position = UDim2.new(0, 10, 0, 6) label.BackgroundTransparency = 1 label.Text = name label.TextColor3 = COLORS.text label.Font = Enum.Font.GothamMedium label.TextSize = 11 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local valueBox = Instance.new("TextBox") valueBox.Size = UDim2.new(0, 50, 0, 16) valueBox.Position = UDim2.new(1, -60, 0, 6) valueBox.BackgroundColor3 = COLORS.surfaceLight valueBox.BorderSizePixel = 0 valueBox.Text = tostring(default) valueBox.TextColor3 = COLORS.text valueBox.Font = Enum.Font.GothamMedium valueBox.TextSize = 10 valueBox.Parent = frame local valueCorner = Instance.new("UICorner") valueCorner.CornerRadius = UDim.new(0, 4) valueCorner.Parent = valueBox local sliderBg = Instance.new("Frame") sliderBg.Size = UDim2.new(1, -20, 0, 5) sliderBg.Position = UDim2.new(0, 10, 0, 30) sliderBg.BackgroundColor3 = COLORS.surfaceLight sliderBg.BorderSizePixel = 0 sliderBg.Parent = frame local sliderBgCorner = Instance.new("UICorner") sliderBgCorner.CornerRadius = UDim.new(1, 0) sliderBgCorner.Parent = sliderBg local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0) sliderFill.BackgroundColor3 = COLORS.accent sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderBg local sliderFillCorner = Instance.new("UICorner") sliderFillCorner.CornerRadius = UDim.new(1, 0) sliderFillCorner.Parent = sliderFill local sliderBtn = Instance.new("Frame") sliderBtn.Size = UDim2.new(0, 12, 0, 12) sliderBtn.Position = UDim2.new((default - min) / (max - min), -6, 0.5, -6) sliderBtn.BackgroundColor3 = COLORS.text sliderBtn.BorderSizePixel = 0 sliderBtn.Parent = sliderBg local sliderBtnCorner = Instance.new("UICorner") sliderBtnCorner.CornerRadius = UDim.new(1, 0) sliderBtnCorner.Parent = sliderBtn local dragDetector = Instance.new("TextButton") dragDetector.Size = UDim2.new(1, 20, 1, 20) dragDetector.Position = UDim2.new(0, -10, 0, -10) dragDetector.BackgroundTransparency = 1 dragDetector.Text = "" dragDetector.Parent = sliderBg local dragging = false local dragConnection = nil local function updateValue(value: number, animate: boolean) value = math.clamp(value, min, max) local percent = (value - min) / (max - min) if animate then local tweenInfo = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(sliderFill, tweenInfo, {Size = UDim2.new(percent, 0, 1, 0)}):Play() TweenService:Create(sliderBtn, tweenInfo, {Position = UDim2.new(percent, -6, 0.5, -6)}):Play() else sliderFill.Size = UDim2.new(percent, 0, 1, 0) sliderBtn.Position = UDim2.new(percent, -6, 0.5, -6) end valueBox.Text = tostring(math.floor(value * 100) / 100) settings[setting] = value end dragDetector.MouseButton1Down:Connect(function() dragging = true if dragConnection then dragConnection:Disconnect() end dragConnection = RunService.RenderStepped:Connect(function() if dragging then local mouse = LocalPlayer:GetMouse() local relativeX = mouse.X - sliderBg.AbsolutePosition.X local percent = math.clamp(relativeX / sliderBg.AbsoluteSize.X, 0, 1) local value = min + (max - min) * percent updateValue(value, false) end end) end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false if dragConnection then dragConnection:Disconnect() dragConnection = nil end end end) valueBox.FocusLost:Connect(function() local value = tonumber(valueBox.Text) if value then updateValue(value, true) else valueBox.Text = tostring(settings[setting]) end end) return frame end local espToggle, espKey = createToggle("ESP", "esp") local noclipToggle, noclipKey = createToggle("Noclip", "noclip") local teamToggle, teamKey = createToggle("Team Check", "teamCheck") local fogToggle, fogKey = createToggle("Fog Remover", "fogRemover") local hitboxToggle, hitboxKey = createToggle("Hitbox Expand", "hitbox") local infjumpToggle, infjumpKey = createToggle("Inf Jump", "infjump") local speedToggle, speedKey = createToggle("Speed", "speed") local triggerbotToggle, triggerbotKey = createToggle("Triggerbot", "triggerbot") createSlider("Hitbox Size", 1, 30, settings.hitboxSize, "hitboxSize") createSlider("Jump Power", 20, 100, settings.jumpPower, "jumpPower") createSlider("Speed Mult", 1, 5, settings.speedMultiplier, "speedMultiplier") createSlider("Trigger Delay", 0.05, 1, settings.triggerbotDelay, "triggerbotDelay") createSlider("Max Distance", 50, 500, settings.maxDistance, "maxDistance") gui.Parent = game:GetService("CoreGui") local dragging = false local dragStart = nil local startPos = nil titleFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart local newPos = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) mainFrame.Position = newPos end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) task.spawn(function() local tweenInfo = TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out) mainFrame.Size = UDim2.new(0, 0, 0, 0) TweenService:Create(mainFrame, tweenInfo, { Size = UDim2.new(0, 280, 0, 420), BackgroundTransparency = 0 }):Play() TweenService:Create(mainStroke, tweenInfo, {Transparency = 0}):Play() task.wait(0.1) for _, child in ipairs(content:GetChildren()) do if child:IsA("Frame") then child.BackgroundTransparency = 1 TweenService:Create(child, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundTransparency = 0 }):Play() task.wait(0.02) end end end) local function updateToggleUI(toggle: TextButton, enabled: boolean) local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) if enabled then TweenService:Create(toggle, tweenInfo, {BackgroundColor3 = COLORS.accent}):Play() toggle.Text = "ON" toggle.TextColor3 = COLORS.text else TweenService:Create(toggle, tweenInfo, {BackgroundColor3 = COLORS.surfaceLight}):Play() toggle.Text = "OFF" toggle.TextColor3 = COLORS.textDim end end local function disableFog() Lighting.FogEnd = 1e6 Lighting.FogStart = 0 Lighting.FogColor = Color3.new(1, 1, 1) end local function enableFog() Lighting.FogEnd = 500 Lighting.FogStart = 0 end local function getCenterPart(character: Model) if not character then return nil end return character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso") or character:FindFirstChildWhichIsA("BasePart") end local function isSameTeam(a: Player, b: Player): boolean if not settings.teamCheck then return false end if a.Team and b.Team then return a.Team == b.Team end return false end local function updatePlayerCache() state.playerCharacters = {} for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then state.playerCharacters[p.Character] = p end end end local function applyESP(player: Player) local function addHighlight(character: Model) if not settings.esp then return end if character:FindFirstChild("ESP_Highlight") then return end local h = Instance.new("Highlight") h.Name = "ESP_Highlight" h.Adornee = character h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop h.FillTransparency = 0.7 h.OutlineTransparency = 0 h.OutlineColor = Color3.fromRGB(255, 255, 255) h.FillColor = isSameTeam(LocalPlayer, player) and Color3.fromRGB(80, 150, 255) or Color3.fromRGB(255, 80, 80) h.Parent = character state.espObjects[player] = h end player.CharacterAdded:Connect(function(char) task.wait(0.5) addHighlight(char) end) if player.Character then addHighlight(player.Character) end end local function removeESP(player: Player) if state.espObjects[player] then state.espObjects[player]:Destroy() state.espObjects[player] = nil end if player.Character then local h = player.Character:FindFirstChild("ESP_Highlight") if h then h:Destroy() end end end local function getTargetParts(character: Model) local parts = {} for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") and ( part.Name:match("Head") or part.Name:match("Torso") or part.Name:match("Chest") or part.Name:match("Upper") or part.Name:match("HumanoidRootPart") ) then table.insert(parts, part) end end if #parts == 0 then local hrp = getCenterPart(character) if hrp then table.insert(parts, hrp) end end return parts end local function createHitbox(character: Model, player: Player) if not character or isSameTeam(LocalPlayer, player) then return end local targetParts = getTargetParts(character) if #targetParts == 0 then return end for _, originalPart in ipairs(targetParts) do if not originalPart:FindFirstChild("HitboxExtender") then local hitbox = Instance.new("Part") hitbox.Name = "HitboxExtender" hitbox.Size = Vector3.new(settings.hitboxSize, settings.hitboxSize, settings.hitboxSize) hitbox.Transparency = 1 hitbox.CanCollide = false hitbox.Massless = true hitbox.CFrame = originalPart.CFrame hitbox.Anchored = false local weld = Instance.new("WeldConstraint") weld.Part0 = hitbox weld.Part1 = originalPart weld.Parent = hitbox for _, existing in ipairs(originalPart:GetChildren()) do if existing:IsA("BodyVelocity") or existing:IsA("BodyGyro") or existing:IsA("BodyPosition") then existing:Destroy() end end hitbox.Parent = character if not state.hitboxParts[player] then state.hitboxParts[player] = {} end table.insert(state.hitboxParts[player], hitbox) end end end local function removeHitbox(player: Player) if state.hitboxParts[player] then for _, hitbox in ipairs(state.hitboxParts[player]) do if hitbox and hitbox.Parent then hitbox:Destroy() end end state.hitboxParts[player] = nil end if player.Character then for _, part in ipairs(player.Character:GetDescendants()) do if part.Name == "HitboxExtender" then part:Destroy() end end end end local function hitboxLoop() if not settings.hitbox then return end for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then if not isSameTeam(LocalPlayer, player) then local char = player.Character local needsUpdate = false if not state.hitboxParts[player] or #state.hitboxParts[player] == 0 then needsUpdate = true else for _, hitbox in ipairs(state.hitboxParts[player]) do if not hitbox or not hitbox.Parent then needsUpdate = true break end end end if needsUpdate then removeHitbox(player) createHitbox(char, player) end else removeHitbox(player) end end end end local function noclipLoop() if not settings.noclip then return end local char = LocalPlayer.Character if not char then return end for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end local function speedLoop() if not settings.speed then return end local char = LocalPlayer.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end local moveDir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += Camera.CFrame.RightVector end if moveDir.Magnitude > 0 then moveDir = Vector3.new(moveDir.X, 0, moveDir.Z).Unit local currentVel = hrp.AssemblyLinearVelocity hrp.AssemblyLinearVelocity = Vector3.new( moveDir.X * 16 * settings.speedMultiplier, currentVel.Y, moveDir.Z * 16 * settings.speedMultiplier ) end end local function triggerbotLoop() if not settings.triggerbot then return end local now = tick() if now - state.lastShot < settings.triggerbotDelay then return end local mouse = LocalPlayer:GetMouse() local origin = Camera.CFrame.Position local direction = (mouse.Hit.Position - origin).Unit * settings.maxDistance local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {LocalPlayer.Character} rayParams.FilterType = Enum.RaycastFilterType.Exclude rayParams.IgnoreWater = true local result = Workspace:Raycast(origin, direction, rayParams) if result and result.Instance then local hitPart = result.Instance local hitChar = hitPart:FindFirstAncestorOfClass("Model") if hitChar and state.playerCharacters[hitChar] then local targetPlayer = state.playerCharacters[hitChar] if not isSameTeam(LocalPlayer, targetPlayer) then local hum = hitChar:FindFirstChild("Humanoid") if hum and hum.Health > 0 then local distance = (origin - result.Position).Magnitude if distance <= settings.maxDistance then mouse1click() state.lastShot = now end end end end end end local function infJumpLoop() if not settings.infjump then return end if not state.canJump then return end local char = LocalPlayer.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end local vel = Instance.new("BodyVelocity") vel.Velocity = Vector3.new(hrp.AssemblyLinearVelocity.X, settings.jumpPower, hrp.AssemblyLinearVelocity.Z) vel.MaxForce = Vector3.new(0, math.huge, 0) vel.Parent = hrp state.canJump = false task.wait(0.1) vel:Destroy() task.wait(0.15) state.canJump = true end local function toggleESP() settings.esp = not settings.esp updateToggleUI(espToggle, settings.esp) if settings.esp then for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then applyESP(p) end end else for _, p in ipairs(Players:GetPlayers()) do removeESP(p) end state.espObjects = {} end end local function toggleNoclip() settings.noclip = not settings.noclip updateToggleUI(noclipToggle, settings.noclip) if settings.noclip then if not state.noclipConnection then state.noclipConnection = RunService.Stepped:Connect(noclipLoop) end else if state.noclipConnection then state.noclipConnection:Disconnect() state.noclipConnection = nil end local char = LocalPlayer.Character if char then for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end end local function toggleTeamCheck() settings.teamCheck = not settings.teamCheck updateToggleUI(teamToggle, settings.teamCheck) if settings.esp then for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local h = p.Character:FindFirstChild("ESP_Highlight") if h then h.FillColor = isSameTeam(LocalPlayer, p) and Color3.fromRGB(80, 150, 255) or Color3.fromRGB(255, 80, 80) end end end end end local function toggleFogRemover() settings.fogRemover = not settings.fogRemover updateToggleUI(fogToggle, settings.fogRemover) if settings.fogRemover then disableFog() else enableFog() end end local function toggleHitbox() settings.hitbox = not settings.hitbox updateToggleUI(hitboxToggle, settings.hitbox) if settings.hitbox then if not state.hitboxConnection then state.hitboxConnection = RunService.Heartbeat:Connect(hitboxLoop) end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then createHitbox(p.Character, p) end end else if state.hitboxConnection then state.hitboxConnection:Disconnect() state.hitboxConnection = nil end for _, p in ipairs(Players:GetPlayers()) do removeHitbox(p) end state.hitboxParts = {} end end local function toggleInfJump() settings.infjump = not settings.infjump updateToggleUI(infjumpToggle, settings.infjump) state.canJump = true end local function toggleSpeed() settings.speed = not settings.speed updateToggleUI(speedToggle, settings.speed) if settings.speed then if not state.speedConnection then state.speedConnection = RunService.Heartbeat:Connect(speedLoop) end else if state.speedConnection then state.speedConnection:Disconnect() state.speedConnection = nil end end end local function toggleTriggerbot() settings.triggerbot = not settings.triggerbot updateToggleUI(triggerbotToggle, settings.triggerbot) if settings.triggerbot then updatePlayerCache() if not state.triggerbotConnection then state.triggerbotConnection = RunService.RenderStepped:Connect(triggerbotLoop) end else if state.triggerbotConnection then state.triggerbotConnection:Disconnect() state.triggerbotConnection = nil end end end espToggle.MouseButton1Click:Connect(toggleESP) noclipToggle.MouseButton1Click:Connect(toggleNoclip) teamToggle.MouseButton1Click:Connect(toggleTeamCheck) fogToggle.MouseButton1Click:Connect(toggleFogRemover) hitboxToggle.MouseButton1Click:Connect(toggleHitbox) infjumpToggle.MouseButton1Click:Connect(toggleInfJump) speedToggle.MouseButton1Click:Connect(toggleSpeed) triggerbotToggle.MouseButton1Click:Connect(toggleTriggerbot) local keybindMap = { [espKey] = {setting = "esp", func = toggleESP}, [noclipKey] = {setting = "noclip", func = toggleNoclip}, [teamKey] = {setting = "teamCheck", func = toggleTeamCheck}, [fogKey] = {setting = "fogRemover", func = toggleFogRemover}, [hitboxKey] = {setting = "hitbox", func = toggleHitbox}, [infjumpKey] = {setting = "infjump", func = toggleInfJump}, [speedKey] = {setting = "speed", func = toggleSpeed}, [triggerbotKey] = {setting = "triggerbot", func = toggleTriggerbot} } for btn, data in pairs(keybindMap) do btn.MouseButton1Click:Connect(function() state.changingKeybind = {button = btn, setting = data.setting} btn.Text = "..." TweenService:Create(btn, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {BackgroundColor3 = COLORS.accent}):Play() end) end UserInputService.InputBegan:Connect(function(input: InputObject, gp: boolean) if gp then return end if state.changingKeybind then if input.KeyCode ~= Enum.KeyCode.Unknown and input.KeyCode ~= Enum.KeyCode.Escape then settings.keybinds[state.changingKeybind.setting] = input.KeyCode state.changingKeybind.button.Text = input.KeyCode.Name TweenService:Create(state.changingKeybind.button, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {BackgroundColor3 = COLORS.surfaceLight}):Play() end state.changingKeybind = nil return end for setting, keycode in pairs(settings.keybinds) do if input.KeyCode == keycode then if setting == "esp" then toggleESP() elseif setting == "noclip" then toggleNoclip() elseif setting == "teamCheck" then toggleTeamCheck() elseif setting == "fogRemover" then toggleFogRemover() elseif setting == "hitbox" then toggleHitbox() elseif setting == "infjump" then toggleInfJump() elseif setting == "speed" then toggleSpeed() elseif setting == "triggerbot" then toggleTriggerbot() end end end if input.KeyCode == Enum.KeyCode.Space and settings.infjump then infJumpLoop() end end) Players.PlayerAdded:Connect(function(p) if p ~= LocalPlayer then if settings.esp then applyESP(p) end p.CharacterAdded:Connect(function(char) task.wait(0.5) updatePlayerCache() if settings.hitbox then createHitbox(char, p) end end) if p.Character then updatePlayerCache() if settings.hitbox then createHitbox(p.Character, p) end end end end) Players.PlayerRemoving:Connect(function(p) state.espObjects[p] = nil removeHitbox(p) updatePlayerCache() end) LocalPlayer.CharacterAdded:Connect(function() task.wait(0.5) state.canJump = true updatePlayerCache() if settings.noclip and not state.noclipConnection then state.noclipConnection = RunService.Stepped:Connect(noclipLoop) end if settings.speed and not state.speedConnection then state.speedConnection = RunService.Heartbeat:Connect(speedLoop) end if settings.triggerbot and not state.triggerbotConnection then state.triggerbotConnection = RunService.RenderStepped:Connect(triggerbotLoop) end end) if settings.fogRemover then disableFog() RunService.RenderStepped:Connect(function() if settings.fogRemover then disableFog() end end) end RunService.Heartbeat:Connect(function() if settings.triggerbot then updatePlayerCache() end end) updateToggleUI(teamToggle, settings.teamCheck) updateToggleUI(fogToggle, settings.fogRemover) updatePlayerCache()