Hoopz | GUI | walkspeed, autogaurd, reach, & silent aim

MADE BY magnetwashere

FEATURES:

  • walkspeed
  • autogaurd
  • reach
  • silent aim
    • it has automatic power-changing, all you have to do is walk close enough to the hoop to shoot (you’ll know by the big green square that appears on your character)Β and then jump and itll auto shoot, moving shots kinda work but not that well

SCRIPT:

local lib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/shlexware/Orion/main/source')))()
local window = lib:MakeWindow({Name = "Magnet's Hoopz UI"})
local main = window:MakeTab({Name = "Main"})

main:AddToggle({Name = "Aimbot", Default = false, Callback = function(v)
    _G.Aimbot = v
end})
main:AddToggle({Name = "Reach", Default = false, Callback = function(v)
    _G.Reach = v
end})
main:AddToggle({Name = "AutoGaurd/Defend", default = false, Callback = function(v)
    if v then
        game.StarterGui:SetCore("SendNotification", {Title = "AutoGaurd/Defend", Text = "Press U to go to the nearest ball", Duration = 5, Button1 = "Okay"})
    end
    _G.Autogaurd = v
end})
main:AddSlider({Name = "WalkSpeed", Min = 16, Max = 19, Default = 16, Color = Color3.fromRGB(80, 80, 255), Increment = 0.1, Callback = function(v)
    _G.WS = v
end})

local shootingEvent = game:GetService("ReplicatedStorage").shootingEvent

if workspace:FindFirstChild("PracticeArea") then
    workspace.PracticeArea.Parent = workspace.Courts
end

local jumping = false

for i,v in pairs(getconnections(game:GetService("UserInputService").TouchTapInWorld)) do
    for z,x in pairs(getupvalues(v.Function)) do
        if type(x) == "table" and rawget(x, 1) then
            _G.method = x
        elseif z == 10 then
            _G.key = x
        end
    end
end

for i,v in pairs(getconnections(plr.Character.HumanoidRootPart:GetPropertyChangedSignal("Size"))) do
    v:Disable()
end

for i,v in pairs(getconnections(plr.Character.HumanoidRootPart:GetPropertyChangedSignal("Color"))) do
    v:Disable()
end

for i,v in pairs(getconnections(plr.Character.HumanoidRootPart:GetPropertyChangedSignal("BrickColor"))) do
    v:Disable()
end

for i,v in pairs(getconnections(plr.Character.Humanoid:GetPropertyChangedSignal("WalkSpeed"))) do
    v:Disable()
end

local ground

local part = workspace:FindPartOnRay(Ray.new(plr.Character.Torso.Position, Vector3.new(0, -100, 5)))
if part then
    ground = part
end

local tracking = false
local player

function updateNearestPlayerWithBall()
    local dist = 9e9
    for i,v in pairs(game.Players:GetPlayers()) do
        if v.Name ~= plr.Name and v.Character and v.Character:FindFirstChild("Basketball") and not plr.Character:FindFirstChild("Basketball") and (plr.Character.Torso.Position - v.Character.Torso.Position).Magnitude < 50 then
            local mag = (plr.Character.Torso.Position - v.Character.Torso.Position).Magnitude
            if dist > mag then
                dist = mag
                player = v
            end
        end
    end
end

if _G.hook ~= nil then
    _G.hook = ""; _G.hook = hookmetamethod(game, "__index", newcclosure(function(self, idx)
        if tostring(self) == "HumanoidRootPart" and idx == "Size" then
            return Vector3.new(2, 2, 1)
        elseif tostring(self) == "HumanoidRootPart" and idx == "BrickColor" then
            return BrickColor.new("Medium stone grey")
        elseif tostring(self) == "HumanoidRootPart" and idx == "Color" then
            return Color3.fromRGB(163, 162, 165)
        elseif tostring(self) == "Humanoid" and idx == "WalkSpeed" then
            return 16
        end
        return hook(self, idx)
    end))
end

shootingEvent.OnClientEvent:Connect(function(newKey)
    _G.key = newKey
end)

function setup()
    local dist, goal = 9e9, nil
    for i,v in pairs(workspace.Courts:GetDescendants()) do
        if v.Name == "Swish" and v:IsA("Sound") and plr.Character and plr.Character:FindFirstChild("Torso") then
            local mag = (plr.Character.Torso.Position - v.Parent.Position).Magnitude
            if dist > mag then
                dist = mag; goal = v.Parent
            end
        end
    end
    return dist, goal
end

function power()
    return plr.Power
end

function changePower(goal)
    power().Value = goal
end

function table(a, b)
    local args = {
X1 = a.X, 
Y1 = a.Y, 
Z1 = a.Z, 
X2 = b.X, 
Y2 = b.Y, 
Z2 = b.Z
};

return {args[_G.method[1]], args[_G.method[2]], args[_G.method[3]], args[_G.method[4]], args[_G.method[5]], args[_G.method[6]]}
end

function arc()
    local dist, goal = setup()

    dist = math.floor(dist)
    print(dist)
    if dist == 12 or dist == 13 then
        return 15
    elseif dist == 14 or dist == 15 then
        return 20
    elseif dist == 16 or dist == 17 then
        return 15
    elseif dist == 18 then
        return 25
    elseif dist == 19 then
        return 20
    elseif dist == 20 or dist == 21 then
        return 20
    elseif dist == 22 or dist == 23 then
        return 25
    elseif dist == 24 or dist == 25 then
        return 20
    elseif dist == 26 then
        return 15
    elseif dist == 27 or dist == 28 then
        return 25
    elseif dist == 29 or dist == 30 then
        return 20
    elseif dist == 31 then
        return 15
    elseif dist == 32 or dist == 33 then
        return 30
    elseif dist == 34 or dist == 35 or dist == 36 then
        return 25
    elseif dist == 37 or dist == 38 then
        return 35
    elseif dist == 39 or dist == 40 then
        return 30
    elseif dist == 41 then
        return 25
    elseif dist == 42 or dist == 43 then
        return 40
    elseif dist == 44 then
        return 35
    elseif dist == 45 or dist == 46 then
        return 30
    elseif dist == 47 or dist == 48 then
        return 45
    elseif dist == 49 then
        return 40
    elseif dist == 50 then
        return 35
    elseif dist == 51 then
        return 50
    elseif dist == 52 then
        return 55
    elseif dist == 53 or dist == 54 then
        return 50
    elseif dist == 55 then
        return 45
    elseif dist == 56 then
        return 40
    elseif dist == 57 or dist == 58 then
        return 55
    elseif dist == 59 or dist == 60 or dist == 61 then
        return 50
    elseif dist == 62 or dist == 63 then
        return 65
    elseif dist == 64 then
        return 55
    elseif dist == 65 then
        return 60
    elseif dist == 66 or dist == 67 then
        return 50
    elseif dist == 68 or dist == 69 then
        return 75
    elseif dist == 70 or dist == 71 then
        return 70
    elseif dist == 72 then
        return 65
    elseif dist == 73 then
        return 60
    elseif dist == 74 then
        return 50
    elseif jumping then
        if dist == 9 or dist == 10 then
            return 20
        elseif dist == 11 or dist == 12 then
            return 15
        end
    end
end

function getNearestPart(torso)
    local dist, part = 9e9 
    for i,v in pairs(plr.Character:GetChildren()) do
        if v:IsA("Part") and torso then
            local mag = (v.Position - torso.Position).Magnitude
            if dist > mag then
                dist = mag
                part = v
            end
        end
    end
    return part
end

function stepped() pcall(function()
    if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") and _G.Aimbot then
        local pwr = power()
        local dist, goal = setup()
        local root = plr.Character.HumanoidRootPart
    
        dist = math.floor(dist)

        if root and hasBall then
            root.Size = Vector3.new(2.1, 2.1, 1.1)
            root.BrickColor = BrickColor.new("Lime green")
            root.Material = Enum.Material.Neon
            
            if dist >= 13 and dist <= 16 then
                changePower(30)
                root.Transparency = 0
            elseif dist >= 17 and dist <= 21 then
                changePower(35)
                root.Transparency = 0
            elseif dist >= 22 and dist <= 26 then
                changePower(40)
                root.Transparency = 0 
            elseif dist >= 27 and dist <= 31 then
                changePower(45)
                root.Transparency = 0
            elseif dist >= 32 and dist <= 36 then
                changePower(50)
                root.Transparency = 0
            elseif dist >= 37 and dist <= 41 then
                changePower(55)
                root.Transparency = 0
            elseif dist >= 42 and dist <= 46 then
                changePower(60)
                root.Transparency = 0
            elseif dist >= 47 and dist <= 50 then
                changePower(65)
                root.Transparency = 0
            elseif dist >= 51 and dist <= 56 then
                changePower(70)
                root.Transparency = 0
            elseif dist >= 57 and dist <= 61 then
                changePower(75)
                root.Transparency = 0
            elseif dist >= 62 and dist <= 67 then
                changePower(80)
                root.Transparency = 0
            elseif dist >= 68 and dist <= 74 then
                changePower(85)
                root.Transparency = 0
            elseif jumping and dist == 9 or dist == 10 or dist == 11 or dist == 12 then
                changePower(25)
                root.Transparency = 0
            else
                root.Transparency = 1
            end
        elseif root and not hasBall and _G.Aimbot then
            root.Transparency = 1
        elseif root and not _G.Aimbot then
            root.Transparency = 1
        end
    end
    
    updateNearestPlayerWithBall()
    
    if _G.WS ~= 16 and plr.Character:WaitForChild("Humanoid").WalkSpeed ~= 0 then
        plr.Character:WaitForChild("Humanoid").WalkSpeed = _G.WS
    end

    if _G.Autogaurd and tracking and player and plr.Character and plr.Character:FindFirstChild("Humanoid") and not plr.Character:FindFirstChild("Basketball") and player.Character and player.Character:FindFirstChild("Basketball") then
        plr.Character.Humanoid:MoveTo(player.Character.Basketball:FindFirstChildOfClass("Part").Position + player.Character.Torso.CFrame.LookVector + ((player.Character.Humanoid.MoveDirection * 2) + (plr.Character.Torso.Velocity.Unit * 3)))
        
        if (player.Character.Torso.Position.Y - ground.Position.Y) > 2.5 then
            plr.Character.Humanoid.Jump = true
        end
    elseif tracking and player ~= nil and player.Character and plr.Character and plr.Character:FindFirstChild("Basketball") or not player.Character:FindFirstChild("Basketball") then
        tracking = false
        return
    end
    
    for i,v in pairs(game.Players:GetPlayers()) do
        if (v.Name ~= plr.Name and v.Character and plr.Character) and _G.Reach then
            local nearestPart = getNearestPart(v.Character.Torso)
            for z,x in pairs(v.Character:GetChildren()) do
                if ((nearestPart.Position - v.Character.Torso.Position).Magnitude < 8) then
                    if (x:IsA("Tool") or x:IsA("Folder")) then
                        firetouchinterest(nearestPart, x:FindFirstChildOfClass("Part"), 0)
                        task.wait()
                        firetouchinterest(nearestPart, x:FindFirstChildOfClass("Part"), 1)
                    elseif (x:IsA("BasePart") and string.find(x.Name:lower(), "ball")) then
                        firetouchinterest(nearestPart, x, 0)
                        task.wait()
                        firetouchinterest(nearestPart, x, 1)
                    end
                end
            end
        end
    end
end) end

function shoot()
    local dist, goal = setup()
    local pwr = power()
    local arc = arc()
    
    if arc ~= nil and plr.Character and plr.Character:FindFirstChild("Humanoid") then
        local args = table(plr.Character.Torso.Position, (goal.Position + Vector3.new(0, arc, 0) - plr.Character.HumanoidRootPart.Position + plr.Character.Humanoid.MoveDirection).Unit)
    
        shootingEvent:FireServer(
            plr.Character.Basketball,
            pwr.Value,
            args,
            _G.key
        )
    end
end

function jumped()
    if _G.Aimbot and plr.Character and hasBall and plr.Character:FindFirstChild("HumanoidRootPart") and plr.Character.HumanoidRootPart.Transparency == 0 then
        jumping = true
        task.wait(0.325)
        shoot()
        task.wait(0.1)
        jumping = false
    end
end

function added(v)
    if v.Name == "Basketball" then
        task.wait(0.5)
        hasBall = true
    end
end

function removed(v)
    if v.Name == "Basketball" then
        hasBall = false
    end
end

function began(key, gpe)
    if not gpe and key.KeyCode == Enum.KeyCode.U and _G.Autogaurd then
        updateNearestPlayerWithBall()
        if not tracking then
            tracking = true
        else
            tracking = false
        end
    end
end

_G.input = plr.Character.Humanoid.Jumping:Connect(jumped)
_G.added = plr.Character.ChildAdded:Connect(added)
_G.removed = plr.Character.ChildRemoved:Connect(removed)
_G.stepped = rs.Stepped:Connect(stepped)
_G.began = uis.InputBegan:Connect(began)

_G.charAdded = plr.CharacterAdded:Connect(function(ch)
    _G.input = ch:WaitForChild("Humanoid").Jumping:Connect(jumped)
    _G.added = ch.ChildAdded:Connect(added)
    _G.removed = ch.ChildRemoved:Connect(removed)
    
    for i,v in pairs(getconnections(ch:WaitForChild("HumanoidRootPart"):GetPropertyChangedSignal("Size"))) do
        v:Disable()
    end
    for i,v in pairs(getconnections(ch:WaitForChild("HumanoidRootPart"):GetPropertyChangedSignal("BrickColor"))) do
        v:Disable()
    end
    for i,v in pairs(getconnections(ch:WaitForChild("HumanoidRootPart"):GetPropertyChangedSignal("Color"))) do
        v:Disable()
    end
    for i,v in pairs(getconnections(ch:WaitForChild("Humanoid"):GetPropertyChangedSignal("WalkSpeed"))) do
        v:Disable()
    end
end)

⚠️ Warning: Do not download any extensions or anything other than .txt/.lua file, because script will download only in .txt/.lua format or It will redirect you to a pastebin link.

πŸ“‹ Notice: If you find any of the scripts patched or not working, please report it to Forever4D throughΒ Discord. The script will be removed or marked as patched!

Β