local library = loadstring(game:HttpGet("https://[Log in to view URL]"))()
local theme = loadstring(game:HttpGet("https://[Log in to view URL]"))()
local savemanager = loadstring(game:HttpGet("https://[Log in to view URL]"))()
theme:SetLibrary(library)
savemanager:SetLibrary(library)
savemanager:IgnoreThemeSettings()
savemanager:SetIgnoreIndexes({
	"MenuKeybind"
})
local window = library:CreateWindow({
	Title = "SCORPIO ARCADE BASKETBALL",
	Footer = "SCORPIO HUB",
	ShowCustomCursor = true,
	Icon = "rbxassetid://111089074878671"
})
getgenv().window = window;
local tabs = {
	main = window:AddTab("BASKETBALL MAIN", "USER"),
	misc = window:AddTab("BASKETBALL MICS", "SETTINGS"),
	ui = window:AddTab("UI SETTINGS", "SETTINGS")
}
getgenv().tabs = tabs;
theme:ApplyToTab(tabs.ui)
savemanager:BuildConfigSection(tabs.ui)
local g = getgenv()
g.autogreen = false;
g.perfectmeter = false;
g.spinbot = false;
g.spinspeed = 10;
g.antioob = false;
g.clonethooobprt = {}
g.oobOriginalSizes = {}
g.antioob_new = false;
g.anticontest = false;
g.contestheight = 15.1;
g.autoguard = false;
g.dribbleglide = false;
g.glidedistance = 5;
g.infinitestamina = false;
g.autosprint = false;
g.speeedwd = false;
g.speedor = 16;
g.cframespeed = false;
g.cfv = 5;
g.fpscap = false;
g.fpsvalue = 60;
local old_namecall;
local aimbots_group = tabs.main:AddLeftGroupbox("Aimbots")
aimbots_group:AddToggle("autogreen", {
	Text = "Auto Green",
	Default = g.autogreen,
	Callback = function(state)
		g.autogreen = state
	end
})
local perfectmeter_thread;
aimbots_group:AddToggle("perfectmeter", {
	Text = "Always perfect meter",
	Default = g.perfectmeter,
	Callback = function(state)
		g.perfectmeter = state;
		if state then
			perfectmeter_thread = task.spawn(function()
			end)
		elseif perfectmeter_thread then
			task.cancel(perfectmeter_thread)
			perfectmeter_thread = nil
		end
	end
})
local spin_group = tabs.main:AddLeftGroupbox("Spin")
local function updateSpin()
	local player = game.Players.LocalPlayer;
	local char = player.Character;
	if not(char and char:FindFirstChild("HumanoidRootPart")) then
		return
	end;
	local hrp = char.HumanoidRootPart;
	local bv = hrp:FindFirstChild("sbn")
	if g.spinbot then
		if not bv then
			bv = Instance.new("BodyAngularVelocity")
			bv.Name = "sbn"
			bv.MaxTorque = Vector3.new(0, math.huge, 0)
			bv.Parent = hrp
		end;
		bv.AngularVelocity = Vector3.new(0, g.spinspeed, 0)
	elseif bv then
		bv:Destroy()
	end
end;
spin_group:AddToggle("spinbot", {
	Text = "Spin Bot",
	Default = g.spinbot,
	Callback = function(state)
		g.spinbot = state;
		updateSpin()
	end
})
spin_group:AddSlider("spinspeed", {
	Text = "Speed",
	Default = g.spinspeed,
	Min = 1,
	Max = 50,
	Rounding = 0,
	Callback = function(value)
		g.spinspeed = value;
		if g.spinbot then
			updateSpin()
		end
	end
})
local stamina_group = tabs.main:AddLeftGroupbox("Sprint/Stamina")
local stamina_thread, sprint_thread;
stamina_group:AddToggle("infinitestamina", {
	Text = "Infinite Stamina",
	Default = g.infinitestamina,
	Callback = function(state)
		g.infinitestamina = state;
		if state then
			stamina_thread = task.spawn(function()
				while g.infinitestamina and task.wait(0.1) do
					local player = game.Players.LocalPlayer;
					if player and player:FindFirstChild("Values") then
						local stamina = player.Values:FindFirstChild("Stamina")
						local maxStamina = player.Values:FindFirstChild("MaxStamina")
						if stamina and maxStamina then
							stamina.Value = maxStamina.Value
						end
					end
				end
			end)
		elseif stamina_thread then
			task.cancel(stamina_thread)
		end
	end
})
stamina_group:AddToggle("autosprint", {
	Text = "Auto Sprint",
	Default = g.autosprint,
	Callback = function(state)
		g.autosprint = state;
		if state then
			sprint_thread = task.spawn(function()
				while g.autosprint and task.wait(0.1) do
					local player = game.Players.LocalPlayer;
					local char = player.Character;
					if char and char:FindFirstChildOfClass("Humanoid") then
						local humanoid = char.Humanoid;
						if humanoid.MoveDirection.Magnitude > 0 then
							game:GetService("ReplicatedStorage").Events.Sprint:FireServer(humanoid.MoveDirection.Magnitude)
						end
					end
				end
			end)
		elseif sprint_thread then
			task.cancel(sprint_thread)
			game:GetService("ReplicatedStorage").Events.Sprint:FireServer(0)
		end
	end
})
local speed_group = tabs.main:AddLeftGroupbox("Speed")
local walkspeed_thread, cfspeed_thread;
speed_group:AddToggle("speeedwd", {
	Text = "WalkSpeed",
	Default = g.speeedwd,
	Callback = function(state)
		g.speeedwd = state;
		local char = game.Players.LocalPlayer.Character;
		local humanoid = char and char:FindFirstChildOfClass("Humanoid")
		if state then
			walkspeed_thread = task.spawn(function()
				while g.speeedwd and task.wait(0.1) do
					if humanoid then
						humanoid.WalkSpeed = g.speedor
					end
				end
			end)
		else
			if walkspeed_thread then
				task.cancel(walkspeed_thread)
			end;
			if humanoid then
				humanoid.WalkSpeed = 16
			end
		end
	end
})
speed_group:AddSlider("speedor", {
	Text = "Speed",
	Default = g.speedor,
	Min = 1,
	Max = 50,
	Rounding = 0,
	Callback = function(value)
		g.speedor = value
	end
})
speed_group:AddToggle("cframespeed", {
	Text = "CFrame Speed",
	Default = g.cframespeed,
	Callback = function(state)
		g.cframespeed = state;
		if state then
			cfspeed_thread = task.spawn(function()
				while g.cframespeed and task.wait() do
					local char = game.Players.LocalPlayer.Character;
					local humanoid = char and char:FindFirstChildOfClass("Humanoid")
					local hrp = char and char:FindFirstChild("HumanoidRootPart")
					if humanoid and hrp and humanoid.MoveDirection.Magnitude > 0 then
						local newPos = hrp.Position + (humanoid.MoveDirection * g.cfv * 0.1)
						hrp.CFrame = hrp.CFrame:Lerp(CFrame.new(newPos, newPos + humanoid.MoveDirection), 0.5)
					end
				end
			end)
		elseif cfspeed_thread then
			task.cancel(cfspeed_thread)
		end
	end
})
speed_group:AddSlider("cfv", {
	Text = "Speed",
	Default = g.cfv,
	Min = 0.01,
	Max = 50,
	Rounding = 2,
	Callback = function(value)
		g.cfv = value
	end
})
local anti_group = tabs.main:AddRightGroupbox("Anti")
local oob_thread_1, oob_thread_2;
anti_group:AddToggle("antioob", {
	Text = "No Boundaries",
	Default = g.antioob,
	Callback = function(state)
		g.antioob = state;
		local courts = workspace:FindFirstChild("Courts")
		if not courts then
			return
		end;
		if state then
			for _, court in ipairs(courts:GetChildren()) do
				for _, part in ipairs(court:GetDescendants()) do
					if part:IsA("BasePart") and (part.Name:lower():find("oob") or part.Name:lower():find("border")) then
						g.clonethooobprt[part] = part:Clone()
						part:Destroy()
					end
				end
			end
		else
			for originalPart, clonedPart in pairs(g.clonethooobprt) do
				if originalPart and originalPart.Parent and not originalPart.Parent:FindFirstChild(originalPart.Name) then
					local newPart = clonedPart:Clone()
					newPart.Parent = originalPart.Parent
				end
			end;
			g.clonethooobprt = {}
		end
	end
})
anti_group:AddToggle("antioob_new", {
	Text = "Anti OOB",
	Default = g.antioob_new,
	Callback = function(state)
		g.antioob_new = state;
		if state then
			for _, part in ipairs(workspace:GetDescendants()) do
				if part:IsA("BasePart") and part.Name == "OutOfBounds_1" then
					g.oobOriginalSizes[part] = part.Size;
					part.Size = Vector3.new(0.0001, 0.0001, 0.001)
				end
			end
		else
			for part, originalSize in pairs(g.oobOriginalSizes) do
				if part and part.Parent then
					part.Size = originalSize
				end
			end;
			g.oobOriginalSizes = {}
		end
	end
})
local anti_contest_thread;
anti_group:AddToggle("anticontest", {
	Text = "Anti Contest",
	Default = g.anticontest,
	Callback = function(state)
		g.anticontest = state
	end
})
anti_group:AddSlider("contestheight", {
	Text = "Height",
	Default = g.contestheight,
	Min = 0,
	Max = 22,
	Rounding = 1,
	Callback = function(value)
		g.contestheight = value
	end
})
local auto_group = tabs.main:AddRightGroupbox("Auto")
local autoguard_thread;
auto_group:AddToggle("autoguard", {
	Text = "Auto Guard",
	Default = g.autoguard,
	Callback = function(state)
		g.autoguard = state;
		if state then
			autoguard_thread = task.spawn(function()
				while g.autoguard and task.wait() do
					local char = game.Players.LocalPlayer.Character;
					local humanoid = char and char:FindFirstChildOfClass("Humanoid")
					if humanoid and humanoid.RootPart then
						humanoid:MoveTo(humanoid.RootPart.Position)
						game:GetService("ReplicatedStorage").Events.Guard:FireServer()
					end
				end
			end)
		elseif autoguard_thread then
			task.cancel(autoguard_thread)
		end
	end
})
local dribble_group = tabs.main:AddRightGroupbox("Dribble")
local dribble_thread;
dribble_group:AddToggle("dribbleglide", {
	Text = "Dribble Glide",
	Default = g.dribbleglide,
	Callback = function(state)
		g.dribbleglide = state;
		if state then
			dribble_thread = task.spawn(function()
				while g.dribbleglide and task.wait() do
					local player = game.Players.LocalPlayer;
					local char = player.Character;
					local values = player:FindFirstChild("Values")
					if char and values and values:FindFirstChild("Dribbling") then
						if values.Dribbling.Value == true then
							local humanoid = char:FindFirstChildOfClass("Humanoid")
							local hrp = char:FindFirstChild("HumanoidRootPart")
							if humanoid and hrp and humanoid.MoveDirection.Magnitude > 0 then
								local dist = g.glidedistance * 0.1;
								local newPos = hrp.Position + (humanoid.MoveDirection * dist)
								hrp.CFrame = hrp.CFrame:Lerp(CFrame.new(newPos, newPos + humanoid.MoveDirection), 0.3)
							end
						end
					end
				end
			end)
		elseif dribble_thread then
			task.cancel(dribble_thread)
		end
	end
})
dribble_group:AddSlider("glidedistance", {
	Text = "Distance",
	Default = g.glidedistance,
	Min = 0,
	Max = 35,
	Rounding = 0,
	Callback = function(value)
		g.glidedistance = value
	end
})
local fps_group = tabs.misc:AddLeftGroupbox("FPS")
fps_group:AddToggle("fpscap", {
	Text = "FPS Cap",
	Default = g.fpscap,
	Callback = function(state)
		g.fpscap = state;
		if state then
			setfpscap(g.fpsvalue)
		else
			setfpscap(99999)
		end
	end
})
fps_group:AddSlider("fpsvalue", {
	Text = "Cap",
	Default = g.fpsvalue,
	Min = 1,
	Max = 240,
	Rounding = 0,
	Callback = function(value)
		g.fpsvalue = value;
		if g.fpscap then
			setfpscap(value)
		end
	end
})
local unlockers_group = tabs.misc:AddRightGroupbox("Unlockers")
unlockers_group:AddButton("Unlock All Rewards", function()
	game.Players.LocalPlayer.Profile.SeasonPass.SeasonPassLevel.Value = 100
end)
unlockers_group:AddButton("Unlock Premium", function()
	game.Players.LocalPlayer.Profile.Gamepasses.SeasonPassPremium.Value = true
end)
unlockers_group:AddButton("Unlock All Clothing", function()
	local profile = game.Players.LocalPlayer:FindFirstChild("Profile")
	if not profile then
		return
	end;
	local inventory = profile:FindFirstChild("Inventory")
	local clothingAssets = game:GetService("ReplicatedStorage"):FindFirstChild("ClothingAssets")
	if not(inventory and clothingAssets) then
		return
	end;
	for _, categoryFolder in ipairs(clothingAssets:GetChildren()) do
		local invCategory = inventory:FindFirstChild(categoryFolder.Name)
		if not invCategory then
			invCategory = Instance.new("Folder", inventory)
			invCategory.Name = categoryFolder.Name
		end;
		for _, item in ipairs(categoryFolder:GetChildren()) do
			if not invCategory:FindFirstChild(item.Name) then
				local boolValue = Instance.new("BoolValue", invCategory)
				boolValue.Name = item.Name
			end
		end
	end;
	game:GetService("ReplicatedStorage").Events.UpdateInventory:FireServer()
end)
local original_hip_height;
old_namecall = hookmetamethod(game, "__namecall", function(...)
	local args = {
		...
	}
	local self = args[1]
	local method = getnamecallmethod()
	if g.anticontest and checkcaller() and method == "FireServer" and tostring(self) == "Shoot" then
		local char = game.Players.LocalPlayer.Character;
		if char and char:FindFirstChildOfClass("Humanoid") then
			local humanoid = char.Humanoid;
			original_hip_height = humanoid.HipHeight;
			humanoid.HipHeight = g.contestheight
		end
	end;
	local result = {
		old_namecall(...)
	}
	if g.anticontest and checkcaller() and method == "FireServer" and tostring(self) == "Shoot" then
		local char = game.Players.LocalPlayer.Character;
		if char and char:FindFirstChildOfClass("Humanoid") and original_hip_height then
			char.Humanoid.HipHeight = original_hip_height;
			original_hip_height = nil
		end
	end;
	return unpack(result)
end)
library.OnUnload(function()
	hookmetamethod(game, "__namecall", old_namecall)
	g.autogreen = false;
	g.perfectmeter = false;
	if perfectmeter_thread then
		task.cancel(perfectmeter_thread)
	end;
	g.spinbot = false;
	updateSpin()
	g.antioob = false;
	g.antioob_new = false;
	g.anticontest = false;
	g.autoguard = false;
	if autoguard_thread then
		task.cancel(autoguard_thread)
	end;
	g.dribbleglide = false;
	if dribble_thread then
		task.cancel(dribble_thread)
	end;
	g.infinitestamina = false;
	if stamina_thread then
		task.cancel(stamina_thread)
	end;
	g.autosprint = false;
	if sprint_thread then
		task.cancel(sprint_thread)
	end;
	g.speeedwd = false;
	if walkspeed_thread then
		task.cancel(walkspeed_thread)
	end;
	g.cframespeed = false;
	if cfspeed_thread then
		task.cancel(cfspeed_thread)
	end;
	setfpscap(99999)
	local char = game.Players.LocalPlayer.Character;
	if char then
		local humanoid = char:FindFirstChildOfClass("Humanoid")
		if humanoid then
			humanoid.WalkSpeed = 16;
			if original_hip_height then
				humanoid.HipHeight = original_hip_height
			end
		end
	end;
	if next(g.clonethooobprt) then
		local courts = workspace:FindFirstChild("Courts")
		for originalPart, clonedPart in pairs(g.clonethooobprt) do
			if originalPart and originalPart.Parent and not originalPart.Parent:FindFirstChild(originalPart.Name) then
				local newPart = clonedPart:Clone()
				newPart.Parent = originalPart.Parent
			end
		end
	end;
	if next(g.oobOriginalSizes) then
		for part, originalSize in pairs(g.oobOriginalSizes) do
			if part and part.Parent then
				part.Size = originalSize
			end
		end
	end
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: