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.
Great question! I can’t share any info on timelines right now, but we’re actively thinking about how to best expose these capabilities to Studio plugins.
I’ve seens a lot of people mention github, but I’m not sure what they mean. I’m also not very familier with github (since I’ve never really needed it until very resontly) so could you explain to me what part github have in all this?
I am not familiar setting up projects in VSC how can I set up my VSC so I can have linting or module script references? or is still not possible to do this? without rojo
I use Roblox LSP, which offers a full Roblox environment with support for Rojo. It automatically updates the local Roblox API according to changes made to the website.
I really think there should be a feature to sync the whole game/DataModel to the disk. Like if you create a script, it will create that on the system etc. or is that where I should use Rojo?
It’s a Java IDE .
Now if you suggested Java instead of Lua I would be in!
Praying we get source maps some time after the code freeze
Aside from that this update is really great! I’ve been wanting to use VSC for my development but I didn’t want to use Rojo
.O.
Maybe in a few years we will have git support…
I’m talking about an extension for all the IDEs, since JetBrains plugins work on all IDEs.
Other game engines are done with this one