
Key Required
Auto click and more keyless
Lua Script•619 lines (17153 chars)
--// Cookie Hub v2
--// Categories: Auto Farm (Cookies, Roll, Rebirth) | Upgrades (Roll Speed, Luck)
--// Draggable window + draggable 🍪 button. RightShift also shows/hides the GUI.
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
--// THEME
local Theme = {
Background = Color3.fromRGB(18, 18, 24),
TitleBar = Color3.fromRGB(26, 26, 36),
Sidebar = Color3.fromRGB(22, 22, 30),
Card = Color3.fromRGB(32, 32, 44),
CardHover = Color3.fromRGB(40, 40, 54),
Off = Color3.fromRGB(62, 62, 78),
Text = Color3.fromRGB(242, 242, 248),
SubText = Color3.fromRGB(150, 150, 170),
Accent = Color3.fromRGB(235, 150, 60),
Green = Color3.fromRGB(80, 210, 130),
}
--// FEATURES
--// Delay = seconds between each fire. Raise it if the game kicks you for going too fast.
local Categories = {
{
Name = "Auto Farm",
Icon = "🌾",
Features = {
{
Name = "Auto Cookies",
Desc = "Clicks the cookie nonstop",
Icon = "🍪",
Color = Color3.fromRGB(235, 150, 60),
Delay = 0.05,
Action = function()
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("Click"):FireServer()
end,
},
{
Name = "Auto Roll Cookies",
Desc = "Rolls over and over",
Icon = "🎲",
Color = Color3.fromRGB(160, 110, 255),
Delay = 0.5,
Action = function()
local args = {
"Roll"
}
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("ConsoleRoll"):FireServer(unpack(args))
end,
},
{
Name = "Auto Rebirth",
Desc = "Rebirths whenever you can",
Icon = "🔄",
Color = Color3.fromRGB(240, 90, 120),
Delay = 1,
Action = function()
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("Rebirth"):FireServer()
end,
},
},
},
{
Name = "Upgrades",
Icon = "⬆️",
Features = {
{
Name = "Auto Buy Roll Speed",
Desc = "Buys max roll speed",
Icon = "⚡",
Color = Color3.fromRGB(250, 200, 60),
Delay = 1,
Action = function()
local args = {
"RollSpeed",
"Max"
}
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("BoardPurchase"):FireServer(unpack(args))
end,
},
{
Name = "Auto Buy Luck",
Desc = "Buys a luck upgrade",
Icon = "🍀",
Color = Color3.fromRGB(80, 200, 120),
Delay = 0.5,
Action = function()
local args = {
"RollLuck",
"One"
}
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("BoardPurchase"):FireServer(unpack(args))
end,
},
},
},
}
--// GUI PARENT
local function getGuiParent()
local ok, coreGui = pcall(function()
return game:GetService("CoreGui")
end)
if ok and coreGui then
local testOk = pcall(function()
local t = Instance.new("Folder")
t.Parent = coreGui
t:Destroy()
end)
if testOk then
return coreGui
end
end
return player:WaitForChild("PlayerGui")
end
local guiParent = getGuiParent()
-- Remove an older copy if the script is executed twice
local old = guiParent:FindFirstChild("CookieHubGui")
if old then
old:Destroy()
end
local alive = true
local gui = Instance.new("ScreenGui")
gui.Name = "CookieHubGui"
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = guiParent
--// HELPERS
local function corner(obj, radius)
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, radius)
c.Parent = obj
return c
end
local function stroke(obj, color, thickness, transparency)
local s = Instance.new("UIStroke")
s.Color = color
s.Thickness = thickness
s.Transparency = transparency
s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
s.Parent = obj
return s
end
local function tween(obj, time, props, style, direction)
local t = TweenService:Create(
obj,
TweenInfo.new(time, style or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out),
props
)
t:Play()
return t
end
-- Drag `target` by holding `handle` (mouse + touch). A tap without moving calls `onClick`.
local function makeDraggable(handle, target, onClick)
local dragging = false
local moved = false
local dragStart, startPos
handle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
moved = false
dragStart = input.Position
startPos = target.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
if onClick and not moved then
onClick()
end
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
if delta.Magnitude > 5 then
moved = true
end
target.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
end
--// MAIN WINDOW
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.fromOffset(380, 270)
main.Position = UDim2.new(0.5, -190, 0.5, -135)
main.BackgroundColor3 = Theme.Background
main.BorderSizePixel = 0
main.Parent = gui
corner(main, 12)
stroke(main, Color3.fromRGB(255, 255, 255), 1, 0.9)
local mainScale = Instance.new("UIScale")
mainScale.Scale = 1
mainScale.Parent = main
--// TITLE BAR
local titleBar = Instance.new("Frame")
titleBar.Name = "TitleBar"
titleBar.Size = UDim2.new(1, 0, 0, 42)
titleBar.BackgroundColor3 = Theme.TitleBar
titleBar.BorderSizePixel = 0
titleBar.Parent = main
corner(titleBar, 12)
local titleFix = Instance.new("Frame")
titleFix.Size = UDim2.new(1, 0, 0, 12)
titleFix.Position = UDim2.new(0, 0, 1, -12)
titleFix.BackgroundColor3 = Theme.TitleBar
titleFix.BorderSizePixel = 0
titleFix.Parent = titleBar
local titleLabel = Instance.new("TextLabel")
titleLabel.BackgroundTransparency = 1
titleLabel.Position = UDim2.fromOffset(14, 0)
titleLabel.Size = UDim2.new(0, 140, 1, 0)
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 16
titleLabel.TextColor3 = Theme.Text
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Text = "🍪 Cookie Hub"
titleLabel.Parent = titleBar
-- colored accent line under the title bar
local accentLine = Instance.new("Frame")
accentLine.Size = UDim2.new(1, 0, 0, 2)
accentLine.Position = UDim2.new(0, 0, 1, 0)
accentLine.BorderSizePixel = 0
accentLine.BackgroundColor3 = Color3.new(1, 1, 1)
accentLine.Parent = titleBar
local accentGradient = Instance.new("UIGradient")
accentGradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(235, 150, 60)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(240, 90, 120)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 110, 255)),
})
accentGradient.Parent = accentLine
local statusLabel = Instance.new("TextLabel")
statusLabel.BackgroundTransparency = 1
statusLabel.AnchorPoint = Vector2.new(1, 0.5)
statusLabel.Position = UDim2.new(1, -48, 0.5, 0)
statusLabel.Size = UDim2.fromOffset(90, 20)
statusLabel.Font = Enum.Font.GothamMedium
statusLabel.TextSize = 12
statusLabel.TextColor3 = Theme.SubText
statusLabel.TextXAlignment = Enum.TextXAlignment.Right
statusLabel.Text = "● 0 active"
statusLabel.Parent = titleBar
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.fromOffset(28, 28)
closeBtn.AnchorPoint = Vector2.new(1, 0.5)
closeBtn.Position = UDim2.new(1, -8, 0.5, 0)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 70, 80)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 14
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.Text = "X"
closeBtn.AutoButtonColor = true
closeBtn.Parent = titleBar
corner(closeBtn, 8)
makeDraggable(titleBar, main)
--// SIDEBAR
local sidebar = Instance.new("Frame")
sidebar.Name = "Sidebar"
sidebar.Position = UDim2.fromOffset(0, 44)
sidebar.Size = UDim2.new(0, 116, 1, -44)
sidebar.BackgroundColor3 = Theme.Sidebar
sidebar.BorderSizePixel = 0
sidebar.Parent = main
corner(sidebar, 12)
-- squares off the top corners and the right edge of the sidebar
local sidebarFixTop = Instance.new("Frame")
sidebarFixTop.Size = UDim2.new(1, 0, 0, 12)
sidebarFixTop.BackgroundColor3 = Theme.Sidebar
sidebarFixTop.BorderSizePixel = 0
sidebarFixTop.Parent = sidebar
local sidebarFixRight = Instance.new("Frame")
sidebarFixRight.Size = UDim2.new(0, 12, 1, 0)
sidebarFixRight.Position = UDim2.new(1, -12, 0, 0)
sidebarFixRight.BackgroundColor3 = Theme.Sidebar
sidebarFixRight.BorderSizePixel = 0
sidebarFixRight.Parent = sidebar
local tabHolder = Instance.new("Frame")
tabHolder.BackgroundTransparency = 1
tabHolder.Size = UDim2.new(1, 0, 1, -30)
tabHolder.Parent = sidebar
local tabLayout = Instance.new("UIListLayout")
tabLayout.Padding = UDim.new(0, 6)
tabLayout.SortOrder = Enum.SortOrder.LayoutOrder
tabLayout.Parent = tabHolder
local tabPad = Instance.new("UIPadding")
tabPad.PaddingTop = UDim.new(0, 12)
tabPad.PaddingLeft = UDim.new(0, 8)
tabPad.PaddingRight = UDim.new(0, 8)
tabPad.Parent = tabHolder
local hint = Instance.new("TextLabel")
hint.BackgroundTransparency = 1
hint.AnchorPoint = Vector2.new(0, 1)
hint.Position = UDim2.new(0, 0, 1, -6)
hint.Size = UDim2.new(1, 0, 0, 18)
hint.Font = Enum.Font.Gotham
hint.TextSize = 10
hint.TextColor3 = Theme.SubText
hint.Text = "RightShift = show/hide"
hint.Parent = sidebar
--// CONTENT AREA
local content = Instance.new("Frame")
content.Name = "Content"
content.Position = UDim2.fromOffset(116, 44)
content.Size = UDim2.new(1, -116, 1, -44)
content.BackgroundTransparency = 1
content.Parent = main
local pages = {}
local tabs = {}
local function selectCategory(name)
for n, page in pairs(pages) do
page.Visible = (n == name)
end
for n, tab in pairs(tabs) do
local active = (n == name)
tween(tab, 0.15, {
BackgroundColor3 = active and Theme.Accent or Theme.Card,
TextColor3 = active and Color3.new(1, 1, 1) or Theme.SubText,
})
end
end
local function createCategory(name, icon, order)
local tab = Instance.new("TextButton")
tab.Size = UDim2.new(1, 0, 0, 34)
tab.BackgroundColor3 = Theme.Card
tab.LayoutOrder = order
tab.Font = Enum.Font.GothamMedium
tab.TextSize = 13
tab.TextColor3 = Theme.SubText
tab.Text = icon .. " " .. name
tab.AutoButtonColor = false
tab.Parent = tabHolder
corner(tab, 8)
local page = Instance.new("ScrollingFrame")
page.Name = name
page.Size = UDim2.new(1, 0, 1, 0)
page.BackgroundTransparency = 1
page.BorderSizePixel = 0
page.ScrollBarThickness = 3
page.ScrollBarImageColor3 = Theme.Off
page.CanvasSize = UDim2.new()
page.AutomaticCanvasSize = Enum.AutomaticSize.Y
page.Visible = false
page.Parent = content
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 8)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = page
local pad = Instance.new("UIPadding")
pad.PaddingTop = UDim.new(0, 12)
pad.PaddingLeft = UDim.new(0, 10)
pad.PaddingRight = UDim.new(0, 14)
pad.PaddingBottom = UDim.new(0, 10)
pad.Parent = page
pages[name] = page
tabs[name] = tab
tab.MouseButton1Click:Connect(function()
selectCategory(name)
end)
return page
end
--// STATUS COUNTER
local function refreshStatus()
local count = 0
for _, cat in ipairs(Categories) do
for _, feature in ipairs(cat.Features) do
if feature.Enabled then
count = count + 1
end
end
end
statusLabel.Text = "● " .. count .. " active"
statusLabel.TextColor3 = count > 0 and Theme.Green or Theme.SubText
end
--// FEATURE CARD (icon + name + description + switch)
local function createCard(parent, feature, order)
feature.Enabled = false
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, 54)
card.BackgroundColor3 = Theme.Card
card.BorderSizePixel = 0
card.LayoutOrder = order
card.Parent = parent
corner(card, 10)
local cardStroke = stroke(card, feature.Color, 1.5, 1)
local iconTile = Instance.new("Frame")
iconTile.Size = UDim2.fromOffset(38, 38)
iconTile.Position = UDim2.fromOffset(8, 8)
iconTile.BackgroundColor3 = feature.Color:Lerp(Theme.Card, 0.7)
iconTile.BorderSizePixel = 0
iconTile.Parent = card
corner(iconTile, 9)
local iconLabel = Instance.new("TextLabel")
iconLabel.BackgroundTransparency = 1
iconLabel.Size = UDim2.new(1, 0, 1, 0)
iconLabel.Font = Enum.Font.GothamBold
iconLabel.TextSize = 20
iconLabel.TextColor3 = Color3.new(1, 1, 1)
iconLabel.Text = feature.Icon
iconLabel.Parent = iconTile
local nameLabel = Instance.new("TextLabel")
nameLabel.BackgroundTransparency = 1
nameLabel.Position = UDim2.fromOffset(56, 9)
nameLabel.Size = UDim2.new(1, -124, 0, 18)
nameLabel.Font = Enum.Font.GothamBold
nameLabel.TextSize = 13
nameLabel.TextColor3 = Theme.Text
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.TextTruncate = Enum.TextTruncate.AtEnd
nameLabel.Text = feature.Name
nameLabel.Parent = card
local descLabel = Instance.new("TextLabel")
descLabel.BackgroundTransparency = 1
descLabel.Position = UDim2.fromOffset(56, 28)
descLabel.Size = UDim2.new(1, -124, 0, 16)
descLabel.Font = Enum.Font.Gotham
descLabel.TextSize = 11
descLabel.TextColor3 = Theme.SubText
descLabel.TextXAlignment = Enum.TextXAlignment.Left
descLabel.TextTruncate = Enum.TextTruncate.AtEnd
descLabel.Text = feature.Desc
descLabel.Parent = card
local switch = Instance.new("Frame")
switch.Size = UDim2.fromOffset(44, 22)
switch.AnchorPoint = Vector2.new(1, 0.5)
switch.Position = UDim2.new(1, -10, 0.5, 0)
switch.BackgroundColor3 = Theme.Off
switch.BorderSizePixel = 0
switch.Parent = card
corner(switch, 11)
local knob = Instance.new("Frame")
knob.Size = UDim2.fromOffset(16, 16)
knob.Position = UDim2.fromOffset(3, 3)
knob.BackgroundColor3 = Color3.new(1, 1, 1)
knob.BorderSizePixel = 0
knob.Parent = switch
corner(knob, 8)
local function setEnabled(value)
feature.Enabled = value
tween(switch, 0.18, { BackgroundColor3 = value and feature.Color or Theme.Off })
tween(knob, 0.18, {
Position = value and UDim2.fromOffset(25, 3) or UDim2.fromOffset(3, 3),
}, Enum.EasingStyle.Back)
tween(cardStroke, 0.18, { Transparency = value and 0.35 or 1 })
refreshStatus()
end
-- the whole card is clickable
local hit = Instance.new("TextButton")
hit.BackgroundTransparency = 1
hit.Size = UDim2.new(1, 0, 1, 0)
hit.Text = ""
hit.AutoButtonColor = false
hit.ZIndex = 5
hit.Parent = card
hit.MouseButton1Click:Connect(function()
setEnabled(not feature.Enabled)
end)
hit.MouseEnter:Connect(function()
tween(card, 0.12, { BackgroundColor3 = Theme.CardHover })
end)
hit.MouseLeave:Connect(function()
tween(card, 0.12, { BackgroundColor3 = Theme.Card })
end)
return card
end
--// BUILD CATEGORIES + CARDS + LOOPS
for catIndex, category in ipairs(Categories) do
local page = createCategory(category.Name, category.Icon, catIndex)
for featureIndex, feature in ipairs(category.Features) do
createCard(page, feature, featureIndex)
-- one loop per feature, runs only while it's switched on
task.spawn(function()
while alive do
if feature.Enabled then
pcall(feature.Action)
task.wait(feature.Delay)
else
task.wait(0.2)
end
end
end)
end
end
selectCategory(Categories[1].Name)
--// OPEN / CLOSE ANIMATION
local isOpen = true
local function setOpen(open)
isOpen = open
if open then
main.Visible = true
mainScale.Scale = 0.85
tween(mainScale, 0.25, { Scale = 1 }, Enum.EasingStyle.Back)
else
tween(mainScale, 0.15, { Scale = 0.85 })
task.delay(0.15, function()
if not isOpen then
main.Visible = false
end
end)
end
end
--// FLOATING TOGGLE BUTTON (draggable, tap to open/close)
local toggleBtn = Instance.new("TextButton")
toggleBtn.Name = "ToggleButton"
toggleBtn.Size = UDim2.fromOffset(48, 48)
toggleBtn.Position = UDim2.new(0, 20, 0.5, -24)
toggleBtn.BackgroundColor3 = Theme.Accent
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 24
toggleBtn.TextColor3 = Color3.new(1, 1, 1)
toggleBtn.Text = "🍪"
toggleBtn.AutoButtonColor = false
toggleBtn.Parent = gui
corner(toggleBtn, 24)
stroke(toggleBtn, Color3.new(1, 1, 1), 2, 0.5)
local toggleGradient = Instance.new("UIGradient")
toggleGradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(245, 170, 70)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(240, 90, 120)),
})
toggleGradient.Rotation = 45
toggleGradient.Parent = toggleBtn
makeDraggable(toggleBtn, toggleBtn, function()
setOpen(not isOpen)
end)
-- RightShift also shows/hides the GUI (PC)
local keyConn = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then
return
end
if input.KeyCode == Enum.KeyCode.RightShift then
setOpen(not isOpen)
end
end)
--// CLOSE (stops every loop and removes the GUI)
closeBtn.MouseButton1Click:Connect(function()
alive = false
for _, category in ipairs(Categories) do
for _, feature in ipairs(category.Features) do
feature.Enabled = false
end
end
keyConn:Disconnect()
gui:Destroy()
end)Features & Information
Auto click and bunch more keyless

good script