
Keyless

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')
can you make something for death ball
@EmpireBro looking at it tomorrow, will see what i can do. doesn't look promising though, bigger games have more complicated anti-cheats
@Administrators okay ty
can u add auto upgrade
@Xenos done! thank you for liking the script!
Forgot to add in the commit log, may add a feature to disable upgrade sounds. they are annoying as hell lmfao
I tried using auto perk upgrade but it upgraded Essence first for some reason, also can you add auto atom upgrader?
@kaydenjohnson312 hello. it says on it when you hover over the question mark directly next to the auto-perk, "Will only upgrade X, X, X, and X ***in that order***". Working as intended. Also, if you took any amount of time to read the description, it says an auto-atom is slated. I have a job I work 5 days a week, lol. This is a hobby for me, take the time to read descriptions or any descriptor before asking questions, please.