
KeylessUniversal

--[[
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<minDist then minDist=d closest=p.Character.HumanoidRootPart end
end
end
target=closest
end
end
elseif inp.KeyCode==Enum.KeyCode.E and canHold then
canHold=false
keypress(Enum.KeyCode.E)
task.delay(holdDuration/1000,function()
keyrelease(Enum.KeyCode.E)
canHold=true
end)
end
end)
UIS.InputEnded:Connect(function(inp)
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]=nil
autoPaused = next(keysDown)~=nil
end
end)
--Distance Dot
local distDot = Instance.new("Frame", screenGui)
distDot.Size = UDim2.new(0,10,0,10)
distDot.Position = UDim2.new(0.5,-5,0.55,-5)
distDot.BackgroundTransparency = 0
distDot.Visible=false
distDot.BorderSizePixel = 0
local guideFrame = Instance.new("Frame", screenGui)
guideFrame.Size=UDim2.new(0,0,0,0)
guideFrame.Visible=false
--Main Loop
RunService.RenderStepped:Connect(function()
-- wall effect
if hoopPosition then
local toHRP = hrp.Position - hoopPosition
local dist = toHRP.Magnitude
if dist < minDistance then
local dir = toHRP.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
-- 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)



ez skid
Updated. Auto guard was optimized, and next game will be highschool hoops
Is there a mobile version??
@Readyope Not currently, working on it.
add legit auto guard