Roblox Studioには、Robloxプロジェクトのコードを編集するための組み込みのスクリプトエディタがあります。このエディタには、リント、型チェック、オートコンプリート、共同編集などの主要機能が含まれています。
しかし、多くの開発者は、Visual Studio Code、Cursor、Sublime Text、またはNotepad++など、好みのテキストエディタや統合開発環境(IDE)を持っています。人気のある開発環境には、Studioにはない機能やプラグインがよくあります。外部エディタやIDEをStudioで使用するには、スクリプト同期機能を有効にします。
スクリプト同期は、データモデル内のスクリプトをローカルディスク上のテキストファイルと同期させることで機能します。ディスク上のLuauファイルに加えた変更はStudioのスクリプトに適用され、その逆も同様です。この同期により、VS Codeのような外部エディタでスクリプトを編集し、Studioで即座に変更を確認できます。
スクリプト同期を使用するタイミング
お気に入りのテキストエディタを使用したり、コードをバージョン管理にチェックインしたりしたいが、それ以外はStudioを使用したい場合、スクリプト同期は適しています。また、これはRobloxの組み込みのコラボレーションツールとも連携し、サードパーティツールでは通常使えないことが多いです。
スクリプト同期は既存のRobloxプロジェクトと良く合い、プロジェクト管理の方法を根本的に変更するものではありません。
プロジェクト全体(コードだけでなく)をバージョン管理にチェックインしたり、ファイルシステムをプロジェクトの真実の源として使用したい場合は、サードパーティツールのRojoなどの方が良い選択です。
スクリプト同期の設定
エクスプローラーで、同期したい1つ以上のフォルダを選択します。
右クリックして、スクリプト同期 ⟩ ディレクトリと同期を選択します。

コンピュータ上のディレクトリを選択するか(新しいディレクトリを作成することもできます)、保存をクリックします。
Studioで、再度フォルダを右クリックし、スクリプト同期 ⟩ エクスプローラーで表示(Windows)または Finderで表示(macOS)を選択します。
お気に入りのテキストエディタでディレクトリを開きます。
あるいは、Studioで個々のスクリプトを右クリックして、外部エディタで開くを選択します。
個々のスクリプトを同期することもできますが、強くフォルダを同期することをお勧めします。フォルダを同期すると、スクリプトが子フォルダやスクリプトを自動的に同期し、毎回同期を有効にする必要なくスクリプトの作成、削除、名前変更が可能になります。
スクリプト同期を設定した後は、ほぼ確実に言語サーバー拡張子を追加したくなるでしょう。
重要なヒント
スクリプト同期は、Script、LocalScript、ModuleScript、および Folder インスタンスのみを同期します。同期されたフォルダ内の他のインスタンスは無視されます。スクリプトと他のインスタンスを含むフォルダの同期は避けてください。
属性やタグを持つスクリプトを同期しないでください。スクリプト同期はこれらを無視するため、ディスク上のファイルの古いバージョンと同期を開始した場合にデータ損失が発生する可能性があります。
スクリプトの名前はファイルシステムと互換性が必要です—重複した名前やサポートされていない文字は使用できません。Studioがこれらの問題に遭遇すると、エラーをスローし、同期を再開する前に状況を解決するよう求めます。
Studioが閉じている間に同期されたファイルやフォルダが変更された場合、プレースを再オープンする際に、Studioはその状況を解決する方法を尋ねます。
ローカルディスク上のトップレベル(または「ルート」)インスタンス、つまり最初に同期したインスタンスを削除すると、Studioがエラーをスローする可能性があります。トップレベルインスタンスを削除するには:
- Studioでスクリプトまたはフォルダを右クリックして、スクリプト同期 ⟩ 同期を停止を選択します。
- ファイルを削除または フォルダを削除オプションを選択して、ローカルディスクからインスタンスを削除します。
- Studioでスクリプトまたはフォルダを削除します。
子インスタンスはStudioまたはローカルディスク上で同期を無効にせずに削除でき、削除は期待通りに同期されます。
言語サーバーの設定
言語サーバーは、テキストエディタにオートコンプリート、型チェック、定義へ移動、その他の言語特有の機能を提供します。VS Codeの場合、Luau Language Serverをお勧めします。
言語サーバープロトコル(LSP)拡張は、プロジェクトのデータモデル階層を理解する必要があります。VS Code拡張には、これに必要なデータを提供するStudioプラグイン(Luau Language Server Companion)が付属しています。
両方のインストールを強くお勧めします。 VS Code拡張とコンパニオンStudioプラグインを使用する場合、言語機能はScript Syncを使用しているときにVS Codeで正しく機能します。
推奨される拡張
- Roblox Luau LSP および Luau Language Server Companion - 言語機能(上記参照)
- selene - 静的コード解析(リント)
- StyLua - 自動コードフォーマット
同期ルール
Studioは、子を持つインスタンスをローカルディスク上のディレクトリと同期する際に、子に対する作成、名前変更、移動、削除操作を自動的に同期します。このアプローチにより、個々のスクリプトの同期を手動で停止または開始することなく、コードを維持できます。
ディスク上では、スクリプト同期は、異なるスクリプトのタイプを互いに識別するために以下のルールを使用します。
| ディスク上の命名規則 | Studioのインスタンスタイプ |
|---|---|
| name.luau | ModuleScript |
| name.server.luau | Server Script.RunContextを持つスクリプト |
| name.client.luau | Client Script.RunContextを持つスクリプト |
| name.local.luau | LocalScript |
| name.legacy.luau | Legacy Script.RunContextを持つスクリプト |
| name.plugin.luau | Plugin Script.RunContextを持つスクリプト |
| name/ (ディレクトリ) | Folder |
| name/init.*.luau | 子を持つスクリプトインスタンス。タイプ(*)は上記のルールにより決まります。 |
設定
スクリプト同期には、Studioの設定ウィンドウにいくつかの設定があります(AltS または ⌥S)。デフォルトのオプションはほとんどの使用ケースに適しています。
| 設定 | 説明 |
|---|---|
| プレースオープン時の自動再開 | プレースを開くときにStudioが同期を再開するかどうか。 この設定を無効にすると、スクリプト同期の有用性が大幅に減少します。 |
| プレースオープン時の競合同期の再開 | プレースを開くときに、Studioが競合をどのように処理するか。デフォルトオプションの再開しないでは、データ損失を避けるために手動で競合を解決する必要があります。また、ディスク上のバージョンまたはStudio内のバージョンを優先する選択もできます。 |
| 同期後のローカルファイル/ディレクトリを保持 | Studioのスクリプト同期 > 同期を停止を選択した後のディスク上のファイルの処理方法。 |
| ファイル拡張子 | ディスク上のスクリプトに使用するファイル拡張子。 |