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 擴展 到您的文本編輯器。
限制
腳本同步支持每個頂級同步實例最多 10,000 個腳本,並且最多 128 個頂級同步實例,因此它可以擴展到大型代碼庫。
衝突解決
在開始或恢復同步時,如果 Studio 和您磁碟上的文件之間存在差異,腳本同步會顯示詳細的解決對話框。該對話框列出了每一方將添加、修改或刪除的腳本,以便您了解選擇 保留 Studio 與 保留磁碟 的影響。
選擇性刪除
當您在 Studio 或磁碟中刪除同步的腳本或文件夾時,腳本同步僅刪除 Luau 腳本和受支持的文件。它不會刪除它不管理的非 Luau 文件或文件夾;即使您刪除或重新組織其周圍的同步項,非腳本資產(如模型和部件)也會被保留。
團隊創建
腳本同步與 團隊創建 一起工作。資源管理器 在正在同步的實例上顯示一個圖標,以指示某個協作者正在同步。為了防止重複名稱,腳本同步會自動在您或協作者正在同步的樹下添加數字後綴到任何新實例的名稱。
避免多個人同步同一腳本並同時編輯文件的工作流程。腳本同步將繼續運行,但協作者可能會覆蓋彼此的更改。
主要提示
腳本同步僅同步 Script、LocalScript、ModuleScript 和 Folder 實例。同步文件夾中的所有其他實例將被忽略。避免同步包含腳本和其他實例的文件夾。
您可以同步包,但 PackageLink 本身不會寫入磁碟。
不要同步具有屬性或標籤的腳本。腳本同步會忽略這些,這可能導致數據丟失,如果您創建或刪除腳本或開始與磁碟上較舊版本的文件同步。
腳本同步要求腳本的名稱與您的文件系統兼容——沒有重複名稱或不支持的字符。如果 Studio 遇到這些問題,則會拋出錯誤並要求您在恢復同步之前解決該情況。
如果在 Studio 關閉時任何同步的文件或文件夾發生更改,當您重新打開地方時,Studio 會詢問您如何解決該情況。
在本地磁碟上刪除頂級(或“根”)實例——您最初同步的實例——可能會導致 Studio 拋出錯誤。要刪除頂級實例:
- 在 Studio 中,右鍵單擊腳本或文件夾,然後選擇 腳本同步 ⟩ 停止同步。
- 選擇 刪除文件 或 刪除文件夾 選項,以從本地磁碟中刪除該實例。
- 在 Studio 中刪除該腳本或文件夾。
您可以在 Studio 或本地磁碟上刪除子實例,而無需禁用同步,並且刪除會如您所預期的那樣同步。
設置語言伺服器
語言伺服器為您的文本編輯器提供語言特定的功能,如自動完成、類型檢查、“轉到定義”等。對於 VS Code,我們建議使用 Luau 語言伺服器。
語言伺服器協議 (LSP) 擴展需要理解專案的數據模型層次結構才能正常工作。VS Code 擴展附帶一個伴隨的 Studio 插件 (Luau 語言伺服器伴侶),提供這些數據。
我們強烈建議同時安裝兩者。 如果您使用 VS Code 擴展和伴隨的 Studio 插件,則在使用腳本同步時,語言功能將在 VS Code 中正常工作。
推薦擴展
- 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 中選擇 腳本同步 > 停止同步 後如何處理磁碟上的文件。 |
| 文件擴展名 | 用於磁碟上腳本的文件擴展名。 |