
Key Required

--[[
When you get to defrost, turn it off after maybe 200 resets as this doesnt have a cap and will reset infinitely and stop any further progress until it is turned off, if things are buggy then just turn all off and on or rejoin and reexecute
]]
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local Remotes = ReplicatedStorage:WaitForChild("Remotes")
local function getRemote(name)
return Remotes:FindFirstChild(name)
end
local remoteDefs = {
{ key = "PowerRE", label = "Power" },
{ key = "ClaimCoinGiftRE", label = "Claim Coin Gift" },
{ key = "EnergyRE", label = "Energy" },
{ key = "DiamondsRE", label = "Diamonds" },
{ key = "LuckRE", label = "Luck" },
{ key = "WindRE", label = "Wind" },
{ key = "StarRE", label = "Star" },
{ key = "SuperStarRE", label = "Super Star" },
{ key = "CoinsRE", label = "Coins" },
{ key = "WildCrateRE", label = "Wild Crate" },
{ key = "TreeRE", label = "Tree" },
{ key = "CrystalRE", label = "Crystal" },
{ key = "JewelCrateRE", label = "Jewel Crate" },
{ key = "WhirlpoolCrateRE", label = "Whirlpool Crate" },
{ key = "DropletRE", label = "Droplet" },
{ key = "GoldStarRE", label = "Gold Star" },
{ key = "ShadowRE", label = "Shadow" },
{ key = "SandRE", label = "Sand" },
{ key = "CactusRE", label = "Cactus" },
{ key = "SunlightRE", label = "Sunlight" },
{ key = "PrismsRE", label = "Prisms" },
{ key = "GlassRE", label = "Glass" },
{ key = "SolarPanelRE", label = "Solar Panel" },
{ key = "DesertCrateRE", label = "Desert Crate" },
{ key = "SuperLuckRE", label = "Super Luck" },
{ key = "BatteryRE", label = "Battery" },
{ key = "RefractionRE", label = "Refraction" },
{ key = "CryptCrateRE", label = "Crypt Crate" },
{ key = "ElectricityRE", label = "Electricity" },
{ key = "CloneRE", label = "Clone" },
{ key = "RunicTempleRE", label = "Runic Temple" },
{ key = "TempleOpenRE", label = "Temple Open (10s cap)" },
{ key = "SnowRE", label = "Snow" },
{ key = "IceRE", label = "Ice" },
{ key = "FrostRE", label = "Frost" },
{ key = "IcyCrateRE", label = "Icy Crate" },
{ key = "Luck2RE", label = "Luck 2" },
{ key = "FreezerRE", label = "Freezer" },
{ key = "RefrostRE", label = "Refrost" },
{ key = "ArcticCrateRE", label = "Arctic Crate" },
{ key = "ColdPrismRE", label = "Cold Prism" },
{ key = "ChilledStarRE", label = "Chilled Star" },
{ key = "IglooRE", label = "Igloo" },
{ key = "FrozenDiamondRE", label = "Frozen Diamond" },
{ key = "PackedIceRE", label = "Packed Ice" },
{ key = "SuperLuck2RE", label = "Super Luck 2" },
{ key = "HailRE", label = "Hail" },
{ key = "DeepCrateRE", label = "Deep Crate" },
{ key = "FireRE", label = "Fire" },
{ key = "MoltenRE", label = "Molten" },
{ key = "LavaRE", label = "Lava" },
{ key = "InferniteStarRE", label = "Infernite Star" },
{ key = "MagmaRE", label = "Magma" },
{ key = "SSLuckRE", label = "SS Luck" },
{ key = "HotCrateRE", label = "Hot Crate" },
}
local actions = {}
for _, def in ipairs(remoteDefs) do
local remote = getRemote(def.key)
table.insert(actions, {
key = def.key,
label = def.label .. (remote and "" or " (missing)"),
remote = remote,
enabled = remote ~= nil,
})
end
local FULL_W, FULL_H = 300, 400
local MINI_W, MINI_H = 300, 40
local CORNER_R = 12
local BAR_H = 32
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "StatsUI"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.fromOffset(FULL_W, FULL_H)
frame.Position = UDim2.fromScale(0.5, 0.5)
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BorderSizePixel = 0
frame.Parent = screenGui
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, CORNER_R)
uiCorner.Parent = frame
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(60, 60, 60)
stroke.Thickness = 1
stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
stroke.Parent = frame
local topBar = Instance.new("Frame")
topBar.Name = "TopBar"
topBar.Size = UDim2.new(1, 0, 0, BAR_H)
topBar.BackgroundColor3 = Color3.fromRGB(32, 32, 32)
topBar.BorderSizePixel = 0
topBar.Parent = frame
local topCorner = Instance.new("UICorner")
topCorner.CornerRadius = UDim.new(0, CORNER_R)
topCorner.Parent = topBar
local title = Instance.new("TextLabel")
title.Text = "Stats Control"
title.Font = Enum.Font.GothamSemibold
title.TextColor3 = Color3.fromRGB(235, 235, 235)
title.TextSize = 14
title.BackgroundTransparency = 1
title.TextXAlignment = Enum.TextXAlignment.Left
title.Size = UDim2.new(1, -100, 1, 0)
title.Position = UDim2.new(0, 12, 0, 0)
title.Parent = topBar
local minimise = Instance.new("TextButton")
minimise.Text = "–"
minimise.Font = Enum.Font.GothamBold
minimise.TextSize = 20
minimise.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
minimise.TextColor3 = Color3.fromRGB(230, 230, 230)
minimise.Size = UDim2.fromOffset(32, 22)
minimise.Position = UDim2.new(1, -82, 0.5, -11)
minimise.AutoButtonColor = true
minimise.Parent = topBar
local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 8)
minCorner.Parent = minimise
local unloadTop = Instance.new("TextButton")
unloadTop.Text = "Unload"
unloadTop.Font = Enum.Font.GothamBold
unloadTop.TextSize = 14
unloadTop.BackgroundColor3 = Color3.fromRGB(120, 35, 35)
unloadTop.TextColor3 = Color3.fromRGB(255, 235, 235)
unloadTop.Size = UDim2.fromOffset(60, 22)
unloadTop.Position = UDim2.new(1, -48, 0.5, -11)
unloadTop.AutoButtonColor = true
unloadTop.Parent = topBar
local unloadCorner = Instance.new("UICorner")
unloadCorner.CornerRadius = UDim.new(0, 8)
unloadCorner.Parent = unloadTop
local dot = Instance.new("Frame")
dot.Size = UDim2.fromOffset(10, 10)
dot.Position = UDim2.new(1, -18, 0.5, -5)
dot.BackgroundColor3 = Color3.fromRGB(180, 0, 0)
dot.BorderSizePixel = 0
dot.Parent = topBar
local dotCorner = Instance.new("UICorner")
dotCorner.CornerRadius = UDim.new(1, 0)
dotCorner.Parent = dot
local content = Instance.new("Frame")
content.Name = "Content"
content.BackgroundTransparency = 1
content.Size = UDim2.new(1, -20, 1, -BAR_H - 12)
content.Position = UDim2.new(0, 10, 0, BAR_H + 6)
content.Parent = frame
local contentLayout = Instance.new("UIListLayout")
contentLayout.Padding = UDim.new(0, 8)
contentLayout.SortOrder = Enum.SortOrder.LayoutOrder
contentLayout.Parent = content
local listScroll = Instance.new("ScrollingFrame")
listScroll.Name = "RemoteList"
listScroll.BackgroundColor3 = Color3.fromRGB(28, 28, 28)
listScroll.BorderSizePixel = 0
listScroll.Size = UDim2.new(1, 0, 0, 200)
listScroll.ScrollBarThickness = 6
listScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
listScroll.CanvasSize = UDim2.new(0, 0, 0, 0)
listScroll.Parent = content
local listCorner = Instance.new("UICorner")
listCorner.CornerRadius = UDim.new(0, 10)
listCorner.Parent = listScroll
local listLayout = Instance.new("UIListLayout")
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Padding = UDim.new(0, 6)
listLayout.Parent = listScroll
local listPad = Instance.new("UIPadding")
listPad.PaddingTop = UDim.new(0, 8)
listPad.PaddingBottom = UDim.new(0, 8)
listPad.PaddingLeft = UDim.new(0, 8)
listPad.PaddingRight = UDim.new(0, 8)
listPad.Parent = listScroll
local div = Instance.new("Frame")
div.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
div.BorderSizePixel = 0
div.Size = UDim2.new(1, 0, 0, 1)
div.Parent = content
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(1, 0, 0, 44)
toggleButton.Text = "Start"
toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.Font = Enum.Font.GothamBold
toggleButton.TextScaled = true
toggleButton.AutoButtonColor = true
toggleButton.Parent = content
local uiCornerBtn = Instance.new("UICorner")
uiCornerBtn.CornerRadius = UDim.new(0, 10)
uiCornerBtn.Parent = toggleButton
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, 0, 0, 22)
statusLabel.BackgroundTransparency = 1
statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextScaled = true
statusLabel.Text = "Status: Stopped"
statusLabel.Parent = content
local intervalRow = Instance.new("Frame")
intervalRow.BackgroundTransparency = 1
intervalRow.Size = UDim2.new(1, 0, 0, 26)
intervalRow.Parent = content
local intervalLabel = Instance.new("TextLabel")
intervalLabel.BackgroundTransparency = 1
intervalLabel.Text = "Interval (s):"
intervalLabel.Font = Enum.Font.Gotham
intervalLabel.TextColor3 = Color3.fromRGB(210, 210, 210)
intervalLabel.TextSize = 14
intervalLabel.TextXAlignment = Enum.TextXAlignment.Left
intervalLabel.Size = UDim2.new(0.5, -6, 1, 0)
intervalLabel.Parent = intervalRow
local intervalBox = Instance.new("TextBox")
intervalBox.Text = "0.05"
intervalBox.ClearTextOnFocus = false
intervalBox.Font = Enum.Font.GothamSemibold
intervalBox.TextSize = 14
intervalBox.TextColor3 = Color3.fromRGB(240, 240, 240)
intervalBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
intervalBox.Size = UDim2.new(0.5, 0, 1, 0)
intervalBox.Position = UDim2.new(0.5, 0, 0, 0)
intervalBox.Parent = intervalRow
local intervalCorner = Instance.new("UICorner")
intervalCorner.CornerRadius = UDim.new(0, 8)
intervalCorner.Parent = intervalBox
local function makeToggleButton(parent, initial, disabled)
local btn = Instance.new("TextButton")
btn.Size = UDim2.fromOffset(70, 24)
btn.BackgroundColor3 = initial and Color3.fromRGB(0, 170, 90) or Color3.fromRGB(70, 70, 70)
btn.TextColor3 = Color3.fromRGB(250, 250, 250)
btn.Text = initial and "ON" or "OFF"
btn.Font = Enum.Font.GothamSemibold
btn.TextSize = 14
btn.AutoButtonColor = not disabled
btn.Parent = parent
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 8)
c.Parent = btn
if disabled then
btn.Text = "N/A"
btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end
return btn
end
local function addRemoteRow(def, conns)
local row = Instance.new("Frame")
row.BackgroundTransparency = 1
row.Size = UDim2.new(1, 0, 0, 24)
row.Parent = listScroll
local nameLabel = Instance.new("TextLabel")
nameLabel.BackgroundTransparency = 1
nameLabel.Text = def.label
nameLabel.Font = Enum.Font.Gotham
nameLabel.TextColor3 = def.remote and Color3.fromRGB(210, 210, 210) or Color3.fromRGB(170, 120, 120)
nameLabel.TextSize = 14
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.Size = UDim2.new(1, -80, 1, 0)
nameLabel.Parent = row
local toggle = makeToggleButton(row, def.enabled, not def.remote)
toggle.Position = UDim2.new(1, -70, 0, 0)
local state = def.enabled
if def.remote then
table.insert(conns, toggle.MouseButton1Click:Connect(function()
state = not state
def.enabled = state
toggle.Text = state and "ON" or "OFF"
toggle.BackgroundColor3 = state and Color3.fromRGB(0, 170, 90) or Color3.fromRGB(70, 70, 70)
end))
end
end
local conns = {}
for _, a in ipairs(actions) do
addRemoteRow(a, conns)
end
local running = false
local minimised = false
local lastTempleFire = 0
local function setRunning(v)
running = v
toggleButton.Text = running and "Stop" or "Start"
statusLabel.Text = "Status: " .. (running and "Running" or "Stopped")
dot.BackgroundColor3 = running and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(180, 0, 0)
end
local function getInterval()
local n = tonumber(intervalBox.Text)
if not n then n = 0.05 end
if n < 0.01 then n = 0.01 end
if n > 5 then n = 5 end
return n
end
local function tweenFrameSize(w, h)
TweenService:Create(
frame,
TweenInfo.new(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{ Size = UDim2.fromOffset(w, h) }
):Play()
end
local function setMinimised(v)
minimised = v
content.Visible = not minimised
minimise.Text = minimised and "+" or "–"
if minimised then
tweenFrameSize(MINI_W, MINI_H)
else
tweenFrameSize(FULL_W, FULL_H)
end
end
do
local dragging = false
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.fromOffset(startPos.X + delta.X, startPos.Y + delta.Y)
end
table.insert(conns, topBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = Vector2.new(frame.AbsolutePosition.X, frame.AbsolutePosition.Y)
table.insert(conns, input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end))
end
end))
table.insert(conns, UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end))
end
table.insert(conns, minimise.MouseButton1Click:Connect(function()
setMinimised(not minimised)
end))
table.insert(conns, intervalBox.FocusLost:Connect(function()
local n = tonumber(intervalBox.Text)
if not n then
intervalBox.Text = "0.05"
return
end
if n < 0.01 then
intervalBox.Text = "0.01"
elseif n > 5 then
intervalBox.Text = "5"
else
intervalBox.Text = string.format("%.3f", n)
end
end))
table.insert(conns, toggleButton.MouseButton1Click:Connect(function()
if running then
setRunning(false)
return
end
setRunning(true)
task.spawn(function()
while running do
local now = time()
for _, a in ipairs(actions) do
if a.enabled and a.remote then
if a.key == "TempleOpenRE" then
if now - lastTempleFire >= 10 then
pcall(function() a.remote:FireServer() end)
lastTempleFire = now
end
else
pcall(function() a.remote:FireServer() end)
end
end
end
task.wait(getInterval())
end
end)
end))
local pendingConfirm = false
local function unload()
setRunning(false)
for _, c in ipairs(conns) do
pcall(function() c:Disconnect() end)
end
pcall(function() screenGui:Destroy() end)
pcall(function() if script and script.Destroy then script:Destroy() end end)
end
table.insert(conns, unloadTop.MouseButton1Click:Connect(function()
if not pendingConfirm then
pendingConfirm = true
unloadTop.Text = "Confirm"
unloadTop.BackgroundColor3 = Color3.fromRGB(170, 40, 40)
task.delay(2, function()
if pendingConfirm then
pendingConfirm = false
unloadTop.Text = "Unload"
unloadTop.BackgroundColor3 = Color3.fromRGB(120, 35, 35)
end
end)
else
unload()
end
end))
Ui ain't moveable/draggabble
@SyrexGenesis ik im sorry i tried to but i'd have to change ui for it to work.. for some reason sorrry man
@Metal is alr I've already modified it I've gotten more remotes and I'mma use my ui library and dw ofc I'mma give credit to u and give ur discord to I'm not one of those people that doesn't do that Im nice
@SyrexGenesis my discord is @alli2pretty
@Metal alr
@SyrexGenesis lmk whrn u add
@Metal oh wait I don't have discord I thought u said put that discord with credits 💀
@SyrexGenesis oh its ok lol
@Metal alr
@Metal I already uploaded...
@Metal 👍
@Metal couldn't delete this so I just edited it