Today, we’re sharing a very early preview of the new file syncing approach for Scripts we announced at RDC.
Our goal is to provide built-in support in Studio for working on your code as files, allowing you to use your favorite IDE and plugins in any Roblox project.
We want to share our progress as we go
As some of you may know, we first announced Studio Script Sync at RDC in 2023. However, we weren’t satisfied with the initial version. It aimed to simplify code-as-file workflows but fell short.
For those curious about the issues, I’ve included details below:
Expand for more info about our first attempt
For those who aren’t, the feature didn’t feel right, and everyone from the community who volunteered to try it agreed.
After rethinking everything, we’ve redesigned file sync from the ground up. Since we didn’t get it right the first time, we want to be more transparent with our progress and share development updates as we go.
What are we sharing today
Today we’re sharing our first functional milestone on the path to the full feature, as an opt-in feature in the Studio Beta Features menu. You need to enable it in File>Beta Features > Studio Script Sync [Early Preview].
This release includes:
-
The ability to right click on one or more scripts, and sync them to files on your disk
-
Bidirectional, automatic sync. If a script changes in Studio, it will sync to disk. If you save your file on disk, it’ll sync with Studio!
-
Basic error states to help you manage when a file is deleted / sync fails etc.
-
Works in all Studio modes - including team create, drafts mode and local mode
-
Can sync up to 64 scripts at a time (we’ll increase this limit over time)
Looking ahead
As we continue to build out Studio Script Sync, these features are planned.
-
The ability to sync folders + their script descendants
- This is crucial for letting you sync code bases, not just individual scripts. It also lets you create / rename / delete scripts and folders and have that sync too.
-
Starting sync from the state on disk, rather than the state in Studio
- This is crucial if you want to check your code into a version control system like git, or you want to import work you did while Studio was not running
-
Resuming your sync session when you restart Studio
- This saves, boring repetitive work
-
Seeing what your teammates are syncing
- This helps you avoid treading on each other’s toes in team create
-
Exporting source maps
- This is crucial, so you can use awesome tools like JonnyMorgan’z Luau LSP with your editor
Why are we releasing this so early?
We missed the mark before, so this time we’re being more transparent, sharing our progress, and encouraging open dialogue. Since no one likes unfinished features, it’s only available as an opt-in for those interested in giving feedback.
We’re releasing this early due to the upcoming holiday code freeze in December. This is a period where we do not ship code changes to ensure stability through the holidays. We wanted to get this out before, to give you time to try it before Studio updates resume in January.
How is this different from Rojo?
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, but that approach isn’t right for every project.
Our sync feature lets you work on script files using external tools, regardless of how the project is set up—whether it’s using Team Create or not, or if collaborators use different tools.
To help creators choose the right tool, we asked @Dekkonot from the Rojo team for their take:
How can we give you feedback?
We’ll be watching this thread closely - and endeavor to respond to as many questions / feedback points as we can.
Let us know what you think about the upcoming features listed above. If you have feedback on how this could be more useful for your workflow, please let us know!
Thank you.