Improved Workflows for Packages

Hey Developers,

We are thrilled to announce a massive upgrade to our Packages system. Packages are units of reusable content that can be seamlessly used and upgraded across Places.

This release introduces a number of changes and improvements to how packages work. The largest change is how we treat modified package instances.

  • You can now publish Places with modified package instances.

  • We will warn you when we detect a package modification happens to confirm intent.

  • Modifying a package instance will disable AutoUpdate, one of the key features to keep things up to date.

We envision a future where most content on Roblox is Packages and will continue investing and building towards this vision.

Additional Changes

  • Completely changed how we detect package modifications into a much more reliable mechanism. There should be no more cases of Packages being modified without user action.

  • Modified the behavior of nested packages so that a modification to a nested package will propagate the change status to its parent. This makes nested package behavior consistent and predictable.

  • Enabled more customization of Package instances - Name can now be edited without causing the Package to be modified.

For more information, please visit our documentation site.

We look forward to seeing you all try this out and build some really cool Experiences with Packages.

A big shoutout to our team for making this happen: @imagineerrx, @tnavarts, @Mr_Purrsalot, @bluestann, @brienneofthetarth, @goofysufi, @CurbM0nkey, @flyingbutter2008, and the many beta testers!

Thank you.


This topic was automatically opened after 10 minutes.

this is awesome!
100% gonna improve my workflow on studio


Does this mean packages like for avatar? Or is this another meaning


Those are called “Characters” now. Packages are the reusable prefabs in Studio which auto-update.




This is amazing! I know this ain’t only for building but I’ve only tested with these so far and it’s just perfect!


Finally, i’ve been using packages for quite a while now and I remember how annoying it was using them like a year ago. I kept getting moderated for no absolute reason and I had to re-create the packages and put them back into each place of my game. Fortunately that issue has been resolved some time ago.

One change I don’t really like is this:

I don’t see the point of this? It will just be more of a hassle having to re-enable it everytime I edit a package.

1 Like

Reusable easily updatable content is not a metaverse concept lol

If you modify a package and it auto-updates it’ll overwrite your changes. Thats typically unwanted behavior.


Any videos about this?

Ah I see, so it depends on the situation/user preference. Thanks for explaining.

1 Like

It just released it’s too early to ask this right now but it’s pretty understandable to understand look at the post I made.

It works with scripts / builds but audio will not play so idk if there is point adding audio.

I always wanted to use packages, but the only one fluke I saw is their availability online…
I must be wrong of course, but can someone basically get to the marketplace page of your package and just get all your stuff like that? If yes, it’s a real privacy concern I’m not ready to look into… I really wanted to use those for obvious easniess reasons but I’m still reluctant to it…

Can someone cast a light on all this? Thanks in advance!

1 Like

Are there any plans to make it so that when you publish a package it goes live in every place that it’s used in instead of having to re-publish each individual place for them to be live?


Wow, this is amazing. This will really improve production massively. Thanks ROBLOX!

1 Like

Thank God. I was just having an issue with that a few days ago with the payphones around my game’s map, where I wasn’t able to publish changes because they were seemingly “modified” packages.

1 Like

Packages in the toolbox are in the “Inventory / My Packages” or “Creations / Group Packages” sections or in the Asset Manager under Packages. The privacy tab in the package details dialog allows you to control access to a package. The design is to enable people to collaborate on packages without exposing all other contents of the place.

So I can create a package:

Then edit the permissions (Right click in Explorer + Package Details + permissions tab):

You can see the asset id 11498290642, and even go to the library page:
(My Private Package - Roblox)

However, Roblox Studio backends will prevent unauthorized users from accessing the package contents. You can still copy / paste the instances making up a package between instances of Studio or you can save out the parts via Studio and send the RBXL or RBXM files to other users, but it won’t let unauthorized users download the contents of the packages to update them, etc.


Great change. What would be really great now, is if we could commit these changes, even if it’s not the master place.


Will I have to click this every time I open a script in a package or will this get changed in the near future? My entire project is nested in packages across multiple places so having to click this every single time I open any script is going to be very annoying.


Really happy that we can publish experiences without publishing the packages now. That happened to be an incredibly workflow damaging blocker especially when keeping development copies of a place. I’ve had to delve into some bad workarounds without this feature available.

The best workflow would be having the same package assets in both the live and development areas but only shipping finished changes from the development copy to the live. Since changed packages couldn’t be published, we always had to ship changes in parallel which defeats the purpose of a development copy because the live version would carry a potentially broken feature.

A number of my experiences have switched back and forward between using packages and not; they’re a powerful feature but this quirk blocked us on a lot of fronts especially when we do a lot of iteration. One of my experiences stopped using packages and started using a MainModule to inject changes between the development and live versions which is not a practice I support at all.

Thanks! :heart: