§ How to · with Picoo
How to make a clicker game in Roblox
By Sametcan Tasgiran, Founder & Developer·Published ·Updated
A clicker game is a loop: earn currency, spend it on upgrades that earn faster, and rebirth for a permanent multiplier once the upgrades run out. Ask Picoo to make a clicker game and it builds that loop with its tycoon kit, the tycoon_starter recipe: droppers earn the cash, and players walk onto pads to buy upgrades.
17 files · 5,513 lines · one recipe call, with default settings: 14 scripts plus the plaza map, the first plot and the HUD. 2,475 of those lines are ProfileStore, the open-source save library the kit bundles, and its license.
Six plots, one per player
Up to six players each get a free plot when they join, and the camera glides to it. Plot1 is built in Explorer, and Plots 2-6 are copies of it made when the server starts, so editing Plot1 changes every plot.
42 upgrades over 3 floors
Droppers, scanners, furnaces, turbo belts, vaults, walls, two more floors and a roof sign, from the $15 Starter Dropper to the $1.7M Golden Dropper. A light beam points to the cheapest pad the player can afford.
Droppers earn the cash
Droppers make cubes that ride conveyor belts past scanners into a collector, and scanners and furnaces multiply what each cube pays. Cubes are server-owned parts, and cash is added only when one reaches a collector on the server.
K/M/B number formatting
One shared function shows 1234 as 1.23K and 2.5 million as 2.5M, with suffixes up to Dc. The HUD counts up to each new total with a coin sound and shows income per second.
Rebirth for +50% income
Owning the roof and $3.2M unlocks rebirth. It clears every purchase and resets cash to $15, and each rebirth adds 50% to all income from then on.
Saves and offline earnings
ProfileStore saves each player's cash, rebirths and purchases, using an in-memory mock in Studio so testing never touches live data. A player away for at least a minute gets a quarter of their income rate for the time away, up to 8 hours.
Files Picoo ships for this prompt
17 files · 5513 lines · one recipe call
ServerScriptService/FactoryTycoon/TycoonService
The game itself: plot claiming, purchases, rebirth, vault income, offline earnings and leaderstats. Every purchase is decided here.
876 lines
ServerScriptService/FactoryTycoon/DropService
Droppers, belts, scanners and collectors. Cash moves only when a server-owned cube reaches a collector.
309 lines
ServerScriptService/FactoryTycoon/DataService
Loads and releases each player's save through ProfileStore, with ProfileStore's in-memory mock in Studio.
134 lines
ServerScriptService/FactoryTycoon/ProfileStore
ProfileStore, the open-source save library: session-locked, auto-saving player data.
2268 lines
ServerScriptService/FactoryTycoon/ProfileStore_LICENSE
ProfileStore's license text, kept next to the library.
207 lines
ServerScriptService/FactoryTycoon/Fx
Server-side sounds, particle bursts, the build-in animation for a purchase and the squash of a pressed pad.
215 lines
ServerScriptService/FactoryTycoon/MeshDresser
Keeps the CC0 Kenney models Edit mode already shows; a stand-in comes back where a model fails to load.
269 lines
ServerScriptService/FactoryTycoon/PlotCloner
Makes Plots 2-6 as copies of Plot1 when the server starts.
99 lines
ServerScriptService/FactoryTycoon/Main
Boots the tycoon. At Play it sets aside any other sky and lighting effects so the kit's own are used.
28 lines
ServerScriptService/FactoryTycoon/SelfTest
Studio-only check on Play: runs a spare plot through purchases, income and rebirth, round-trips a save, and prints one TYCOON_SELFTEST line.
292 lines
ServerScriptService/FactoryTycoon/PicooKit
Marker Picoo reads to recognise its own kit and change its settings later. It does nothing when the game runs.
5 lines
ReplicatedStorage/FactoryTycoon/Config
Generated settings: plots, starting cash, all 42 items with prices and stats, rebirth, offline earnings and sounds.
127 lines
ReplicatedStorage/FactoryTycoon/Shared
Economy math used by server and client: number formatting, income per second, multipliers and which pads are unlocked.
150 lines
StarterPlayer/StarterPlayerScripts/FactoryTycoonClient
HUD, camera glide to your plot, the guide beam, toasts and music. It reads what the server writes and can only ask for a rebirth.
534 lines
Workspace/FactoryTycoon
The plaza: ground, paths, title sign, obelisk, scenery and markers where Plots 2-6 go (484 instances).
instance
Workspace/FactoryTycoon/Plots/Plot1
The first plot: its base, the models for all 42 items, their buy pads and the rebirth pad (972 instances).
instance
StarterGui/TycoonHUD
The HUD ScreenGui: cash panel, rebirth button, music button, toasts and the away-earnings popup (50 instances).
instance
Sample output: ReplicatedStorage/FactoryTycoon/Shared
--!strict
-- Shared economy math + formatting. Required by the server, the client and the
-- self-test. Mirrors kit/economy.ts line for line (tools/crosscheck.luau runs
-- both on the same Config and compares), so the $/s readout, offline earnings
-- and the economy simulation all use one formula.
local Config = require(script.Parent:WaitForChild("Config"))
export type Item = Config.Item
export type Owned = { [string]: boolean }
local Shared = {}
local SUFFIXES = { "", "K", "M", "B", "T", "Qa", "Qi", "Sx", "Sp", "Oc", "No", "Dc" }
--- 950 -> "950", 1234 -> "1.23K", 12345 -> "12.3K", 2.5e6 -> "2.5M"
function Shared.abbreviate(n: number): string
if n ~= n or n == math.huge or n == -math.huge then
return "0"
end
local negative = n < 0
local v = math.floor(math.abs(n))
if v < 1000 then
return (if negative then "-" else "") .. tostring(v)
end
local i = 1
local f = v
while f >= 1000 and i < #SUFFIXES do
f /= 1000
i += 1
end
local digits = if f >= 100 then 0 elseif f >= 10 then 1 else 2
local p = 10 ^ digits
-- +1e-9: 2.3 * 100 is 229.99999999999997 in binary floating point
local s = string.format("%." .. digits .. "f", math.floor(f * p + 1e-9) / p)
if digits > 0 then
s = string.gsub(s, "%.?0+$", "")
end
return (if negative then "-" else "") .. s .. SUFFIXES[i]
end
function Shared.money(n: number): string
return "$" .. Shared.abbreviate(n)
end
-- (excerpt) further down the same module:
function Shared.rebirthMult(rebirths: number): number
return 1 + Config.Rebirth.MultPerRebirth * rebirths
endBuilding a clicker game in Roblox
Clicker games and idle tycoons run on the same loop: earn currency, spend it on upgrades that earn faster, and rebirth for a permanent multiplier when the upgrades run out. Ask Picoo to make a clicker game and it builds that loop from its tycoon kit, the tycoon_starter recipe, so the same settings produce the same working game every time.
The kit is a factory tycoon with six plots. Each player who joins gets one of the free plots, and the camera glides over to it. Money comes from droppers: they make cubes that ride conveyor belts past scanners, which raise each cube's value, into a collector. Players buy the next dropper, upgrade, wall or floor by walking onto its pad, and a light beam points to the cheapest pad they can afford. There are 42 purchases over three floors, from the $15 Starter Dropper to the $1.7M Golden Dropper, and vaults add income every second.
Everything that touches money runs on the server. Cubes are server-owned parts and pay out only when they reach a collector on the server. A purchase happens when the server sees the plot owner standing on a pad, so the client never sends a buy request, and the only money request a client can send is a rebirth, which the server accepts at most once a second and checks against the rules. A click-to-earn game needs the same split: the client asks, and the server decides what the click is worth.
Numbers stay readable because one shared function formats every amount on screen, so 1234 shows as 1.23K and 2.5 million as 2.5M. Rebirth unlocks once a player owns the roof and has $3.2M; it clears every purchase, resets cash to $15, and adds 50% to all income from then on. Saves go through ProfileStore, with an in-memory mock in Studio, and a returning player is paid a quarter of their income rate for the time they were away, up to 8 hours.
A click button is a follow-up prompt: ask for one that credits cash on the server, with a rate limit on its remote so an auto-clicker earns no more than a fast human. The look (factory, candy or space), pace, length, title and item names are settings of the kit, so describing a change makes Picoo apply it again with players' saves intact.
See more on the Luau generator, the AI Luau script writer, the 3D model generator and the game builder, read how Picoo compares with ChatGPT, or browse the full blog.
Frequently asked
What does Picoo build when I ask for a clicker game?+
Its tycoon kit, from the tycoon_starter recipe: a plaza with six plots, a three-floor factory on each with 42 things to buy, a HUD, rebirth, saves and offline earnings. That is 14 scripts plus the map, the first plot and the HUD. Press Play in Studio and a self-test prints one TYCOON_SELFTEST line after 60 seconds.
Can players click to earn?+
Yes, as a follow-up prompt. The kit earns through droppers and conveyors, and players buy by walking onto pads. Ask Picoo for a click button that credits cash on the server, and keep a rate limit on that remote, so an auto-clicker earns no more than a fast human.
How do prices and rebirth work?+
The kit generates its prices from its settings and simulates the economy, so they are not typed in by hand. The first pad is the $15 Starter Dropper and the last is the $1.7M Golden Dropper. Rebirth unlocks once a player owns the roof and has $3.2M; it clears every purchase, resets cash to $15, and multiplies all income by 1 + 0.5 × rebirths.
Can I change the theme or the pace?+
Yes. Say what you want in the prompt: the kit has factory, candy and space looks, a pace (fast, normal or relaxed), a length (short, medium or long), a play style (conveyor, idle or upgrader), a title, a currency name and names for the items. Picoo applies the kit again with the new settings, and players' saves carry over.
What if I ask for a clicker simulator?+
That wording goes to Picoo's simulator recipe, simulator_loop, instead: 40 collectible orbs that respawn in a 120-stud zone, Coins and Rebirths leaderstats, an upgrade pad and a rebirth pad.
Can I add the kit to a game I already have?+
The kit is a whole game with its own map, economy and saves, so it goes into a new place. In a place that already holds your game, Picoo offers to build it in a new place instead, or asks which single mechanic, such as a dropper or a buy button, you want added to your game.
Related Picoo prompts
Roblox simulator
5 files · 1,158 lines · one recipe call. Collect orbs, buy upgrades, rebirth for a bigger multiplier.
rebirth system in Roblox
The design is one table — what resets, what persists, what multiplies — and the failure is always a save that happens in the wrong order. Picoo writes this system for each prompt, so the files below are one example; names and line counts will vary.
Roblox shop system
8 files · 1,259 lines, 852 of them the shared PicooFeedback module · one recipe call. Three starter items by default; name your own items and prices in the prompt.