Use when the user wants a new Roblox game made from an idea ("make me a co-op lava escape", "build a tycoon with Forge"), especially when they will be away while it builds.
Install
npx skillscat add chocoliticekreem/mubithack/building-games-with-forge Install via the SkillsCat registry.
Building a game with Forge from an idea
Overview
Read the shared game production guide from the mubithack checkout. Establish the game profile, target stage, applicable capability checks and highest-priority playable slice. All design/code/test-judgment AI must use the Mubit-backed tools; do not replace those tasks with host-assistant generation.
build_game designs, codes and playtests in Roblox Studio as a background job (5-15 min), with
every LLM call through Mubit. "Built" is not "done": a game is finished when done(slug) says
READY. Building into the wrong Studio window overwrites someone's place, so the window choice
comes first.
Steps
setup(). Follow every ✗ it lists (it can save the key, install luau and open a place). Build
only once it says ready.- Pick the window.
doctor()lists Studio windows. Passstudio="<your local place name>"
to every build tool. Never use a name withplaceId(a shared Team Create place). With no
local place, runsetup(open_place=True). - Sharpen the idea into one line: genre, the core loop, what players do together, and how a
round ends. For example: "co-op lava escape: lava rises every 20 s, players boost each other up
ledges, the round ends when all reach the top or fall". build_game(idea, iterations=2, studio=...). It follows the job for about 4 minutes,
streaming the phase, steps and critic score.- Still running? Call
job(id, wait_seconds=300)again. Read the summary line every time.
failed means: read the tail, fix the cause (setup, Studio), start again. - Finished:
games()gives the slug and score, thendone(slug). If the user wants it
"done" (or is away), carry on with the improving-games-until-done skill. Otherwise report. - See it work: mubit-tester
test_feature("<core loop in one sentence>", game=slug).
Report format
Built <title> (`<slug>`) in <min> min, job <id>: critic <score>/10
done(slug): READY | not ready: <missing parts>
Played: test_feature <verdict> (test <id>), screenshot <path>
Next: <what improve_game / you should do>Report only what tools printed. If the job is still running when you have to answer, say so and
give the job id.
Deadline ("back in 20 min"): build first. Spend what's left on improving-games-until-done
rounds. At the deadline, report the state honestly with the job id, even if it isn't READY.
Common mistakes
| Mistake | Fix |
|---|---|
Building without studio= |
It goes to the first connected window, maybe the shared place |
Polling job(id) with no wait |
job(id, wait_seconds=300) streams and saves calls |
| "Done" right after the build | Done means done(slug) READY |
| Telling the user "open Studio and press Play" as proof | test_feature is the proof |