Studio Script Sync - Now In Beta!


Studio Script Sync Beta has now launched, letting you use your favorite code editor on your Roblox projects!

Hi all!

About a month ago we silently launched a major update to our Early Preview of Studio Script Sync. Today, we’re excited to announce the launch of our public Beta.

What is Studio Script Sync?

Studio Script Sync is a feature that allows you to synchronize your script Instances with Luau files on your local drive. The goal of this feature is to let you work on your code as files, so you can use your favorite code IDE & tools (linters, formatters etc.) on any Roblox project. You can also use it to check your code into an external version control system.

Getting started is really easy!

  1. Enable the Script Sync Beta from the Studio Beta Features menu
  2. Right click on a Folder of Scripts
  3. Select ‘Start Sync’
  4. Select a directory on disk to sync with

.. and you’re done! Scripts in that Folder will now sync automatically with luau files in the directory. You can make edits in both Studio and your file system to the contents and structure of these scripts, and they will automatically be synced in both places.

What’s changed since the early preview?

We knew how important this workflow is to many of you, and wanted to make sure we had your feedback throughout development to help us steer the product before we moved to the next stage of development.

When we launched the early preview a year ago, it was a very basic tool that let you sync individual scripts to individual luau files. Since then it’s evolved to include:

  • The ability to sync folders (contents and structure), letting you sync entire code bases, not just individual scripts.
  • Allowing you to start sync with the version of your files on your local drive, enabling you to use external version control systems
  • Automatically resuming sync when you restart Studio, so you don’t have to do this manually
  • Supporting both lua + luau extensions, so you don’t have to make changes to existing code bases
  • A UI/UX overhaul to make errors much easier to identify and resolve
  • Loads of performance and stability improvements, allowing script sync to now support 10,000 scripts per top level instance synced, and 128 top level instances.

We’re incredibly grateful to all of the early adopters who have given us feedback over the past year and kept us honest. We couldn’t have gotten here without you!

How is this different from Rojo?

As we said when we launched our early preview, we think Rojo is great and have no plans to replace it or make it obsolete. We’re grateful for the productivity boost tools like Rojo provide to creators.

Rojo serves as a build/compose/sync tool, converting file system sources into Roblox content. This is powerful for creators who want their project’s source of truth on the file system, and want all of their collaborators to work this way.

Script Sync is about interoperability. It allows you to edit the scripts in any Roblox project via files. This is regardless of how the project is set up—whether it’s using Team Create or not, or if your collaborators use different tools.

We asked Rojo maintainer Dekkonot for their take:

Rojo is a great tool if you’re used to workflows where the file system is your source of truth. If you want to build your game from the disk or keep more than just code in source control like git, I’d recommend you use Rojo.

However, if all you’re looking for is editing scripts in your favorite code editor and you don’t want to adopt Rojo, script syncing will be a great choice for you. It will work great with every workflow that Roblox supports (including Team Create, which Rojo explicitly doesn’t support!) and will work regardless of what your game’s structure is.

Also, if you just wanna use an external editor but can’t make everyone on your team start using Rojo, script syncing will be a great solution for you. I know you’re out there. I see you.

What’s next?

Here’s what we’re currently working on:

  • [:rocket: Shipped] Language Server Support - allow you to integrate synced files with extensions providing language server features (code completion, type analysis etc)
  • [:rocket: Shipped] Open in External Editor - allow you to open a synced script in your external editor, directly from Studio

Please let us know what we’re missing, and how Script Sync can better support your workflow!

284 Likes

This topic was automatically opened after 11 minutes.

Glad to have tested this one out while it was in early access! It has come very far and I’m proud of the team for making it as best as it can be.

Looking forward to how the language server support will be handled, will it be an extension such as luau-lsp? Also, will “Open in External Editor” be through an internal API, or a public PluginSecurity one? The latter would be very useful.

23 Likes

Great release once again :clap:
Looking forward to the LSP support!

11 Likes

Can’t believe Rojo is dead. Again.

51 Likes

Long awaited update for me. Cheers to the engineers making this possible! :laughing:

11 Likes

It’s okay, there’ll always be Rojo loyalists haha

is this basically a replacement for rojo/github? never used them but if it makes it way easier to setup then i might test

about time i actually use one of the beta features daily

2 Likes

To be honest, I don’t see a reason for Rojo and Github anymore. Roblox is improving the place version control and adding version messages (commit messages) to the version control window, and since Script Sync is a thing, I don’t see a use for Github (only in terms of Roblox, of course).

6 Likes

Drafts are still extremely primitive and don’t allow you to stash or branch your code, on top of that there’s zero existing API for them so if you wanted to extend their behaviour, you can’t. (pls add ScriptEditorService:GetDrafts())

9 Likes

Great release. People who think this will replace Rojo:

This is just file syncing. If you want sourcemaps, etc. you still need Rojo

9 Likes

This is great!
However, can you make Actors sync the same way folders do?

1 Like

People love jumping to conclusions. It’s the second most popular hobby here, second only to being an asshole.

12 Likes

I would love to be able to sync entire services!
Like syncing the entire of ServerScriptService so we don’t have to sync every new folder we add to the service.

5 Likes

Just started using it and i say i will keep using it. Extremely good, can easily use it on your past projects and no need to setup other stuff. Just sync folder and scripts will get handled. Love it.

3 Likes

Wanting to test it out, but ran into an error?
image

Are Package’s not able to be sync’d?

1 Like

Screenshot-2025-11-13-00.39.13_Place1_-ModuleScript4-_Roblox_Studio
yea it doesnt sync packages

2 Likes

You can sync an instance that is a package. The warning is letting you know that the PackageLink instance itself will not be synced to disk

9 Likes

Coming soon!

  • Language Server Support - allow you to integrate synced files with extensions providing language server features (code completion, type analysis etc)
7 Likes