The Super Gear GUI
Key RequiredUniversal

The Super Gear GUI

Universal Scriptadmin123admin123 566 views 95 executesUpdated Dec 26, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•508 lines (15592 chars)
-- Gui to Lua
-- Version: 3.2

-- Instances:

local ScreenGui = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local TextButton = Instance.new("TextButton")
local TextLabel = Instance.new("TextLabel")
local TextButton_2 = Instance.new("TextButton")
local TextButton_3 = Instance.new("TextButton")
local TextButton_4 = Instance.new("TextButton")

--Properties:

ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0.353855282, 0, 0.257537693, 0)
Frame.Size = UDim2.new(0, 238, 0, 290)

TextButton.Parent = Frame
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton.BorderSizePixel = 0
TextButton.Position = UDim2.new(0, 0, 0.228691369, 0)
TextButton.Size = UDim2.new(0, 238, 0, 43)
TextButton.Font = Enum.Font.SourceSans
TextButton.Text = "Sphere"
TextButton.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton.TextScaled = true
TextButton.TextSize = 14.000
TextButton.TextWrapped = true

TextLabel.Parent = Frame
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.BackgroundTransparency = 1.000
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.BorderSizePixel = 0
TextLabel.Size = UDim2.new(0, 238, 0, 50)
TextLabel.Font = Enum.Font.SourceSans
TextLabel.Text = "The Super Gear GUI"
TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.TextScaled = true
TextLabel.TextSize = 14.000
TextLabel.TextWrapped = true

TextButton_2.Parent = Frame
TextButton_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton_2.BorderSizePixel = 0
TextButton_2.Position = UDim2.new(0, 0, 0.375799149, 0)
TextButton_2.Size = UDim2.new(0, 238, 0, 43)
TextButton_2.Font = Enum.Font.SourceSans
TextButton_2.Text = "Long sword"
TextButton_2.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton_2.TextScaled = true
TextButton_2.TextSize = 14.000
TextButton_2.TextWrapped = true

TextButton_3.Parent = Frame
TextButton_3.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton_3.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton_3.BorderSizePixel = 0
TextButton_3.Position = UDim2.new(0, 0, 0.522112489, 0)
TextButton_3.Size = UDim2.new(0, 238, 0, 43)
TextButton_3.Font = Enum.Font.SourceSans
TextButton_3.Text = "Aura"
TextButton_3.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton_3.TextScaled = true
TextButton_3.TextSize = 14.000
TextButton_3.TextWrapped = true

TextButton_4.Parent = Frame
TextButton_4.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton_4.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton_4.BorderSizePixel = 0
TextButton_4.Position = UDim2.new(0, 0, 0.670388401, 0)
TextButton_4.Size = UDim2.new(0, 238, 0, 43)
TextButton_4.Font = Enum.Font.SourceSans
TextButton_4.Text = "Wrath"
TextButton_4.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton_4.TextScaled = true
TextButton_4.TextSize = 14.000
TextButton_4.TextWrapped = true

-- Scripts:

local function CEJY_fake_script() -- TextButton.EquipToolsSphere 
	local script = Instance.new('LocalScript', TextButton)

	local Players = game:GetService("Players")
	local player = Players.LocalPlayer
	local button = script.Parent
	
	button.MouseButton1Click:Connect(function()
	    local character = player.Character or player.CharacterAdded:Wait()
	    local backpack = player:FindFirstChild("Backpack")
	    if not backpack or not character then
	        return
	    end
	
	    -- Gather all tools in backpack
	    local tools = {}
	    for i, tool in backpack:GetChildren() do
	        if tool:IsA("Tool") then
	            table.insert(tools, tool)
	        end
	    end
	
	    local toolCount = #tools
	    if toolCount == 0 then
	        return
	    end
	
	    -- Equip all tools
	    for i, tool in tools do
	        tool.Parent = character
	    end
	
	    -- Get HumanoidRootPart CFrame (center of player)
	    local hrp = character:FindFirstChild("HumanoidRootPart")
	    if not hrp then
	        return
	    end
	    local originCFrame = hrp.CFrame
	
	    -- Dynamic radius: more tools = smaller radius, but clamp to a minimum
	    local minRadius = 15
	    local maxRadius = 50
	    local baseRadius = 50 -- Sphere is larger
	    local radius = math.clamp(baseRadius / math.max(toolCount, 1), minRadius, maxRadius)
	
	    -- Position tools in a sphere centered at HumanoidRootPart
	    for i, tool in tools do
	        local handle = tool:FindFirstChild("Handle")
	        if handle then
	            -- Spherical coordinates for even distribution
	            local phi = math.acos(-1 + (2 * (i-1) + 1) / toolCount)
	            local theta = math.pi * (1 + math.sqrt(5)) * (i-1)
	            local x = radius * math.cos(theta) * math.sin(phi)
	            local y = radius * math.sin(theta) * math.sin(phi)
	            local z = radius * math.cos(phi)
	            local sphereOffset = Vector3.new(x, y, z)
	
	            -- The Grip property offsets the handle from the hand, so this positions the handle in a sphere around the HRP
	            tool.Grip = CFrame.new(sphereOffset)
	        end
	    end
	end)
	
	
end
coroutine.wrap(CEJY_fake_script)()
local function VZDOTUX_fake_script() -- TextButton_2.EquipAndStackAllTools 
	local script = Instance.new('LocalScript', TextButton_2)

	local Players = game:GetService("Players")
	local LocalPlayer = Players.LocalPlayer
	local button = script.Parent
	
	button.Activated:Connect(function()
	    local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
	    local backpack = LocalPlayer:FindFirstChild("Backpack")
	    if not backpack or not character then
	        return
	    end
	
	    -- Collect all tools from backpack first
	    local tools = {}
	    local backpackChildren = backpack:GetChildren()
	    for i = 1, #backpackChildren do
	        local tool = backpackChildren[i]
	        if tool:IsA("Tool") then
	            table.insert(tools, tool)
	        end
	    end
	
	    if #tools == 0 then
	        return
	    end
	
	    -- Equip all tools
	    for i = 1, #tools do
	        local tool = tools[i]
	        tool.Parent = character
	    end
	
	    -- Use the orientation of the first tool as the reference
	    local referenceGrip = tools[1].Grip
	
	    -- Stack all equipped tools vertically by changing their Grip
	    local offsetStepY = -1 -- Each tool will be offset by 1 stud upward
	    for i = 1, #tools do
	        local tool = tools[i]
	        -- Apply the reference orientation and stack vertically
	        tool.Grip = referenceGrip * CFrame.new(0, (i-1) * offsetStepY, 0)
	    end
	end)
	
	
end
coroutine.wrap(VZDOTUX_fake_script)()
local function QGZXPBZ_fake_script() -- TextButton_3.SpinToolsOnButton 
	local script = Instance.new('LocalScript', TextButton_3)

	local Players = game:GetService("Players")
	local RunService = game:GetService("RunService")
	
	local button = script.Parent
	
	local spinConn = nil
	local spinning = false
	local tools = {}
	local originalGrips = {}
	
	local function stopSpinning()
	    spinning = false
	    if spinConn then
	        spinConn:Disconnect()
	        spinConn = nil
	    end
	    -- Restore original grips
	    for i = 1, #tools do
	        if tools[i] and originalGrips[i] then
	            tools[i].Grip = originalGrips[i]
	        end
	    end
	    tools = {}
	    originalGrips = {}
	end
	
	local function startSpinning(character)
	    local player = Players.LocalPlayer
	    local backpack = player:FindFirstChild("Backpack")
	    if not backpack or not character then return end
	
	    -- Gather all tools in backpack
	    tools = {}
	    for i = 1, #backpack:GetChildren() do
	        local tool = backpack:GetChildren()[i]
	        if tool:IsA("Tool") then
	            table.insert(tools, tool)
	        end
	    end
	
	    if #tools == 0 then return end
	
	    -- Equip all tools
	    for i = 1, #tools do
	        tools[i].Parent = character
	    end
	
	    -- Spinning parameters
	    local radiusBase = 1
	    local radius = radiusBase + (#tools - 1) * 2
	    local spinSpeed = 6 -- radians per second
	
	    -- Store original Grips to restore later if needed
	    originalGrips = {}
	    for i = 1, #tools do
	        originalGrips[i] = tools[i].Grip
	    end
	
	    -- All tools face down
	    local downCFrame = CFrame.Angles(math.rad(90), 0, 0)
	
	    spinning = true
	    local startTime = tick()
	
	    local function updateSpin()
	        if not spinning then return end
	        local now = tick()
	        local elapsed = now - startTime
	        local root = character:FindFirstChild("HumanoidRootPart")
	        if not root then return end
	
	        for i = 1, #tools do
	            local angle = elapsed * spinSpeed + (2 * math.pi * (i-1) / #tools)
	            local offset = Vector3.new(math.cos(angle) * radius, 0, math.sin(angle) * radius)
	            -- Set tool grip so it orbits around the HumanoidRootPart and faces down
	            tools[i].Grip = downCFrame * CFrame.new(offset)
	        end
	    end
	
	    -- Connect to RenderStepped for smooth spinning
	    if spinConn then
	        spinConn:Disconnect()
	    end
	    spinConn = RunService.RenderStepped:Connect(function()
	        if spinning then
	            updateSpin()
	        else
	            if spinConn then
	                spinConn:Disconnect()
	                spinConn = nil
	            end
	        end
	    end)
	end
	
	button.Activated:Connect(function()
	    local player = Players.LocalPlayer
	    local character = player.Character or player.CharacterAdded:Wait()
	    startSpinning(character)
	
	    -- Listen for death/reset
	    local humanoid = character:FindFirstChildOfClass("Humanoid")
	    if humanoid then
	        humanoid.Died:Connect(function()
	            stopSpinning()
	        end)
	    end
	
	    -- Also listen for character respawn
	    player.CharacterAdded:Connect(function(newChar)
	        stopSpinning()
	    end)
	end)
	
	
end
coroutine.wrap(QGZXPBZ_fake_script)()
local function FFKKXPF_fake_script() -- TextButton_4.SpinToolsOnButton 
	local script = Instance.new('LocalScript', TextButton_4)

	local Players = game:GetService("Players")
	local RunService = game:GetService("RunService")
	
	local button = script.Parent
	
	button.Activated:Connect(function()
	    local player = Players.LocalPlayer
	    local character = player.Character or player.CharacterAdded:Wait()
	    local backpack = player:FindFirstChild("Backpack")
	    if not backpack or not character then return end
	
	    -- Gather all tools in backpack
	    local tools = {}
	    local backpackChildren = backpack:GetChildren()
	    for i = 1, #backpackChildren do
	        local tool = backpackChildren[i]
	        if tool:IsA("Tool") then
	            table.insert(tools, tool)
	        end
	    end
	
	    if #tools == 0 then return end
	
	    -- Equip all tools
	    for i = 1, #tools do
	        tools[i].Parent = character
	    end
	
	    -- Multi-circle parameters
	    local radiusBase = 3
	    local radiusStep = 3
	    local spinSpeed = 6 -- radians per second
	    local maxPerCircle = 8
	
	    -- Store original Grips to restore later if needed
	    local originalGrips = {}
	    for i = 1, #tools do
	        originalGrips[i] = tools[i].Grip
	    end
	
	    -- All tools face down
	    local downCFrame = CFrame.Angles(math.rad(90), 0, 0)
	
	    -- Assign tools to circles
	    local circles = {}
	    local toolIndex = 1
	    local totalTools = #tools
	    while toolIndex <= totalTools do
	        local circleTools = {}
	        for j = 1, maxPerCircle do
	            if toolIndex > totalTools then break end
	            table.insert(circleTools, tools[toolIndex])
	            toolIndex = toolIndex + 1
	        end
	        table.insert(circles, circleTools)
	    end
	
	    -- Start spinning
	    local spinning = true
	    local startTime = tick()
	
	    local function updateSpin()
	        if not spinning then return end
	        local now = tick()
	        local elapsed = now - startTime
	        local root = character:FindFirstChild("HumanoidRootPart")
	        if not root then return end
	
	        local rootCFrame = root.CFrame
	
	        local toolNum = 1
	        for circleIndex = 1, #circles do
	            local circleTools = circles[circleIndex]
	            local numInCircle = #circleTools
	            local radius = radiusBase + (circleIndex - 1) * radiusStep
	            for i = 1, numInCircle do
	                local angle = elapsed * spinSpeed + (2 * math.pi * (i-1) / numInCircle)
	                local offset = Vector3.new(math.cos(angle) * radius, 0, math.sin(angle) * radius)
	                -- Set tool grip so it orbits around the HumanoidRootPart and faces down
	                circleTools[i].Grip = rootCFrame:ToObjectSpace(CFrame.new(root.Position + offset)) * downCFrame
	                toolNum = toolNum + 1
	            end
	        end
	    end
	
	    -- Connect to RenderStepped for smooth spinning
	    local spinConn
	    spinConn = RunService.RenderStepped:Connect(function()
	        if spinning then
	            updateSpin()
	        else
	            if spinConn then
	                spinConn:Disconnect()
	            end
	        end
	    end)
	
	    -- Listen for death to reset spinning
	    local humanoid = character:FindFirstChild("Humanoid")
	    local diedConn
	    if humanoid then
	        diedConn = humanoid.Died:Connect(function()
	            spinning = false
	            -- Restore original grips
	            for i = 1, #tools do
	                if tools[i] and originalGrips[i] then
	                    tools[i].Grip = originalGrips[i]
	                end
	            end
	            -- Disconnect spinning connection
	            if spinConn then
	                spinConn:Disconnect()
	            end
	            -- Disconnect death connection
	            if diedConn then
	                diedConn:Disconnect()
	            end
	        end)
	    end
	
	    -- Optional: Stop spinning after a certain time or on unequip
	    --[[
	    task.wait(10)
	    spinning = false
	    -- Restore original grips
	    for i = 1, #tools do
	        tools[i].Grip = originalGrips[i]
	    end
	    ]]
	end)
	
	
end
coroutine.wrap(FFKKXPF_fake_script)()
local function KVJNXT_fake_script() -- Frame.Drag 
	local script = Instance.new('LocalScript', Frame)

	local UserInputService = game:GetService("UserInputService")
	
	local gui = script.Parent
	
	local dragging
	local dragInput
	local dragStart
	local startPos
	
	local function update(input)
		local delta = input.Position - dragStart
		gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end
	
	gui.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = gui.Position
			
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)
	
	gui.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)
	
	UserInputService.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			update(input)
		end
	end)
end
coroutine.wrap(KVJNXT_fake_script)()

Features & Information

A GUI that misplaces grips of tools to make a certain contraption out of them.

Community Comments (7)

admin123admin123Dec 26, 2025

open source because im lazy to obfuscate😎

StrongestBobEverStrongestBobEverJan 7, 2026

MAKE MOREEEEEE

StrongestBobEverStrongestBobEverJan 7, 2026

Also theres some bugs... when u do like wrath and aura U cant unselect it in xeno

Replying to @StrongestBobEver
admin123admin123Jan 18, 2026

@StrongestBobEver unfortunately, thats just my terrible coding skills

Replying to @admin123
StrongestBobEverStrongestBobEverJan 19, 2026

@admin123 ah

SmiffySmiffyJan 27, 2026

Pls make more

admin123admin123Feb 2, 2026

part 2 coming soon:)

More Scripts for Universal Scripts