[Early Preview] Studio Script Sync

Import, Export and Reload operations would be sufficient for my workflow. Additionally, the icon for file sync in the explorer pane should reflect which Instances have been modified (either in Roblox or on the file system) and not synced. Please refer to my subsequent reply for an image of the Lync widget which contains these features (“Revert” = Reload, “Save” = Export.)

This achieves the result I’m aiming for. Only concern I have is how syncing raw file contents to a ModuleScript will create script errors. Perhaps the File instance could be modified to suit this purpose instead?

In the future, when more types of Instances can be synced, there must be a catch-all syncing/synced event; otherwise, it becomes tricky to listen to modifications to an instance tree of indeterminate composition, especially when some of the properties are inaccessible to plugins.

Additionally; listening to instance modifications won’t tell you if the change was made in Roblox or on the file system.


Thanks for the communication!

Take your time, we are all here waiting on it. We appreciate the transparency and this is looking super neat already. I already love Rojo and I can’t wait to see what you guys build with the deeper integration an official Roblox tool can provide.

To simplify the argument for external IDEs to a couple of sentences; A lot of the popular IDE programs like Visual Studio (and its sister program Visual Studio Code) are more robust when compared to what is provided by Roblox. When it comes to IDE programs such as the ones stated earlier, their entire purpose is to provide a good environment for development of scripts/code. This means that they generally are able to focus more on providing tools and features that Roblox realistically can’t since they have much more on their plate.

ooh NICEEE! This is partially offline mode, nice job!

Question, I see people in this post use github a lot. If I remember correctly, it saves your scripts to a cloud. To save my scripts I save them to file, especially if I’ve done any substantial scripting. Am I right about the cloud saving? & Are there any other features that make github useful to you?

For the most part; you’re right – however, GitHub has a lot of features that help with project management and helps with saving time.

Branches

Imagine different folders with your entire codebase in all these folders, allowing developers to work on stuff, fix stuff, etc without conflicting edits from other developers. It’s very normal for developers to use branches whenever making a new feature/fixing quite a few bugs at once. Oh, and when you’re ready you can merge these branches into others using pull requests.

Pull Requests

Pull requests are basically just gaining feedback and additional reviews from other developers on your team before pushing a piece of code (or a branch) to live production/to another branch. If I were to make a pull request changing a file, I could request reviewers, assign labels, etc. You can also keep track of all the pull requests you’ve made which helps with version control.

Teams

You can have your own teams on github, with access to certain repositories and actions, much like the in-built creator hub groups! This allows you to sync multiple repositories to certain games,external systems, etc. inside your organization ← (which are just glorified Roblox groups for development lol)

Repositories

This is literally just where your main code will be stored; can have a variety of repositories for different reasons though.

Workflow Integrations

Can sync your code with Rojo and work in external editors (such as the aforementioned Visual Studio Code) properly. Also allows support for Git (which you can read more about here! There’s alot more to this which would take way too long to unpack, but will let you find that out yourself if interested! One of my favorite things about VSC which ties in with Github are code snippets (might already be familiar with this, just leaving it incase you aren’t!)

Say you want a template for requiring a specific module but can’t remember exactly what the path was. Introducing, code snippets.

Instead of doing,

require(game.ReplicatedStorage.Codebase.SomePath.SomeSubFolder.SomeScript)

You can just write SomeScript and it will autofill the rest for you. Can read more about that here incase you’re interested.

That’s just the tip of the icerberg – lot more than that, feel free to shoot me a DM if interested!

3 Likes

Thanks for the reply. I definitely want to know more. My game is launching soon and I want to make sure I have seamless updates. Do I send a dm on this or discord? Ill send one on here anyway. I dont know anything about rojo either im very interested

I personally don’t see the point of having to use an external coding software to write roblox scripts. What even is the point?? The current script editor does the job well why would you need to overcomplicate things ?

doesn’t the module need to be public in order to do this?

There are a lot of replies in this thread that explain why someone may want to use an external IDE over the default Roblox code editor and this isn’t just for external code editing, you can also integrate with GitHub for version control and project management.

Really appreciate the early preview!

I’m hoping to get clarification on the following planned features:

  • The ability to sync folders + their script descendants
  • Starting sync from the state on disk, rather than the state in Studio

Two related questions:

  1. Will folders with instances other than scripts have the ability to sync?
  2. How will the hierarchy of a folder’s descendants in the DM translate to the hierarchy of a file system (Studio → Disk) and vice versa (Disk → Studio)?

For example, how would Studio Script Sync know what to do with the following:

Example 1:

  • Folder (to sync)
    • ScriptA
      • ScriptB
        • ScriptC

Example 2:

  • Folder (to sync)
    • ScriptA
    • Model
      • ScriptB

And whatever state these end up in on disk, how would Studio Script Sync know how to map the file system’s scripts back to the folder’s hierarchy in the DM?

Since syncing folders to and from disk are planned features, I’m assuming the answers to these questions are known. Any high level clarification is much appreciated, thanks!

2 Likes

when i sync a script with a emoji in it they get replaced with ??, not sure if its something in vscode or this

You can require private modules that you own on games that you own and subsequently you can require modules under a group in a game that is also under the group

My assumption to your question #2 is the UniqueId property.
image

This update is great and all, really excited to use it. But for some reason, whenever I sync my scripts from studio to Visual Studio Code, it doesn’t work, I tried many times yet I still can’t figure out how to make it work. I have my beta feature turned on and there’s no output in studio that the sync failed.

Could someone explain step by step or perhaps reply with a video on how the process works?

I’m having a problem with encoding.
To be fair, I use latin (á, é) characters just for commenting, but I also use emojis as .Text for different UI. Characters in both scripts (Roblox Studio and VSC) become unrecognizable each time I sync the script to the disk and open them in VSC.
I tried changing encoding in VSC, but didn’t find any suitable for displaying the characters correctly.

well one reason i would use it is because what @SharpSerious said for example if i dont have a variable for players service it will put it at the top of the script if i type Players which is really nice but i did learn theres a plugin that does something similar

that’s super cool and useful.

especially when Roblox is down, at least i hope that’s how it works. It would be useful if you won’t need to have Roblox Studio opened.

What about improving the UI and, perhaps, feature set of the already built-in versioning for places saved to roblox? It’s all but unusable outside emergencies where you’ll suffer whatever it takes to find something in a previous version. It’d be amazing if it were expanded with anything close to any other content versioning, and adding that wouldn’t require real files or any of the corresponding limitations. Theoretically you could have all the features of git but based on unique instance ids or whatever internal thing works, but honestly any improvement is welcome.

(Also, love this feature and the sync folder feature will cover exactly what I’ve wanted rojo to do all this time - I prototype a lot so setting up projects outside studio is a complete pain. I want to make a script in the data model using studio then open it up in VSC to edit)

2 Likes

Better integration with third-party or custom tools. For large teams, this is a huge win. For everyone else, this can be more complex than need be.

Largest benefit of them all is that I can continue working on a game (programmatically) when Roblox goes down. I don’t have to have a constant connection to Roblox.

For large games, the downtime window means they’re losing money. Lots and lots of time wasted if they have to wait for Roblox to come back online just to work on the game.

Code editor has gotten a lot better over the years and I often find myself asking the same question now. I appreciate Rojo for what it does but, more tools doesn’t always equal more power and more configuration can get in the way of creating the actual game.

You don’t need any of these tools to create or maintain a game.

Arguably, that’s how it should be.

2 Likes