local player = game.Players.LocalPlayer local screenGui = Instance.new('ScreenGui', player:WaitForChild('PlayerGui')) -- Get the upgrade remotes local UpgradeEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('Upgrade') local GemUpgradeEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('GemUpgrade') local PerkEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('Perk') local MachinePowerEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('MachinePower') local RollRuneEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('RollRune') local CreateRuneEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('CreateRune') local MineEvent = game:GetService('ReplicatedStorage'):WaitForChild('Events'):WaitForChild('Mine') -- ---------- Main Frame ---------- local mainFrame = Instance.new('Frame', screenGui) mainFrame.Size = UDim2.new(0, 300, 0, 670) mainFrame.Position = UDim2.new(0.5, -150, 0.1, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Visible = false local corner = Instance.new('UICorner', mainFrame) corner.CornerRadius = UDim.new(0, 12) local grad = Instance.new('UIGradient', mainFrame) grad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 50, 120)), ColorSequenceKeypoint.new(1, Color3.fromRGB(50, 30, 80)), }) grad.Rotation = 90 -- Title local title = Instance.new('TextLabel', mainFrame) title.Size = UDim2.new(1, -60, 0, 35) title.Position = UDim2.new(0, 0, 0, 5) title.Text = '[🌌] Space Toolbox' title.Font = Enum.Font.Cartoon title.TextSize = 22 title.TextColor3 = Color3.fromRGB(255, 255, 255) title.BackgroundTransparency = 1 -- Minimize Button local minimizeBtn = Instance.new('TextButton', mainFrame) minimizeBtn.Size = UDim2.new(0, 25, 0, 25) minimizeBtn.Position = UDim2.new(0, 5, 0, 10) minimizeBtn.Text = '_' minimizeBtn.Font = Enum.Font.Cartoon minimizeBtn.TextSize = 24 minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) minimizeBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 0) local minCorner = Instance.new('UICorner', minimizeBtn) minCorner.CornerRadius = UDim.new(0, 6) -- Close Button local closeBtn = Instance.new('TextButton', mainFrame) closeBtn.Size = UDim2.new(0, 25, 0, 25) closeBtn.Position = UDim2.new(1, -30, 0, 10) closeBtn.Text = 'X' closeBtn.Font = Enum.Font.Cartoon closeBtn.TextSize = 18 closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) local closeCorner = Instance.new('UICorner', closeBtn) closeCorner.CornerRadius = UDim.new(0, 6) -- Upgrade Status Label (Essence) local upgradeStatusLabel = Instance.new('TextLabel', mainFrame) upgradeStatusLabel.Size = UDim2.new(1, -20, 0, 18) upgradeStatusLabel.Position = UDim2.new(0, 10, 0, 45) upgradeStatusLabel.Text = 'Essence Status: OFF' upgradeStatusLabel.Font = Enum.Font.Code upgradeStatusLabel.TextSize = 14 upgradeStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) upgradeStatusLabel.BackgroundTransparency = 1 upgradeStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Essence Upgrades Button local upgradesBtn = Instance.new('TextButton', mainFrame) upgradesBtn.Size = UDim2.new(0, 270, 0, 35) upgradesBtn.Position = UDim2.new(0.5, -135, 0, 68) upgradesBtn.Text = 'START ESSENCE UPGRADES' upgradesBtn.Font = Enum.Font.Cartoon upgradesBtn.TextSize = 18 upgradesBtn.TextColor3 = Color3.fromRGB(255, 255, 255) upgradesBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 200) local upgradesBtnCorner = Instance.new('UICorner', upgradesBtn) upgradesBtnCorner.CornerRadius = UDim.new(0, 8) local upgradesBtnGrad = Instance.new('UIGradient', upgradesBtn) upgradesBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 180, 240)), }) upgradesBtnGrad.Rotation = 90 -- Diamond Upgrade Status Label local diamondStatusLabel = Instance.new('TextLabel', mainFrame) diamondStatusLabel.Size = UDim2.new(1, -20, 0, 18) diamondStatusLabel.Position = UDim2.new(0, 10, 0, 110) diamondStatusLabel.Text = 'Diamond Status: OFF' diamondStatusLabel.Font = Enum.Font.Code diamondStatusLabel.TextSize = 14 diamondStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) diamondStatusLabel.BackgroundTransparency = 1 diamondStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Diamond Upgrades Button local diamondBtn = Instance.new('TextButton', mainFrame) diamondBtn.Size = UDim2.new(0, 270, 0, 35) diamondBtn.Position = UDim2.new(0.5, -135, 0, 133) diamondBtn.Text = 'START DIAMOND UPGRADES' diamondBtn.Font = Enum.Font.Cartoon diamondBtn.TextSize = 17 diamondBtn.TextColor3 = Color3.fromRGB(255, 255, 255) diamondBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 200) local diamondBtnCorner = Instance.new('UICorner', diamondBtn) diamondBtnCorner.CornerRadius = UDim.new(0, 8) local diamondBtnGrad = Instance.new('UIGradient', diamondBtn) diamondBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 220, 255)), }) diamondBtnGrad.Rotation = 90 -- Perk Status Label local perkStatusLabel = Instance.new('TextLabel', mainFrame) perkStatusLabel.Size = UDim2.new(1, -20, 0, 18) perkStatusLabel.Position = UDim2.new(0, 10, 0, 175) perkStatusLabel.Text = 'Perk Status: OFF' perkStatusLabel.Font = Enum.Font.Code perkStatusLabel.TextSize = 14 perkStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) perkStatusLabel.BackgroundTransparency = 1 perkStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Automate Perks Button local perkBtn = Instance.new('TextButton', mainFrame) perkBtn.Size = UDim2.new(0, 235, 0, 35) perkBtn.Position = UDim2.new(0, 15, 0, 198) perkBtn.Text = 'AUTOMATE PERKS' perkBtn.Font = Enum.Font.Cartoon perkBtn.TextSize = 17 perkBtn.TextColor3 = Color3.fromRGB(255, 255, 255) perkBtn.BackgroundColor3 = Color3.fromRGB(120, 50, 150) local perkBtnCorner = Instance.new('UICorner', perkBtn) perkBtnCorner.CornerRadius = UDim.new(0, 8) local perkBtnGrad = Instance.new('UIGradient', perkBtn) perkBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 50, 150)), ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 100, 220)), }) perkBtnGrad.Rotation = 90 -- Help Icon Button local helpBtn = Instance.new('TextButton', mainFrame) helpBtn.Size = UDim2.new(0, 30, 0, 35) helpBtn.Position = UDim2.new(0, 255, 0, 198) helpBtn.Text = '?' helpBtn.Font = Enum.Font.Cartoon helpBtn.TextSize = 24 helpBtn.TextColor3 = Color3.fromRGB(255, 255, 255) helpBtn.BackgroundColor3 = Color3.fromRGB(100, 50, 130) local helpBtnCorner = Instance.new('UICorner', helpBtn) helpBtnCorner.CornerRadius = UDim.new(0, 8) -- Tooltip Frame (initially hidden) local tooltipFrame = Instance.new('Frame', screenGui) tooltipFrame.Size = UDim2.new(0, 300, 0, 60) tooltipFrame.Position = UDim2.new(0, 0, 0, 0) tooltipFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) tooltipFrame.BorderSizePixel = 1 tooltipFrame.BorderColor3 = Color3.fromRGB(120, 120, 120) tooltipFrame.Visible = false tooltipFrame.ZIndex = 100 local tooltipCorner = Instance.new('UICorner', tooltipFrame) tooltipCorner.CornerRadius = UDim.new(0, 8) local tooltipText = Instance.new('TextLabel', tooltipFrame) tooltipText.Size = UDim2.new(1, -20, 1, -20) tooltipText.Position = UDim2.new(0, 10, 0, 10) tooltipText.Text = 'Only upgrades Essence, Faster Spawn, Double Spawn, And Essence II in that order' tooltipText.Font = Enum.Font.Code tooltipText.TextSize = 13 tooltipText.TextColor3 = Color3.fromRGB(255, 255, 255) tooltipText.BackgroundTransparency = 1 tooltipText.TextWrapped = true tooltipText.TextXAlignment = Enum.TextXAlignment.Left tooltipText.TextYAlignment = Enum.TextYAlignment.Top tooltipText.ZIndex = 101 -- Divider Line local divider = Instance.new('Frame', mainFrame) divider.Size = UDim2.new(1, -40, 0, 2) divider.Position = UDim2.new(0, 20, 0, 243) divider.BackgroundColor3 = Color3.fromRGB(100, 100, 150) divider.BorderSizePixel = 0 -- Farm Status Label local farmStatusLabel = Instance.new('TextLabel', mainFrame) farmStatusLabel.Size = UDim2.new(1, -20, 0, 18) farmStatusLabel.Position = UDim2.new(0, 10, 0, 253) farmStatusLabel.Text = 'Farm Status: OFF' farmStatusLabel.Font = Enum.Font.Code farmStatusLabel.TextSize = 14 farmStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) farmStatusLabel.BackgroundTransparency = 1 farmStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Start Essence Farm Button local farmBtn = Instance.new('TextButton', mainFrame) farmBtn.Size = UDim2.new(0, 270, 0, 40) farmBtn.Position = UDim2.new(0.5, -135, 0, 276) farmBtn.Text = 'START ESSENCE FARM' farmBtn.Font = Enum.Font.Cartoon farmBtn.TextSize = 18 farmBtn.TextColor3 = Color3.fromRGB(255, 255, 255) farmBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) local farmBtnCorner = Instance.new('UICorner', farmBtn) farmBtnCorner.CornerRadius = UDim.new(0, 8) local farmBtnGrad = Instance.new('UIGradient', farmBtn) farmBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 200, 0)), }) farmBtnGrad.Rotation = 90 -- Mining Status Label local miningStatusLabel = Instance.new('TextLabel', mainFrame) miningStatusLabel.Size = UDim2.new(1, -20, 0, 18) miningStatusLabel.Position = UDim2.new(0, 10, 0, 323) miningStatusLabel.Text = 'Mining Status: OFF' miningStatusLabel.Font = Enum.Font.Code miningStatusLabel.TextSize = 14 miningStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) miningStatusLabel.BackgroundTransparency = 1 miningStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Start Mining Button local miningBtn = Instance.new('TextButton', mainFrame) miningBtn.Size = UDim2.new(0, 270, 0, 40) miningBtn.Position = UDim2.new(0.5, -135, 0, 346) miningBtn.Text = 'START MINING' miningBtn.Font = Enum.Font.Cartoon miningBtn.TextSize = 18 miningBtn.TextColor3 = Color3.fromRGB(255, 255, 255) miningBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) local miningBtnCorner = Instance.new('UICorner', miningBtn) miningBtnCorner.CornerRadius = UDim.new(0, 8) local miningBtnGrad = Instance.new('UIGradient', miningBtn) miningBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 0, 0)), }) miningBtnGrad.Rotation = 90 -- Volts Status Label local voltsStatusLabel = Instance.new('TextLabel', mainFrame) voltsStatusLabel.Size = UDim2.new(1, -20, 0, 18) voltsStatusLabel.Position = UDim2.new(0, 10, 0, 393) voltsStatusLabel.Text = 'Volts Status: OFF' voltsStatusLabel.Font = Enum.Font.Code voltsStatusLabel.TextSize = 14 voltsStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) voltsStatusLabel.BackgroundTransparency = 1 voltsStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Automate Volts Button local voltsBtn = Instance.new('TextButton', mainFrame) voltsBtn.Size = UDim2.new(0, 270, 0, 40) voltsBtn.Position = UDim2.new(0.5, -135, 0, 416) voltsBtn.Text = 'AUTOMATE VOLTS' voltsBtn.Font = Enum.Font.Cartoon voltsBtn.TextSize = 18 voltsBtn.TextColor3 = Color3.fromRGB(255, 255, 255) voltsBtn.BackgroundColor3 = Color3.fromRGB(165, 145, 110) local voltsBtnCorner = Instance.new('UICorner', voltsBtn) voltsBtnCorner.CornerRadius = UDim.new(0, 8) local voltsBtnGrad = Instance.new('UIGradient', voltsBtn) voltsBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(165, 145, 110)), ColorSequenceKeypoint.new(1, Color3.fromRGB(195, 175, 140)), }) voltsBtnGrad.Rotation = 90 -- Rune Status Label local runeStatusLabel = Instance.new('TextLabel', mainFrame) runeStatusLabel.Size = UDim2.new(1, -20, 0, 18) runeStatusLabel.Position = UDim2.new(0, 10, 0, 463) runeStatusLabel.Text = 'Rune Status: OFF' runeStatusLabel.Font = Enum.Font.Code runeStatusLabel.TextSize = 14 runeStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) runeStatusLabel.BackgroundTransparency = 1 runeStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Open Stardust Button (Left) local openRuneBtn = Instance.new('TextButton', mainFrame) openRuneBtn.Size = UDim2.new(0, 130, 0, 35) openRuneBtn.Position = UDim2.new(0, 15, 0, 486) openRuneBtn.Text = 'OPEN STARDUST' openRuneBtn.Font = Enum.Font.Cartoon openRuneBtn.TextSize = 14 openRuneBtn.TextColor3 = Color3.fromRGB(255, 255, 255) openRuneBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 200) local openRuneBtnCorner = Instance.new('UICorner', openRuneBtn) openRuneBtnCorner.CornerRadius = UDim.new(0, 8) local openRuneBtnGrad = Instance.new('UIGradient', openRuneBtn) openRuneBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 150, 220)), }) openRuneBtnGrad.Rotation = 90 -- Create Rune Button (Right) local createRuneBtn = Instance.new('TextButton', mainFrame) createRuneBtn.Size = UDim2.new(0, 130, 0, 35) createRuneBtn.Position = UDim2.new(0, 155, 0, 486) createRuneBtn.Text = 'CREATE STARDUST' createRuneBtn.Font = Enum.Font.Cartoon createRuneBtn.TextSize = 13 createRuneBtn.TextColor3 = Color3.fromRGB(255, 255, 255) createRuneBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 200) local createRuneBtnCorner = Instance.new('UICorner', createRuneBtn) createRuneBtnCorner.CornerRadius = UDim.new(0, 8) local createRuneBtnGrad = Instance.new('UIGradient', createRuneBtn) createRuneBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 150, 220)), }) createRuneBtnGrad.Rotation = 90 -- Deep Rune Status Label local deepRuneStatusLabel = Instance.new('TextLabel', mainFrame) deepRuneStatusLabel.Size = UDim2.new(1, -20, 0, 18) deepRuneStatusLabel.Position = UDim2.new(0, 10, 0, 528) deepRuneStatusLabel.Text = 'Deep Rune Status: OFF' deepRuneStatusLabel.Font = Enum.Font.Code deepRuneStatusLabel.TextSize = 14 deepRuneStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) deepRuneStatusLabel.BackgroundTransparency = 1 deepRuneStatusLabel.TextXAlignment = Enum.TextXAlignment.Left -- Open Deep Button (Left) local openDeepBtn = Instance.new('TextButton', mainFrame) openDeepBtn.Size = UDim2.new(0, 130, 0, 35) openDeepBtn.Position = UDim2.new(0, 15, 0, 551) openDeepBtn.Text = 'OPEN DEEP' openDeepBtn.Font = Enum.Font.Cartoon openDeepBtn.TextSize = 14 openDeepBtn.TextColor3 = Color3.fromRGB(255, 255, 255) openDeepBtn.BackgroundColor3 = Color3.fromRGB(80, 30, 120) local openDeepBtnCorner = Instance.new('UICorner', openDeepBtn) openDeepBtnCorner.CornerRadius = UDim.new(0, 8) local openDeepBtnGrad = Instance.new('UIGradient', openDeepBtn) openDeepBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 30, 120)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 60, 160)), }) openDeepBtnGrad.Rotation = 90 -- Create Deep Button (Right) local createDeepBtn = Instance.new('TextButton', mainFrame) createDeepBtn.Size = UDim2.new(0, 130, 0, 35) createDeepBtn.Position = UDim2.new(0, 155, 0, 551) createDeepBtn.Text = 'CREATE DEEP' createDeepBtn.Font = Enum.Font.Cartoon createDeepBtn.TextSize = 14 createDeepBtn.TextColor3 = Color3.fromRGB(255, 255, 255) createDeepBtn.BackgroundColor3 = Color3.fromRGB(80, 30, 120) local createDeepBtnCorner = Instance.new('UICorner', createDeepBtn) createDeepBtnCorner.CornerRadius = UDim.new(0, 8) local createDeepBtnGrad = Instance.new('UIGradient', createDeepBtn) createDeepBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 30, 120)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 60, 160)), }) createDeepBtnGrad.Rotation = 90 -- Toggle All Button local toggleAllBtn = Instance.new('TextButton', mainFrame) toggleAllBtn.Size = UDim2.new(0, 270, 0, 35) toggleAllBtn.Position = UDim2.new(0.5, -135, 0, 596) toggleAllBtn.Text = 'TOGGLE ALL SYSTEMS' toggleAllBtn.Font = Enum.Font.Cartoon toggleAllBtn.TextSize = 16 toggleAllBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleAllBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) local toggleAllBtnCorner = Instance.new('UICorner', toggleAllBtn) toggleAllBtnCorner.CornerRadius = UDim.new(0, 8) local toggleAllBtnGrad = Instance.new('UIGradient', toggleAllBtn) toggleAllBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(70, 70, 70)), ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 100, 100)), }) toggleAllBtnGrad.Rotation = 90 -- Open Button (shows when minimized) local openBtn = Instance.new('TextButton', screenGui) openBtn.Size = UDim2.new(0, 180, 0, 50) openBtn.Position = UDim2.new(0.5, -90, 0.05, 0) openBtn.Text = '[🌌] Space Toolbox' openBtn.Font = Enum.Font.Cartoon openBtn.TextSize = 18 openBtn.TextColor3 = Color3.fromRGB(255, 255, 255) openBtn.BackgroundColor3 = Color3.fromRGB(80, 50, 120) openBtn.Active = true openBtn.Draggable = true local openCorner = Instance.new('UICorner', openBtn) openCorner.CornerRadius = UDim.new(0, 10) local openGrad = Instance.new('UIGradient', openBtn) openGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 50, 120)), ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 70, 140)), }) openGrad.Rotation = 90 -- ---------- Functionality ---------- local farmRunning = false local upgradesRunning = false local diamondUpgradesRunning = false local perkRunning = false local voltsRunning = false local openRuneRunning = false local createRuneRunning = false local miningRunning = false local openDeepRunning = false local createDeepRunning = false local function getObjects() local objectsFolder = workspace:FindFirstChild('Objects') if not objectsFolder then return {} end local objects = {} for _, obj in ipairs(objectsFolder:GetChildren()) do if tonumber(obj.Name) then table.insert(objects, obj) end end return objects end local function farmLoop() while farmRunning do local character = player.Character if character and character:FindFirstChild('HumanoidRootPart') then local objects = getObjects() if #objects == 0 then farmStatusLabel.Text = 'Farm Status: RUNNING' farmStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.wait(1) else for _, obj in ipairs(objects) do if not farmRunning then break end pcall(function() if obj:IsA('BasePart') then character.HumanoidRootPart.CFrame = obj.CFrame elseif obj:IsA('Model') then local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA('BasePart') if part then character.HumanoidRootPart.CFrame = part.CFrame end end end) task.wait(0.01) end end end task.wait(0.01) end end -- Auto Upgrade Loop local function upgradeLoop() local upgradeLimits = { [1] = 50, [2] = 9, [3] = 90, [4] = 50 } while upgradesRunning do local stats = player:WaitForChild('Stats') local allMaxed = true -- Check each upgrade and only fire if not maxed for i = 1, 4 do if not upgradesRunning then break end local upgradeStat = stats:FindFirstChild('Upgrade' .. i) if upgradeStat then local currentValue = upgradeStat.Value local maxValue = upgradeLimits[i] -- Only fire if not at max if currentValue < maxValue then allMaxed = false pcall(function() UpgradeEvent:FireServer(i, true) end) task.wait(0.05) end end end -- If all upgrades are maxed, stop the loop if allMaxed then upgradesRunning = false upgradesBtn.Text = 'MAXED' upgradesBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) upgradesBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 120, 120)), }) upgradesBtn.Active = false -- Disable the button upgradeStatusLabel.Text = 'Essence Status: ALL MAXED!' upgradeStatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0) break end task.wait(0.1) end end -- Diamond Upgrade Loop local function diamondUpgradeLoop() local upgradeLimits = { [1] = 15, [2] = 50, [3] = 98, [4] = 98 } while diamondUpgradesRunning do local stats = player:WaitForChild('Stats') local allMaxed = true -- Check each upgrade and only fire if not maxed for i = 1, 4 do if not diamondUpgradesRunning then break end local upgradeStat = stats:FindFirstChild('GemUpgrade' .. i) if upgradeStat then local currentValue = upgradeStat.Value local maxValue = upgradeLimits[i] -- Only fire if not at max if currentValue < maxValue then allMaxed = false pcall(function() GemUpgradeEvent:FireServer(i, false) end) task.wait(0.05) end end end -- If all upgrades are maxed, stop the loop if allMaxed then diamondUpgradesRunning = false diamondBtn.Text = 'MAXED' diamondBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) diamondBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 120, 120)), }) diamondBtn.Active = false -- Disable the button diamondStatusLabel.Text = 'Diamond Status: ALL MAXED!' diamondStatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0) break end task.wait(0.1) end end -- Perk Upgrade Loop (Sequential) local function perkUpgradeLoop() local perkSequence = { {id = 1, max = 10, name = "Essence"}, {id = 2, max = 10, name = "Faster Spawn"}, {id = 6, max = 1, name = "Double Spawn"}, {id = 5, max = 90, name = "Essence II"} } while perkRunning do local stats = player:WaitForChild('Stats') local allMaxed = true -- Go through perks in sequence for _, perk in ipairs(perkSequence) do if not perkRunning then break end local perkStat = stats:FindFirstChild('Perk' .. perk.id) if perkStat then local currentValue = perkStat.Value -- Keep upgrading this perk until it's maxed while perkRunning and currentValue < perk.max do pcall(function() PerkEvent:FireServer(perk.id, true) end) task.wait(0.1) currentValue = perkStat.Value end -- If this perk didn't reach max, not all are maxed if currentValue < perk.max then allMaxed = false break end end end -- If all perks are maxed, stop the loop if allMaxed then perkRunning = false perkBtn.Text = 'MAXED' perkBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) perkBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 120, 120)), }) perkBtn.Active = false perkStatusLabel.Text = 'Perk Status: ALL MAXED!' perkStatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0) break end task.wait(0.1) end end -- Volts Loop local function voltsLoop() while voltsRunning do pcall(function() MachinePowerEvent:FireServer() end) task.wait(0.1) -- Fire 10 times per second end end -- Open Rune Loop local function openRuneLoop() while openRuneRunning do pcall(function() RollRuneEvent:FireServer(1) end) task.wait(0.03) -- Faster: ~33 times per second end end -- Create Rune Loop local function createRuneLoop() while createRuneRunning do pcall(function() CreateRuneEvent:FireServer(1) end) task.wait(0.03) -- Faster: ~33 times per second end end -- Mining Loop local function miningLoop() while miningRunning do pcall(function() MineEvent:FireServer() end) task.wait(0.05) -- Faster: 20 times per second end end -- Open Deep Rune Loop local function openDeepLoop() while openDeepRunning do pcall(function() RollRuneEvent:FireServer(2) end) task.wait(0.03) -- Faster: ~33 times per second end end -- Create Deep Rune Loop local function createDeepLoop() while createDeepRunning do pcall(function() CreateRuneEvent:FireServer(2) end) task.wait(0.03) -- Faster: ~33 times per second end end -- Button Handlers local dragging, mouseDown = false, nil openBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then mouseDown = input.Position dragging = false end end) openBtn.InputChanged:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) and mouseDown then if (input.Position - mouseDown).Magnitude > 3 then dragging = true end end end) openBtn.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then mouseDown = nil end end) openBtn.MouseButton1Click:Connect(function() if not dragging then mainFrame.Visible = true openBtn.Visible = false end end) minimizeBtn.MouseButton1Click:Connect(function() mainFrame.Visible = false openBtn.Visible = true end) closeBtn.MouseButton1Click:Connect(function() -- Stop all running loops farmRunning = false upgradesRunning = false diamondUpgradesRunning = false perkRunning = false voltsRunning = false openRuneRunning = false createRuneRunning = false miningRunning = false openDeepRunning = false createDeepRunning = false -- Wait a moment for loops to stop task.wait(0.2) -- Destroy the GUI screenGui:Destroy() end) -- Essence Upgrades Button Handler upgradesBtn.MouseButton1Click:Connect(function() -- Check if all upgrades are maxed local stats = player:WaitForChild('Stats') local upgradeLimits = { [1] = 50, [2] = 9, [3] = 90, [4] = 50 } local allMaxed = true for i = 1, 4 do local upgradeStat = stats:FindFirstChild('Upgrade' .. i) if upgradeStat and upgradeStat.Value < upgradeLimits[i] then allMaxed = false break end end -- If maxed, don't allow toggling if allMaxed then upgradesBtn.Text = 'MAXED' upgradesBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) upgradesBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 120, 120)), }) upgradesBtn.Active = false upgradeStatusLabel.Text = 'Essence Status: ALL MAXED!' upgradeStatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0) return end upgradesRunning = not upgradesRunning if upgradesRunning then upgradesBtn.Text = 'STOP ESSENCE UPGRADES' upgradesBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) upgradesBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) upgradeStatusLabel.Text = 'Essence Status: RUNNING' upgradeStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.spawn(upgradeLoop) else upgradesBtn.Text = 'START ESSENCE UPGRADES' upgradesBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 200) upgradesBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 180, 240)), }) upgradeStatusLabel.Text = 'Essence Status: OFF' upgradeStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Diamond Upgrades Button Handler diamondBtn.MouseButton1Click:Connect(function() -- Check if all diamond upgrades are maxed local stats = player:WaitForChild('Stats') local upgradeLimits = { [1] = 15, [2] = 50, [3] = 98, [4] = 98 } local allMaxed = true for i = 1, 4 do local upgradeStat = stats:FindFirstChild('GemUpgrade' .. i) if upgradeStat and upgradeStat.Value < upgradeLimits[i] then allMaxed = false break end end -- If maxed, don't allow toggling if allMaxed then diamondBtn.Text = 'MAXED' diamondBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) diamondBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 120, 120)), }) diamondBtn.Active = false diamondStatusLabel.Text = 'Diamond Status: ALL MAXED!' diamondStatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0) return end diamondUpgradesRunning = not diamondUpgradesRunning if diamondUpgradesRunning then diamondBtn.Text = 'STOP DIAMOND UPGRADES' diamondBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) diamondBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) diamondStatusLabel.Text = 'Diamond Status: RUNNING' diamondStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.spawn(diamondUpgradeLoop) else diamondBtn.Text = 'START DIAMOND UPGRADES' diamondBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 200) diamondBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 220, 255)), }) diamondStatusLabel.Text = 'Diamond Status: OFF' diamondStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Help Button Hover (Tooltip) helpBtn.MouseEnter:Connect(function() tooltipFrame.Visible = true -- Position tooltip near the help button local buttonPos = helpBtn.AbsolutePosition tooltipFrame.Position = UDim2.new(0, buttonPos.X - 250, 0, buttonPos.Y - 60) end) helpBtn.MouseLeave:Connect(function() tooltipFrame.Visible = false end) -- Automate Perks Button Handler perkBtn.MouseButton1Click:Connect(function() -- Check if all perks are maxed local stats = player:WaitForChild('Stats') local perkLimits = { [1] = 10, [2] = 10, [6] = 1, [5] = 90 } local allMaxed = true for perkId, maxVal in pairs(perkLimits) do local perkStat = stats:FindFirstChild('Perk' .. perkId) if perkStat and perkStat.Value < maxVal then allMaxed = false break end end -- If maxed, don't allow toggling if allMaxed then perkBtn.Text = 'MAXED' perkBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) perkBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 120, 120)), }) perkBtn.Active = false perkStatusLabel.Text = 'Perk Status: ALL MAXED!' perkStatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0) return end perkRunning = not perkRunning if perkRunning then perkBtn.Text = 'STOP PERKS' perkBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) perkBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) perkStatusLabel.Text = 'Perk Status: RUNNING' perkStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.spawn(perkUpgradeLoop) else perkBtn.Text = 'AUTOMATE PERKS' perkBtn.BackgroundColor3 = Color3.fromRGB(120, 50, 150) perkBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(120, 50, 150)), ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 100, 220)), }) perkStatusLabel.Text = 'Perk Status: OFF' perkStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Essence Farm Button Handler farmBtn.MouseButton1Click:Connect(function() farmRunning = not farmRunning if farmRunning then farmBtn.Text = 'STOP ESSENCE FARM' farmBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) farmBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) farmStatusLabel.Text = 'Farm Status: RUNNING' farmStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.spawn(farmLoop) else farmBtn.Text = 'START ESSENCE FARM' farmBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) farmBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 200, 0)), }) farmStatusLabel.Text = 'Farm Status: OFF' farmStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) -- Teleport to upgrade board when stopped local character = player.Character if character and character:FindFirstChild('HumanoidRootPart') then character.HumanoidRootPart.CFrame = CFrame.new(65, 4, -18) end end end) -- Mining Button Handler miningBtn.MouseButton1Click:Connect(function() miningRunning = not miningRunning if miningRunning then miningBtn.Text = 'STOP MINING' miningBtn.BackgroundColor3 = Color3.fromRGB(100, 0, 0) miningBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(130, 0, 0)), }) miningStatusLabel.Text = 'Mining Status: RUNNING' miningStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.spawn(miningLoop) else miningBtn.Text = 'START MINING' miningBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) miningBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 0, 0)), }) miningStatusLabel.Text = 'Mining Status: OFF' miningStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Volts Button Handler voltsBtn.MouseButton1Click:Connect(function() voltsRunning = not voltsRunning if voltsRunning then voltsBtn.Text = 'STOP VOLTS' voltsBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) voltsBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) voltsStatusLabel.Text = 'Volts Status: RUNNING' voltsStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) task.spawn(voltsLoop) else voltsBtn.Text = 'AUTOMATE VOLTS' voltsBtn.BackgroundColor3 = Color3.fromRGB(165, 145, 110) voltsBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(165, 145, 110)), ColorSequenceKeypoint.new(1, Color3.fromRGB(195, 175, 140)), }) voltsStatusLabel.Text = 'Volts Status: OFF' voltsStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Open Rune Button Handler openRuneBtn.MouseButton1Click:Connect(function() openRuneRunning = not openRuneRunning if openRuneRunning then openRuneBtn.Text = 'STOP OPEN' openRuneBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) openRuneBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) task.spawn(openRuneLoop) else openRuneBtn.Text = 'OPEN STARDUST' openRuneBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 200) openRuneBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 150, 220)), }) end -- Update status local status = {} if openRuneRunning then table.insert(status, "OPENING STARDUST") end if createRuneRunning then table.insert(status, "CREATING STARDUST") end if #status > 0 then runeStatusLabel.Text = 'Rune Status: ' .. table.concat(status, " + ") runeStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) else runeStatusLabel.Text = 'Rune Status: OFF' runeStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Create Rune Button Handler createRuneBtn.MouseButton1Click:Connect(function() createRuneRunning = not createRuneRunning if createRuneRunning then createRuneBtn.Text = 'STOP CREATE' createRuneBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) createRuneBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) task.spawn(createRuneLoop) else createRuneBtn.Text = 'CREATE STARDUST' createRuneBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 200) createRuneBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 200)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 150, 220)), }) end -- Update status local status = {} if openRuneRunning then table.insert(status, "OPENING STARDUST") end if createRuneRunning then table.insert(status, "CREATING STARDUST") end if #status > 0 then runeStatusLabel.Text = 'Rune Status: ' .. table.concat(status, " + ") runeStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) else runeStatusLabel.Text = 'Rune Status: OFF' runeStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Open Deep Rune Button Handler openDeepBtn.MouseButton1Click:Connect(function() openDeepRunning = not openDeepRunning if openDeepRunning then openDeepBtn.Text = 'STOP OPEN' openDeepBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) openDeepBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) task.spawn(openDeepLoop) else openDeepBtn.Text = 'OPEN DEEP' openDeepBtn.BackgroundColor3 = Color3.fromRGB(80, 30, 120) openDeepBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 30, 120)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 60, 160)), }) end -- Update status local status = {} if openDeepRunning then table.insert(status, "OPENING DEEP") end if createDeepRunning then table.insert(status, "CREATING DEEP") end if #status > 0 then deepRuneStatusLabel.Text = 'Deep Rune Status: ' .. table.concat(status, " + ") deepRuneStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) else deepRuneStatusLabel.Text = 'Deep Rune Status: OFF' deepRuneStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Create Deep Rune Button Handler createDeepBtn.MouseButton1Click:Connect(function() createDeepRunning = not createDeepRunning if createDeepRunning then createDeepBtn.Text = 'STOP CREATE' createDeepBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) createDeepBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) task.spawn(createDeepLoop) else createDeepBtn.Text = 'CREATE DEEP' createDeepBtn.BackgroundColor3 = Color3.fromRGB(80, 30, 120) createDeepBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(80, 30, 120)), ColorSequenceKeypoint.new(1, Color3.fromRGB(120, 60, 160)), }) end -- Update status local status = {} if openDeepRunning then table.insert(status, "OPENING DEEP") end if createDeepRunning then table.insert(status, "CREATING DEEP") end if #status > 0 then deepRuneStatusLabel.Text = 'Deep Rune Status: ' .. table.concat(status, " + ") deepRuneStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) else deepRuneStatusLabel.Text = 'Deep Rune Status: OFF' deepRuneStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end end) -- Toggle All Button Handler toggleAllBtn.MouseButton1Click:Connect(function() -- Check if any system is running local anyRunning = farmRunning or upgradesRunning or diamondUpgradesRunning or perkRunning or voltsRunning or miningRunning if anyRunning then -- Stop all systems by setting their states to false farmRunning = false upgradesRunning = false diamondUpgradesRunning = false perkRunning = false voltsRunning = false miningRunning = false -- Update all buttons to stopped state if farmBtn.Text ~= 'START ESSENCE FARM' then farmBtn.Text = 'START ESSENCE FARM' farmBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) farmBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 200, 0)), }) farmStatusLabel.Text = 'Farm Status: OFF' farmStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end if miningBtn.Text ~= 'START MINING' then miningBtn.Text = 'START MINING' miningBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) miningBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(180, 0, 0)), }) miningStatusLabel.Text = 'Mining Status: OFF' miningStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end if upgradesBtn.Text ~= 'START ESSENCE UPGRADES' and upgradesBtn.Text ~= 'MAXED' then upgradesBtn.Text = 'START ESSENCE UPGRADES' upgradesBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 200) upgradeStatusLabel.Text = 'Essence Status: OFF' upgradeStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end if diamondBtn.Text ~= 'START DIAMOND UPGRADES' and diamondBtn.Text ~= 'MAXED' then diamondBtn.Text = 'START DIAMOND UPGRADES' diamondBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 200) diamondStatusLabel.Text = 'Diamond Status: OFF' diamondStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end if perkBtn.Text ~= 'AUTOMATE PERKS' and perkBtn.Text ~= 'MAXED' then perkBtn.Text = 'AUTOMATE PERKS' perkBtn.BackgroundColor3 = Color3.fromRGB(120, 50, 150) perkStatusLabel.Text = 'Perk Status: OFF' perkStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end if voltsBtn.Text ~= 'AUTOMATE VOLTS' then voltsBtn.Text = 'AUTOMATE VOLTS' voltsBtn.BackgroundColor3 = Color3.fromRGB(165, 145, 110) voltsBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(165, 145, 110)), ColorSequenceKeypoint.new(1, Color3.fromRGB(195, 175, 140)), }) voltsStatusLabel.Text = 'Volts Status: OFF' voltsStatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) end else -- Start all systems that aren't maxed if upgradesBtn.Active and upgradesBtn.Text == 'START ESSENCE UPGRADES' then upgradesBtn.Text = 'STOP ESSENCE UPGRADES' upgradesBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) upgradeStatusLabel.Text = 'Essence Status: RUNNING' upgradeStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) upgradesRunning = true task.spawn(upgradeLoop) end if diamondBtn.Active and diamondBtn.Text == 'START DIAMOND UPGRADES' then diamondBtn.Text = 'STOP DIAMOND UPGRADES' diamondBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) diamondStatusLabel.Text = 'Diamond Status: RUNNING' diamondStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) diamondUpgradesRunning = true task.spawn(diamondUpgradeLoop) end if perkBtn.Active and perkBtn.Text == 'AUTOMATE PERKS' then perkBtn.Text = 'STOP PERKS' perkBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) perkStatusLabel.Text = 'Perk Status: RUNNING' perkStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) perkRunning = true task.spawn(perkUpgradeLoop) end -- Always start farm, mining, and volts farmBtn.Text = 'STOP ESSENCE FARM' farmBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) farmBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) farmStatusLabel.Text = 'Farm Status: RUNNING' farmStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) farmRunning = true task.spawn(farmLoop) miningBtn.Text = 'STOP MINING' miningBtn.BackgroundColor3 = Color3.fromRGB(100, 0, 0) miningBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(130, 0, 0)), }) miningStatusLabel.Text = 'Mining Status: RUNNING' miningStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) miningRunning = true task.spawn(miningLoop) voltsBtn.Text = 'STOP VOLTS' voltsBtn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) voltsBtnGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(180, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 0, 0)), }) voltsStatusLabel.Text = 'Volts Status: RUNNING' voltsStatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) voltsRunning = true task.spawn(voltsLoop) end end) print('[🌌] Space Toolbox Loaded!') print('Found ' .. #getObjects() .. ' essence objects')