Roblox Studio 有一個內建的 腳本編輯器 用於編輯您 Roblox 專案中的代碼。編輯器包括語法檢查、類型檢查、自動補全和協作編輯等主要功能。
然而,許多開發人員都有他們偏好的文本編輯器或整合開發環境(IDE),例如 Visual Studio Code、Cursor、Sublime Text 或 Notepad++。流行的開發環境通常具有 Studio 中不存在的功能或插件。要在 Studio 中使用外部編輯器或 IDE,請啟用 腳本同步 功能。
腳本同步通過將您的 數據模型 中的腳本同步到本地磁碟上的文本文件來工作。對磁碟上的 Luau 文件所做的更改會應用到 Studio 中的腳本,反之亦然。這種同步意味著您可以在外部編輯器(如 VS Code)中編輯腳本,並立即在 Studio 中看到變更。
何時使用腳本同步
如果您想使用自己偏好的文本編輯器或將代碼檔案提交到版本控制,但又想使用 Studio 進行其他所有操作,腳本同步是個不錯的選擇。這個功能也與 Roblox 的 內建協作工具 一起運作,而第三方工具通常無法做到這一點。
腳本同步在現有的 Roblox 專案中運作良好,因為它是一個額外的功能,而不是完全改變管理專案的方式。
如果您想要將整個專案(不僅僅是代碼)提交到版本控制或將您的檔案系統作為專案的真實來源,第三方工具 如 Rojo 是更好的選擇。
設置腳本同步
在 探索器 中,選擇一個或多個您想要同步的資料夾。
右鍵點擊並選擇 腳本同步 ⟩ 與目錄同步。

選擇您計算機上的一個目錄(或創建一個新的目錄)並點擊 保存。
在 Studio 中,右鍵再次點擊資料夾並選擇 腳本同步 ⟩ 在資源管理器中顯示(Windows)或 在 Finder 中顯示(macOS)。
在您偏好的文本編輯器中打開該目錄。
另外,可以在 Studio 中右鍵單獨的腳本並選擇 在外部編輯器中打開。
您可以同步單獨的腳本,但我們 強烈 建議同步資料夾;如果您同步一個資料夾,腳本同步會自動同步其子資料夾和腳本,這樣您可以在不必每次啟用同步的情況下創建、刪除和重命名腳本。
設置好腳本同步後,您幾乎肯定想要 添加 LSP 擴展 到您的文本編輯器。
重要提示
腳本同步只同步 Script、LocalScript、ModuleScript 和 Folder 實例。同步資料夾中的所有其他實例將被忽略。避免同步同時包含腳本和其他實例的資料夾。
不要同步具有屬性或標籤的腳本。腳本同步會忽略這些,這可能導致數據丟失,如果您創建或刪除腳本或開始使用磁碟上較舊版本的文件進行同步。
腳本同步要求腳本的名稱必須與您的檔案系統兼容——無重複名稱或不支持的字符。如果 Studio 遇到此類問題,則會拋出錯誤並要求您在恢復同步之前解決該情況。
如果任何同步的檔案或資料夾在 Studio 關閉時發生變更,當您重新打開該地點時,Studio 會詢問您希望如何解決該情況。
在您的本地磁碟上刪除頂級(或“根”)實例(您最初同步的實例)可能導致 Studio 拋出錯誤。要刪除頂級實例:
- 在 Studio 中,右鍵單擊腳本或資料夾並選擇 腳本同步 ⟩ 停止同步。
- 選擇 刪除檔案 或 刪除資料夾 選項以從您的本地磁碟中刪除該實例。
- 在 Studio 中刪除腳本或資料夾。
您可以在 Studio 中或在您的本地磁碟上刪除子實例而不禁用同步,刪除將按預期進行同步。
設置語言伺服器
語言伺服器為您的文本編輯器提供特定於語言的功能,如自動補全、類型檢查、“轉到定義”等。對於 VS Code,我們推薦 Luau 語言伺服器。
語言伺服器協議(LSP)擴展需要理解專案的數據模型層次結構才能正常運作。VS Code 擴展配備有伴隨的 Studio 插件(Luau 語言伺服器伴隨),提供這些數據。
我們強烈建議同時安裝這兩個。 如果您使用 VS Code 擴展和伴隨的 Studio 插件,語言功能將在使用腳本同步時正常運作。
推薦擴展
- Roblox Luau LSP 和 Luau 語言伺服器伴隨 - 語言功能(見上方)
- 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 中選擇 腳本同步 > 停止同步 後,如何處理磁碟上的檔案。 |
| 檔案擴展名 | 在磁碟上使用的腳本檔案擴展名。 |