mcpField
R
roblox-tooling

roblox-tooling

github.com/el4cteo開発56493 回インストール2 週間前に更新
リポジトリ

roblox-tooling について

Roblox 開発向けのスキルで、コード同期方式の選択と Luau ワークフローの構成を扱います。プロジェクトのマッピング、依存関係、品質チェック、Roblox 外でのスクリプト実行、CIを説明します。

主な機能

  1. 01Studio Script Sync と Rojo の案内
  2. 02Rokit によるツールチェーン固定
  3. 03Rojo のプロジェクトとファイル対応
  4. 04Wally と pesde によるパッケージ管理
  5. 05Luau の型チェック、整形、Lint
  6. 06Lune スクリプトと CI の案内

活用シーン

  1. 01Studio Script Sync と Rojo の選択
  2. 02プロジェクトの Roblox 開発ツール固定
  3. 03Luau チェックとパッケージ作業の構成
  4. 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 CreateStudio 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/):
    [dependencies]
    React = "jsdotlua/[email protected]"
    ReactRoblox = "jsdotlua/[email protected]"
    [server-dependencies]
    ProfileStore = "lm-loleris/[email protected]"
    
    Wally のサンクは型情報を失います。インストール後に 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 エイリアス:
    { "languageMode": "strict", "aliases": { "Shared": "src/shared", "Packages": "Packages" } }
    
    Roblox は文字列 require を DataModel からの相対で解決します(./、../、@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。

コメント