--[[ Universal Basketball 0.2 Script by Irdk (scriptblox) ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Currently Supported games: Universal Hoops Life What's Added: New Method For Universal Auto Green More Rigid Guarding Speed Boost While Guarding (B) Hoops Life ( Auto Green Auto Guard Auto Block Hip Height Control [for tutorials on how to use them, go to the script description on Scriptblox] ) ]] local uniLoaded = false local hoopsLoaded = false local function runOnce(flagName, fn) if _G[flagName] then return end -- already ran _G[flagName] = true -- mark as done fn() -- execute real loader end --Credits local Players = game:GetService("Players") local player = Players.LocalPlayer local splash = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) splash.Name = "CreditsSplash" local lbl = Instance.new("TextLabel", splash) lbl.Size = UDim2.new(0, 450, 0, 120) lbl.Position = UDim2.new(0.5, -225, 0.5, -60) lbl.BackgroundColor3 = Color3.new(0.1,0.1,0.1) lbl.TextColor3 = Color3.new(1,1,1) lbl.TextScaled = true lbl.Font = Enum.Font.SourceSansBold lbl.Text = "Made By: Irdk (scriptblox.com)\nDiscord: irdk_scriptblox" local splashGone = false task.delay(3,function() splash:Destroy() splashGone = true end) --Mode selection local function waitForSplash() while not splashGone do task.wait() end end waitForSplash() local selector = Instance.new("ScreenGui", player.PlayerGui) selector.Name = "ModeSelector" local frame = Instance.new("Frame", selector) frame.Size = UDim2.new(0, 300, 0, 160) frame.Position = UDim2.new(0.5, -150, 0.5, -80) frame.BackgroundColor3 = Color3.fromRGB(25,25,25) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1,0,0.3,0) title.Position = UDim2.new(0,0,0,0) title.BackgroundTransparency = 1 title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true title.Font = Enum.Font.SourceSansBold title.Text = "Select Mode" local function makeButton(text, y) local b = Instance.new("TextButton", frame) b.Size = UDim2.new(0.8,0,0.25,0) b.Position = UDim2.new(0.1,0,y,0) b.BackgroundColor3 = Color3.fromRGB(80,80,80) b.TextColor3 = Color3.new(1,1,1) b.Font = Enum.Font.SourceSans b.TextScaled = true b.Text = text return b end local uniBtn = makeButton("Universal", 0.35) local hoopBtn = makeButton("Hoops Life",0.65) local function loadUniversal() runOnce("__UNI_DONE", function() local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local VirtualInputManager = game:GetService("VirtualInputManager") -- Player info local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local hrp = character:WaitForChild("HumanoidRootPart") -- Guard vars local hoopPosition = nil local target = nil local guardEnabled = false local guardDistance = 4 -- Minimum distance from hoop local minDistance = 15 -- Speed bypass vars - ALWAYS ACTIVE local bypassSpeed = 50 local speedMultiplier = 1 -- Pause on manual input local keysDown = {} local autoPaused = false -- E‑hold config local holdDuration = 455 local canHold = true -- Speed changer vars local speedEnabled = false local baseSpeed = humanoid.WalkSpeed local currentSpeed = baseSpeed -- Body velocity objects for always-active speed boost local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(4000, 0, 4000) bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = hrp --Control Panel local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) screenGui.Name = "ControlPanel" local frame = Instance.new("Frame", screenGui) frame.Position = UDim2.new(0, 50, 0, 50) frame.Size = UDim2.new(0, 300, 0, 250) frame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true -- Hold‑E label + box local eLabel = Instance.new("TextLabel", frame) eLabel.Size = UDim2.new(0.6, 0, 0.15, 0) eLabel.Text = "Hold E (ms):" eLabel.BackgroundTransparency = 1 eLabel.TextColor3 = Color3.new(1,1,1) eLabel.Font = Enum.Font.SourceSans eLabel.TextSize = 18 local eBox = Instance.new("TextBox", frame) eBox.Size = UDim2.new(0.4, 0, 0.15, 0) eBox.Position = UDim2.new(0.6, 0, 0, 0) eBox.Text = tostring(holdDuration) eBox.BackgroundColor3 = Color3.fromRGB(50,50,50) eBox.TextColor3 = Color3.new(1,1,1) eBox.Font = Enum.Font.SourceSans eBox.TextSize = 18 eBox.ClearTextOnFocus = false eBox.FocusLost:Connect(function() local v = tonumber(eBox.Text) if v then holdDuration = v else eBox.Text = tostring(holdDuration) end end) -- Guard‑distance label + box local gdLabel = Instance.new("TextLabel", frame) gdLabel.Size = UDim2.new(0.6, 0, 0.15, 0) gdLabel.Position = UDim2.new(0, 0, 0.15, 0) gdLabel.Text = "Guard Dist (studs):" gdLabel.BackgroundTransparency = 1 gdLabel.TextColor3 = Color3.new(1,1,1) gdLabel.Font = Enum.Font.SourceSans gdLabel.TextSize = 18 local gdBox = Instance.new("TextBox", frame) gdBox.Size = UDim2.new(0.4, 0, 0.15, 0) gdBox.Position = UDim2.new(0.6, 0, 0.15, 0) gdBox.Text = tostring(guardDistance) gdBox.BackgroundColor3 = Color3.fromRGB(50,50,50) gdBox.TextColor3 = Color3.new(1,1,1) gdBox.Font = Enum.Font.SourceSans gdBox.TextSize = 18 gdBox.ClearTextOnFocus = false gdBox.FocusLost:Connect(function() local v = tonumber(gdBox.Text) if v and v >= 0 then guardDistance = v else gdBox.Text = tostring(guardDistance) end end) --Toggles/ Guide/ Bot local function createToggle(name, posY, note) local t = Instance.new("TextButton", frame) t.Size = UDim2.new(0.5, 0, 0.12, 0) t.Position = UDim2.new(0, 0, posY, 0) t.BackgroundColor3 = Color3.fromRGB(80,80,80) t.TextColor3 = Color3.new(1,1,1) t.Font = Enum.Font.SourceSans t.TextSize = 16 t.Text = name..": ✗" local noteLbl if note then noteLbl = Instance.new("TextLabel", frame) noteLbl.Position = UDim2.new(0.5, 5, posY, 0) noteLbl.Size = UDim2.new(0.5, -5, 0.12, 0) noteLbl.Text = note noteLbl.BackgroundTransparency = 1 noteLbl.TextColor3 = Color3.fromRGB(200,200,200) noteLbl.Font = Enum.Font.SourceSansItalic noteLbl.TextSize = 14 noteLbl.TextXAlignment = Enum.TextXAlignment.Left end local state = false t.MouseButton1Click:Connect(function() state = not state t.Text = name..": "..(state and "✓" or "✗") t.BackgroundColor3 = state and Color3.fromRGB(0,170,0) or Color3.fromRGB(80,80,80) end) return function() return state end end local getDistanceIndicatorOn = createToggle("Distance Toggle", 0.32) local getGreenToggleOn = createToggle("Use Green Dot", 0.46) local getAutoGuardOn = createToggle("Auto Guard", 0.60, "Press B to toggle guard/speed") local getSpeedChangerOn = createToggle("Speed Changer", 0.74) -- Speed changer controls local speedFrame = Instance.new("Frame", frame) speedFrame.Size = UDim2.new(1, 0, 0.12, 0) speedFrame.Position = UDim2.new(0, 0, 0.88, 0) speedFrame.BackgroundColor3 = Color3.fromRGB(45,45,45) speedFrame.BorderSizePixel = 0 local minusBtn = Instance.new("TextButton", speedFrame) minusBtn.Size = UDim2.new(0.25, 0, 1, 0) minusBtn.Position = UDim2.new(0, 0, 0, 0) minusBtn.Text = "-5" minusBtn.TextScaled = true minusBtn.Font = Enum.Font.SourceSans minusBtn.BackgroundColor3 = Color3.fromRGB(120,0,0) minusBtn.TextColor3 = Color3.new(1,1,1) local plusBtn = Instance.new("TextButton", speedFrame) plusBtn.Size = UDim2.new(0.25, 0, 1, 0) plusBtn.Position = UDim2.new(0.75, 0, 0, 0) plusBtn.Text = "+5" plusBtn.TextScaled = true plusBtn.Font = Enum.Font.SourceSans plusBtn.BackgroundColor3 = Color3.fromRGB(0,120,0) plusBtn.TextColor3 = Color3.new(1,1,1) local speedLabel = Instance.new("TextLabel", speedFrame) speedLabel.Size = UDim2.new(0.5, 0, 1, 0) speedLabel.Position = UDim2.new(0.25, 0, 0, 0) speedLabel.BackgroundTransparency = 1 speedLabel.Font = Enum.Font.SourceSans speedLabel.TextScaled = true speedLabel.TextColor3 = Color3.new(1,1,1) speedLabel.Text = "Speed: "..bypassSpeed -- Speed changer functions local function updateSpeedMultiplier() speedMultiplier = bypassSpeed / 50 speedLabel.Text = "Speed: "..bypassSpeed end -- Hold functionality vars local isHoldingPlus = false local isHoldingMinus = false local lastSpamTime = 0 local spamDelay = 0.05 -- Hold spam handler local function handleHoldSpam() local currentTime = tick() if currentTime - lastSpamTime >= spamDelay then if isHoldingPlus and getSpeedChangerOn() then bypassSpeed = bypassSpeed + 5 updateSpeedMultiplier() elseif isHoldingMinus and getSpeedChangerOn() then bypassSpeed = math.max(5, bypassSpeed - 5) updateSpeedMultiplier() end lastSpamTime = currentTime end end RunService.Heartbeat:Connect(handleHoldSpam) -- Button connections minusBtn.MouseButton1Down:Connect(function() if getSpeedChangerOn() then isHoldingMinus = true bypassSpeed = math.max(5, bypassSpeed - 5) updateSpeedMultiplier() end end) minusBtn.MouseButton1Up:Connect(function() isHoldingMinus = false end) plusBtn.MouseButton1Down:Connect(function() if getSpeedChangerOn() then isHoldingPlus = true bypassSpeed = bypassSpeed + 5 updateSpeedMultiplier() end end) plusBtn.MouseButton1Up:Connect(function() isHoldingPlus = false end) -- Helper functions local function keypress(key) VirtualInputManager:SendKeyEvent(true, key, false, game) end local function keyrelease(key) VirtualInputManager:SendKeyEvent(false, key, false, game) end --Input Logic UIS.InputBegan:Connect(function(inp,gp) if gp then return end if inp.KeyCode==Enum.KeyCode.W or inp.KeyCode==Enum.KeyCode.A or inp.KeyCode==Enum.KeyCode.S or inp.KeyCode==Enum.KeyCode.D then keysDown[inp.KeyCode]=true autoPaused = next(keysDown)~=nil end if inp.KeyCode==Enum.KeyCode.L then hoopPosition = hrp.Position warn("Hoop position set to:", hoopPosition) elseif inp.KeyCode==Enum.KeyCode.B then if not hoopPosition and getAutoGuardOn() then warn("Set the hoop first with L.") return end if getAutoGuardOn() then guardEnabled = not guardEnabled warn("Guard " .. (guardEnabled and "ENABLED" or "DISABLED")) if guardEnabled then local closest,minDist=nil,math.huge for _,p in pairs(Players:GetPlayers()) do if p~=player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local d=(p.Character.HumanoidRootPart.Position-hrp.Position).Magnitude if d 0 then local corrected = vel + dir * inward hrp.AssemblyLinearVelocity = Vector3.new(corrected.X, vel.Y, corrected.Z) end end end -- guard if guardEnabled and target and target.Parent and hoopPosition and not autoPaused then local dirToPlayer = (target.Position - hoopPosition).Unit local guardPos = target.Position - dirToPlayer * guardDistance guardPos = Vector3.new(guardPos.X, hrp.Position.Y, guardPos.Z) if math.random(1,180)==1 then guardPos += Vector3.new(math.random(-1,1),0,math.random(-1,1)).Unit*1.2 end humanoid:MoveTo(guardPos) end -- Always-active speed boost using both methods local moveDir = humanoid.MoveDirection if moveDir.Magnitude > 0 then local finalSpeed = bypassSpeed * speedMultiplier -- Linear velocity method local vel = hrp.AssemblyLinearVelocity local newVel = moveDir.Unit * finalSpeed hrp.AssemblyLinearVelocity = Vector3.new(newVel.X, vel.Y, newVel.Z) -- Body velocity method bodyVelocity.Velocity = Vector3.new(newVel.X, 0, newVel.Z) else bodyVelocity.Velocity = Vector3.new(0, 0, 0) end -- distance indicator if getDistanceIndicatorOn() and target then local d=(target.Position-hrp.Position).Magnitude distDot.BackgroundColor3 = d<10 and Color3.new(1,0,0) or (getGreenToggleOn() and Color3.new(0,1,0) or Color3.new(0.2,0.2,0.2)) distDot.Visible=true else distDot.Visible=false end -- Character respawn handling if not character or not character.Parent then character = player.Character if character then humanoid = character:WaitForChild("Humanoid") hrp = character:WaitForChild("HumanoidRootPart") -- Recreate body velocity if bodyVelocity then bodyVelocity:Destroy() end bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(4000, 0, 4000) bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = hrp end end end) end) end local function loadHoops() runOnce("__HOOPS_DONE", function() -- Hoops Life Auto‑Utility -- api & services local RS = game:GetService("RunService") local function nextFrame(fn) task.defer(fn) end local UIS = game:GetService("UserInputService") local VIM = game:GetService("VirtualInputManager") local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local Replicated = game:GetService("ReplicatedStorage") --player handle local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local HRP = character:WaitForChild("HumanoidRootPart") --core state local keysDown = {} local autoPaused = false local hoopPos = nil local targetPart = nil local guardEnabled = false local guardDistance = 5 local guardMode = "Pro" -- Normal / Pro / Hacker -- Speed system - always active local speedEnabled = false local baseSpeed = humanoid.WalkSpeed local targetSpeed = baseSpeed + 2 local speedMultiplier = 1 -- Hip height system local hipHeightEnabled = false local baseHipHeight = humanoid.HipHeight local targetHipHeight = baseHipHeight -- Body velocity objects for Pro/Hacker modes local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(4000, 0, 4000) bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = HRP -- Guard global vars for Pro/Hacker modes _G.HL_HoopPosition = nil _G.HL_TargetPart = nil _G.HL_GuardDistance = guardDistance _G.HL_MinDistance = 15 --Gui local gui = Instance.new("ScreenGui") gui.ResetOnSpawn = false gui.Name = "HoopsControl" gui.Parent = player:WaitForChild("PlayerGui") local mainFrm = Instance.new("Frame", gui) mainFrm.Size = UDim2.fromOffset(300, 300) mainFrm.Position = UDim2.new(0, 50, 0, 50) mainFrm.BackgroundColor3= Color3.fromRGB(25, 25, 25) mainFrm.BorderSizePixel = 0 mainFrm.Active = true mainFrm.Draggable = true --helper pop-up local function popHelper(text) if gui:FindFirstChild("HL_Helper") then gui.HL_Helper:Destroy() end local card = Instance.new("TextLabel") card.Name = "HL_Helper" card.AnchorPoint = Vector2.new(0,1) card.Size = UDim2.fromOffset(280,50) card.Position = mainFrm.Position + UDim2.new(0,0,0,-10) card.BackgroundColor3 = Color3.fromRGB(0,170,0) card.BorderSizePixel = 0 card.Text = text card.TextScaled = true card.Font = Enum.Font.SourceSansBold card.TextColor3 = Color3.new(1,1,1) card.Parent = gui task.spawn(function() task.wait(4) for i=0,1,0.05 do card.BackgroundTransparency = i card.TextTransparency = i card.Position = card.Position + UDim2.new(0,0,0,-1) task.wait() end card:Destroy() end) end -- utility local function newToggle(txt, relY) local btn = Instance.new("TextButton", mainFrm) btn.Size = UDim2.new(0.9, 0, 0.12, 0) btn.Position = UDim2.new(0.05, 0, relY, 0) btn.BackgroundColor3= Color3.fromRGB(80, 80, 80) btn.TextColor3 = Color3.new(1, 1, 1) btn.TextScaled = true btn.Font = Enum.Font.SourceSans local state = false local function refresh() btn.Text = string.format("%s: %s", txt, state and "✓" or "✗") end refresh() btn.MouseButton1Click:Connect(function() state = not state btn.BackgroundColor3 = state and Color3.fromRGB(0,170,0) or Color3.fromRGB(80,80,80) refresh() end) return function() return state end, btn end -- toggles local isAutoShoot , _shootBtn = newToggle("Auto Shoot (Q)", 0.00) local isAutoGuard , _guardBtn = newToggle("Auto Guard (B)", 0.13) local isAutoBlock , _blockBtn = newToggle("Auto Block", 0.26) local _speedToggleChk, speedBtn = newToggle("Speed Changer", 0.39) local _hipToggleChk, hipBtn = newToggle("Hip Height (K)", 0.52) -- guard‑mode buttons local modeBar = Instance.new("Frame", mainFrm) modeBar.Size = UDim2.new(0.9, 0, 0.12, 0) modeBar.Position = UDim2.new(0.05, 0, 0.65, 0) modeBar.BackgroundColor3= Color3.fromRGB(35, 35, 35) local modes = {"Normal", "Pro", "Hacker"} local modeButtons = {} for i, m in ipairs(modes) do local b = Instance.new("TextButton", modeBar) b.Size = UDim2.new(1/#modes, 0, 1, 0) b.Position = UDim2.new((i-1)/#modes, 0, 0, 0) b.Text = m b.TextScaled = true b.Font = Enum.Font.SourceSans b.TextColor3 = Color3.new(1,1,1) modeButtons[m] = b local function recolour() b.BackgroundColor3 = (guardMode == m) and Color3.fromRGB(0,170,0) or Color3.fromRGB(70,70,70) end recolour() b.MouseButton1Click:Connect(function() guardMode = m for _, ob in pairs(modeButtons) do ob.BackgroundColor3 = Color3.fromRGB(70,70,70) end recolour() end) end -- speed slider local speedGui local function buildSpeedGui() speedGui = Instance.new("Frame", mainFrm) speedGui.Size = UDim2.new(0.9, 0, 0.12, 0) speedGui.Position = UDim2.new(0.05, 0, 0.78, 0) speedGui.BackgroundColor3= Color3.fromRGB(45,45,45) local minus = Instance.new("TextButton", speedGui) minus.Size = UDim2.new(0.25, 0, 1, 0) minus.Text = "-5" minus.TextScaled = true minus.Font = Enum.Font.SourceSans minus.BackgroundColor3= Color3.fromRGB(120,0,0) minus.TextColor3 = Color3.new(1,1,1) local plus = minus:Clone() plus.Parent = speedGui plus.Text = "+5" plus.Position = UDim2.new(0.75, 0, 0, 0) plus.BackgroundColor3 = Color3.fromRGB(0,120,0) local label = Instance.new("TextLabel", speedGui) label.Size = UDim2.new(0.5, 0, 1, 0) label.Position = UDim2.new(0.25,0,0,0) label.BackgroundTransparency = 1 label.Font = Enum.Font.SourceSans label.TextScaled = true label.TextColor3 = Color3.new(1,1,1) local function update() label.Text = "Speed: "..targetSpeed speedMultiplier = targetSpeed / baseSpeed end update() minus.MouseButton1Click:Connect(function() targetSpeed = math.max(1, targetSpeed - 5) update() end) plus.MouseButton1Click:Connect(function() targetSpeed += 5 update() end) end local function destroySpeedGui() if speedGui then speedGui:Destroy(); speedGui = nil end end -- hip height slider local hipGui local function buildHipGui() hipGui = Instance.new("Frame", mainFrm) hipGui.Size = UDim2.new(0.9, 0, 0.12, 0) hipGui.Position = UDim2.new(0.05, 0, 0.91, 0) hipGui.BackgroundColor3= Color3.fromRGB(45,45,45) local minus = Instance.new("TextButton", hipGui) minus.Size = UDim2.new(0.25, 0, 1, 0) minus.Text = "-5" minus.TextScaled = true minus.Font = Enum.Font.SourceSans minus.BackgroundColor3= Color3.fromRGB(120,0,0) minus.TextColor3 = Color3.new(1,1,1) local plus = minus:Clone() plus.Parent = hipGui plus.Text = "+5" plus.Position = UDim2.new(0.75, 0, 0, 0) plus.BackgroundColor3 = Color3.fromRGB(0,120,0) local label = Instance.new("TextLabel", hipGui) label.Size = UDim2.new(0.5, 0, 1, 0) label.Position = UDim2.new(0.25,0,0,0) label.BackgroundTransparency = 1 label.Font = Enum.Font.SourceSans label.TextScaled = true label.TextColor3 = Color3.new(1,1,1) local function update() label.Text = "Hip: "..targetHipHeight humanoid.HipHeight = targetHipHeight end update() minus.MouseButton1Click:Connect(function() targetHipHeight = targetHipHeight - 5 update() end) plus.MouseButton1Click:Connect(function() targetHipHeight = targetHipHeight + 5 update() end) end local function destroyHipGui() if hipGui then hipGui:Destroy(); hipGui = nil end end speedBtn.MouseButton1Click:Connect(function() nextFrame(function() speedEnabled = _speedToggleChk() if speedEnabled then baseSpeed = humanoid.WalkSpeed targetSpeed = baseSpeed + 5 buildSpeedGui() print("[HL] Speed Changer enabled") popHelper("Speed Changer ON – use - / + to adjust.") else destroySpeedGui() targetSpeed = baseSpeed speedMultiplier = 1 print("[HL] Speed Changer disabled") end end) end) hipBtn.MouseButton1Click:Connect(function() nextFrame(function() hipHeightEnabled = _hipToggleChk() if hipHeightEnabled then baseHipHeight = humanoid.HipHeight targetHipHeight = baseHipHeight + 5 buildHipGui() print("[HL] Hip Height enabled") popHelper("Hip Height ON – use K to toggle, - / + to adjust.") else destroyHipGui() humanoid.HipHeight = baseHipHeight targetHipHeight = baseHipHeight print("[HL] Hip Height disabled") end end) end) -- wire pop‑ups to the two main toggles _shootBtn.MouseButton1Click:Connect(function() nextFrame(function() if isAutoShoot() then popHelper("Auto Shoot ON – first green legit, then press Q to auto‑green.") end end) end) _guardBtn.MouseButton1Click:Connect(function() nextFrame(function() if isAutoGuard() then popHelper("Auto Guard ON – press L to set hoop, then B to guard.") end end) end) --input local moveKeys = {W=true, A=true, S=true, D=true} UIS.InputBegan:Connect(function(inp, gp) if gp then return end -- movement detection pauses auto systems if moveKeys[inp.KeyCode.Name] then keysDown[inp.KeyCode] = true autoPaused = true end -- mark hoop centre if inp.KeyCode == Enum.KeyCode.L then hoopPos = HRP.Position _G.HL_HoopPosition = hoopPos warn("Hoop position set.") end -- toggle guard if inp.KeyCode == Enum.KeyCode.B and isAutoGuard() then if not hoopPos then warn("[HL] Set hoop position first with L") return end guardEnabled = not guardEnabled autoPaused = false warn("[HL] Guard " .. (guardEnabled and "ON" or "OFF")) end -- toggle hip height if inp.KeyCode == Enum.KeyCode.K and hipHeightEnabled then if targetHipHeight == baseHipHeight then targetHipHeight = baseHipHeight + 10 humanoid.HipHeight = targetHipHeight warn("[HL] Hip Height raised") else humanoid.HipHeight = baseHipHeight targetHipHeight = baseHipHeight warn("[HL] Hip Height reset") end end --quickshot if inp.KeyCode == Enum.KeyCode.Q and isAutoShoot() then local shoot = Replicated:WaitForChild("Remotes"):WaitForChild("Shoot") shoot:FireServer(0, "Starting", "up", false, 0, 0) task.wait(0.5) shoot:FireServer(100000, "Ending", "up", false, 0, 0) end end) UIS.InputEnded:Connect(function(inp) if moveKeys[inp.KeyCode.Name] then keysDown[inp.KeyCode] = nil autoPaused = next(keysDown) ~= nil end end) --auto block local IGNORE_IDS = { ["913402848"] = true, ["10779904378"] = true, ["507766388"] = true, ["507766666"] = true, ["507765644"] = true, ["6954982157"] = true, ["6958914473"] = true, ["6958910778"] = true, ["7104836507"] = true, ["7015176518"] = true, ["6954967857"] = true, ["7015179264"] = true, ["17385814388"] = true, ["7018040999"] = true, ["17248159181"] = true, ["6983005836"] = true, ["6983006816"] = true, ["7104680693"] = true, ["7015170849"] = true, ["7137683340"] = true, ["7141677280"] = true, ["7141671540"] = true, ["7141675434"] = true, ["7138142323"] = true, ["7138147226"] = true, ["7141673369"] = true, ["7141670372"] = true, ["7141668871"] = true, ["7138135461"] = true, ["17324112658"] = true, ["7018045141"] = true, ["17248117055"] = true, ["7137687203"] = true, ["17286443815"] = true, ["7015173681"] = true, ["17385803916"] = true, ["17286449846"] = true, ["7137691083"] = true, ["7141720088"] = true, ["7101474250"] = true, ["7101477503"] = true, ["17324137001"] = true, ["7070741098"] = true, ["7070742180"] = true, ["7070847016"] = true, ["7070849254"] = true, ["7070854952"] = true, ["7225282783"] = true, ["7228952358"] = true, ["7492798429"] = true, ["7492879219"] = true, ["7500966770"] = true, ["11110177113"] = true, ["17284820672"] = true, ["17297402464"] = true, } local function animId(track) return tostring(track.Animation.AnimationId):match("%d+") or "0" end local function burstJump() for _=1,4 do VIM:SendKeyEvent(true, Enum.KeyCode.Space, false, game) RS.Heartbeat:Wait() VIM:SendKeyEvent(false, Enum.KeyCode.Space, false, game) end end local queueJump = false -- check queue each render RS:BindToRenderStep("HL_Block", Enum.RenderPriority.First.Value, function() if queueJump and isAutoBlock() then queueJump = false burstJump() end end) local function watch(plr) local hum = plr.Character and plr.Character:FindFirstChildOfClass("Humanoid") if not hum then return end local animator = hum:FindFirstChildOfClass("Animator") or hum:WaitForChild("Animator") animator.AnimationPlayed:Connect(function(track) if plr == player then return end if IGNORE_IDS[animId(track)] then return end local root = hum.RootPart or hum.Parent:FindFirstChild("HumanoidRootPart") if root and (root.Position - HRP.Position).Magnitude <= 15 then queueJump = true end end) end for _, p in ipairs(Players:GetPlayers()) do watch(p) end Players.PlayerAdded:Connect(function(p) p.CharacterAdded:Connect(function() watch(p) end) end) --main loop RS.RenderStepped:Connect(function() local ok, err = pcall(function() --wall bounce if hoopPos then local diff = HRP.Position - hoopPos if diff.Magnitude < 12 then local dir = diff.Unit local vel = HRP.AssemblyLinearVelocity local inward = vel:Dot(-dir) if inward > 0 then local corrected = vel + dir * inward HRP.AssemblyLinearVelocity = Vector3.new(corrected.X, vel.Y, corrected.Z) end end end --acquire guard target if guardEnabled and not autoPaused then local bestDist = math.huge targetPart = nil for _, p in ipairs(Players:GetPlayers()) do if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local d = (p.Character.HumanoidRootPart.Position - HRP.Position).Magnitude if d < bestDist then bestDist = d targetPart = p.Character.HumanoidRootPart end end end _G.HL_TargetPart = targetPart end if guardEnabled and targetPart and hoopPos and not autoPaused then local dir = (targetPart.Position - hoopPos).Unit local guardPos = targetPart.Position - dir * guardDistance guardPos = Vector3.new(guardPos.X, HRP.Position.Y, guardPos.Z) local moveDirection = (guardPos - HRP.Position) local distance = moveDirection.Magnitude if distance > 0.1 then moveDirection = moveDirection.Unit else moveDirection = Vector3.zero end -- Calculate proper guard speed local baseSpeed = (targetPart.AssemblyLinearVelocity.Magnitude > 1 and targetPart.AssemblyLinearVelocity.Magnitude or 10) local guardSpeed = baseSpeed * speedMultiplier -- Ensure we don't ever crawl if guardSpeed < 999 then guardSpeed = 200 end -- Apply the force bodyVelocity.MaxForce = Vector3.new(1e5, 0, 1e5) bodyVelocity.Velocity = moveDirection * guardSpeed if guardMode == "Normal" then -- Basic movement local smallPush = moveDirection * (guardSpeed * 0.1) HRP.AssemblyLinearVelocity = Vector3.new(smallPush.X, HRP.AssemblyLinearVelocity.Y, smallPush.Z) elseif guardMode == "Pro" then -- Boost with a light push local push = moveDirection * (guardSpeed * 0.35) HRP.AssemblyLinearVelocity = Vector3.new(push.X, HRP.AssemblyLinearVelocity.Y, push.Z) elseif guardMode == "Hacker" then -- Full override, aggressive pursuit local hackerVelocity = moveDirection * (guardSpeed * 1.75) bodyVelocity.Velocity = Vector3.zero -- disable bodyVelocity interference HRP.AssemblyLinearVelocity = Vector3.new(hackerVelocity.X, HRP.AssemblyLinearVelocity.Y, hackerVelocity.Z) end else bodyVelocity.Velocity = Vector3.zero end -- Always-active speed system if speedEnabled then local moveDir = humanoid.MoveDirection if moveDir.Magnitude > 0 then local finalSpeed = targetSpeed * speedMultiplier -- Apply linear velocity local vel = HRP.AssemblyLinearVelocity local newVel = moveDir.Unit * finalSpeed HRP.AssemblyLinearVelocity = Vector3.new(newVel.X, vel.Y, newVel.Z) -- Apply body velocity if not in guard mode if not guardEnabled then bodyVelocity.Velocity = Vector3.new(newVel.X, 0, newVel.Z) end elseif not guardEnabled then bodyVelocity.Velocity = Vector3.new(0, 0, 0) end end -- Update global variables for Pro/Hacker modes _G.HL_GuardDistance = guardDistance end) if not ok then warn("[HL‑ERROR]", err) end end) -- Character respawn handling player.CharacterAdded:Connect(function(newChar) character = newChar humanoid = character:WaitForChild("Humanoid") HRP = character:WaitForChild("HumanoidRootPart") -- Recreate body velocity if bodyVelocity then bodyVelocity:Destroy() end bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(4000, 0, 4000) bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = HRP baseSpeed = humanoid.WalkSpeed if not speedEnabled then targetSpeed = baseSpeed end baseHipHeight = humanoid.HipHeight if not hipHeightEnabled then targetHipHeight = baseHipHeight end end) end) end uniBtn.MouseButton1Click:Connect(function() selector:Destroy() loadUniversal() end) hoopBtn.MouseButton1Click:Connect(function() selector:Destroy() loadHoops() end)