Tutorial · 13 min read · Updated October 2026
How to make a Steal a Brainrot style game on Roblox with AI
Steal a Brainrot turned a simple loop into one of the biggest games on Roblox: buy characters off a conveyor, park them in your base for passive income, and sneak into other bases to steal theirs. This guide shows how to build an original game in the same genre inside your own Roblox Studio place, with the hard parts (server-side stealing, safe saving, performance with eight full bases) done properly. The prompts are written for Forge and work as a checklist with any AI agent.
The loop, piece by piece
- Conveyor. Units ride a belt through the middle of the map. Each spawn rolls a rarity tier by weight, then a unit from that tier. Price and income scale with tier.
- Buy and place. A player buys a unit as it passes. It walks to their base and takes the next free slot.
- Passive income. Every placed unit earns cash per second into the base. The cash builds up until the owner banks it by stepping on the collect pad. Unbanked cash is a reason to stay near home.
- Stealing. Any player can walk into an unlocked base and pick up a unit. While carrying it they move slower. If someone bonks them before they reach their own base, they drop it and the unit returns to its owner. If they make it home, the unit is theirs.
- Base lock. A button closes a laser door that blocks entry for 60 seconds plus 10 seconds per rebirth, then it needs a cooldown. Timing the lock is the core skill.
- Rebirth. Costs cash plus owning a unit of a required tier. It resets cash, keeps a permanent income multiplier and unlocks more slots.
- Guaranteed spawns. Server-wide timers force a high-tier spawn every few minutes so everyone crowds the belt at once.
- Mutations. A small chance on spawn for Gold, Diamond or Rainbow, each multiplying income and changing the material.
- Index. A collection book of every unit and mutation, with rewards for completing tiers.
Why it is harder to build right than it looks
The loop is simple. Most copies feel broken because of what sits under it.
Ownership has to live on the server
This genre is about taking things from other players, so exploiters go straight for it. The client may only ask: "pick up the unit in slot 4 of base 2". The server checks distance, that the base is unlocked, that the player is not already carrying, and rate limits, then changes the owner itself. The bonk, the drop and the delivery home are all server decisions. Income is computed on the server from the slots it owns, never sent by the client.
Saving must be session-locked
Units move between players, so a bad save duplicates or deletes them. Use DataStore UpdateAsync with a session lock so two servers can never write the same player at once, save each unit as a record with a unique id, and save on leave and in BindToClose. Decide a rule for units mid-carry when a server closes (return them to the owner).
ProcessReceipt must be idempotent
Robux products like cash packs or a server-luck boost go through one ProcessReceipt callback that records each PurchaseId before granting, so a retried receipt never grants twice. The game pass guide has the full pattern.
Performance with eight full bases
Eight bases with ten to twenty animated units each is a lot of models. What keeps it smooth:
- AnimationController with an Animator instead of a Humanoid on every unit. Humanoids are expensive and you do not need their physics.
- Units are anchored with
CanCollide,CanTouchandCanQueryoff. - The server holds only data (base, slot, unit id, mutation). Each client spawns and animates the visuals itself.
- StreamingEnabled on, so distant bases are not fully loaded on phones.
- Meshes of 1,000 to 5,000 triangles, with shared textures.
A Theme module: one codebase, many games
Put every name, colour, model reference and sound in one ModuleScript, ReplicatedStorage/Config/Theme. Scripts read tiers and units from it and never hard-code "toy" or "gem". Then the same game becomes Steal a Toy, Steal a Gem or Steal a Car by swapping one module and one model folder. It also keeps your game clearly your own.
-- ReplicatedStorage/Config/Theme (shape only)
return {
gameName = "Steal a Toy",
currency = "Coins",
tiers = {
{ id = "Common", weight = 60, color = Color3.fromRGB(200,200,200) },
{ id = "Uncommon", weight = 25, color = Color3.fromRGB(90,200,90) },
-- Rare, Epic, Legendary, Mythic, Secret ...
},
units = {
{ id = "wind_up_robot", name = "Wind-Up Robot", tier = "Common",
price = 25, income = 1, model = "WindUpRobot" },
-- ...
},
}
3D models without stealing art
Studio's MCP server exposes generate_mesh, which an agent can call to create meshes inside your place. The trick is consistency: write one locked style prompt and reuse it for every unit, changing only the subject. For example: "chunky low-poly toy, soft rounded shapes, flat pastel colours, no text, single mesh, 2,000 to 4,000 triangles". Keep it in the Theme module so later units match the first ones. When a generation does not work, fall back to free models from the Creator Store, checked for scripts and a clear licence. Either way, never import the original game's characters.
The starter prompt for Forge
Paste this as your first message. It sets the rules for the whole build and does Phase 1.
We are building an ORIGINAL Roblox game in the "steal a ___" genre. Do
not use any names, models, art or UI from existing games. Keep it
theme-agnostic: every name, colour, model and sound comes from
ReplicatedStorage/Config/Theme. Sample theme: TOYS ("Steal a Toy").
Tiers and spawn weights: Common 60, Uncommon 25, Rare 10, Epic 4,
Legendary 0.9, Mythic 0.09, Secret 0.01. Three toy units per tier for
now, placeholder blocky models. Mutations on spawn: Gold 2x (3%),
Diamond 3x (1%), Rainbow 5x (0.2%).
Rules for the whole build: the server owns all cash, units, ownership
and income. Remotes send intent only, never amounts or owners. Every
remote validates types, distance and rate. Units are anchored,
non-colliding, use AnimationController (never Humanoid); the server
stores only data and clients spawn the visuals. Save with DataStore
UpdateAsync, session-locked, each unit a record with a GUID.
We work in 6 phases and I will say "next" between them:
1 economy + data, 2 stealing + lock + bonk, 3 models + auras, 4 map,
5 UI + rebirth, 6 monetization + balance.
Phase 1 now: the Theme module, a conveyor that spawns a weighted unit
every 3 seconds, a Buy prompt, 8 bases with 10 slots each, income per
second per placed unit into the base, a collect pad that banks it,
and saving. Playtest with 2 clients, buy two units, collect, stop,
start again, confirm they are still placed. Screenshot.
Follow-up messages, one per phase
Phase 2: stealing, lock and bonk.
Next. Add stealing: a player in an unlocked base can pick up a unit
(server checks distance 8 studs, not already carrying, rate limit).
Carrying sets WalkSpeed to 60%. A Bonk tool hits within 6 studs; if
the target is carrying, the unit returns to its owner's slot. Reaching
your own base with a unit places it in a free slot and changes owner
on the server. Add a lock button: laser door blocks non-owners for
60 s + 10 s per rebirth, then a 30 s cooldown. Test with 2 clients:
steal, get bonked, steal and deliver, lock. Screenshot each.
Phase 3: models and auras.
Next. Replace placeholders using generate_mesh with this locked style:
"[your style prompt]". One mesh per unit, 2,000 to 4,000 triangles.
If a generation fails twice, use a free Creator Store model with no
scripts. Add an idle animation on AnimationController, a tier-coloured
aura for Epic and above, and Gold/Diamond/Rainbow materials, all
spawned on the client. Screenshot a full base.
Phase 4: the map.
Next. Lay out 8 bases in a ring around a central conveyor, a spawn
with a welcome sign in the theme, clear paths between bases, and
lighting that fits the theme. Turn on StreamingEnabled and set the
base models to stream sensibly. Check the device emulator on a phone
preset. Screenshot from above and from spawn.
Phase 5: UI and rebirth.
Next. Scale-based HUD: cash, income per second, lock timer, carry
status. An Index book listing every unit and mutation, greyed until
owned, with a reward per completed tier (saved). Guaranteed spawns:
every 5 minutes a Legendary, every 30 minutes a Mythic, announced to
the server. Rebirth: costs cash plus owning one unit of the required
tier (Rare for rebirth 1, Epic for 2, Legendary for 3...), grants
+50% income multiplier and +2 slots. Screenshot the Index and the
rebirth panel.
Phase 6: monetization and balance.
Next. Add placeholder-id game passes: 2x Cash, VIP (chat tag, +1
slot, gold door), +5 Slots, Longer Lock (+30 s), Auto Collect. Add
developer products: cash packs and a 15-minute Server Luck boost
(2x rare weights for everyone, announced). One ProcessReceipt,
idempotent by PurchaseId. Then review every remote for type, range,
ownership and rate checks, and print a table of time-to-afford for
each tier so I can balance. Summarise the changes.
Create the real passes and products on the Roblox website and paste their ids into the constants. The agent cannot do that part.
Monetization ideas that fit the loop
| Product | Type | Why players buy it |
|---|---|---|
| 2x Cash | Game pass | Faster to every next tier and rebirth |
| VIP | Game pass | Status, an extra slot and a cosmetic door |
| +Slots | Game pass | More units earning at once |
| Longer lock | Game pass | Safer time away from the base |
| Auto collect | Game pass | No more running back to bank cash |
| Server luck | Developer product | Boosts everyone, so the buyer gets a shout-out and the server gets busy |
Show spawn odds in the game. Players trust a game that shows its odds, and it is the honest thing to do.
Honest limits
- The AI builds systems; it does not make a hit. What made the original huge was timing, a meme-driven theme and constant updates. Your theme and your update rhythm are on you.
- Generated meshes vary. Expect to regenerate some units and to hand-pick the best. A consistent style takes iteration.
- Balance needs real players. The time-to-afford table is a start; retention data from a soft launch tells you the truth.
- You still review the code. Read the remote handlers yourself, or ask for the security pass again after every big change.
- Cost. On Sonnet 5.5, all six phases typically run several thousand credits, more if you regenerate a lot of models. Every message shows its price before you send it; see pricing.
Questions
Can I copy Steal a Brainrot?
No. Mechanics like conveyors, base slots and stealing are a genre many games share, but the models, art, names, UI and branding belong to the original developer, who has taken action against copycats. Build the loop yourself and reskin it with your own theme.
Is there a Steal a Brainrot game template for Roblox Studio?
Free kits that clone the original usually reuse its assets and often contain backdoors. A safer route is to generate your own theme-agnostic template in your place, with a Theme module, so the same scripts become Steal a Toy, Steal a Gem or Steal a Car.
How do I stop exploiters from stealing everything?
Keep ownership on the server. The client only asks to pick up a unit; the server checks distance, lock state, carry state and rate, then moves the unit between owners and saves it.
Why does my steal-a game lag with a full server?
Use AnimationController instead of Humanoid, anchor units with collisions off, keep only data on the server and spawn visuals on clients, enable StreamingEnabled, and keep meshes around 1,000 to 5,000 triangles.
How long does it take to build with AI?
The six phases take an afternoon to a weekend of prompting and playtesting. Balancing the economy takes longer, and you learn it by playing with real players.
Related guides
- How to make a Roblox pet simulator with AI: weighted eggs, rarities and golden crafting.
- How to make a Roblox tycoon with AI: plots, droppers and upgrades.
- How to make a Roblox idle game with AI: passive income, big numbers and prestige.
- Game pass and developer product scripts with AI: idempotent ProcessReceipt.