rbx-dev · diff

v1.0.0 to v1.0.0

66 added, 69 removed. Audit A to A.

---
name: rbx-dev
version: 1.0.0
type: skill
author: Lukas Geiger + Claude
created: 2026-06-17
updated: 2026-06-17
description: 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 Luau/Roblox pitfalls, or when it is unclear which of the Roblox specialist skills fits — routing happens from here. Also trigger on "develop Roblox game", "build Roblox game", "new Roblox project", "Luau project structure", "how do I organize Roblox code", "Roblox dev setup".
standalone: true
anthropic_compatible: true
bach_compatible: false
bach_origin: false
category: game-dev
tags: [roblox, luau, rojo, studio, game-design, architektur, meta, gamedev]
language: de
status: active
visibility: public
dependencies: {'tools': ['rojo', 'rokit'], 'services': [], 'protocols': [], 'python': []}
provenance: {'origin': 'custom', 'origin_path': '~/.claude/skills/rbx-dev/', 'origin_version': '1.0.0', 'origin_repo': None, 'last_sync_from_origin': None, 'last_sync_to_origin': None, 'local_changes_since_sync': False}
---
-
<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.
+ > **Hinweis:** Nicht mit der Roblox Corporation affiliiert; „Roblox" ist eine Marke ihrer Inhaber. „rbx" ist das gängige Community-Kürzel.
- # Roblox-Dev — Meta-Skill for Roblox Game Development (Deutsch)
+ # Roblox-Dev — Meta-Skill für Roblox-Spieleentwicklung
- ## Übersicht & Zweck
+ ## Zweck
- 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:
+ Der zentrale Einstieg für Roblox-Game-Dev mit einem Rojo-basierten, versionierbaren Workflow.
+ Dieser Skill bündelt das übergreifende Wissen — Projektstruktur, Architektur-Pattern und die
+ wichtigsten Luau-Fallstricke — und leitet für Spezialfragen an die drei Unterskills weiter:
- | Sub-skill | What for |
+ | Unterskill | Wofür |
| --- | --- |
- | **`/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 |
+ | **`/rojo`** | Filesystem→Studio-Sync, `default.project.json`, rokit/Wally/Lune, Projekt-Skelett, Sync-Probleme |
+ | **`/rbx-studio`** | Studio-Bedienung, Szene-vs-Code-Modus, Studio-MCP, Asset-Pipeline, **Malware-Scan** |
+ | **`/game-design`** | Rollen & Teilaufgaben, Entwicklungs-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.
+ > Routing-Regel: Geht es um **Sync/Build/Setup** → `/rojo`. Um **Editor/Assets/Testen in Studio**
+ > → `/rbx-studio`. Um **Konzept/Rollen/Prozess** → `/game-design`. Um **Code-Architektur,
+ > Luau-Stolperfallen oder den Gesamtablauf** → hier bleiben.
- ## Stack at a Glance
+ ## Stack auf einen Blick
- - **Language:** Luau (`.luau`, not `.lua`). Code in English, comments/docs in German, UI texts in German.
- - **Sync:** Rojo via rokit (pinned tool versions). Filesystem = source of truth.
- - **Tools:** Rojo (sync/build), Lune (tests/scripts outside Studio), Wally (packages),
- optionally Knit (service/controller framework, new projects), Selene (linter).
- - **Control:** Roblox-Studio-MCP for AI-driven inspection/tests/asset insertion.
+ - **Sprache:** Luau (`.luau`, nicht `.lua`). Code englisch, Kommentare/Doku deutsch, UI-Texte deutsch.
+ - **Sync:** Rojo via rokit (gepinnte Tool-Versionen). Dateisystem = Quelle der Wahrheit.
+ - **Tools:** Rojo (Sync/Build), Lune (Tests/Skripte außerhalb Studio), Wally (Packages),
+ optional Knit (Service-/Controller-Framework, neue Projekte), Selene (Linter).
+ - **Steuerung:** Roblox-Studio-MCP für KI-gesteuerte Inspektion/Tests/Asset-Insertion.
- ## Project Structure (Standard)
+ ## Projektstruktur (Standard)
```
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`.
+ Ein Skelett legt `/rojo` per `scaffold_roblox_project.sh` an.
- ## Architecture Patterns
+ ## Architektur-Pattern
- **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()`:
+ **Server — Main + Manager-Module.** Pro Projekt nur **ein** Script: `Main.server.luau`. Es
+ erstellt zentral den Remotes-Ordner und lädt alle Feature-Module per `require()`:
```lua
Main.server.luau (Script)
├─ require(StationManager) -- .luau ModuleScripts
├─ require(PlayerSession)
└─ erstellt RemoteEvents → verbindet OnServerEvent-Handler
```
- All other server files are `.luau` (ModuleScripts).
+ Alle anderen Server-Dateien sind `.luau` (ModuleScripts).
- **Client — shared state + HUD.** The GameClient writes a shared state, the HUD reads
- it in the Heartbeat:
+ **Client — geteilter State + HUD.** Der GameClient schreibt einen geteilten State, das HUD liest
+ ihn im 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.
+ **Remotes — zentral in GameEnums.** Remote-Namen einmal in `GameEnums.Remotes` definieren;
+ Server erstellt die Events darüber, Client sucht sie über dieselben Namen. So gibt es keine
+ String-Mismatches zwischen Server und Client.
- ## Overall Flow of a Game
+ ## Gesamtablauf eines Spiels
- 1. **Concept** (`/game-design`): KONZEPT.md — genre, USP, 3–4 core mechanics, monetization.
- 2. **Setup** (`/rojo`): scaffold the skeleton, define the `default.project.json` mapping.
+ 1. **Konzept** (`/game-design`): KONZEPT.md — Genre, USP, 3–4 Kern-Mechaniken, Monetarisierung.
+ 2. **Setup** (`/rojo`): Skelett scaffolden, `default.project.json`-Mapping festlegen.
3. **Backend**: Config → GameEnums → *Defs → Main.server → *Manager.
4. **Frontend**: GameClient → HUD.
- 5. **Greybox playtest** (`/rbx-studio`): gameplay first, parts + optionally AI materials.
- 6. **Asset upgrade** (`/rbx-studio`): Creator Store assets, **malware scan**, scene as .rbxl.
- 7. **Test** (`/game-design`): QA + game critic + persona blind tests, iterate.
- 8. **Release** (`/game-design` business role): store page, monetization, live ops.
+ 5. **Greybox-Playtest** (`/rbx-studio`): Gameplay zuerst, Parts + ggf. KI-Materials.
+ 6. **Asset-Upgrade** (`/rbx-studio`): Creator-Store-Assets, **Malware-Scan**, Szene als .rbxl.
+ 7. **Test** (`/game-design`): QA + Spielkritiker + Persona-Blindtests, iterieren.
+ 8. **Release** (`/game-design` Business-Rolle): Store-Seite, Monetarisierung, Live-Ops.
- ## Luau/Roblox Pitfalls (Short List)
+ ## Luau-/Roblox-Fallstricke (Kurzliste)
- The most common pitfalls — full, annotated list:
+ Die häufigsten Stolperfallen — vollständige, kommentierte Liste:
[`references/lessons-learned-luau.md`](references/lessons-learned-luau.md).
- - Semicolon after `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.
- - DataStore calls **always** in `pcall`.
+ - Semicolon nach `task.wait(x)`, wenn weiterer Code in derselben Zeile folgt.
+ - `Model.Position` existiert nicht → `model:GetPivot().Position`.
+ - `#table` auf Dictionaries = 0 → manuell zählen.
+ - `mouse.Hit` kann nil sein → vor Gebrauch prüfen.
+ - DataStore-Calls **immer** in `pcall`.
- `tick()` deprecated → `os.clock()`; `SetPrimaryPartCFrame` → `PivotTo`.
- - Event names centralized in `GameEnums.Remotes`; create all remotes in `Main.server.luau`.
- - No circular `require`s (otherwise deadlock).
- - `require()` only on `.luau` ModuleScripts, never on Scripts/LocalScripts.
+ - Event-Namen zentral in `GameEnums.Remotes`; alle Remotes in `Main.server.luau` erstellen.
+ - Keine zirkulären `require`s (sonst Deadlock).
+ - `require()` nur auf `.luau`-ModuleScripts, nie auf Scripts/LocalScripts.
- ## Before Every Commit (Checklist)
+ ## Vor jedem Commit (Checkliste)
- - [ ] Semicolons after `task.wait(...)` in multi-statement lines
- - [ ] no `Model.Position`, no `tick()`, no `SetPrimaryPartCFrame`
- - [ ] DataStore in `pcall`, `mouse.Hit` checked for nil
- - [ ] event names match server↔client (via GameEnums)
- - [ ] all RemoteEvents created in `Main.server.luau`
- - [ ] no circular requires
- - [ ] marketplace assets scanned (`/rbx-studio` → malware scan), reports filed
+ - [ ] Semicolons nach `task.wait(...)` in Mehrfach-Statements
+ - [ ] kein `Model.Position`, kein `tick()`, kein `SetPrimaryPartCFrame`
+ - [ ] DataStore in `pcall`, `mouse.Hit` auf nil geprüft
+ - [ ] Event-Namen matchen Server↔Client (über GameEnums)
+ - [ ] alle RemoteEvents in `Main.server.luau` erstellt
+ - [ ] keine zirkulären Requires
+ - [ ] Marketplace-Assets gescannt (`/rbx-studio` → Malware-Scan), Reports abgelegt
- ## Knowledge Sources
+ ## Wissensquellen
- - **Current engine/creator docs:** Context7 MCP — `resolve-library-id` →
- `/websites/create_roblox_reference_engine` (engine API) and `/roblox/creator-docs`
- (tutorials/guides); fallback <https://create.roblox.com/docs>.
- - **Reference pipeline** (if present on this system): `<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).
+ - **Aktuelle Engine-/Creator-Doku:** Context7 MCP — `resolve-library-id` →
+ `/websites/create_roblox_reference_engine` (Engine-API) und `/roblox/creator-docs`
+ (Tutorials/Guides); Fallback <https://create.roblox.com/docs>.
+ - **Referenz-Pipeline** (falls auf diesem System vorhanden): `<your Roblox project pipeline>` —
+ u. a. `SKILL.md`, `GUIDE.md`, `LESSONS_LEARNED.md`, `ROJO_FAQ.md`, `ROBLOX_MCP_FAQ.md`,
+ `AGENT_ROLES.md`, `_malware_reports/PATTERNS.md`, `_knowledge/` (lokaler API-Cache).
- ## Änderungsprotokoll
+ ## Changelog
### 1.0.0 (2026-06-17)
- - Initial version. Meta-skill over `/rojo`, `/rbx-studio`, `/game-design`; project structure,
- architecture patterns and Luau lessons distilled from the `.ROBLOX` pipeline, user-neutral.
+ - Initiale Version. Meta-Skill über `/rojo`, `/rbx-studio`, `/game-design`; Projektstruktur,
+ Architektur-Pattern und Luau-Lessons destilliert aus der `.ROBLOX`-Pipeline, nutzerneutral.
+