Script Version History Phased Rollout

Hello developers!

We are excited to announce that we’re ready to start rolling out Version History for Scripts!

Script version history enables you to keep track of changes made to scripts in your game over time. No action is required from your side, we plan to gradually enroll places as we scale up. It will support all workflows and will work differently based on your games settings.

Team Create with Collaborative Editing turned ON:

Once version history is enabled, you will see a new Commit Dialog when you commit scripts. This provides the ability to enter an optional commit message. Commit messages are a great way to record changes in your script(s)!


Hint: By default, commit message allows you to input multi-line comments.

You can use Ctrl + Enter / Cmd + Enter to commit right away.

Team Create with Collaborative Editing turned OFF or Team Create is turned OFF:

Your workflow will remain the same for these settings - continue to use the product as you normally would. Studio will create a script version when you Apply Edits (in Team Create) or Save to Roblox (non-Team Create).

Script Version History:

When you need to look up version history, right-click on the script in Explorer to access the new option “View Script History”

On this dialog, you’ll find useful information that you’d likely expect (version number, committed timestamp, changed by, etc).

  • You can click on the “Compare with previous version” button to diff the currently selected version with the one before or select two scripts and the option changes to “Compare selected versions.”
  • You can also open any selected version using “Open script” or use “Open all scripts from batch” to open all scripts in a batch.


    Thank you and, as always, please let us know if you have any feedback!

Update - July 16

Script Version History is now default enabled for all TeamCreate Places, with a non-TeamCreate Beta rollout coming in the near future!

A few other things to note with this:

  • For Collab-On, script commits will be created whenever a script is committed along with comments editors add. For Collab-Off, scripts will get committed whenever a script has edits Applied.
  • Script Version History is viewable via the Explorer by right clicking on any script → then selecting “View Script History”
  • Script History allows you to view the full history of commits made to that script instance since this feature was enabled (with comments if Collab is turned On) and view or compare past versions of the script. It will also show when the commit was made, by whom, and what other scripts were committed in the same batch.
243 Likes

This topic was automatically opened after 15 minutes.

Thank you for the update.

Do you plan on adding features in the code editor to see information about version histories? For example, will there be features like the ones GitLens has?

image

Something like this would be nice.

21 Likes

FINALLY! The best update to scripts in existence!

I also have a few questions.

First, how many versions will be saved before they expire?

Second, will we be able to remove prior versions? I don’t have a use case for this, but I’m sure someone will in the future.

Third, can the backups be stored on an external disk and not our PCs?

In conclusion, thank you for this amazing update!

7 Likes

OH MY ROBLOX! You guys are on a streak with great updates. I can see the light at the end of the tunnel having to save lua file after lua file of different scripts so if something broke i just got the last version. This is going to make workflow with scripting improve tenfold.

But how will the memory be allocated to facilitate this system and will it be an optional feature?

3 Likes

Script History/Collabrative Editing is one of the most useless things added to the script editor ever, having to manually commit scripts feels very clunky.

Its also possible that the script history could fill up your computer drive very quickly. Why not give us integration into GitHub or other source control programs.

If you guys supported external editor integration workflows instead of trying to reinvent the wheel, I’m sure the script writing workflow would be much more comfortable than it currently is.

38 Likes

Yay! It’s finally here! :tada:

I’ve been waiting for this for a while. Thanks! I hope it lives up to it’s name…

Couple of questions:

  • Will you allow us to view script commits via an external source, i.e. the creator dashboard?

  • Why should we use this over GitHib? It’s nice to have a native system but this still lacks many important features.

Thanks.

4 Likes

Will we ever be seeing developer-facing plugin API for this (and drafts as a whole)? I want to make plugins that integrate with the features of collaborative editing, but the API is all RobloxScriptSecurity.

4 Likes

An excellent update from the Roblox team to the developer community! The changes brought by this will be extremely valuable to developers at all levels and will ensure that no developer loses code that worked simply for trying a different solution.

Gone are the days of highlighting my old code in a comment out of fear to make a minor tweak that I’m not sure will keep it working.

While I may have liked to see a better implementation to this, such as a linked workflow to GitHub or another similar version control system, this is certainly a step in the right direction and certainly something good for keeping things on the platform.

2 Likes

I can send you a DM on how to run RobloxScriptSecurity code in plugins using a few override methods

5 Likes

Okay but when are we getting native Rojo/Git support? There are so many industry-standard third party tools with entire companies dedicated to them. It would be nice to actually be able to use those tools in our development rather than need to hack or assemble them with second class citizenship.

Cool update I guess but it’d be even cooler if we could actually use third party integration on Roblox. There are tools out there that can do better than the Script Editor and I can’t really settle for Roblox’s poor wheel-reinvention strategies for existing development tools. Sorry, honest opinion.

24 Likes

Oh, I thought it was just me. For the past day or so my auto complete has been breaking as well.

1 Like

I can honestly just agree with you completely on this. Roblox assumes that all developers can just rely on Github themselves and just doesn’t integrate it for studio for easy access. Roblox acknowledges Github and uses it to host various resources of their own including Roact/Rodux/Roact-Rodux. Github has become the general norm for hosting scripts. Instead of being directly uploaded to your own drive, it gets uploaded to Github’s servers. This overall is generally the better way to go in terms of storing diff for code.

6 Likes

Thank you so much!!!
This will make it so much easier to manage scripts without using modifications like Rojo.
Keep up the great work :smiley:.

2 Likes

Roblox internally has FileSyncService which I can tell you now, is much better than having to use a hacky sync service for Rojo.

In all honestly, FileSync is pretty much Rojo with less steps, but provides the same functionallity, aswell as a feature Rojo cant do, Two-way Sync.

Honestly, I’d love to see the feature in developer studio, even if it’s locked behind an FFlag

11 Likes

I don’t necessarily disagree here, but describing use cases you have in mind would be helpful to the folks working on drafts! Maybe also create a separate feature request?

8 Likes

Thanks for this update. It is a step in the right direction. Git integration would be even better but we’re getting closer :slight_smile:

2 Likes

Wouldn’t a GitHub integration be a better option?

6 Likes

how many versions are saved? are they automatically saving or manually?

1 Like

I love this update to scripts :slight_smile:. Yesterday I made a working quiz script it was going great. I made some coffee and was excited to keep working on it overnight. By the next morning, I had like 10 errors and I needed to revert back to an older version but I had no backups because I was using team create. I remade my game the next day with revamped UI only to get a notification that Roblox added this feature.

Here is some of my game UI

9 Likes