roblox-tooling について
Roblox 開発向けのスキルで、コード同期方式の選択と Luau ワークフローの構成を扱います。プロジェクトのマッピング、依存関係、品質チェック、Roblox 外でのスクリプト実行、CIを説明します。
主な機能
- 01Studio Script Sync と Rojo の案内
- 02Rokit によるツールチェーン固定
- 03Rojo のプロジェクトとファイル対応
- 04Wally と pesde によるパッケージ管理
- 05Luau の型チェック、整形、Lint
- 06Lune スクリプトと CI の案内
活用シーン
- 01Studio Script Sync と Rojo の選択
- 02プロジェクトの Roblox 開発ツール固定
- 03Luau チェックとパッケージ作業の構成
- 04Roblox 外でのビルドやテストスクリプト実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ el4cteo/ roblox-skills --skill roblox-toolingインストール後、Claude Code で/roblox-toolingを入力して読み込まれたか確認します。
同梱ファイルreferences/ci-workflow.md
詳細
Roblox ツール群
同期モデルを選ぶ
| 目的 | 使うもの |
|---|---|
| 外部エディタ / git でスクリプトを編集する(コードのみ)。Studio を信頼できる唯一の情報源として維持。Team Create | Studio Script Sync(組み込み: フォルダを右クリック → Sync to…) |
| プロジェクト全体をファイルとして扱う。ファイルシステムを信頼できる唯一の情報源とし、CI ビルド、パッケージ管理を行う | Rojo(rojo serve + Studio プラグイン) |
Script Sync が同期するのは Script/LocalScript/ModuleScript/Folder のみです(同期ルートごとに
最大 10,000 スクリプト、最大 128 ルート)。属性やタグを持つスクリプトは同期しないでください(それらは
ディスクに書き込まれません)。どちらを使う場合でも、VS Code 拡張機能の Luau Language Server と、その
Luau Language Server Companion Studio プラグイン(DataModel ツリーを送信し、require やインスタンス
パスの型チェックを可能にします)を組み合わせてください。
Rokit: 固定されたツールチェーン
# rokit.toml (commit it; run `rokit install`)
[tools]
rojo = "rojo-rbx/[email protected]"
wally = "UpliftGames/[email protected]"
lune = "lune-org/[email protected]"
stylua = "JohnnyMorganz/[email protected]"
selene = "Kampfkarren/[email protected]"
luau-lsp = "JohnnyMorganz/[email protected]"
darklua = "seaofvoices/[email protected]"
Rokit のインストール: curl -sSf https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.sh | bash
(Windows: install.ps1)。ツールの追加は rokit add owner/repo で行います。上記のバージョンは
2026 年 9 月時点のものです。意図的に更新してください。(Aftman と Foreman は古い同等品です。)
Rojo プロジェクト
{
"name": "my-game",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": { "$path": "src/shared" },
"Packages": { "$path": "Packages" }
},
"ServerScriptService": {
"Server": { "$path": "src/server" },
"ServerPackages": { "$path": "ServerPackages" }
},
"StarterPlayer": {
"StarterPlayerScripts": {
"Client": { "$path": "src/client" }
}
},
"Workspace": {
"$properties": { "StreamingEnabled": true }
}
}
}
ファイルのマッピング: Foo.luau → ModuleScript、Foo.server.luau → Script、Foo.client.luau → LocalScript、
init.luau/init.server.luau/init.client.luau を含むフォルダ → そのスクリプトと子要素、
*.meta.json → プロパティ/属性、*.model.json/.rbxm/.rbxmx → インスタンス、*.json/*.toml/*.txt
→ データを返す ModuleScript / StringValue。コマンド: rojo serve、rojo build -o game.rbxl、
rojo sourcemap default.project.json -o sourcemap.json(luau-lsp 用)、公開には rojo upload / Open Cloud
を使用します。マップやアートは Studio(または .rbxm ファイル)に、コードは Rojo に置いてください。
部分的に管理されたツリーでも問題ありません。
パッケージ
- Wally(
wally.toml、wally install→Packages/、realm = "server"の場合はServerPackages/):
Wally のサンクは型情報を失います。インストール後に[dependencies] React = "jsdotlua/[email protected]" ReactRoblox = "jsdotlua/[email protected]" [server-dependencies] ProfileStore = "lm-loleris/[email protected]"wally-package-types --sourcemap sourcemap.json Packages/を実行してください。 各パッケージの正確な名前/バージョンは wally.run の各パッケージページで確認してください。 - pesde(
pesde.toml): Roblox/Lune/Luau 向けのより新しいマネージャーで、Wally パッケージにも依存できます。 wally.lock/pesde.lockはコミットし、Packages/はコミットしないでください。
コード品質
- luau-lsp(エディタ + CLI)— Roblox の定義に対する型チェック。CLI:
luau-lsp analyze --definitions=@roblox=globalTypes.d.luau --sourcemap=sourcemap.json --base-luaurc=.luaurc src/(定義:https://raw.githubusercontent.com/JohnnyMorganz/luau-lsp/main/scripts/globalTypes.d.luau)。 Studio と一致させるには、エディタで新しいソルバーを有効にしてください(luau-lsp.fflags.enableNewSolver)。 - StyLua — フォーマッター。
stylua.toml:indent_type = "Tabs"、column_width = 120。stylua --check src。 - selene — リンター。
selene.toml:std = "roblox"(selene generate-roblox-stdで生成/更新)。 - darklua — 公開パイプライン向けのコード変換(例: 文字列 require の変換、バンドル)。
.luaurc— ディレクトリごとの型チェックモードと require エイリアス:
Roblox は文字列 require を DataModel からの相対で解決します({ "languageMode": "strict", "aliases": { "Shared": "src/shared", "Packages": "Packages" } }./、../、@self、@game)。カスタムの.luaurcエイリアスには、あなたのマッピングを理解するツール(luau-lsp/darklua)が必要です。
Lune
Roblox の外でスクリプトを実行するためのスタンドアロン Luau ランタイムです。ビルド手順、プレースファイルの
操作(@lune/roblox は .rbxl/.rbxm を読み書きします)、アセットパイプライン、純粋な Luau のユニット
テストの実行、@lune/net による Open Cloud の呼び出しに使用します。lune run scripts/build。
roblox-ts
リポジトリに tsconfig.json、roblox-ts と @rbxts/types を含む package.json がある場合は、TypeScript で
書いてください。npx rbxtsc -w が src/*.ts を out/*.luau にコンパイルし、Rojo が out/ を同期します。
@rbxts/services、npm の @rbxts/* パッケージを使用してください。生成された Luau を手で編集しないでください。
Git と CI
.gitignore: *.rbxl.lock、*.rbxlx.lock、Packages/、ServerPackages/、sourcemap.json、ビルド成果物。
すぐに使える GitHub Actions ワークフロー(ツールのインストール、フォーマットチェック、リント、型チェック、ビルド、
Open Cloud 経由での公開): references/ci-workflow.md。
関連スキル
roblox-testing(CI でのテスト実行)、roblox-open-cloud(公開、Luau 実行)、
roblox-studio-mcp(エージェントから Studio を操作)、roblox-luau。