本文へ移動
cccskills
無料GitHub で公開

rojo

Operating Rojo — the filesystem-to-Roblox-Studio sync tool for professional Roblox development in VS Code / Claude Code instead of the Studio editor. Use this skill whenever Rojo is involved: `rojo serve`/`rojo build`, writing or debugging `default.project.json`, rokit/rokit.toml and tool versions (Rojo, Lune, Wally), nested vs. flat path mapping (ReplicatedStorage.Project.shared), connect/port/sync problems, or when a Roblox project skeleton needs to be created. Also trigger on "rojo connect not working", "scripts end up in the wrong place in Studio", "how do I map src/ to Studio", "port 34872 in use", "ModuleScript vs Script in Rojo".

インストール方法を見る

含まれるファイル(12)

  • SKILL.md10.0 KB
  • assets/default.project.json799 B
  • assets/rokit.toml101 B
  • assets/wally.toml178 B
  • banner.png135.8 KB
  • scripts/scaffold_roblox_project.sh6.7 KB
  • SKILL.en.md9.7 KB
  • SKILL.es.md11.3 KB
  • SKILL.fr.md8.6 KB
  • SKILL.ja.md12.9 KB
  • SKILL.ru.md15.5 KB
  • SKILL.zh.md10.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

<img src="banner.png" width="100%" alt="rojo banner">

Rojo — Filesystem → Roblox Studio Sync

Zweck

Rojo verbindet ein normales Dateisystem-Projekt (.luau-Dateien in src/, versioniert mit Git) mit Roblox Studio. Du schreibst Code im Editor deiner Wahl (VS Code, Claude Code), Rojo synchronisiert ihn live in eine laufende Studio-Instanz. So wird Roblox-Code versionierbar, diffbar und mit echten Tools bearbeitbar — statt im eingebauten Studio-Skripteditor zu leben.

Nutze diesen Skill für alles rund um Rojo-Setup, das default.project.json-Mapping, die Toolchain (rokit/Wally/Lune) und typische Sync-Probleme.

Mentales Modell

VS Code / Claude Code          rojo serve            Roblox Studio
   src/server/*.luau   ──────►  (localhost:34872) ──►  ServerScriptService.*
   src/client/*.luau            Live-Sync               StarterPlayerScripts.*
   src/shared/*.luau                                    ReplicatedStorage.*
   src/gui/*.luau                                       StarterGui.*

Kernregel: Das Dateisystem ist die Quelle der Wahrheit. Rojo überschreibt bei jedem Connect die gemappten Studio-Bereiche mit dem Filesystem-Inhalt. Bearbeite Code daher nie in Studio (geht beim nächsten Sync verloren), sondern nur im Editor. Der Workspace (3D-Szene, Terrain) wird von Rojo nicht gemappt und bleibt erhalten — siehe Skill /rbx-studio für den Szene-vs-Code-Workflow.

Dateiendungen → Roblox-Typ (Rojo-Konvention)

Rojo leitet den Instanztyp aus der Endung ab. Das ist die häufigste Fehlerquelle:

DateiRoblox-Typrequire()-barRolle
Foo.luauModuleScriptjaLogik-Modul, Definitionen
Foo.server.luauScriptneinServer-Entry-Point
Foo.client.luauLocalScriptneinClient-Entry-Point
init.luauwird zum Ordner-Knoten selbstjamacht Ordner zum ModuleScript

Faustregel: Nur Entry-Points sind .server.luau/.client.luau. Alles, was per require() geladen wird, muss ein .luau-ModuleScript sein. require() auf ein Script/LocalScript wirft "Attempted to call require with invalid argument(s)".

CLI-Befehle

rojo serve default.project.json     # Live-Sync-Server starten (Standard-Port 34872)
rojo serve                          # nutzt default.project.json automatisch
rojo build default.project.json -o game.rbxlx   # einmaliger Build → Place-Datei (XML)
rojo build default.project.json -o game.rbxl    # Build → Place-Datei (binär)
rojo plugin install                 # Rojo-Studio-Plugin installieren (einmalig)
rojo --version                      # installierte Version prüfen

Nach rojo serve: in Studio das Rojo-Plugin öffnen → Connect (localhost:34872). rojo build braucht kein laufendes Studio — ideal für CI, Smoke-Tests und Releases.

default.project.json — das Mapping

Diese Datei mappt Dateisystem-Pfade auf die Roblox-Datamodel-Hierarchie. Schlüssel:

  • name — Projektname (Anzeige)
  • $className — Roblox-Klasse des Knotens (DataModel, ServerScriptService, Folder, …)
  • $path — Dateisystem-Pfad, der unter diesen Knoten gesynct wird (relativ zur Projektwurzel)

Ein einsatzfertiges Standard-Template liegt unter assets/default.project.json.

Flach vs. verschachtelt — die wichtigste Entscheidung

Dein Code muss zum Mapping passen. Zwei Varianten:

Flach — Inhalt von src/server landet direkt in ServerScriptService:

"ServerScriptService": { "$className": "ServerScriptService", "$path": "src/server" }

→ Code referenziert z. B. ReplicatedStorage.Config, ReplicatedStorage.GameEnums.

Verschachtelt — Inhalt landet in ServerScriptService.ProjektName:

"ServerScriptService": {
  "$className": "ServerScriptService",
  "ProjektName": { "$path": "src/server" }
}

→ Code referenziert ReplicatedStorage.ProjektName.shared.Config usw.

Beide sind gültig. Entscheide dich projektweit für eine Variante und halte jeden require/WaitForChild-Pfad konsistent dazu. Symptom bei Mismatch: WaitForChild(...) hängt endlos (Infinite yield), weil der erwartete Knoten an anderer Stelle liegt.

Toolchain via rokit

rokit ist der Toolchain-Manager. Eine rokit.toml im Projekt (oder Elternordner) pinnt exakte Tool-Versionen → reproduzierbare Builds auf allen Maschinen. Fehlt sie, kommt Failed to find tool 'rojo' in any project manifest file.

Standard-rokit.toml (siehe assets/rokit.toml):

[tools]
rojo = "rojo-rbx/rojo@7.4.4"
lune = "lune-org/lune@0.10.4"
wally = "UpliftGames/wally@0.3.2"

Versions-Hinweis: 7.4.4 ist die in der Referenz-Pipeline durchgängig gepinnte Version. Neuere Projekte können auf 7.6.x gehen — vorher mit rojo build gegen das Projekt prüfen, da sich das Projektformat zwischen Major-Versionen ändern kann.

Nach Klonen/Setup: rokit install zieht alle gepinnten Tools.

  • Lune — Luau-Runner außerhalb Studio (Unit-Tests, Build-Skripte, Asset-Verarbeitung).
  • Wally — Paketmanager: wally install → Packages/ → in Studio unter ReplicatedStorage.Packages. Dependencies stehen in wally.toml (siehe assets/wally.toml), z. B. das Framework sleitnick/knit@1.7.0.

Neues Projekt anlegen

Das Skript scripts/scaffold_roblox_project.sh legt ein komplettes Rojo-Skelett an (project.json, rokit.toml, wally.toml, src/{shared,server,client,gui}/ mit Starter-Dateien, KONZEPT-Stub):

bash scripts/scaffold_roblox_project.sh MeinSpiel        # flaches Mapping (Default)
bash scripts/scaffold_roblox_project.sh MeinSpiel --nested   # verschachteltes Mapping

Danach: cd MeinSpiel && rokit install && rojo serve.

Troubleshooting

SymptomUrsacheLösung
Failed to find tool 'rojo'keine rokit.tomlrokit.toml mit Rojo-Pin im Projekt/Elternordner anlegen, rokit install
require wirft "invalid argument(s)"require() auf ein Script/LocalScriptnur .luau-ModuleScripts sind require-bar; Endung prüfen
Port 34872 belegt (os error 10048)alter Rojo-Prozess läufttasklist | grep -i rojo → taskkill //PID <PID> //F, dann neu rojo serve
Scripts landen falsch in Studioflaches statt verschachteltes Mapping (oder umgekehrt)default.project.json an die Code-Pfade anpassen (siehe oben)
WaitForChild hängt endloserwarteter Knoten existiert nicht / Server-Fehler vor Erstellungzuerst Server-Console auf Fehler prüfen; Mapping + Erstellungsreihenfolge checken
Sync nach Datei-Umbenennung bleibt ausRojo erkennt Rename nicht sofortServer stoppen (Ctrl+C) + neu starten, in Studio Disconnect→Reconnect
Änderung in Studio weg nach ReconnectStudio-Edit statt Filesystem-EditCode nur im Editor ändern; Rojo überschreibt gemappte Bereiche

Bekannte Rojo-Grenzen

  1. Kein Terrain-/Workspace-Sync — 3D-Szene & Terrain in Studio bauen oder per Code generieren.
  2. Kein .rbxl-Merge — Place-Dateien sind binär, nicht git-mergebar. Nie als primäre Quelle.
  3. Kein Live-Sync im Play-Modus — Änderungen während Play werden bei Stop verworfen.
  4. Git Bash Path-Translation — /c/... kann zu C:/... übersetzt werden und Rojo-Pfade brechen; im Zweifel relative Pfade oder native Windows-Pfade nutzen.

Linting (Selene)

Roblox-Luau-Projekte werden üblicherweise mit Selene gelintet (selene.toml im Root, std = "roblox"). Globals wie _G per global_usage = "allow" freigeben, wenn das Projekt sie für geteilten Client-State nutzt. Selene aus dem Verzeichnis mit der Roblox-API-Definition (roblox.yml) ausführen.

Weiterführend

  • Schwesterskills: /rbx-studio (Studio-Bedienung, MCP, Assets), /game-design (Rollen, Workflows, GDD), Metaskill /rbx-dev (vereint alle drei + Architektur-Pattern).
  • Aktuelle Engine-/Rojo-Doku: Context7 MCP (resolve-library-id → /websites/create_roblox_reference_engine, /roblox/creator-docs) oder https://rojo.space/docs/.
  • Falls auf diesem System vorhanden, liegt eine projektreiche Referenz-Pipeline unter <your Roblox project pipeline> (u. a. ROJO_FAQ.md, SKILL.md).

Changelog

1.0.0 (2026-06-17)

  • Initiale Version. Destilliert aus der .ROBLOX-Pipeline (ROJO_FAQ, ROJO_START, _template), nutzerneutral gefasst.

Verwandte Skills

  • roblox-team-lock — Datei-, Studio- und MCP-Claims, sobald mehrere Agenten am selben Projekt arbeiten. Erst lesen, dann claimen, dann arbeiten, dann freigeben.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Akademisches Studien- und Fristenmanagement mit Quellenprüfung, Datenschutz und realistischer Handlungsplanung.

日本語の概要は準備中です。原文の説明を表示しています。

ellmos-ai/skills82026年10月12日 更新

Aktives Lernen, Erarbeitung von Fachinhalten und strukturierte Erstellung von Synthesen.

日本語の概要は準備中です。原文の説明を表示しています。

ellmos-ai/skills82026年10月12日 更新

Prüfungsvorbereitung, Selbsttests, Probeklausuren und systematische Fehleranalyse.

日本語の概要は準備中です。原文の説明を表示しています。

ellmos-ai/skills82026年10月12日 更新

Terapia de Aceptación y Compromiso (ACT) según Steven Hayes: modelo Hexaflex con los seis procesos nucleares de la flexibilidad psicológica.

日本語の概要は準備中です。原文の説明を表示しています。

ellmos-ai/skills82026年10月12日 更新

Acceptance & Commitment Therapy (ACT) nach Steven Hayes: Hexaflex-Modell mit den sechs Kernprozessen psychischer Flexibilität.

日本語の概要は準備中です。原文の説明を表示しています。

ellmos-ai/skills82026年10月12日 更新

Acceptance & Commitment Therapy (ACT) according to Steven Hayes: Hexaflex model with the six core processes of psychological flexibility.

日本語の概要は準備中です。原文の説明を表示しています。

ellmos-ai/skills82026年10月12日 更新

ellmos-ai のスキルをすべて見る

このスキルの問題を報告する