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插件,则语言功能将在使用脚本同步时在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中选择脚本同步 > 停止同步后如何处理磁盘上的文件。 |
| 文件扩展名 | 用于磁盘上脚本的文件扩展名。 |