Introducing Package Diffs!

We’re thrilled to introduce package diffs, a step forward in expanding the diffing capabilities in Studio. From today, this feature is available to all for any package you can access.
New to packages? Learn how to get started here.

With package diffs, you can:

  • Compare any two selected package versions
  • View the 3D visual diff of the final output
  • View the properties diff for any instance
  • View the script diff across all scripts
  • Understand changes to the package hierarchy

Try using package diffs to:

  • Review updates and their impact on your copy
  • Compare your local changes against the latest version
  • Understand the content of past versions before restoring

:memo: Package diffs highlight our latest tech advancements in Studio. For the best experience, we suggest using this feature for package versions that are created after this release.

Feature Highlights

1. Getting Started

Select “Compare Package Versions” in the Explorer menu. This option is available for all packages that you have access to.

2. Version Selector

Select any two versions of a package to compare. When there’s an incoming update, the default view compares your local copy with the incoming version. Otherwise, it defaults to comparing your local copy with the latest version.

3. Package Hierarchy

Select instances to navigate diff views. Understand changes to the hierarchy with the following indicators:

  • :large_blue_circle: Changed instance
  • :heavy_plus_sign: Added instance
  • :heavy_minus_sign: Deleted instance

4. 3D Visual Diff

If your package contains a 3D object at its root, use the "Visual Overview" tab to view the visual diff.

:keyboard: View controls

  • Pan with a drag/click of the left mouse
  • Rotate with a drag/click of the right mouse
  • Zoom using the mouse wheel
  • Press the “f” key to refocus and center views
  • Controls are synchronized across panels

:memo: The “Visual Overview” tab will always display the final 3D output in this release. While visual diffs for 2D objects and descendants outside the root aren’t currently supported, we’re committed to enhancing this feature based on your feedback.

5. Properties Diff

Read-only properties diffs are available for all instances. Understand changes to properties with the following indicators:
  • :large_blue_circle: Changed property or attribute
  • :heavy_plus_sign: Added attribute
  • :heavy_minus_sign: Deleted attribute

6. Script Diff

Script diffs are available for all scripts. Script diffs in packages use our existing diff component, ensuring that upcoming improvements benefit all.

:tada: Kudos for reaching the end!

Your early feedback will be instrumental in guiding future decisions and enhancements. Dive in and let us know!

:heart: Special thanks to the Robloxians who made it happen:

@Brienneofthetarth, @cruiser_forever, @strange_times, @MrMark2u, @BobaTops, @eugenekim159, @Rusi_002, @yipiokay, @CurbM0nkey


This topic was automatically opened after 9 minutes.

This is so cool!! Let’s trot!!


Oh. My. God! I have been wanting something like this for as long as I can remember!

No more will I have to worry about whether or not I modified something in a package that wasn’t a script.


This is very nice! :+1:
No more worries in modifying something in package!


Really great update I will be able to control my packages better. I can’t wait to try it! :happy2:


WOAH! This is amazing. Oh my god!
The dev team is crazy. These improvements for packages are ridiculously crazy!


Cool, can something like this also be added for place versions of a game, so you know the changes of saved versions of the game?

Better English: “Could a feature be implemented to log the changes between different saved versions of the game for better tracking?”


i dont know what it is, but this is cool!


Another common Roblox W
Keep cranking out features like this.

Now if only we had a way to publish all of the places in a universe at once - that would keep my dev team from having to go into each and every place and publish changes whenever we update a single package.


Neither do I, but this sounds cool


Another W update for modellers!! Btw, will there be any updates for translators? I don’t remember any in a while…


This is great feedback. Having to manually “re-publish” a place takes away from the magic of mass-updating packages. I noted this feedback, and keep it coming <3


This is the #1 reason we don’t use packages for any of our games, and use InsertService + Models instead.

World Zero has over 50 uniquely built worlds/dungeons, so it would be impossible to update the game!


Take a peek at our roadmap (if you haven’t already) under " Grow and engage your audience" > “Break down language barriers.” Let us know if you have additional thoughts!


Is this the sort of thing we’d ever get a form of API exposed for? It’d be great to use it for Rojo!


A way to do this for two games that aren’t part of the same universe would be nice too - one of my games has two different versions that are the same file with mechanic changes based on game.PlaceId, but it pre-dates the entire universe system so they’re not actually linked at all.

On top of this I made a hub place later that’s a group game, while the two aforementioned are under my profile. Real messy, but I don’t want to just move them because of the existing datastores and whatnot.


A version of Rojo was released in the past weeks so that it can be examined in detail when changes are made to the project. If you want to take a look, it’s here.

Rojo v7.4.0-rc3


I’m one of the developers for Rojo, I’m all too aware!

Having to create our own visualizer for property differences and scripts is a lot of work though, so if Roblox has one it’d be awesome if we could just have access to it instead.


Roblox just casually creating some of the best updates: