local player = game.Players.LocalPlayer
local screenGui = Instance.new('ScreenGui', player:WaitForChild('PlayerGui'))
local ReplicatedStorage = game:GetService('ReplicatedStorage')
local UserInputService = game:GetService('UserInputService')
local EventsFolder = ReplicatedStorage:WaitForChild('Events')
-- ---------- Utilities ----------
local function addGradient(inst, c1, c2)
local g = Instance.new('UIGradient', inst)
g.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, c1),
ColorSequenceKeypoint.new(1, c2),
})
g.Rotation = 90
end
local function makeButton(
parent,
text,
pos,
color,
textColor,
width,
height,
size
)
local btn = Instance.new('TextButton')
btn.Size = UDim2.new(0, width or 110, 0, height or 50)
btn.Position = pos
btn.Text = text
btn.Font = Enum.Font.Cartoon
btn.TextSize = size or 22
btn.TextScaled = false
btn.TextColor3 = textColor
btn.BackgroundColor3 = color
btn.Parent = parent
local grad = Instance.new('UIGradient', btn)
local lighter = Color3.new(
math.clamp(color.R + 0.15, 0, 1),
math.clamp(color.G + 0.15, 0, 1),
math.clamp(color.B + 0.15, 0, 1)
)
grad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, color),
ColorSequenceKeypoint.new(1, lighter),
})
grad.Rotation = 90
return btn
end
-- ---------- Main Menu Frame ----------
local mainFrame = Instance.new('Frame', screenGui)
mainFrame.Size = UDim2.new(0, 350, 0, 370)
mainFrame.Position = UDim2.new(0.5, -175, 0.3, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Visible = false
addGradient(mainFrame, Color3.fromRGB(60, 60, 80), Color3.fromRGB(40, 40, 60))
Instance.new('UICorner', mainFrame).CornerRadius = UDim.new(0, 12)
local title = Instance.new('TextLabel', mainFrame)
title.Size = UDim2.new(1, 0, 0, 35)
title.Position = UDim2.new(0, 0, 0, 0)
title.Text = 'Luck Incremental Menu'
title.Font = Enum.Font.Cartoon
title.TextSize = 24
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.BackgroundTransparency = 1
local closeBtn = makeButton(
mainFrame,
'X',
UDim2.new(1, -30, 0, 5),
Color3.fromRGB(150, 0, 0),
Color3.fromRGB(255, 255, 255),
25,
25,
18
)
-- ---------- Open Button ----------
local openBtn = Instance.new('TextButton')
openBtn.Size = UDim2.new(0, 180, 0, 50)
openBtn.Position = UDim2.new(0.5, -90, 0.05, 0)
openBtn.Text = 'Open Menu'
openBtn.Font = Enum.Font.Cartoon
openBtn.TextSize = 24
openBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
openBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
openBtn.Active = true
openBtn.Draggable = true
openBtn.Parent = screenGui
addGradient(openBtn, Color3.fromRGB(80, 80, 120), Color3.fromRGB(60, 60, 100))
Instance.new('UICorner', openBtn).CornerRadius = UDim.new(0, 10)
-- Prevent opening while dragging
local dragging, mouseDown = false, nil
openBtn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = input.Position
dragging = false
end
end)
openBtn.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement 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 then
mouseDown = nil
end
end)
openBtn.MouseButton1Click:Connect(function()
if not dragging then
mainFrame.Visible = true
openBtn.Visible = false
end
end)
closeBtn.MouseButton1Click:Connect(function()
mainFrame.Visible = false
openBtn.Visible = true
end)
-- ---------- Auto-Farm Controls ----------
local windows = {
{
name = 'Tokenize',
event = EventsFolder:WaitForChild('tokenizeReq'),
color = Color3.fromRGB(255, 170, 0),
args = nil,
},
{
name = 'Energize',
event = EventsFolder:WaitForChild('energyRequest'),
color = Color3.fromRGB(0, 120, 255),
args = { 'ReportClicks', 50 },
},
{
name = 'Marketize',
event = EventsFolder:WaitForChild('marketReq'),
color = Color3.fromRGB(140, 255, 140),
args = nil,
},
{
name = 'Temperaturize',
event = EventsFolder:WaitForChild('temperatureReq'),
color = Color3.fromRGB(255, 100, 100),
args = nil,
isTemperaturize = true,
},
}
local yPos = 0.15
local runningStates = {}
for i, win in ipairs(windows) do
-- Label
local label = Instance.new('TextLabel', mainFrame)
label.Size = UDim2.new(0, 100, 0, 30)
label.Position = UDim2.new(0.05, 0, yPos, 0)
label.Text = win.name
label.Font = Enum.Font.Cartoon
label.TextSize = 20
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.BackgroundTransparency = 1
label.TextXAlignment = Enum.TextXAlignment.Left
-- Status
local status = Instance.new('TextLabel', mainFrame)
status.Size = UDim2.new(0, 80, 0, 30)
status.Position = UDim2.new(0.35, 0, yPos, 0)
status.Text = 'Stopped'
status.Font = Enum.Font.Cartoon
status.TextSize = 18
status.TextColor3 = Color3.fromRGB(255, 100, 100)
status.BackgroundTransparency = 1
-- Start Button
local startBtn = makeButton(
mainFrame,
'Start',
UDim2.new(0.58, 0, yPos, 0),
Color3.fromRGB(0, 150, 0),
Color3.fromRGB(255, 255, 255),
60,
30,
18
)
-- Stop Button
local stopBtn = makeButton(
mainFrame,
'Stop',
UDim2.new(0.79, 0, yPos, 0),
Color3.fromRGB(180, 0, 0),
Color3.fromRGB(255, 255, 255),
60,
30,
18
)
runningStates[i] = false
local function loop()
if win.isTemperaturize then
-- Temperaturize special loop
while runningStates[i] do
local character = player.Character
if not character or not character:FindFirstChild('HumanoidRootPart') then
task.wait(1)
continue
end
local resources = {
{name = 'Ash', part = workspace:FindFirstChild('Ash'), stat = player:WaitForChild('Stats'):FindFirstChild('Ash')},
{name = 'Igneous', part = workspace:FindFirstChild('Igneous'), stat = player:WaitForChild('Stats'):FindFirstChild('Igneous')},
{name = 'Lava', part = workspace:FindFirstChild('Lava'), stat = player:WaitForChild('Stats'):FindFirstChild('Lava')},
{name = 'Magma', part = workspace:FindFirstChild('Magma'), stat = player:WaitForChild('Stats'):FindFirstChild('Magma')},
}
local success = true
for _, resource in ipairs(resources) do
if not runningStates[i] then
break
end
if not resource.part then
print('[Temperaturize] ERROR: Could not find ' .. resource.name .. ' in workspace')
ReplicatedStorage:WaitForChild('Events'):WaitForChild('teleportEvent'):FireServer('World7Arrival')
runningStates[i] = false
status.Text = 'Stopped'
status.TextColor3 = Color3.fromRGB(255, 100, 100)
success = false
break
end
if not resource.part:FindFirstChild('Touch') then
print('[Temperaturize] ERROR: ' .. resource.name .. ' has no Touch part')
ReplicatedStorage:WaitForChild('Events'):WaitForChild('teleportEvent'):FireServer('World7Arrival')
runningStates[i] = false
status.Text = 'Stopped'
status.TextColor3 = Color3.fromRGB(255, 100, 100)
success = false
break
end
if not resource.stat then
print('[Temperaturize] ERROR: Could not find ' .. resource.name .. ' stat')
ReplicatedStorage:WaitForChild('Events'):WaitForChild('teleportEvent'):FireServer('World7Arrival')
runningStates[i] = false
status.Text = 'Stopped'
status.TextColor3 = Color3.fromRGB(255, 100, 100)
success = false
break
end
local initialValue = resource.stat.Value
character.HumanoidRootPart.CFrame = resource.part.Touch.CFrame
local waited = 0
local collected = false
while waited < 2 and not collected do
task.wait(0.1)
waited = waited + 0.1
if resource.stat.Value > initialValue then
collected = true
break
end
end
if not collected then
initialValue = resource.stat.Value
character.HumanoidRootPart.CFrame = resource.part.Touch.CFrame
waited = 0
while waited < 2 and not collected do
task.wait(0.1)
waited = waited + 0.1
if resource.stat.Value > initialValue then
collected = true
break
end
end
if not collected then
print('[Temperaturize] ERROR: Failed to collect ' .. resource.name .. ' after retry - Teleporting to World 7')
ReplicatedStorage:WaitForChild('Events'):WaitForChild('teleportEvent'):FireServer('World7Arrival')
runningStates[i] = false
status.Text = 'Stopped'
status.TextColor3 = Color3.fromRGB(255, 100, 100)
success = false
break
end
end
end
if success and runningStates[i] then
win.event:FireServer()
task.wait(0.5)
end
end
else
-- Normal loop for other buttons
while runningStates[i] do
if win.args then
win.event:FireServer(unpack(win.args))
else
win.event:FireServer()
end
task.wait(0.1)
end
end
end
startBtn.MouseButton1Click:Connect(function()
if not runningStates[i] then
runningStates[i] = true
status.Text = 'Running'
status.TextColor3 = Color3.fromRGB(100, 255, 100)
task.spawn(loop)
end
end)
stopBtn.MouseButton1Click:Connect(function()
runningStates[i] = false
status.Text = 'Stopped'
status.TextColor3 = Color3.fromRGB(255, 100, 100)
end)
yPos = yPos + 0.22
end
-- ---------- LR Pity Display in Main Menu ----------
local pityLabel = Instance.new('TextLabel', mainFrame)
pityLabel.Size = UDim2.new(1, 0, 0, 35)
pityLabel.Position = UDim2.new(0, 0, 0.88, 0)
pityLabel.Text = 'LR Pity: 0/2000'
pityLabel.Font = Enum.Font.Cartoon
pityLabel.TextSize = 22
pityLabel.TextColor3 = Color3.fromRGB(255, 255, 100)
pityLabel.BackgroundTransparency = 1
-- Update pity display
task.spawn(function()
local miscStats = player:WaitForChild('MiscStats')
local lrPity = miscStats:WaitForChild('LRPity')
pityLabel.Text = 'LR Pity: ' .. tostring(lrPity.Value) .. '/2000'
lrPity:GetPropertyChangedSignal('Value'):Connect(function()
pityLabel.Text = 'LR Pity: ' .. tostring(lrPity.Value) .. '/2000'
end)
end)