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 中选择 脚本同步 > 停止同步 后如何处理磁盘上的文件。 |
| 文件扩展名 | 磁盘上脚本使用的文件扩展名。 |