Roblox game pipeline
The conductor: takes a game from idea to launch in phases (concept, economy sim, world, models, systems, UI, VFX, audio, QA, launch, live updates). Each phase names the skill to use, what it must produce and the gate you approve. Ships with measured Studio gotchas, standing rules, parallel agent prompts and a GAME.md tracker.
SKILL.md
One game, start to finish, with the developer approving each gate. This skill is the conductor: each phase names the skill or tool that does the work, what that phase must produce, and how to know it is done. Do not rewrite what those skills already say; load them when their phase starts.
SK = this skill folder. PB = an optional playbook of your own: a folder
(<playbook>/) of generic lessons sorted into topic folders such as
game-design/, building/, engineering/ and thumbnails/. If you don't
have one yet, skip the PB pointers below and start one as lessons come up.
Companion skills named below (studify, roblox-ui-maker, roblox-vfx,
roblox-game-score, claude-music, a design-advice skill,
jest-luau, scrapling, agent-browser) are optional. If one
isn't installed, do that phase directly with the same "produces" and gate.
Before anything
- Find or create the game folder:
<projects>/<slug>/. CopySK/templates/GAME.mdinto it asGAME.md. That file is the single source of truth: phase status, decisions, place and universe ids, asset ids, open questions. Update it at the end of every phase and whenever a decision lands. A new session on this game starts by readingGAME.md. - Read memory for this game and the developer's standing rules. The rules
summary is in
SK/references/rules.md; the measured engine and tool facts are inSK/references/gotchas.md. Read both before the first Studio call. - Find the Studio: use one Studio MCP server for all edits (this skill
was written against the community
robloxstudioMCP server; the official built-inRoblox_Studioserver is used only forupload_image). Check which place is open before every write: there are often several open places with the same default name. - Plan the phases you will run for this request and say them in one message: phase, what it produces, which skill. Skip phases the request does not need. A remake of an existing game starts at phase 0 with "study"; a brand-new idea starts at phase 0 with "concept".
The phases
| # | Phase | Produces | Skill / tool |
|---|---|---|---|
| 0 | Concept / study | GAME.md pitch + reference breakdown |
a design-advice skill, SK/references/study-a-game.md, scrapling / agent-browser for research |
| 1 | Design + economy | PLAN.md: core loop, progression, monetization, numbers; a pacing sim |
design-advice skill, PB/game-design/*, a sim/ script (Python or luau) |
| 2 | World | Map in Studio, stud style | studify; PB/building/* |
| 3 | Models | Meshes for what Parts can't do | Meshy MCP (organic shapes; quote credits first), blender MCP, SK/references/models.md |
| 4 | Systems | Server/client Luau: data, remotes, loop, products | PB/engineering/*, jest-luau for tests, luau CLI for pure logic |
| 5 | UI | Every screen, HTML first, then a real ScreenGui | roblox-ui-maker (always; read its LESSONS.md) |
| 6 | VFX | Particle effects for every key moment | roblox-vfx (read its LESSONS.md) |
| 7 | Audio | Music cues + SFX, SoundGroups | roblox-game-score, claude-music*; keep your verified reusable UI sound ids as described in SK/references/rules.md |
| 8 | QA | Defect list fixed; screenshots; loop timings | SK/references/qa.md |
| 9 | Launch | Thumbnails, icon, products, published place, analytics | SK/references/launch.md |
| 10 | Live ops | Analytics read, next update planned | SK/references/launch.md (analytics), design-advice skill |
Phases 2-7 can overlap once phase 1 is approved: a world and its UI do not wait for each other. Systems (4) gate QA (8).
Phase gates (what "done" means)
- 0 → 1: the developer agrees the pitch and the core loop in one sentence each.
- 1 → build:
PLAN.mdapproved by the developer; the sim shows the pacing they want (first upgrade under a minute, first rebirth in the target window, no dead stretch). Numbers come from the sim, not from vibes. - Each build phase: verified by measurement and screenshots, not by
"it compiled" (see
qa.md). Show the developer screenshots, ask, and write the feedback into the owning skill'sLESSONS.md(UI, VFX) or into memory. - 8 → 9: the loop plays start to finish in a playtest with no errors in
get_runtime_logs, mobile layout checked, 12+ player-height screenshots reviewed. - 9: nothing goes public without the developer's explicit yes (publishing, uploads, dev products, price changes).
Running phases in parallel (lanes)
For a big push, use background subagents as lanes (Agent tool), one per
independent phase: world, UI, VFX, audio. Rules and ready-made lane prompts are
in SK/references/lanes.md. Studio is a single shared resource: only one lane
writes to a given place at a time; the others prepare files (HTML UI, textures,
models, music) and hand them back for import.
Always
- Stud style by default unless the brief or reference says otherwise.
- Particles, not 3D objects, for effects.
- HTML-first UI, icons only from the project's chosen icon pack, never emojis.
- Parts for the world, meshes only where Parts fail; no free models for things that can be built.
- Verify yourself with screenshots and measurements before showing the developer.
- Ask before spending (Meshy credits, uploads, Robux-priced products) and before anything public.
- Push Luau through
.rbxmx+import_rbxm, neverset_script_sourcefor anything with\nin strings (gotchas.md). - Record every decision, id and lesson:
GAME.mdfor this game, memory for cross-game facts,PBfor generic lessons (no game names or secrets there).