Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Meta-skill for complete Roblox game development with Rojo — the entry point that knows and unifies the three specialist skills `/rojo` (filesystem→Studio sync, project setup), `/rbx-studio` (editor, MCP, assets, malware scan) and `/game-design` (roles, workflows, GDD). Use this skill for ANY Roblox game-dev undertaking: planning/building/setting up a Roblox game, scaffolding a new project, defining code architecture (Main + manager modules, _G.ClientState + HUD, remotes in GameEnums), avoiding L
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 39% | 0% |
<img src="banner.png" width="100%" alt="rbx-dev banner">
> Deutsch — Offizielle Deutsch-Version / Documento Oficial en Deutsch.
> Note: Not affiliated with Roblox Corporation; "Roblox" is a trademark of its owners. "rbx" is the common community shorthand.
The central entry point for Roblox game dev with a Rojo-based, version-controllable workflow. This skill bundles the overarching knowledge — project structure, architecture patterns and the most important Luau pitfalls — and routes specialist questions to the three sub-skills:
| Sub-skill | What for | | --- | --- | | /rojo | Filesystem→Studio sync, default.project.json, rokit/Wally/Lune, project skeleton, sync problems | | /rbx-studio | Studio operation, scene-vs-code mode, Studio MCP, asset pipeline, malware scan | | /game-design | Roles & subtasks, development chains, Game Design Document (KONZEPT.md), multi-agent |
> Routing rule: If it's about sync/build/setup → /rojo. About editor/assets/testing in Studio > → /rbx-studio. About concept/roles/process → /game-design. About code architecture, > Luau pitfalls or the overall flow → stay here.
.luau, not .lua). Code in English, comments/docs in German, UI texts in German.optionally Knit (service/controller framework, new projects), Selene (linter).
ProjektName/
├── default.project.json # Rojo-Mapping
├── rokit.toml # gepinnte Tool-Versionen
├── wally.toml # Package-Dependencies
├── KONZEPT.md # Game Design Document
├── src/
│ ├── shared/ # → ReplicatedStorage(.ProjektName.shared)
│ │ ├── Config.luau # zentrale Werte, States, Gameplay-Parameter
│ │ ├── GameEnums.luau # Enums, Remote-Namen, Konstanten
│ │ └── *Defs.luau # Datendefinitionen (Items, Einheiten, Level)
│ ├── server/ # → ServerScriptService(.ProjektName)
│ │ ├── Main.server.luau # EINZIGER Server-Entry-Point (Script)
│ │ └── *Manager.luau # ModuleScripts, von Main per require() geladen
│ ├── client/ # → StarterPlayerScripts(.ProjektName)
│ │ └── GameClient.client.luau # Client-Entry-Point (LocalScript)
│ └── gui/ # → StarterGui(.ProjektName)
│ └── *HUD.client.luau # GUI-Aufbau + Heartbeat-Loop
└── assets/ # optionale .rbxm/.rbxl (scriptfrei)A skeleton is created by /rojo via scaffold_roblox_project.sh.
Server — Main + manager modules. Only one Script per project: Main.server.luau. It centrally creates the remotes folder and loads all feature modules via require():
luaMain.server.luau (Script) ├─ require(StationManager) -- .luau ModuleScripts ├─ require(PlayerSession) └─ erstellt RemoteEvents → verbindet OnServerEvent-Handler
All other server files are .luau (ModuleScripts).
Client — shared state + HUD. The GameClient writes a shared state, the HUD reads it in the Heartbeat:
lua-- GameClient: _G.ClientState = { gameState = "Lobby", health = 100 } -- HUD: RunService.Heartbeat:Connect(function() local cs = _G.ClientState; if not cs then return end healthBar.Size = UDim2.new(cs.health / cs.maxHealth, 0, 1, 0) end)
Remotes — centralized in GameEnums. Define remote names once in GameEnums.Remotes; the server creates the events from them, the client looks them up via the same names. That way there are no string mismatches between server and client.
/game-design): KONZEPT.md — genre, USP, 3–4 core mechanics, monetization./rojo): scaffold the skeleton, define the default.project.json mapping./rbx-studio): gameplay first, parts + optionally AI materials./rbx-studio): Creator Store assets, malware scan, scene as .rbxl./game-design): QA + game critic + persona blind tests, iterate./game-design business role): store page, monetization, live ops.The most common pitfalls — full, annotated list: references/lessons-learned-luau.md.
task.wait(x) when more code follows on the same line.Model.Position does not exist → model:GetPivot().Position.#table on dictionaries = 0 → count manually.mouse.Hit can be nil → check before use.pcall.tick() deprecated → os.clock(); SetPrimaryPartCFrame → PivotTo.GameEnums.Remotes; create all remotes in Main.server.luau.requires (otherwise deadlock).require() only on .luau ModuleScripts, never on Scripts/LocalScripts.task.wait(...) in multi-statement linesModel.Position, no tick(), no SetPrimaryPartCFramepcall, mouse.Hit checked for nilMain.server.luau/rbx-studio → malware scan), reports filedresolve-library-id →/websites/create_roblox_reference_engine (engine API) and /roblox/creator-docs (tutorials/guides); fallback <https://create.roblox.com/docs>.
<your Roblox project pipeline> —including SKILL.md, GUIDE.md, LESSONS_LEARNED.md, ROJO_FAQ.md, ROBLOX_MCP_FAQ.md, AGENT_ROLES.md, _malware_reports/PATTERNS.md, _knowledge/ (local API cache).
/rojo, /rbx-studio, /game-design; project structure,architecture patterns and Luau lessons distilled from the .ROBLOX pipeline, user-neutral.
Other measured skills in the registry, with their headline benchmark lift.