local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local gui = Instance.new("ScreenGui", LocalPlayer:WaitForChild("PlayerGui")) gui.Name = ".gg/zzzzhub" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true local frame = Instance.new("Frame", gui) frame.Size = UDim2.fromScale(0.18, 0.09) frame.Position = UDim2.fromScale(0.02, 0.15) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BackgroundTransparency = 0.1 Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 12) Instance.new("UIStroke", frame).Color = Color3.fromRGB(100, 100, 100) local title = Instance.new("TextLabel", frame) title.Size = UDim2.fromScale(1, 0.4) title.BackgroundColor3 = Color3.fromRGB(20, 20, 20) title.Text = "zzzz's tool spinner discord.gg/zzzzhub" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 9.6 title.TextScaled = true title.Font = Enum.Font.GothamBold Instance.new("UICorner", title).CornerRadius = UDim.new(0, 12) local button = Instance.new("TextButton", frame) button.Size = UDim2.fromScale(0.9, 0.5) button.Position = UDim2.fromScale(0.05, 0.45) button.BackgroundColor3 = Color3.fromRGB(200, 50, 50) button.Text = "Orbit: OFF" button.TextColor3 = Color3.fromRGB(255, 255, 255) button.TextSize = 8.4 button.TextScaled = true button.Font = Enum.Font.GothamBold Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6) -- Dragging (Touch-Compatible) local dragging, dragInput, dragStart, startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.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 frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + (input.Position - dragStart).X, startPos.Y.Scale, startPos.Y.Offset + (input.Position - dragStart).Y) end end) -- Orbit Logic local orbitActive = false local orbitConnection, reequipConnection local orbitRadius, orbitSpeed, orbitHeight, reequipSpeed = 16, 1, 0, 0.75 button.MouseButton1Click:Connect(function() orbitActive = not orbitActive button.Text = "Orbit: " .. (orbitActive and "ON" or "OFF") button.BackgroundColor3 = orbitActive and Color3.fromRGB(50, 200, 50) or Color3.fromRGB(200, 50, 50) if orbitActive then for _, tool in ipairs(LocalPlayer.Backpack:GetChildren()) do if tool:IsA("Tool") and tool.Name ~= "Medusa's Head" and tool.Name ~= "Flying Carpet" then tool.RequiresHandle = false tool.ManualActivationOnly = true tool.Parent = LocalPlayer.Character end end task.wait(0.1) local tools = {} for _, tool in ipairs(LocalPlayer.Character:GetChildren()) do if tool:IsA("Tool") then table.insert(tools, tool) end end local angle = 0 orbitConnection = RunService.Heartbeat:Connect(function(dt) angle = angle + (orbitSpeed * dt) for i, tool in ipairs(tools) do if tool and tool.Parent == LocalPlayer.Character then local toolAngle = angle + ((i - 1) * (math.pi * 2 / #tools)) tool.Grip = CFrame.new(math.cos(toolAngle) * orbitRadius, orbitHeight, math.sin(toolAngle) * orbitRadius) * CFrame.Angles(0, angle * 2, 0) end end end) local reequipTimer = 0 reequipConnection = RunService.Heartbeat:Connect(function(dt) reequipTimer = reequipTimer + dt if reequipTimer >= reequipSpeed and LocalPlayer.Character then reequipTimer = 0 for _, tool in ipairs(LocalPlayer.Character:GetChildren()) do if tool:IsA("Tool") then