Improved Workflows for Packages

Does it works across games from different groups?

1 Like

Love the update… A suggestion would be to a merging system for packages. Where when updating all packages, if you have a modified package, it will not delete the modified stuff but merge the new stuff with the modified stuff.

2 Likes

Does this mean the “Publish Whole Game” feature will return? It used to allow you to publish every place in your game at once.

From what I recall, it was removed due to this now-nonexistent Package permutation limitation.

The publish API has an extremely low throttle limit for this use case and cannot be properly automated.

1 Like

Is it possible in the future to have it so for example, I have an items list and I make a change like add a new item or change an item’s stats and I’ve got multiple games sharing this package, will the package be updated on all the games without having to go to each game and publish the changes?

1 Like

Improved Packages is just the first of many Packages related features that are in the pipeline.

A suggestion would be to a merging system for packages. Where when updating all packages, if you have a modified package, it will not delete the modified stuff but merge the new stuff with the modified stuff

We’re researching ways to enable this workflow as talked about at this year’s RDC for Package Interfaces which showed off procedural generation of a tree but the same system could be used for property changes like recolouring a car.

Interfaces enable the package author to ensure forward and backwards compatibility, where the interface can remain stable while the underlying implementation changes.

The challenge with merging is that you can get into a situation where you apply a property onto a package instance sub-part which when upgraded to vN+1 no longer exists OR a scenario where your intent doesn’t come across after a package upgrade.

An interface would work around this limitation because the package author publishing vN+1, would “know” that a subpart no longer exists, and can ensure that things are seamless for any package consumers.

Example

Imagine a White Car Package with no spoiler in vN

You recolour the car by changing every exterior panel to Red.

The Car Package gets upgraded to vN+1, but this new version has a spoiler.

You would end up with a Red car with a White spoiler.

If you have an interface where you can set CarColour=Red in vN, then when the Car gets upgraded to vN+1, the package author can ensure intent is maintained/forwards compatibility by setting the interface values to:

Interface
-CarColour=Red (your value in vN)
-SpoilerVisible=False (new interface value in vN+1)

Car.Spoiler.Colour=$Interface.CarColour
Car.Spoiler.Visible=$Interface.SpoilerVisible

2 Likes

Does it update the package automatically across multiple places without me having to go through every single one and publish them one at a time? That is a feature I’d like to have as some games have multiple places and pushing out updates can be a real pain.

3 Likes

Enabling PackageLink.AutoUpdate should fix this issue.

1 Like

There’s still no way to mass update and publish in a single operation as we’re worried about the implications of enabling such a workflow: Mass update and publish without verifying that the package actually works correctly in all of the places first is a very potentially disruptive operation without any easy way to undo it if something goes wrong.

We’re still on the fence but aware that it’s a popular request and considering something like a “publish whole universe” option.

As Subtotal notes above, there is a relatively low friction option right now in enabling autoupdate, such that you simply have to open each place, do a quick check that everything still works, and hit publish.

3 Likes

Just want to add that I would love an option for my places to self-publish when packages are updated. As @MonkSaru pointed out, if I have a game with many places, publishing can be a real pain. I understand the caution around enabling such a workflow. However, if I have a careful loading sequence that all my places follow, I believe the benefit of such a feature would easily outweigh any self-imposed risks… Especially if this auto-publish feature is opt-in for individuals who would prefer that workflow.

3 Likes

Thank you for this! Our game POOH! uses these heavily for our UI, Assets, and etc. across our universe!

2 Likes

Fixed the link in this reply…
I desperately want to be able to use packages but they are too messy with the way they interact with locking/unlocking. Using packages would allow me to bulk update entire forests and avoid breaking instancing. I have written command bar scripts to mass update cloned assets in my game map literally hundreds of times by now.

3 Likes

Do you actually need to lock / unlock the packages as part of your workflow or do you just have to unlock them while doing edits to their contents? (could you give some detail on the workflow)

1 Like

I unlock the whole map when doing map work. The map is in a folder and the lock tool affects the whole hierarchy at once. I need to be able to grab and drag package models around + duplicate them to build the world, so they need to be unlocked for me to do that, but I need them locked in gameplay. Packages in my case would be used for reusable map props like trees and plants.

You say “download the contents of the packages to update them” and from that I can’t really gather what you mean. My question is, is there ANY way for unauthorized users to use it in studio? I have a group package and don’t want other people to be able to access or use it.

1 Like

This recent change to packages recently brought this bug back for ones with humanoids. No matter what I do (publish, undo changes, update to most recent) it thinks I changed the package when I haven’t.

I can publish my experience with “edited” packages now, so it doesn’t block anything, but I now get the package update warning EVERY time I open a place with these packages. It is very frustrating.

Speaking of which, it’d be really nice to be able to mute this pop-up indefinitely:
image

Having it appear after every package change is infuriating.

1 Like

Is there any way to add assets in another place with this update?

1 Like

Do you have a BodyColor instance under your humanoid? BodyColors | Roblox Creator Documentation

This instance will attempt to modify your humanoid’s color when you open your place. If you do have this, make sure the Color on BodyColor is the same as the actual humanoid’s color.

1 Like

I have BodyColors within the Humanoid’s parent; however, the limb colors match the BodyColor values and I have updated these packages numerous times to no avail.

1 Like

This update broke my game and now I can’t no longer access studio and getting an error saying “You have lost connection”

1 Like

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.