--[[ ScrollMenu v9 — Animated Edition Loading • HUD Overlay • Watermark • Active Badge • Hover Glows • Press Scale Tab Crossfade • Bounce Notifications • Mass Tab • God Mode 4-layer bypass H=hide Z=aimbot E=esp F=fly N=noclip B=bhop X=click-tp =god ]] -- ── Services ───────────────────────────────────────────────── local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenSvc = game:GetService("TweenService") local Lighting = game:GetService("Lighting") local VirtualUser = game:GetService("VirtualUser") local lp = Players.LocalPlayer local mouse = lp:GetMouse() local cam = workspace.CurrentCamera -- ── Palette ────────────────────────────────────────────────── local CB = Color3.fromRGB(10, 10, 20 ) local CS = Color3.fromRGB(13, 13, 25 ) local CT = Color3.fromRGB(7, 7, 14 ) local CI = Color3.fromRGB(18, 18, 34 ) local CD = Color3.fromRGB(38, 38, 70 ) local CA = Color3.fromRGB(108, 92, 231) local CA2 = Color3.fromRGB(72, 199, 255) local CG = Color3.fromRGB(57, 217, 138) local CR = Color3.fromRGB(242, 65, 90 ) local CW = Color3.fromRGB(235, 235, 255) local CQ = Color3.fromRGB(115, 115, 158) local CSL = Color3.fromRGB(22, 18, 52 ) local COR = Color3.fromRGB(255, 170, 50 ) -- ── Layout ─────────────────────────────────────────────────── local WW, WH = 608, 468 local SW = 158; local TH = 42 local RH = 48; local SHH = 62 local GH = 20; local IP = 7; local PP = 12 -- ── State ──────────────────────────────────────────────────── local flySpd = 65; local walkSpd = 16; local jumpPwr = 50 local aimFov = 150; local aimSmooth = 0.85; local aimPred = 0.08; local aimMaxD = 500 local aimbotOn = false; local silentOn = false; local lockOnOn = false local skipTeamAim = false; local visOnly = false; local aimbotBone = "Head" local lockTgt = nil; local myRoot = nil local espClr = CA local espOn = false; local espRMBOnly = true local espName = true; local espInfo = true; local espHP = true; local espTeam = false local espDrws = {} local flyOn = false; local ncOn = false; local godOn = false; local infJump = false local invisOn = false; local spinOn = false; local bhopOn = false; local afkOn = false local frozenMap = {}; local flyOthersSet = {}; local flyOthersAll = false local clickTPOn = false; local fbOn = false; local fogOn = false; local hitboxOn = false local selPlayer = nil local flyConn, flyBV, flyBG, ncConn local godConn, godHConn, godRespawnConn, godHookCleanup local spinConn2, bhopConn, afkConn local spamKMap = {}; local spamKConns = {} -- ── Utility ────────────────────────────────────────────────── local function claimOwner(part) pcall(function() part:SetNetworkOwner(lp) end) pcall(function() if setnetworkowner then setnetworkowner(part, lp) end end) end -- ───────────────────────────────────────────────────────────── -- FEATURE FUNCTIONS -- ───────────────────────────────────────────────────────────── local function startFly() local ch = lp.Character; if not ch then return end local r = ch:FindFirstChild("HumanoidRootPart") local h = ch:FindFirstChildOfClass("Humanoid"); if not r or not h then return end h.PlatformStand = true flyBV = Instance.new("BodyVelocity"); flyBV.Velocity = Vector3.zero flyBV.MaxForce = Vector3.new(1e9,1e9,1e9); flyBV.Parent = r flyBG = Instance.new("BodyGyro"); flyBG.MaxTorque = Vector3.new(1e9,1e9,1e9) flyBG.P = 1e4; flyBG.CFrame = r.CFrame; flyBG.Parent = r flyConn = RunService.RenderStepped:Connect(function() local rr = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart"); if not rr then return end local cf = cam.CFrame; local d = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then d = d + cf.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then d = d - cf.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then d = d - cf.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then d = d + cf.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then d = d + Vector3.new(0,1,0) end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then d = d - Vector3.new(0,1,0) end flyBV.Velocity = d.Magnitude > 0 and d.Unit * flySpd or Vector3.zero; flyBG.CFrame = cf end) end local function stopFly() if flyConn then flyConn:Disconnect(); flyConn = nil end if flyBV then flyBV:Destroy(); flyBV = nil end if flyBG then flyBG:Destroy(); flyBG = nil end local h = lp.Character and lp.Character:FindFirstChildOfClass("Humanoid") if h then h.PlatformStand = false end end -- ── God Mode — 4-Layer ─────────────────────────────────────── local function _cleanGodHooks() if godHookCleanup then pcall(godHookCleanup); godHookCleanup = nil end end local function _applyGodToChar(ch) if not ch then return end local hum = ch:FindFirstChildOfClass("Humanoid"); if not hum then return end pcall(function() hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false) end) pcall(function() hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false) end) pcall(function() if sethiddenproperty then sethiddenproperty(hum,"Health",hum.MaxHealth) end end) _cleanGodHooks() pcall(function() if not hookfunction then return end local origTD = hum.TakeDamage hookfunction(hum.TakeDamage, function(self, amt) if not godOn then return origTD(self, amt) end end) godHookCleanup = function() pcall(function() if hookfunction then hookfunction(hum.TakeDamage, origTD) end end) end end) pcall(function() if not ch:FindFirstChildOfClass("ForceField") then local ff = Instance.new("ForceField"); ff.Visible = false; ff.Parent = ch end end) if godHConn then godHConn:Disconnect(); godHConn = nil end godHConn = hum.HealthChanged:Connect(function(hp) if not godOn or hp >= hum.MaxHealth then return end pcall(function() hum.Health = hum.MaxHealth end) pcall(function() if sethiddenproperty then sethiddenproperty(hum,"Health",hum.MaxHealth) end end) end) pcall(function() hum.Health = hum.MaxHealth end) end local function startGod() godOn = true; _applyGodToChar(lp.Character) if godRespawnConn then godRespawnConn:Disconnect() end godRespawnConn = lp.CharacterAdded:Connect(function(ch) if not godOn then return end; task.wait(0.15); _applyGodToChar(ch) end) if godConn then godConn:Disconnect() end local timer = 0 godConn = RunService.Heartbeat:Connect(function(dt) if not godOn then return end; timer = timer + dt local ch = lp.Character; local hum = ch and ch:FindFirstChildOfClass("Humanoid"); if not hum then return end if hum.Health < hum.MaxHealth then pcall(function() hum.Health = hum.MaxHealth end) pcall(function() if sethiddenproperty then sethiddenproperty(hum,"Health",hum.MaxHealth) end end) end if timer >= 0.75 then timer = 0 pcall(function() hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false) end) pcall(function() if not ch:FindFirstChildOfClass("ForceField") then local ff = Instance.new("ForceField"); ff.Visible = false; ff.Parent = ch end end) end end) end local function stopGod() godOn = false; _cleanGodHooks() if godConn then godConn:Disconnect(); godConn = nil end if godHConn then godHConn:Disconnect(); godHConn = nil end if godRespawnConn then godRespawnConn:Disconnect(); godRespawnConn = nil end local ch = lp.Character; local hum = ch and ch:FindFirstChildOfClass("Humanoid") if hum then pcall(function() hum:SetStateEnabled(Enum.HumanoidStateType.Dead, true) end) end if ch then local ff = ch:FindFirstChildOfClass("ForceField"); if ff then pcall(function() ff:Destroy() end) end end end local function applyInvis(s) local ch = lp.Character; if not ch then return end for _, p in pairs(ch:GetDescendants()) do if p:IsA("BasePart") and p.Name ~= "HumanoidRootPart" then p.Transparency = s and 1 or 0 end if p:IsA("Decal") then p.Transparency = s and 1 or 0 end end end local function toggleNoclip(s) ncOn = s if s then if ncConn then ncConn:Disconnect() end ncConn = RunService.Stepped:Connect(function() local ch = lp.Character; if not ch then return end for _, p in pairs(ch:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end) else if ncConn then ncConn:Disconnect(); ncConn = nil end local ch = lp.Character; if ch then for _, p in pairs(ch:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = true end end end end end local function toggleBhop(s) bhopOn = s if s then bhopConn = RunService.Heartbeat:Connect(function() local h = lp.Character and lp.Character:FindFirstChildOfClass("Humanoid") if h and h:GetState() == Enum.HumanoidStateType.Landed then h:ChangeState(Enum.HumanoidStateType.Jumping) end end) else if bhopConn then bhopConn:Disconnect(); bhopConn = nil end end end local function toggleSpin(s) spinOn = s if s then spinConn2 = RunService.RenderStepped:Connect(function() local r = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") if r then r.CFrame = r.CFrame * CFrame.Angles(0, math.rad(20), 0) end end) else if spinConn2 then spinConn2:Disconnect(); spinConn2 = nil end end end local function toggleAFK(s) afkOn = s if s then afkConn = RunService.Heartbeat:Connect(function() VirtualUser:Button2Down(Vector2.new(0,0), cam.CFrame); task.wait() VirtualUser:Button2Up(Vector2.new(0,0), cam.CFrame) end) else if afkConn then afkConn:Disconnect(); afkConn = nil end end end local function toggleFlyOther(p) if not p then return end if flyOthersSet[p] then flyOthersSet[p] = nil pcall(function() local r = p.Character and p.Character:FindFirstChild("HumanoidRootPart"); if not r then return end local bv = r:FindFirstChild("_OFBV"); if bv then bv:Destroy() end local h = p.Character:FindFirstChildOfClass("Humanoid"); if h then h.PlatformStand = false end end) return false end flyOthersSet[p] = true; return true end local function killChar(ch) if not ch then return end local root = ch:FindFirstChild("HumanoidRootPart"); local hum = ch:FindFirstChildOfClass("Humanoid") if root then claimOwner(root) for _, p in pairs(ch:GetDescendants()) do if p:IsA("BasePart") then pcall(function() claimOwner(p) end) end end end pcall(function() if hum then hum.Health = 0; hum:TakeDamage(math.huge) end end) pcall(function() if hum and sethiddenproperty then sethiddenproperty(hum, "Health", 0) end end) pcall(function() ch:BreakJoints() end) pcall(function() if root then root.CFrame = CFrame.new(root.Position.X, -9999, root.Position.Z) end end) pcall(function() if root then root.AssemblyLinearVelocity = Vector3.new(0, -9999, 0) end end) end local function flingChar(ch) if not ch then return end local r = ch:FindFirstChild("HumanoidRootPart"); if not r then return end local fv = Instance.new("BodyVelocity") fv.Velocity = Vector3.new(math.random(-1,1)*900, 700, math.random(-1,1)*900) fv.MaxForce = Vector3.new(1e9,1e9,1e9); fv.Parent = r game:GetService("Debris"):AddItem(fv, 0.15) end -- ── Persistence loops ──────────────────────────────────────── RunService.Heartbeat:Connect(function() for p, _ in pairs(flyOthersSet) do pcall(function() local ch = p.Character; if not ch then return end local r = ch:FindFirstChild("HumanoidRootPart"); if not r then return end local hm = ch:FindFirstChildOfClass("Humanoid"); claimOwner(r) if hm then hm.PlatformStand = true; pcall(function() hm:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false) end) end r.AssemblyLinearVelocity = Vector3.new(r.AssemblyLinearVelocity.X, 50, r.AssemblyLinearVelocity.Z) local bv = r:FindFirstChild("_OFBV") if not bv then bv = Instance.new("BodyVelocity"); bv.Name="_OFBV"; bv.MaxForce=Vector3.new(0,1e9,0); bv.Parent=r end bv.Velocity = Vector3.new(0, 50, 0) end) end if flyOthersAll then for _, p in ipairs(Players:GetPlayers()) do if p ~= lp then pcall(function() local ch = p.Character; if not ch then return end local r = ch:FindFirstChild("HumanoidRootPart"); if not r then return end local hm = ch:FindFirstChildOfClass("Humanoid"); claimOwner(r) if hm then hm.PlatformStand = true end r.AssemblyLinearVelocity = Vector3.new(r.AssemblyLinearVelocity.X, 50, r.AssemblyLinearVelocity.Z) local bv = r:FindFirstChild("_OFBV") if not bv then bv = Instance.new("BodyVelocity"); bv.Name="_OFBV"; bv.MaxForce=Vector3.new(0,1e9,0); bv.Parent=r end bv.Velocity = Vector3.new(0, 50, 0) end) end end end for p, frz in pairs(frozenMap) do if frz then pcall(function() local r = p.Character and p.Character:FindFirstChild("HumanoidRootPart") if r then claimOwner(r); if not r.Anchored then r.Anchored = true end end end) end end end) lp.CharacterAdded:Connect(function(ch) if flyOn then task.wait(0.5); startFly() end if invisOn then task.wait(0.5); applyInvis(true) end if ncOn then task.wait(0.2); toggleNoclip(true) end local h = ch:WaitForChild("Humanoid", 5) if h then h.WalkSpeed = walkSpd; h.JumpPower = jumpPwr end end) UIS.JumpRequest:Connect(function() if not infJump then return end local h = lp.Character and lp.Character:FindFirstChildOfClass("Humanoid") if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end end) mouse.Button1Down:Connect(function() if not clickTPOn then return end local r = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") if mouse.Hit and r then r.CFrame = mouse.Hit + Vector3.new(0, 3, 0) end end) -- ───────────────────────────────────────────────────────────── -- ROOT GUI -- ───────────────────────────────────────────────────────────── local SG = Instance.new("ScreenGui"); SG.Name = "ScrollMenuV9" SG.ResetOnSpawn = false; SG.ZIndexBehavior = Enum.ZIndexBehavior.Sibling SG.Parent = game:GetService("CoreGui") -- ───────────────────────────────────────────────────────────── -- HUD OVERLAY (always visible, outside the main window) -- ───────────────────────────────────────────────────────────── local HudFrame = Instance.new("Frame", SG) HudFrame.Size = UDim2.new(0, 420, 0, 30); HudFrame.Position = UDim2.new(0, 8, 0, 8) HudFrame.BackgroundTransparency = 1; HudFrame.BorderSizePixel = 0 local hudLayout = Instance.new("UIListLayout", HudFrame) hudLayout.FillDirection = Enum.FillDirection.Horizontal; hudLayout.Padding = UDim.new(0, 5) hudLayout.SortOrder = Enum.SortOrder.LayoutOrder; hudLayout.VerticalAlignment = Enum.VerticalAlignment.Center local hudPills = {}; local hudPillOrder = {} local function mkHudPill(tag, col, order) local pill = Instance.new("Frame", HudFrame) pill.Size = UDim2.new(0, 52, 0, 22); pill.BackgroundColor3 = col pill.BackgroundTransparency = 0.45; pill.BorderSizePixel = 0; pill.LayoutOrder = order Instance.new("UICorner", pill).CornerRadius = UDim.new(1, 0) local pk = Instance.new("UIStroke", pill); pk.Color = col; pk.Thickness = 1; pk.Transparency = 0.3 local lbl = Instance.new("TextLabel", pill); lbl.Text = tag lbl.Font = Enum.Font.GothamBold; lbl.TextSize = 10; lbl.TextColor3 = CW lbl.BackgroundTransparency = 1; lbl.Size = UDim2.new(1,0,1,0) lbl.TextXAlignment = Enum.TextXAlignment.Center pill.Visible = false return pill end hudPills.god = mkHudPill("⚡ GOD", CG, 1) hudPills.fly = mkHudPill("✈ FLY", CA2, 2) hudPills.nc = mkHudPill("◎ NC", CA, 3) hudPills.esp = mkHudPill("👁 ESP", CA, 4) hudPills.aim = mkHudPill("🎯 AIM", CR, 5) hudPills.bhop = mkHudPill("⬆ BHOP", COR, 6) hudPills.inv = mkHudPill("👻 INV", CQ, 7) local function updateHUD() hudPills.god.Visible = godOn hudPills.fly.Visible = flyOn hudPills.nc.Visible = ncOn hudPills.esp.Visible = espOn hudPills.aim.Visible = aimbotOn hudPills.bhop.Visible = bhopOn hudPills.inv.Visible = invisOn end -- ───────────────────────────────────────────────────────────── -- WATERMARK (top-right) -- ───────────────────────────────────────────────────────────── local WM = Instance.new("Frame", SG) WM.Size = UDim2.new(0, 210, 0, 26); WM.Position = UDim2.new(1, -218, 0, 8) WM.BackgroundColor3 = Color3.fromRGB(10,10,22); WM.BackgroundTransparency = 0.25; WM.BorderSizePixel = 0 Instance.new("UICorner", WM).CornerRadius = UDim.new(0, 8) local wmS = Instance.new("UIStroke", WM); wmS.Color = CA; wmS.Thickness = 1; wmS.Transparency = 0.5 local wmL = Instance.new("TextLabel", WM); wmL.Text = "◈ ScrollMenu v9 · " .. lp.Name wmL.Font = Enum.Font.GothamBold; wmL.TextSize = 11; wmL.TextColor3 = CW wmL.BackgroundTransparency = 1; wmL.Size = UDim2.new(1,0,1,0) wmL.TextXAlignment = Enum.TextXAlignment.Center -- ───────────────────────────────────────────────────────────── -- ACTIVE BADGE (bottom-left) -- ───────────────────────────────────────────────────────────── local ActiveBadge = Instance.new("Frame", SG) ActiveBadge.Size = UDim2.new(0, 140, 0, 26); ActiveBadge.Position = UDim2.new(0, 8, 1, -36) ActiveBadge.BackgroundColor3 = Color3.fromRGB(10,10,22); ActiveBadge.BackgroundTransparency = 0.3 ActiveBadge.BorderSizePixel = 0; ActiveBadge.Visible = false Instance.new("UICorner", ActiveBadge).CornerRadius = UDim.new(0, 8) local abS = Instance.new("UIStroke", ActiveBadge); abS.Color = CA2; abS.Thickness = 1; abS.Transparency = 0.4 local abL = Instance.new("TextLabel", ActiveBadge) abL.Font = Enum.Font.GothamBold; abL.TextSize = 11; abL.TextColor3 = CA2 abL.BackgroundTransparency = 1; abL.Size = UDim2.new(1,0,1,0); abL.TextXAlignment = Enum.TextXAlignment.Center local function countActive() local n = 0 if godOn then n+=1 end; if flyOn then n+=1 end; if ncOn then n+=1 end if espOn then n+=1 end; if aimbotOn then n+=1 end; if bhopOn then n+=1 end if invisOn then n+=1 end; if spinOn then n+=1 end; if afkOn then n+=1 end if clickTPOn then n+=1 end; if infJump then n+=1 end; if fbOn then n+=1 end abL.Text = n > 0 and ("◆ " .. n .. " feature" .. (n==1 and "" or "s") .. " active") or "" ActiveBadge.Visible = n > 0 updateHUD() end -- ───────────────────────────────────────────────────────────── -- NOTIFICATION SYSTEM -- ───────────────────────────────────────────────────────────── local notifY = 44 local function notify(title, body, color) color = color or CA local NF = Instance.new("Frame", SG) NF.Size = UDim2.new(0, 272, 0, 62); NF.Position = UDim2.new(1, 30, 0, notifY) NF.BackgroundColor3 = Color3.fromRGB(12,12,24); NF.BorderSizePixel = 0; NF.ZIndex = 100 Instance.new("UICorner", NF).CornerRadius = UDim.new(0, 10) local sk = Instance.new("UIStroke", NF); sk.Color = color; sk.Thickness = 1.3; sk.Transparency = 0.2 local bar = Instance.new("Frame", NF); bar.Size = UDim2.new(0, 3, 1, -14) bar.Position = UDim2.new(0, 5, 0, 7); bar.BackgroundColor3 = color; bar.BorderSizePixel = 0 Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0) local tl = Instance.new("TextLabel", NF); tl.Text = title tl.Font = Enum.Font.GothamBold; tl.TextSize = 13; tl.TextColor3 = CW tl.BackgroundTransparency = 1; tl.Size = UDim2.new(1,-18,0,24); tl.Position = UDim2.new(0,16,0,7) tl.TextXAlignment = Enum.TextXAlignment.Left local bl = Instance.new("TextLabel", NF); bl.Text = body bl.Font = Enum.Font.Gotham; bl.TextSize = 11; bl.TextColor3 = CQ bl.BackgroundTransparency = 1; bl.Size = UDim2.new(1,-18,0,18); bl.Position = UDim2.new(0,16,0,32) bl.TextXAlignment = Enum.TextXAlignment.Left -- Bounce-in using Back easing TweenSvc:Create(NF, TweenInfo.new(0.45, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Position = UDim2.new(1,-280,0,notifY)}):Play() notifY = notifY + 70 task.delay(3, function() TweenSvc:Create(NF, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Position = UDim2.new(1, 30, 0, NF.Position.Y.Offset)}):Play() task.wait(0.32); notifY = notifY - 70; NF:Destroy() end) end -- ───────────────────────────────────────────────────────────── -- LOADING SCREEN -- ───────────────────────────────────────────────────────────── local LS = Instance.new("Frame", SG); LS.Name = "LoadScreen" LS.Size = UDim2.new(0, 340, 0, 226); LS.Position = UDim2.new(0.5,-170,0.5,-113) LS.BackgroundColor3 = CB; LS.BorderSizePixel = 0; LS.ZIndex = 200 Instance.new("UICorner", LS).CornerRadius = UDim.new(0, 14) local lsSt = Instance.new("UIStroke", LS); lsSt.Color = CA; lsSt.Thickness = 1.6; lsSt.Transparency = 0.35 local lsGlow = Instance.new("ImageLabel", LS) lsGlow.Size = UDim2.new(1.5,0,1.5,0); lsGlow.Position = UDim2.new(-0.25,0,-0.25,0) lsGlow.BackgroundTransparency = 1; lsGlow.Image = "rbxassetid://5028857084" lsGlow.ImageColor3 = CA; lsGlow.ImageTransparency = 0.78; lsGlow.ZIndex = 199 local lsLogo = Instance.new("TextLabel", LS); lsLogo.Text = "SCROLL MENU" lsLogo.Font = Enum.Font.GothamBold; lsLogo.TextSize = 28; lsLogo.TextColor3 = CW lsLogo.BackgroundTransparency = 1; lsLogo.Size = UDim2.new(1,0,0,38) lsLogo.Position = UDim2.new(0,0,0,26); lsLogo.TextXAlignment = Enum.TextXAlignment.Center; lsLogo.ZIndex = 201 local lsVer = Instance.new("TextLabel", LS); lsVer.Text = "v9 · Animated Edition" lsVer.Font = Enum.Font.Gotham; lsVer.TextSize = 11; lsVer.TextColor3 = CA2 lsVer.BackgroundTransparency = 1; lsVer.Size = UDim2.new(1,0,0,18) lsVer.Position = UDim2.new(0,0,0,66); lsVer.TextXAlignment = Enum.TextXAlignment.Center; lsVer.ZIndex = 201 -- Spinner hub local spinHub = Instance.new("Frame", LS) spinHub.Size = UDim2.new(0,66,0,66); spinHub.Position = UDim2.new(0.5,-33,0,94) spinHub.BackgroundTransparency = 1; spinHub.ZIndex = 202 local function mkArc(parent, rot, col, trans) local a = Instance.new("ImageLabel", parent); a.Size = UDim2.new(1,0,1,0) a.Position = UDim2.new(0,0,0,0); a.BackgroundTransparency = 1; a.ZIndex = 202 a.Image = "rbxassetid://4965945816"; a.ImageColor3 = col; a.ImageTransparency = trans or 0 a.Rotation = rot; return a end local arc1 = mkArc(spinHub, 0, CA, 0); local arc2 = mkArc(spinHub, 120, CA2, 0.25); local arc3 = mkArc(spinHub, 240, CG, 0.55) local cDot = Instance.new("Frame", spinHub) cDot.Size = UDim2.new(0,8,0,8); cDot.Position = UDim2.new(0.5,-4,0.5,-4) cDot.BackgroundColor3 = CW; cDot.BorderSizePixel = 0; cDot.ZIndex = 203 Instance.new("UICorner", cDot).CornerRadius = UDim.new(1,0) -- Progress bar local pbBg = Instance.new("Frame", LS); pbBg.Size = UDim2.new(0,250,0,4) pbBg.Position = UDim2.new(0.5,-125,0,178); pbBg.BackgroundColor3 = CD; pbBg.BorderSizePixel = 0; pbBg.ZIndex = 201 Instance.new("UICorner", pbBg).CornerRadius = UDim.new(1,0) local pbFill = Instance.new("Frame", pbBg); pbFill.Size = UDim2.new(0,0,1,0) pbFill.BackgroundColor3 = CA; pbFill.BorderSizePixel = 0; pbFill.ZIndex = 202 Instance.new("UICorner", pbFill).CornerRadius = UDim.new(1,0) local pbGrad = Instance.new("UIGradient", pbFill) pbGrad.Color = ColorSequence.new({ColorSequenceKeypoint.new(0,CA), ColorSequenceKeypoint.new(1,CA2)}) local lsStat = Instance.new("TextLabel", LS); lsStat.Text = "Initializing..." lsStat.Font = Enum.Font.Gotham; lsStat.TextSize = 11; lsStat.TextColor3 = CQ lsStat.BackgroundTransparency = 1; lsStat.Size = UDim2.new(1,0,0,18); lsStat.Position = UDim2.new(0,0,0,192) lsStat.TextXAlignment = Enum.TextXAlignment.Center; lsStat.ZIndex = 201 -- Animate spinner local lsSpinConn = RunService.RenderStepped:Connect(function(dt) arc1.Rotation = arc1.Rotation + 185 * dt arc2.Rotation = arc2.Rotation - 125 * dt arc3.Rotation = arc3.Rotation + 92 * dt lsGlow.ImageTransparency = 0.65 + math.abs(math.sin(tick() * 2.8)) * 0.18 end) local loadSteps = { {0.15, "Loading services..."}, {0.32, "Hooking GUI..."}, {0.52, "Applying patches..."}, {0.72, "Building menus..."}, {0.90, "Wiring callbacks..."}, {1.00, "Done ✓"}, } task.spawn(function() for _, s in ipairs(loadSteps) do task.wait(0.28); lsStat.Text = s[2] TweenSvc:Create(pbFill, TweenInfo.new(0.24, Enum.EasingStyle.Quad), {Size = UDim2.new(s[1],0,1,0)}):Play() end task.wait(0.45); lsSpinConn:Disconnect() TweenSvc:Create(LS, TweenInfo.new(0.4, Enum.EasingStyle.Quad), {BackgroundTransparency = 1}):Play() for _, d in pairs(LS:GetDescendants()) do pcall(function() if d:IsA("TextLabel") then TweenSvc:Create(d, TweenInfo.new(0.3), {TextTransparency=1}):Play() elseif d:IsA("Frame") or d:IsA("ImageLabel") then TweenSvc:Create(d, TweenInfo.new(0.3), {BackgroundTransparency=1,ImageTransparency=1}):Play() end end) end TweenSvc:Create(lsSt, TweenInfo.new(0.3), {Transparency=1}):Play() task.wait(0.42); LS:Destroy() -- Reveal Main local M = SG:FindFirstChild("Main") if M then M.BackgroundTransparency = 1 TweenSvc:Create(M, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency=0}):Play() end notify("ScrollMenu v9", "Loaded · H to hide · " .. lp.Name, CG) end) -- ───────────────────────────────────────────────────────────── -- MAIN WINDOW -- ───────────────────────────────────────────────────────────── local Main = Instance.new("Frame", SG); Main.Name = "Main" Main.Size = UDim2.new(0,WW,0,WH); Main.Position = UDim2.new(0.5,-WW/2,0.5,-WH/2) Main.BackgroundColor3 = CB; Main.BorderSizePixel = 0; Main.BackgroundTransparency = 1 Instance.new("UICorner", Main).CornerRadius = UDim.new(0,10) local mSt = Instance.new("UIStroke", Main); mSt.Color = CA; mSt.Thickness = 1; mSt.Transparency = 0.55 local topLine = Instance.new("Frame", Main); topLine.Size = UDim2.new(1,0,0,3); topLine.BackgroundColor3 = CA; topLine.BorderSizePixel = 0 Instance.new("UIGradient", topLine).Color = ColorSequence.new({ColorSequenceKeypoint.new(0,CA), ColorSequenceKeypoint.new(0.5,CA2), ColorSequenceKeypoint.new(1,CA)}) Instance.new("UICorner", topLine).CornerRadius = UDim.new(0,3) -- Title bar local TB = Instance.new("Frame", Main); TB.Size = UDim2.new(1,0,0,TH); TB.BackgroundColor3 = CT; TB.BorderSizePixel = 0 Instance.new("UICorner", TB).CornerRadius = UDim.new(0,10) local TLbl = Instance.new("TextLabel", TB); TLbl.Text = " ◈ SCROLL MENU · v9" TLbl.Font = Enum.Font.GothamBold; TLbl.TextSize = 13; TLbl.TextColor3 = CW TLbl.BackgroundTransparency = 1; TLbl.Size = UDim2.new(1,-110,1,0); TLbl.Position = UDim2.new(0,12,0,0) TLbl.TextXAlignment = Enum.TextXAlignment.Left local function mkTBBtn(txt, xOff, bg, fg) local b = Instance.new("TextButton", TB); b.Text = txt b.Font = Enum.Font.GothamBold; b.TextSize = 13; b.TextColor3 = fg; b.BackgroundColor3 = bg b.Size = UDim2.new(0,28,0,28); b.Position = UDim2.new(1,xOff,0.5,-14); b.BorderSizePixel = 0; b.AutoButtonColor = false Instance.new("UICorner", b).CornerRadius = UDim.new(0,6) b.MouseEnter:Connect(function() TweenSvc:Create(b,TweenInfo.new(0.1),{BackgroundColor3=bg:lerp(CW,0.28)}):Play() end) b.MouseLeave:Connect(function() TweenSvc:Create(b,TweenInfo.new(0.1),{BackgroundColor3=bg}):Play() end) b.MouseButton1Down:Connect(function() TweenSvc:Create(b,TweenInfo.new(0.07),{Size=UDim2.new(0,24,0,24),Position=UDim2.new(1,xOff+2,0.5,-12)}):Play() end) b.MouseButton1Up:Connect(function() TweenSvc:Create(b,TweenInfo.new(0.15,Enum.EasingStyle.Back,Enum.EasingDirection.Out),{Size=UDim2.new(0,28,0,28),Position=UDim2.new(1,xOff,0.5,-14)}):Play() end) return b end local CloseBtn = mkTBBtn("✕", -36, Color3.fromRGB(180,25,40), Color3.fromRGB(255,160,170)) local MinBtn = mkTBBtn("−", -70, Color3.fromRGB(28,28,55), Color3.fromRGB(140,140,255)) -- Drag local drag, dSt, dPos TB.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=true; dSt=i.Position; dPos=Main.Position end end) TB.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end) UIS.InputChanged:Connect(function(i) if drag and i.UserInputType==Enum.UserInputType.MouseMovement then local d=i.Position-dSt; Main.Position=UDim2.new(dPos.X.Scale,dPos.X.Offset+d.X,dPos.Y.Scale,dPos.Y.Offset+d.Y) end end) -- Sidebar local Side = Instance.new("Frame", Main); Side.Size = UDim2.new(0,SW,0,WH-TH) Side.Position = UDim2.new(0,0,0,TH); Side.BackgroundColor3 = CS; Side.BorderSizePixel = 0 local sdiv = Instance.new("Frame", Main); sdiv.Size = UDim2.new(0,1,0,WH-TH) sdiv.Position = UDim2.new(0,SW,0,TH); sdiv.BackgroundColor3 = CD; sdiv.BorderSizePixel = 0 local PTagLbl = Instance.new("TextLabel", Side); PTagLbl.Text = " ☆ " .. lp.Name PTagLbl.Font = Enum.Font.Gotham; PTagLbl.TextSize = 11; PTagLbl.TextColor3 = CQ PTagLbl.BackgroundTransparency = 1; PTagLbl.Size = UDim2.new(1,0,0,30) PTagLbl.Position = UDim2.new(0,0,1,-30); PTagLbl.TextXAlignment = Enum.TextXAlignment.Left -- Content area local ConF = Instance.new("Frame", Main); ConF.Size = UDim2.new(0,WW-SW-1,0,WH-TH) ConF.Position = UDim2.new(0,SW+1,0,TH); ConF.BackgroundColor3 = CB; ConF.BorderSizePixel = 0; ConF.ClipsDescendants = true local ConScroll = Instance.new("ScrollingFrame", ConF); ConScroll.Size = UDim2.new(1,0,1,0) ConScroll.BackgroundTransparency = 1; ConScroll.BorderSizePixel = 0; ConScroll.ScrollBarThickness = 3 ConScroll.ScrollBarImageColor3 = CA; ConScroll.CanvasSize = UDim2.new(0,0,0,400) -- Crossfade overlay (sits above scroll, flashes on tab switch) local xfadeOverlay = Instance.new("Frame", ConF) xfadeOverlay.Size = UDim2.new(1,0,1,0); xfadeOverlay.BackgroundColor3 = CB xfadeOverlay.BackgroundTransparency = 1; xfadeOverlay.ZIndex = 12; xfadeOverlay.BorderSizePixel = 0 -- ───────────────────────────────────────────────────────────── -- TAB SYSTEM -- ───────────────────────────────────────────────────────────── local pages = {}; local tabBtns = {}; local tabY = 10; local activeTab = nil local function switchTab(id) -- Flash crossfade overlay xfadeOverlay.BackgroundTransparency = 0.08 TweenSvc:Create(xfadeOverlay, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {BackgroundTransparency = 1}):Play() for tid, pg in pairs(pages) do pg.frame.Visible = (tid == id) end if pages[id] then ConScroll.CanvasSize = UDim2.new(0,0,0,pages[id].h); ConScroll.CanvasPosition = Vector2.new(0,0) end for tid, btn in pairs(tabBtns) do local sel = (tid == id) TweenSvc:Create(btn, TweenInfo.new(0.18), {BackgroundColor3 = sel and CSL or CS}):Play() btn.TextColor3 = sel and CW or CQ local bar = btn:FindFirstChild("_sb"); if bar then bar.Visible = sel end end activeTab = id end local function mkTabBtn(id, icon, name) local btn = Instance.new("TextButton", Side) btn.Text = " " .. icon .. " " .. name btn.Font = Enum.Font.Gotham; btn.TextSize = 13; btn.TextColor3 = CQ btn.BackgroundColor3 = CS; btn.Size = UDim2.new(1,-8,0,40) btn.Position = UDim2.new(0,4,0,tabY); btn.TextXAlignment = Enum.TextXAlignment.Left btn.BorderSizePixel = 0; btn.AutoButtonColor = false Instance.new("UICorner", btn).CornerRadius = UDim.new(0,7) local sb = Instance.new("Frame", btn); sb.Name = "_sb" sb.Size = UDim2.new(0,3,0,20); sb.Position = UDim2.new(0,0,0.5,-10) sb.BackgroundColor3 = CA; sb.BorderSizePixel = 0; sb.Visible = false Instance.new("UICorner", sb).CornerRadius = UDim.new(1,0) -- Hover btn.MouseEnter:Connect(function() if activeTab ~= id then TweenSvc:Create(btn,TweenInfo.new(0.12),{BackgroundColor3=CS:lerp(CA,0.08)}):Play() end end) btn.MouseLeave:Connect(function() if activeTab ~= id then TweenSvc:Create(btn,TweenInfo.new(0.12),{BackgroundColor3=CS}):Play() end end) tabBtns[id] = btn; tabY = tabY + 44 local pg = Instance.new("Frame", ConScroll); pg.Size = UDim2.new(1,0,0,400) pg.BackgroundTransparency = 1; pg.Visible = false pages[id] = {frame=pg, h=400} btn.MouseButton1Click:Connect(function() switchTab(id) end) return pg end -- ───────────────────────────────────────────────────────────── -- ROW HELPERS -- ───────────────────────────────────────────────────────────── local function mkSec(par, y, txt) local l = Instance.new("TextLabel", par); l.Text = txt:upper() l.Font = Enum.Font.GothamBold; l.TextSize = 10; l.TextColor3 = CQ; l.BackgroundTransparency = 1 l.Size = UDim2.new(1,-PP*2,0,GH); l.Position = UDim2.new(0,PP,0,y[1]) l.TextXAlignment = Enum.TextXAlignment.Left; y[1] = y[1] + GH + 4 end local function baseRow(par, y) local r = Instance.new("Frame", par); r.Size = UDim2.new(1,-PP*2,0,RH) r.Position = UDim2.new(0,PP,0,y[1]); r.BackgroundColor3 = CI; r.BorderSizePixel = 0 Instance.new("UICorner", r).CornerRadius = UDim.new(0,8) -- HOVER GLOW: UIStroke fades in on enter local hStroke = Instance.new("UIStroke", r); hStroke.Color = CA; hStroke.Thickness = 1.2; hStroke.Transparency = 1 r.MouseEnter:Connect(function() TweenSvc:Create(hStroke, TweenInfo.new(0.18), {Transparency=0.4}):Play() TweenSvc:Create(r, TweenInfo.new(0.18), {BackgroundColor3=CI:lerp(CA,0.06)}):Play() end) r.MouseLeave:Connect(function() TweenSvc:Create(hStroke, TweenInfo.new(0.22), {Transparency=1}):Play() TweenSvc:Create(r, TweenInfo.new(0.18), {BackgroundColor3=CI}):Play() end) y[1] = y[1] + RH + IP; return r end local function mkTog(par, y, lTxt, sTxt, init, cb) local r = baseRow(par, y) local lbl = Instance.new("TextLabel", r); lbl.Text = lTxt lbl.Font = Enum.Font.GothamBold; lbl.TextSize = 13; lbl.TextColor3 = CW; lbl.BackgroundTransparency = 1 lbl.Size = UDim2.new(0.62,0,sTxt and 0.55 or 1,0); lbl.Position = UDim2.new(0,12,0,0) lbl.TextXAlignment = Enum.TextXAlignment.Left if sTxt then local s = Instance.new("TextLabel", r); s.Text = sTxt s.Font = Enum.Font.Gotham; s.TextSize = 10; s.TextColor3 = CQ; s.BackgroundTransparency = 1 s.Size = UDim2.new(0.62,0,0.45,0); s.Position = UDim2.new(0,12,0.55,0); s.TextXAlignment = Enum.TextXAlignment.Left end local TW, TH2 = 46, 26; local KS = TH2 - 4 local track = Instance.new("Frame", r); track.Size = UDim2.new(0,TW,0,TH2) track.Position = UDim2.new(1,-(TW+12),0.5,-TH2/2); track.BorderSizePixel = 0 track.BackgroundColor3 = init and CG or Color3.fromRGB(48,48,72) Instance.new("UICorner", track).CornerRadius = UDim.new(1,0) local kn = Instance.new("Frame", track); kn.Size = UDim2.new(0,KS,0,KS); kn.BackgroundColor3 = CW kn.BorderSizePixel = 0; kn.Position = init and UDim2.new(1,-(KS+2),0.5,-KS/2) or UDim2.new(0,2,0.5,-KS/2) Instance.new("UICorner", kn).CornerRadius = UDim.new(1,0) local hit = Instance.new("TextButton", r); hit.Size = UDim2.new(1,0,1,0); hit.BackgroundTransparency = 1; hit.Text = "" local st = init hit.MouseButton1Click:Connect(function() st = not st TweenSvc:Create(track, TweenInfo.new(0.16), {BackgroundColor3 = st and CG or Color3.fromRGB(48,48,72)}):Play() TweenSvc:Create(kn, TweenInfo.new(0.16), {Position = st and UDim2.new(1,-(KS+2),0.5,-KS/2) or UDim2.new(0,2,0.5,-KS/2)}):Play() -- Knob bounce TweenSvc:Create(kn, TweenInfo.new(0.08), {Size = UDim2.new(0,KS+3,0,KS-2)}):Play() task.delay(0.08, function() TweenSvc:Create(kn, TweenInfo.new(0.12,Enum.EasingStyle.Back,Enum.EasingDirection.Out), {Size = UDim2.new(0,KS,0,KS)}):Play() end) cb(st) end) return function(ns) st = ns; track.BackgroundColor3 = ns and CG or Color3.fromRGB(48,48,72) kn.Position = ns and UDim2.new(1,-(KS+2),0.5,-KS/2) or UDim2.new(0,2,0.5,-KS/2) end end local function mkAct(par, y, lTxt, sTxt, btnTxt, btnCol, cb) btnCol = btnCol or CA; local r = baseRow(par, y) local lbl = Instance.new("TextLabel", r); lbl.Text = lTxt lbl.Font = Enum.Font.GothamBold; lbl.TextSize = 13; lbl.TextColor3 = CW; lbl.BackgroundTransparency = 1 lbl.Size = UDim2.new(0.55,0,sTxt and 0.55 or 1,0); lbl.Position = UDim2.new(0,12,0,0) lbl.TextXAlignment = Enum.TextXAlignment.Left if sTxt then local s = Instance.new("TextLabel", r); s.Text = sTxt s.Font = Enum.Font.Gotham; s.TextSize = 10; s.TextColor3 = CQ; s.BackgroundTransparency = 1 s.Size = UDim2.new(0.55,0,0.45,0); s.Position = UDim2.new(0,12,0.55,0); s.TextXAlignment = Enum.TextXAlignment.Left end local BW, BH = 80, 30 local btn = Instance.new("TextButton", r); btn.Text = btnTxt btn.Font = Enum.Font.GothamBold; btn.TextSize = 11; btn.TextColor3 = CW btn.BackgroundColor3 = btnCol; btn.Size = UDim2.new(0,BW,0,BH) btn.Position = UDim2.new(1,-(BW+12),0.5,-BH/2); btn.BorderSizePixel = 0; btn.AutoButtonColor = false Instance.new("UICorner", btn).CornerRadius = UDim.new(0,7) btn.MouseEnter:Connect(function() TweenSvc:Create(btn,TweenInfo.new(0.1),{BackgroundColor3=btnCol:lerp(CW,0.22)}):Play() end) btn.MouseLeave:Connect(function() TweenSvc:Create(btn,TweenInfo.new(0.1),{BackgroundColor3=btnCol}):Play() end) -- PRESS SCALE ANIMATION btn.MouseButton1Down:Connect(function() TweenSvc:Create(btn, TweenInfo.new(0.07, Enum.EasingStyle.Quad), {Size=UDim2.new(0,BW*0.88,0,BH*0.88), Position=UDim2.new(1,-(BW*0.88+12+(BW-BW*0.88)/2),0.5,-(BH*0.88)/2)}):Play() end) btn.MouseButton1Up:Connect(function() TweenSvc:Create(btn, TweenInfo.new(0.22, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size=UDim2.new(0,BW,0,BH), Position=UDim2.new(1,-(BW+12),0.5,-BH/2)}):Play() end) btn.MouseButton1Click:Connect(cb); return btn end local function mkSld(par, y, lTxt, mn, mx, def, dec, unit, cb) unit = unit or ""; dec = dec or 0 local r = Instance.new("Frame", par); r.Size = UDim2.new(1,-PP*2,0,SHH) r.Position = UDim2.new(0,PP,0,y[1]); r.BackgroundColor3 = CI; r.BorderSizePixel = 0 Instance.new("UICorner", r).CornerRadius = UDim.new(0,8) local hSt = Instance.new("UIStroke", r); hSt.Color = CA; hSt.Thickness = 1.2; hSt.Transparency = 1 r.MouseEnter:Connect(function() TweenSvc:Create(hSt,TweenInfo.new(0.18),{Transparency=0.4}):Play() end) r.MouseLeave:Connect(function() TweenSvc:Create(hSt,TweenInfo.new(0.22),{Transparency=1}):Play() end) local lbl = Instance.new("TextLabel", r); lbl.Text = lTxt lbl.Font = Enum.Font.GothamBold; lbl.TextSize = 12; lbl.TextColor3 = CW; lbl.BackgroundTransparency = 1 lbl.Size = UDim2.new(0.62,0,0,22); lbl.Position = UDim2.new(0,12,0,9); lbl.TextXAlignment = Enum.TextXAlignment.Left local vLbl = Instance.new("TextLabel", r) vLbl.Font = Enum.Font.GothamBold; vLbl.TextSize = 12; vLbl.TextColor3 = CA2 vLbl.BackgroundTransparency = 1; vLbl.Size = UDim2.new(0.34,0,0,22) vLbl.Position = UDim2.new(0.66,-12,0,9); vLbl.TextXAlignment = Enum.TextXAlignment.Right local tr = Instance.new("Frame", r); tr.Size = UDim2.new(1,-24,0,5) tr.Position = UDim2.new(0,12,0,40); tr.BackgroundColor3 = CD; tr.BorderSizePixel = 0 Instance.new("UICorner", tr).CornerRadius = UDim.new(0,3) local r0 = math.clamp((def-mn)/(mx-mn), 0, 1) local fill = Instance.new("Frame", tr); fill.Size = UDim2.new(r0,0,1,0); fill.BackgroundColor3 = CA; fill.BorderSizePixel = 0 Instance.new("UICorner", fill).CornerRadius = UDim.new(0,3) local fg = Instance.new("UIGradient", fill); fg.Color = ColorSequence.new({ColorSequenceKeypoint.new(0,CA),ColorSequenceKeypoint.new(1,CA2)}) local KS2 = 14; local kn2 = Instance.new("Frame", tr) kn2.Size = UDim2.new(0,KS2,0,KS2); kn2.Position = UDim2.new(r0,-KS2/2,0.5,-KS2/2) kn2.BackgroundColor3 = CW; kn2.BorderSizePixel = 0 Instance.new("UICorner", kn2).CornerRadius = UDim.new(1,0) local function fmt(v) return dec>0 and string.format("%."..dec.."f",v)..unit or tostring(math.floor(v+0.5))..unit end vLbl.Text = fmt(def) local function upd(sx) local ab=tr.AbsolutePosition; local sz=tr.AbsoluteSize local rx=math.clamp(sx-ab.X,0,sz.X); local ratio=rx/sz.X local raw=mn+ratio*(mx-mn); local val=dec>0 and math.floor(raw*(10^dec)+0.5)/(10^dec) or math.floor(raw+0.5) fill.Size=UDim2.new(ratio,0,1,0); kn2.Position=UDim2.new(ratio,-KS2/2,0.5,-KS2/2); vLbl.Text=fmt(val); cb(val) end local act=false tr.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then act=true; upd(i.Position.X) end end) UIS.InputChanged:Connect(function(i) if act and i.UserInputType==Enum.UserInputType.MouseMovement then upd(i.Position.X) end end) UIS.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then act=false end end) y[1] = y[1] + SHH + IP return function(v) local ratio=math.clamp((v-mn)/(mx-mn),0,1); fill.Size=UDim2.new(ratio,0,1,0); kn2.Position=UDim2.new(ratio,-KS2/2,0.5,-KS2/2); vLbl.Text=fmt(v) end end local function finPage(id, y) local h=y[1]+10; pages[id].h=h; pages[id].frame.Size=UDim2.new(1,0,0,h) end -- ───────────────────────────────────────────────────────────── -- BUILD PAGES -- ───────────────────────────────────────────────────────────── -- ── AIMBOT ─────────────────────────────────────────────────── local pgA = mkTabBtn("aimbot","🎯","Aimbot") local setAimTog, aimTargetLbl do local y={8} mkSec(pgA,y,"aimbot") setAimTog = mkTog(pgA,y,"Aimbot","Hold RMB [Z]",false,function(s) aimbotOn=s; countActive() end) mkTog(pgA,y,"Silent Aim","Instant snap",false,function(s) silentOn=s end) mkTog(pgA,y,"Lock-On","Stick to one target",false,function(s) lockOnOn=s; lockTgt=nil end) mkTog(pgA,y,"Skip Teammates",nil,false,function(s) skipTeamAim=s end) mkTog(pgA,y,"Visible Only",nil,false,function(s) visOnly=s end) mkSec(pgA,y,"bone") local bH=true mkAct(pgA,y,"Aim Bone","head ↔ body","HEAD",Color3.fromRGB(55,40,120),function(btn) bH=not bH; aimbotBone=bH and "Head" or "HumanoidRootPart"; btn.Text=bH and "HEAD" or "BODY" end) mkSec(pgA,y,"sliders") mkSld(pgA,y,"FOV Radius",50,400,aimFov,0," px",function(v) aimFov=v end) mkSld(pgA,y,"Smoothness",1,20,17,0,"",function(v) aimSmooth=v/20 end) mkSld(pgA,y,"Prediction",0,250,aimPred*1000,0," ms",function(v) aimPred=v/1000 end) mkSld(pgA,y,"Max Distance",50,2000,aimMaxD,0," st",function(v) aimMaxD=v end) mkSec(pgA,y,"target") aimTargetLbl=Instance.new("TextLabel",pgA); aimTargetLbl.Text="Hold RMB to aim" aimTargetLbl.Font=Enum.Font.Gotham; aimTargetLbl.TextSize=12; aimTargetLbl.TextColor3=CQ aimTargetLbl.BackgroundTransparency=1; aimTargetLbl.Size=UDim2.new(1,-PP*2,0,28) aimTargetLbl.Position=UDim2.new(0,PP,0,y[1]); aimTargetLbl.TextXAlignment=Enum.TextXAlignment.Left; y[1]=y[1]+34 finPage("aimbot",y) end -- ── ESP ─────────────────────────────────────────────────────── local pgE = mkTabBtn("esp","👁","ESP") local setESPTog do local y={8} mkSec(pgE,y,"esp") setESPTog = mkTog(pgE,y,"ESP Enabled","2D box — always through walls",false,function(s) espOn=s; countActive(); if not s then for _,dr in pairs(espDrws) do for _,d in pairs(dr) do pcall(function() d.Visible=false end) end end end end) mkTog(pgE,y,"Hold RMB to View",nil,true,function(s) espRMBOnly=s end) mkTog(pgE,y,"Enemies Only",nil,false,function(s) espTeam=s end) mkSec(pgE,y,"display") mkTog(pgE,y,"Show Name",nil,true,function(s) espName=s end) mkTog(pgE,y,"Health + Distance",nil,true,function(s) espInfo=s end) mkTog(pgE,y,"Health Bar",nil,true,function(s) espHP=s end) mkSec(pgE,y,"color") mkAct(pgE,y,"Box Color","","Purple",CA,function() espClr=CA end) mkAct(pgE,y,"","","Cyan",CA2,function() espClr=CA2 end) mkAct(pgE,y,"","","Green",CG,function() espClr=CG end) mkAct(pgE,y,"","","Red",CR,function() espClr=CR end) finPage("esp",y) end -- ── PLAYER ─────────────────────────────────────────────────── local pgP = mkTabBtn("player","🧍","Player") local setFlyTog, setNcTog, setGodTog do local y={8} mkSec(pgP,y,"movement") setFlyTog = mkTog(pgP,y,"Fly","WASD+Space+LCtrl [F]",false,function(s) flyOn=s; if s then startFly() else stopFly() end; countActive() end) setNcTog = mkTog(pgP,y,"NoClip","Pass through walls [N]",false,function(s) toggleNoclip(s); countActive() end) mkTog(pgP,y,"Bunny Hop","Auto-jump on land [B]",false,function(s) toggleBhop(s); countActive() end) mkTog(pgP,y,"Infinite Jump",nil,false,function(s) infJump=s; countActive() end) mkSec(pgP,y,"misc") setGodTog = mkTog(pgP,y,"God Mode","4-layer bypass [=]",false,function(s) godOn=s; if s then startGod() else stopGod() end; countActive() end) mkTog(pgP,y,"Invisible",nil,false,function(s) invisOn=s; applyInvis(s); countActive() end) mkTog(pgP,y,"Spinbot",nil,false,function(s) toggleSpin(s) end) mkTog(pgP,y,"Anti-AFK",nil,false,function(s) toggleAFK(s); countActive() end) mkSec(pgP,y,"stats") mkSld(pgP,y,"Walk Speed",16,250,walkSpd,0,"",function(v) walkSpd=v; local h=lp.Character and lp.Character:FindFirstChildOfClass("Humanoid"); if h then h.WalkSpeed=v end end) mkSld(pgP,y,"Jump Power",50,500,jumpPwr,0,"",function(v) jumpPwr=v; local h=lp.Character and lp.Character:FindFirstChildOfClass("Humanoid"); if h then h.JumpPower=v end end) mkSld(pgP,y,"Fly Speed",10,300,flySpd,0,"",function(v) flySpd=v end) finPage("player",y) end -- ── MASS ───────────────────────────────────────────────────── local pgM = mkTabBtn("mass","💥","Mass") do local y={8} mkSec(pgM,y,"freeze") mkAct(pgM,y,"Freeze All","Anchor every player","Do It",Color3.fromRGB(14,72,132),function() for _,p in ipairs(Players:GetPlayers()) do if p~=lp then frozenMap[p]=true; local r=p.Character and p.Character:FindFirstChild("HumanoidRootPart"); if r then r.Anchored=true end end end; notify("Freeze All","All players anchored",CA) end) mkAct(pgM,y,"Unfreeze All","Release all players","Do It",Color3.fromRGB(18,105,65),function() for _,p in ipairs(Players:GetPlayers()) do frozenMap[p]=false; local r=p.Character and p.Character:FindFirstChild("HumanoidRootPart"); if r then r.Anchored=false end end; notify("Unfreeze All","All players released",CG) end) mkSec(pgM,y,"fly all") mkTog(pgM,y,"Fly All Players","Float every player upward",false,function(s) flyOthersAll=s if not s then for _,p in ipairs(Players:GetPlayers()) do pcall(function() local r=p.Character and p.Character:FindFirstChild("HumanoidRootPart"); if not r then return end local bv=r:FindFirstChild("_OFBV"); if bv then bv:Destroy() end local h=p.Character:FindFirstChildOfClass("Humanoid"); if h then h.PlatformStand=false end end) end end end) mkSec(pgM,y,"hitbox") mkTog(pgM,y,"Hitbox Expander","Enlarge HumanoidRootParts",false,function(s) hitboxOn=s for _,p in ipairs(Players:GetPlayers()) do if p~=lp then pcall(function() local r=p.Character and p.Character:FindFirstChild("HumanoidRootPart") if r then r.Size=s and Vector3.new(12,12,12) or Vector3.new(2,2,1) end end) end end end) finPage("mass",y) end -- ── TOOLS ──────────────────────────────────────────────────── local pgT = mkTabBtn("tools","🛠","Tools") local flyTargetBtn do local y={8} mkSec(pgT,y,"target player") local PList=Instance.new("ScrollingFrame",pgT) PList.Size=UDim2.new(1,-PP*2,0,100); PList.Position=UDim2.new(0,PP,0,y[1]) PList.BackgroundColor3=Color3.fromRGB(14,14,26); PList.BorderSizePixel=0 PList.ScrollBarThickness=3; PList.ScrollBarImageColor3=CA; PList.CanvasSize=UDim2.new(0,0,0,0) Instance.new("UICorner",PList).CornerRadius=UDim.new(0,8) Instance.new("UIListLayout",PList).Padding=UDim.new(0,2); y[1]=y[1]+106 local pBtns={} local function refreshList() for _,b in pairs(pBtns) do b:Destroy() end; pBtns={} local all=Players:GetPlayers(); PList.CanvasSize=UDim2.new(0,0,0,#all*26) for _,p in ipairs(all) do if p~=lp then local tc=p.Team and p.Team.TeamColor.Color or CA local b=Instance.new("TextButton",PList); b.Text=" "..p.Name b.Font=Enum.Font.Gotham; b.TextSize=12; b.TextColor3=tc b.BackgroundColor3=Color3.fromRGB(18,18,32); b.Size=UDim2.new(1,0,0,24) b.TextXAlignment=Enum.TextXAlignment.Left; b.BorderSizePixel=0 Instance.new("UICorner",b).CornerRadius=UDim.new(0,5) b.MouseButton1Click:Connect(function() selPlayer=p for _,bb in pairs(pBtns) do bb.BackgroundColor3=Color3.fromRGB(18,18,32) end b.BackgroundColor3=Color3.fromRGB(35,25,90) if flyTargetBtn then flyTargetBtn.Text=flyOthersSet[p] and "Stop" or "Fly" end end); table.insert(pBtns,b) end end end refreshList(); Players.PlayerAdded:Connect(refreshList) Players.PlayerRemoving:Connect(function() task.wait(0.1); refreshList() end) mkAct(pgT,y,"","","↺ Refresh",Color3.fromRGB(28,28,52),refreshList) mkSec(pgT,y,"actions") local frzBtn; frzBtn=mkAct(pgT,y,"Freeze","Anchor target","Freeze",Color3.fromRGB(18,85,160),function() if not selPlayer then return end; frozenMap[selPlayer]=not frozenMap[selPlayer] local r=selPlayer.Character and selPlayer.Character:FindFirstChild("HumanoidRootPart"); if r then r.Anchored=frozenMap[selPlayer] end frzBtn.Text=frozenMap[selPlayer] and "Unfreeze" or "Freeze" end) mkAct(pgT,y,"Kill","BreakJoints + void","Kill",CR,function() killChar(selPlayer and selPlayer.Character) end) local spBtn; spBtn=mkAct(pgT,y,"Spam Kill","Kill every heartbeat","Start",CR,function() if not selPlayer then return end if spamKMap[selPlayer] then spamKMap[selPlayer]=false; if spamKConns[selPlayer] then spamKConns[selPlayer]:Disconnect(); spamKConns[selPlayer]=nil end; spBtn.Text="Start" else spamKMap[selPlayer]=true; local p2=selPlayer spamKConns[p2]=RunService.Heartbeat:Connect(function() if spamKMap[p2] then killChar(p2.Character) end end); spBtn.Text="Stop" end end) mkAct(pgT,y,"TP → Them","Teleport to target","TP",Color3.fromRGB(75,25,145),function() local tc=selPlayer and selPlayer.Character; if not tc then return end local tr=tc:FindFirstChild("HumanoidRootPart"); local mr=lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") if tr and mr then mr.CFrame=tr.CFrame+Vector3.new(3,0,0) end end) mkAct(pgT,y,"Strip Weapons","Remove all tools","Strip",Color3.fromRGB(70,30,90),function() local tc=selPlayer and selPlayer.Character; if not tc then return end for _,t in pairs(tc:GetChildren()) do if t:IsA("Tool") then t:Destroy() end end local bp=selPlayer:FindFirstChildOfClass("Backpack") if bp then for _,t in pairs(bp:GetChildren()) do if t:IsA("Tool") then t:Destroy() end end end end) mkAct(pgT,y,"Fling","Launch into sky","Fling",Color3.fromRGB(160,90,0),function() flingChar(selPlayer and selPlayer.Character) end) mkSec(pgT,y,"fly target") flyTargetBtn=mkAct(pgT,y,"Fly Target","Make target float","Fly",Color3.fromRGB(18,105,65),function() if not selPlayer then return end local active=toggleFlyOther(selPlayer) flyTargetBtn.Text=active and "Stop" or "Fly" flyTargetBtn.BackgroundColor3=active and CR or Color3.fromRGB(18,105,65) end) finPage("tools",y) end -- ── WORLD ──────────────────────────────────────────────────── local pgW = mkTabBtn("world","🌍","World") do local y={8} mkSec(pgW,y,"lighting") mkTog(pgW,y,"FullBright","Max ambient, no shadows",false,function(s) fbOn=s; countActive() if s then Lighting.Ambient=CW; Lighting.OutdoorAmbient=CW; Lighting.Brightness=2; Lighting.GlobalShadows=false for _,v in pairs(Lighting:GetChildren()) do if v:IsA("BlurEffect") or v:IsA("SunRaysEffect") or v:IsA("ColorCorrectionEffect") then v.Enabled=false end if v:IsA("Atmosphere") then v.Density=0; v.Glare=0; v.Haze=0 end end else Lighting.Ambient=Color3.fromRGB(70,70,70); Lighting.OutdoorAmbient=Color3.fromRGB(100,100,100) Lighting.Brightness=1; Lighting.GlobalShadows=true for _,v in pairs(Lighting:GetChildren()) do if v:IsA("BlurEffect") or v:IsA("SunRaysEffect") or v:IsA("ColorCorrectionEffect") then v.Enabled=true end end end end) mkTog(pgW,y,"No Fog",nil,false,function(s) fogOn=s; Lighting.FogEnd=s and 999999 or 1000; Lighting.FogStart=s and 999998 or 0 for _,v in pairs(Lighting:GetChildren()) do if v:IsA("Atmosphere") then v.Density=s and 0 or 0.395 end end end) mkSec(pgW,y,"movement") mkTog(pgW,y,"Click-TP","Left-click to teleport [X]",false,function(s) clickTPOn=s; countActive() end) finPage("world",y) end switchTab("player") -- Minimize / Close local minimized = false MinBtn.MouseButton1Click:Connect(function() minimized = not minimized TweenSvc:Create(Main, TweenInfo.new(0.28,Enum.EasingStyle.Quint), {Size = minimized and UDim2.new(0,WW,0,TH) or UDim2.new(0,WW,0,WH)}):Play() ConF.Visible = not minimized; Side.Visible = not minimized; sdiv.Visible = not minimized end) CloseBtn.MouseButton1Click:Connect(function() TweenSvc:Create(Main, TweenInfo.new(0.22),{BackgroundTransparency=1}):Play(); task.wait(0.24); SG:Destroy() end) -- ───────────────────────────────────────────────────────────── -- DRAWING OBJECTS -- ───────────────────────────────────────────────────────────── local fovCircle = Drawing.new("Circle"); fovCircle.Visible=false; fovCircle.Radius=aimFov fovCircle.Color=CW; fovCircle.Thickness=1.5; fovCircle.Filled=false; fovCircle.Transparency=0.4 -- Custom crosshair (shows when aimbotOn, morphs when locked on) local function mkLine(col, thick) local l=Drawing.new("Line"); l.Color=col; l.Thickness=thick; l.Transparency=0; l.Visible=false; return l end local chLines = {mkLine(CA2,1.5), mkLine(CA2,1.5), mkLine(CA2,1.5), mkLine(CA2,1.5)} local chGap = 8; local chLen = 12 local function scrCtr() return Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2) end local function isEnemy(p) if not skipTeamAim then return true end if not lp.Team or not p.Team then return true end; return lp.Team ~= p.Team end local function canSee(pos) local par = RaycastParams.new(); par.FilterDescendantsInstances={lp.Character or workspace}; par.FilterType=Enum.RaycastFilterType.Exclude local res = workspace:Raycast(cam.CFrame.Position, pos-cam.CFrame.Position, par); if not res then return true end for _,p in ipairs(Players:GetPlayers()) do if p.Character and res.Instance:IsDescendantOf(p.Character) then return true end end; return false end local function predictPos(rt,pt) if aimPred<=0 then return pt.Position end local ok,vel=pcall(function() return rt.AssemblyLinearVelocity end); return pt.Position+(ok and vel or Vector3.zero)*aimPred end local function isValid(p) if not p or not p.Character then return false end local ch=p.Character; local h=ch:FindFirstChildOfClass("Humanoid") local pt=ch:FindFirstChild(aimbotBone) or ch:FindFirstChild("HumanoidRootPart"); local rt=ch:FindFirstChild("HumanoidRootPart") if not pt or not h or h.Health<=0 or not isEnemy(p) then return false end if rt and myRoot and (rt.Position-myRoot.Position).Magnitude>aimMaxD then return false end local sp,on=cam:WorldToScreenPoint(pt.Position); return on and (Vector2.new(sp.X,sp.Y)-scrCtr()).Magnitude0 and rt then if myRoot and (rt.Position-myRoot.Position).Magnitude>aimMaxD then continue end local sp,on=cam:WorldToScreenPoint(pt.Position) if on then local d=(Vector2.new(sp.X,sp.Y)-ctr).Magnitude if d0.1 then any=true if sp.XmxX then mxX=sp.X end if sp.YmxY then mxY=sp.Y end end end if not any then return nil end; local bh=mxY-mnY; if bh<8 then return nil end local cx=(mnX+mxX)*0.5; local estW=math.max(mxX-mnX,bh*0.45) mnX=cx-estW/2; mxX=cx+estW/2 local hum=char:FindFirstChildOfClass("Humanoid"); local hp=hum and hum.Health or 0; local mhp=hum and math.max(hum.MaxHealth,1) or 1 local dist=myRoot and math.floor((myRoot.Position-root.Position).Magnitude) or 0 return {x=mnX-4,y=mnY-4,w=(mxX-mnX)+8,h=bh+8,cx=cx,dist=dist,hp=hp,mhp=mhp,hpr=hp/mhp} end -- ───────────────────────────────────────────────────────────── -- MASTER RENDER LOOP -- ───────────────────────────────────────────────────────────── RunService.RenderStepped:Connect(function(dt) local mc=lp.Character; myRoot=mc and mc:FindFirstChild("HumanoidRootPart") local ctr=scrCtr() if fovCircle.Visible then fovCircle.Position=ctr end -- ── HUD pill pulse ──────────────────────────────────────── local t=tick() for _,pill in pairs(hudPills) do if pill.Visible then pill.BackgroundTransparency = 0.38 + math.abs(math.sin(t*1.6)) * 0.2 end end -- Active badge pulse if ActiveBadge.Visible then abS.Transparency = 0.3 + math.abs(math.sin(t*2)) * 0.4 end -- ── Crosshair ──────────────────────────────────────────── local showCH = aimbotOn local locked = lockOnOn and lockTgt and isValid(lockTgt) local col = locked and CR or CA2 local gap = locked and 4 or chGap local len = locked and 18 or chLen for _,l in ipairs(chLines) do l.Visible=showCH; l.Color=col end if showCH then chLines[1].From=Vector2.new(ctr.X-gap-len,ctr.Y); chLines[1].To=Vector2.new(ctr.X-gap,ctr.Y) chLines[2].From=Vector2.new(ctr.X+gap,ctr.Y); chLines[2].To=Vector2.new(ctr.X+gap+len,ctr.Y) chLines[3].From=Vector2.new(ctr.X,ctr.Y-gap-len); chLines[3].To=Vector2.new(ctr.X,ctr.Y-gap) chLines[4].From=Vector2.new(ctr.X,ctr.Y+gap); chLines[4].To=Vector2.new(ctr.X,ctr.Y+gap+len) end -- ── Aimbot ─────────────────────────────────────────────── if aimbotOn then local rmb=UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) fovCircle.Color=CW if rmb then local tgt=getBest() if tgt then fovCircle.Color=CR if aimTargetLbl then aimTargetLbl.Text="🎯 "..tgt.Name end local ch=tgt.Character; if ch then local rt=ch:FindFirstChild("HumanoidRootPart"); local pt=ch:FindFirstChild(aimbotBone) or rt if rt and pt then local ap=predictPos(rt,pt); local tCF=CFrame.lookAt(cam.CFrame.Position,ap) cam.CFrame=silentOn and tCF or cam.CFrame:Lerp(tCF,aimSmooth) end end else if aimTargetLbl then aimTargetLbl.Text="No target in FOV" end end else if aimTargetLbl then aimTargetLbl.Text="Hold RMB to aim" end end end -- ── ESP ────────────────────────────────────────────────── local rmbHeld=UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) local showESP=espOn and (not espRMBOnly or rmbHeld) if espOn then for _,p in ipairs(Players:GetPlayers()) do if p~=lp then local enemy=not espTeam or not(lp.Team and p.Team and lp.Team==p.Team) if enemy and not espDrws[p] then mkESP(p) end if not enemy and espDrws[p] then rmESP(p) end end end end for p,dr in pairs(espDrws) do pcall(function() if not espOn or not showESP then dr.box.Visible=false; dr.nT.Visible=false; dr.hBg.Visible=false; dr.hFil.Visible=false; dr.inT.Visible=false; return end local ch=p.Character; if not ch then dr.box.Visible=false; dr.nT.Visible=false; dr.hBg.Visible=false; dr.hFil.Visible=false; dr.inT.Visible=false; return end local b=getBox(ch); if not b then dr.box.Visible=false; dr.nT.Visible=false; dr.hBg.Visible=false; dr.hFil.Visible=false; dr.inT.Visible=false; return end dr.box.Position=Vector2.new(b.x,b.y); dr.box.Size=Vector2.new(b.w,b.h); dr.box.Color=espClr; dr.box.Visible=true if espName then dr.nT.Position=Vector2.new(b.cx,b.y-16); dr.nT.Text=p.Name; dr.nT.Visible=true else dr.nT.Visible=false end if espInfo then dr.inT.Position=Vector2.new(b.cx,b.y+b.h+3); dr.inT.Text=b.dist.."m ❤"..math.floor(b.hp); dr.inT.Visible=true else dr.inT.Visible=false end if espHP then local bw=4; local bx=b.x-bw-3 dr.hBg.Position=Vector2.new(bx,b.y); dr.hBg.Size=Vector2.new(bw,b.h); dr.hBg.Visible=true local fillH=b.h*b.hpr; local hpCol=Color3.fromRGB(math.floor(255*(1-b.hpr)),math.floor(255*b.hpr),50) dr.hFil.Position=Vector2.new(bx,b.y+b.h-fillH); dr.hFil.Size=Vector2.new(bw,fillH); dr.hFil.Color=hpCol; dr.hFil.Visible=true else dr.hBg.Visible=false; dr.hFil.Visible=false end end) end end) -- ───────────────────────────────────────────────────────────── -- KEYBINDS -- ───────────────────────────────────────────────────────────── UIS.InputBegan:Connect(function(i, gpe) if gpe then return end; local k=i.KeyCode if k==Enum.KeyCode.F then flyOn=not flyOn; if flyOn then startFly() else stopFly() end; setFlyTog(flyOn); countActive() notify("Fly", flyOn and "Enabled" or "Disabled", flyOn and CG or CR) elseif k==Enum.KeyCode.N then ncOn=not ncOn; toggleNoclip(ncOn); setNcTog(ncOn); countActive() notify("NoClip", ncOn and "Enabled" or "Disabled", ncOn and CG or CR) elseif k==Enum.KeyCode.Equals then godOn=not godOn; if godOn then startGod() else stopGod() end; setGodTog(godOn); countActive() notify("God Mode", godOn and "4-layer ON" or "Disabled", godOn and CG or CR) elseif k==Enum.KeyCode.Z then aimbotOn=not aimbotOn; fovCircle.Visible=aimbotOn; setAimTog(aimbotOn); countActive() elseif k==Enum.KeyCode.B then bhopOn=not bhopOn; toggleBhop(bhopOn); countActive() elseif k==Enum.KeyCode.X then clickTPOn=not clickTPOn; countActive() notify("Click-TP", clickTPOn and "Enabled" or "Disabled", clickTPOn and CG or CR) elseif k==Enum.KeyCode.E then espOn=not espOn; setESPTog(espOn); countActive() if not espOn then for p,_ in pairs(espDrws) do rmESP(p) end end elseif k==Enum.KeyCode.T then local tc=selPlayer and selPlayer.Character; if not tc then return end local tr=tc:FindFirstChild("HumanoidRootPart"); local mr=lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") if tr and mr then mr.CFrame=tr.CFrame+Vector3.new(3,0,0) end elseif k==Enum.KeyCode.H then Main.Visible=not Main.Visible; if Main.Visible and aimbotOn then fovCircle.Visible=true end end end) print("[ScrollMenu v9] Loaded ✓ | H=hide Z=aim E=esp F=fly N=nc =god B=bhop X=ctp")