We should be at 100% rollout now, so let us know what you think!
It should be available in the beta settings now, please give it a try!
Oh man, this is incredibly amazing for us. We have an interesting workflow which combines both Studio and Rojo:
- Us programmers edit all the code in-studio, without any external tooling.
- Our developers in charge of balancing use VSCode and git, to edit .json files that I set up.
- We sync these changes from the file system into Roblox with Rojo
What’s great about JSON is that it’s not a programming language, and so we don’t need to worry about any backdoors being intentionally (or unintentionally!) placed, in case someone gets targeted.
I’d love to see json file-syncing support, as it would mean we can more easily manage such a workflow, and stop using Rojo for our usecase. There’s been several occasions where one of our programmers edited a script in studio, only for another one of us to sync a change with Rojo and overwrite it all
Woah, This will completely eliminate the use of Rojo and other alternatives!
Another massive W for Roblox.
This is looking promising so far! I can’t wait for the full release of this.
I never understood the benefits of using VSC instead of the Studio IDE. Can someone explain the benefits? I’d love to try it out
VSC allows you to work from anywhere at any moment (even without any internet connection). thats just the surface of difference in IDE comparison currently without looking at the cases connected to external tooling that can be used with vsc which roblox wouldn’t allow.
Edit:
Anything else has already been mentioned a bit further up, worth reading through honestly.
…No it won’t? Did you read the post?
How is this different from the InternalSyncService service that’s lingered in Studio for years but never escaped internal mode (because it was unfinished and buggy)?
Amazing preview, can’t wait to try it out, however:
In the mockup there from the choices of “Overwrite File” and “Overwrite Script”, they may be confusing for people who are first getting into it, and/or may be annoying when you don’t know which one to choose, especially if one is tired (like I always am).
Maybe changing the choices to something like “Sync from File” or “Sync from Script” would be better, since it’s a choice of which changes you want to bring in compared to choices of what to erase, which if you click the wrong one, I’d assume the Undo button wouldn’t do anything.
No mention of the sync API becoming available to (Roblox Studio) plugins - will it?
This is great, now we get versioning in Roblox for free!
Thank you for adding this!! I wanted to use Rojo but It wasn’t working for me so this is great for me, thank you!!
It offers more industry-standard tools that developers who code outside of Roblox are more used to. If you’ve ever used a really feature-rich and streamlined IDE like IntelliJ, then scripting in Studio feels limited.
For example:
-
If you click on a variable in Studio, it highlights every reference to that variable in the editor but it does not show up in the scroll bar like it does when you use ctr + f. VS Code highlights references in the editor AND the scroll bar, which is actually really useful and I always miss that feature when using Studio.
-
Studio does not have a “Go to all references feature”. This feature is such a hassle saver in VS Code. Honestly if this was the only benefit to VS Code that alone would be enough for me to prefer VS Code:
-
You can read and edit your scripts while waiting for Studio to load during playtests. I actually can’t stand not being able to do that when coding in Studio.
-
If Studio crashes, good luck. You better hope the Roblox gods saved your most recent work. With VS Code, your code is secure and will never not be saved.
-
VS Code works with Git and Github.
-
I like the autocomplete more in VS Code. I use an extension that has all of the Roblox API plus documentation.
I noticed the “Looking ahead” section was missing some critical features that would create pain points for my workflow:
-
Manual sync to file system
I dislike how my changes made in Roblox are automatically synced to the file system. Sometimes I make changes within Roblox just for debugging and I don’t wish to save them.
A setting to toggle between Automatic or Manual Sync might be sufficient. Triggering Manual sync would be available in the Instance’s context action menu and in the script editor. -
Revert changes
Assuming a Manual sync setting is implemented, another context menu option should be added to revert changes by re-syncing from disk. -
Intercepting sync and modifying contents
In a game that I’m working on using Lync, the tool accepts a Microsoft Excel spreadsheet for economy values and transforms those values into Lua. This example is only one of many possibilities with synced file transformation.
A plugin API that intercepts incoming syncs and returns outgoing data — file system to Roblox and vice versa — would be useful. -
Syncing / Synced file events
Hypothetically, if a developer wants to perform an action (test, validator, etc.) whenever a file has started syncing or has completed its sync to Roblox, they would need a plugin API to connect to.
Funnily enough, this was how the original implementation worked and everyone that I know who tried it was displeased because almost always you want it to be automatic. I see the use for not syncing a change back, but I do question whether this feature is for you if you don’t want changes to go both ways since that’s an explicit goal, haha.
I do desire syncing scripts back to disk sometimes. Mostly not the case, though. It will only happen if I make a change during debugging that I wish to save.
Inversely; models are pretty much always synced back to disk, but again if I change something in a model, I want the sync to be manual for the same reasons listed.
Edit: For additional context; here’s the plugin UI I created for this exact purpose:
Is that an extension you made for your own use ?
Or is there somewhere one can download this extension ?
Thanks.
There is benefits and downsides, so far ive noticed the following:
-
Collaboration is extremely challenging (not impossible but really annoying) as rojo does not have team create support
-
It is complicated to set all of that up as a beginner to the rojo workflow due to the lack of up to date tutorials
-
External text editors like VScode have a lot of plugins which can improve your productivity
-
You can use github to manage your projects in a professional and organized manner
-
There is a lot of great libraries which can help you improve your code
Are there plans on adding actual git to Roblox in the future? Pretty much every other SDK that I use has this built it right out of the box.