Understanding the Roblox Packages Workflow: Roblox Staff Videos
Summary
TLDRThis Roblox tutorial by environment artist K Monkey dives into the package system's workflow, teaching how to create and manage packages with different asset types. It covers best practices for grouping assets before packaging, using the right-click menu for package management, and leveraging packages for team collaboration and version control. The video also explores common mistakes to avoid and the advantages of using model groups for packaging, ensuring a more efficient and flexible asset management process.
Takeaways
- 📦 The video is a tutorial on Roblox's package system, focusing on creating packages with different asset types and understanding the workflow.
- 🔄 It emphasizes the importance of using the right-click menu options for package management, including publishing and updating packages.
- 👷♂️ The presenter, K Monkey, explains how to group assets before packaging to maintain transformation data, which is crucial for moving and rotating objects without modifying the package.
- 📌 A warning is highlighted when packaging a folder without a model, as it lacks locational data and can lead to unintended modifications.
- 🔍 The video demonstrates the consequences of not following best practices, such as trying to move a package that was created from a simple mesh without a model group.
- 🛠️ It showcases how to use the 'undo changes to package' feature to revert unwanted modifications and maintain a clean package state.
- 🔄 The 'get latest package' option is introduced for updating placements to the most recent package version.
- 🔑 The 'package details' feature is explored, allowing users to view and manage package configurations, permissions, and version history.
- 🔍 The 'compare package version' tool is highlighted as a valuable resource for understanding changes between package versions, aiding in team collaboration and decision-making.
- 🔧 The video also covers how to manually roll back a package to a previous version as a workaround when needed, and the limitations of the current system in this regard.
- 🔗 Finally, it wraps up with an introduction to the third video in the series, which will delve into advanced package usage.
Q & A
What is the main focus of the video by Curb Monkey, a principal environment artist at ROBLOX?
-The video focuses on teaching the package workflow in ROBLOX, including creating packages with different asset types, using right-click menu options, and how packages can aid in team collaboration and act as version control for assets.
Why is it recommended to model group an object before converting it into a package in ROBLOX?
-Model grouping an object before converting it into a package is recommended because it retains the transformative data, allowing the package to be moved or modified without incurring a modified state, which is essential for maintaining consistency across all instances of the package.
What happens if you package a mesh directly without putting it in a model group?
-Packaging a mesh directly without a model group results in the package entering a modified state when you try to scale or move it, which can cause issues with maintaining consistency across all package instances.
What is the significance of using the 'auto update' feature when creating a package in ROBLOX?
-The 'auto update' feature ensures that all instances of the package are automatically updated to the latest version when changes are published, eliminating the need to manually update individual placements.
Why should you avoid packaging 3D assets within a folder?
-Avoiding packaging 3D assets within a folder is important because a folder does not contain locational or transformative data. This can lead to issues when trying to move the package, as it will attempt to move the mesh, causing a package modification.
What is the purpose of the 'undo changes to package' right-click menu option in ROBLOX?
-The 'undo changes to package' option allows you to revert any modifications made to a package, bringing it back to its last published state, which is useful for correcting unintended changes or mistakes.
How can you manually roll back a package to a previous version in ROBLOX?
-You can manually roll back a package by deleting the package link, pasting the contents of an older version into a new package, and then publishing the changes. This method allows you to override the current package with the desired older version.
What does the 'compare package version' tool in ROBLOX allow you to do?
-The 'compare package version' tool allows you to view and understand the changes made between different versions of a package, helping you to identify what has been modified, added, or removed.
Why is it beneficial to use a model group as the container for everything that's going to be packaged?
-Using a model group as the container for everything to be packaged provides flexibility, as it allows you to add or replace objects within the package without being stuck with the original objects. It also retains the transformative data necessary for moving the package without incurring a modified state.
How does the package system in ROBLOX help with team collaboration and asset management?
-The package system facilitates team collaboration by allowing multiple team members to work with the same assets without conflicts. It also serves as a version control system, enabling teams to track changes, roll back to previous versions if needed, and ensure that all team members are working with the most up-to-date assets.
Outlines
📦 Package Workflow Basics
In this segment, Curb Monkey, a principal environment artist at ROBLOX, introduces the concept of packages in Roblox Studio. He explains the importance of using packages for asset management, collaboration among team members, and as a version control system. The video serves as the second part of a three-part series, with the first focusing on package introduction and basics, and the third on advanced package usage. Curb Monkey demonstrates the process of creating packages using different asset types, the right-click menu options, and the implications of packaging objects in different ways, such as model groups, individual meshes, and folders. He emphasizes the best practice of grouping objects before converting them into packages and the potential issues that can arise from not doing so.
🔄 Modifying Packages and Transformative Data
This paragraph delves into the consequences of packaging 3D assets in various ways, such as within a folder or as a standalone mesh. Curb Monkey illustrates the importance of transformative data by showing how moving a package without it results in a modified state. He advises against packaging within a folder due to the lack of locational data, which can complicate asset management. The segment also covers the use of model groups as a container for assets to be packaged, allowing for easier manipulation and updates. Curb Monkey further explains the limitations of direct mesh packaging without a model group and how it can restrict asset modification and movement.
🛠️ Package Right-Click Menu Options
Curb Monkey explores the various options available in the package right-click menu in Roblox Studio. He discusses the 'Publish Package' and 'Undo Changes to Package' features, demonstrating how to revert unwanted modifications. He also explains the importance of keeping packages in a 'clean state' to receive updates and introduces the 'Get Latest Package' option for syncing with the current version. Additionally, he touches on 'Package Details,' which provides configuration information, and the 'Compare Package Version' tool, a new feature for understanding changes between package versions. This tool is highlighted for its utility in team collaboration and managing package updates.
🔄 Advanced Package Management Techniques
In this part, Curb Monkey discusses advanced techniques for managing packages, including the 'Update All' feature for synchronizing multiple package instances and manual rollback methods. He provides a workaround for rolling back a package to a previous version by manually overriding the package contents and publishing the updated package. Curb Monkey also mentions the limitations of the current rollback process in the package details, which lacks a preview and change notes, making it a less intuitive method compared to the manual rollback he demonstrated.
🔄 Package Versioning and Rollback Overview
Curb Monkey wraps up the video by summarizing the package versioning process and providing an overview of how to rollback a package to an earlier version using the package details in the Creator Hub. He points out the challenges of this method due to the lack of detailed information and the absence of change notes, which can make the process confusing. He reiterates the preference for the manual rollback method shown earlier in the video for its clarity and control over the rollback process.
Mindmap
Keywords
💡Package Workflow
💡Environment Artist
💡Asset Types
💡Right-Click Menu Options
💡Collaboration
💡Version Control
💡Model Group
💡Auto Update
💡Modified State
💡Compare Package Version
💡Roll Back
Highlights
Introduction to the package workflow by K monkey, a principal environment artist at Roblox.
Explanation of how to create packages using different asset types.
The importance of using the right-click menu options for package management.
How packages can facilitate collaboration among team members and manage place files.
The use of packages as a version control system for assets.
Demonstration of converting different asset types into packages, including model groups and individual meshes.
The consequences of packaging without a model group and the recommendation to use one.
Discussion on the limitations of using a folder as a package container.
The benefits of using a model group for transformative data and ease of movement.
Common mistakes when packaging meshes and how to avoid them.
The flexibility of the package system for including various asset types beyond 3D objects.
Overview of the package right-click menu options in Roblox Studio.
How to use 'undo changes to package' to revert unwanted modifications.
The functionality of 'get latest package' to update to the most current version.
Details on using the 'compare package version' tool for understanding changes between versions.
The process of manually rolling back a package to a previous version.
The limitations of the current package rollback method and a proposed workaround.
Conclusion and anticipation for the third video on advanced package usage.
Transcripts
in this video curb monkey a principal
environment artist at ROBLOX teaches you
about the package's workflow he'll cover
how to create packages using different
asset types the rightclick menu options
and how packages can help collaboration
across team members and place files and
act as a Version Control for your assets
feel free to use the time stamps to jump
to the topics that interest you this is
the second of three Roblox staff videos
that talk about packages the other two
videos in the series along with
additional information and resources can
be found in the description
hey Roblox Studio Builders K monkey here
again on the second video of the
three-part series of the package system
tutorial in this video we'll be going
over creating packages using different
asset types the update and rightclick
menu options collaborating across team
members and place files and common
mistakes as well as using the package
system as Source control for your
assets just as a recap the first video
went into package introduction and
basics in the third video we'll go over
Advanced package
usage so let's Dive Right In so in the
first video we talked about how and why
you should use packages and how to
create them I kind of want to dive in a
little bit on making packages out of
different asset
types first example here I have a fire
hydron and I mentioned in the first
video that you always or at least 90% of
the time you want to model group an
object before you convert it into a
package so here if I go into group as a
model this is going to be the best way
for me
to create a package out of this object
I'm just going to copy and paste the
name
here um but what happens if you don't do
that I'm going
to duplicate that
hydrant and pull it over just as an
example also going to make another copy
of this I'm going to place it in a fold
room and what I'm doing here is just
just showing you what happens if you
make packages different asset types so
we have three identical meshes but we're
going to package them up
differently this one is in a model group
this one's going to just be a mesh and
this one's going to be in a folder
now the
folder doesn't have any locational data
about it
so brings up some interesting um use
cases but most of the time again you're
going to want to
group your asset before converting to a
package so let me go down the line here
and I'll convert each one of these into
a
package so fire
hydrant we'll just put group here
here submit that
one then this one it's just going to be
a
mesh submit that
one then this one's our folder we're
going to come up here just rename this
folder hydrant as
well and conver this into a package and
you'll notice right as I try to convert
a folder into a package comes up with a
warning this object has 3D content in it
but is not a model so moving or rotating
it will count as a modified package are
you sure you want to continue I'm going
to say yes here just for this example so
these are all packages and again I'm
going to go in to my package links and
turn them all on to auto update that's
again something I do every time I create
one that way I don't have to go around
and and
update individual placements so now that
I created three packages I'm going to
make a copy of each one and just kind of
move it and show you what happens so on
this one the one that is a model group
and kind of set up uh in the best
practices
way um that one moved fine we're going
to duplicate this one that that moved
fine as well and now going to click on
the folder which is the parent um
package container for this folder
package and I'm going to duplicate and
move it and you can see as soon as I did
that because the folder itself doesn't
have any locational or transformative
data in it it's basically trying to move
the mesh so this is why you want to
avoid trying to package things in a
folder I'm going to say okay here anyway
come back to this one and hit publish to
package let's see what happens you can
see because this folder doesn't have any
transformative data in it the only way
to move that mesh was to physically move
the underlying child which incurred a
package modification and now you can see
both of my packages are in the same
spot so this is this is one guy you on
um trying to package Up 3D
assets within a folder group now there
are times that you can package things
that are in um a folder scripts for
example would be one where there isn't
actually a physical location to that
script in 3D space but models you really
shouldn't do this and you should stick
to a model if you do have things that
are you know in a folder and you want to
keep that folder structure that's
perfect perfectly fine the only thing
you need to do if you want this type of
hierarchy in your package is to go ahead
and group that folder into a model group
again this will give you the
transformative data that you need to
move the package around without
incurring a modified state so I'm going
to go ahead and package this convert to
package
click the auto update on and now if I
duplicate this and move it around you
notice that transformative data is being
saved with inside the model group and
the folder that's underlying now is is
okay so again you want to add things
into a model group before packaging um
another issue I want to bring up is with
just
packaging a mesh Straight Out of the Box
without putting it in a model group
let's say this was a rock or a bush um
and you wanted to get that variation of
size through an organic model um I'm
just using a fire hydrant here because
that's what I started with but let's try
to let's try to scale
this and you're going to see as soon as
I try to scale it's
basically putting my package into a
modified state I'm going to revert
changes here here that was a non-uniform
scale but you can also do the same thing
in a uniform scale and it's going to
it's going to pull up this modified
state I'm going to revert changes again
and just show you the difference in the
model group because the model group
contains that
transformative data and it's not
actually scaling the underlying
assets we can get away with adding all
that
variation via
size you know whether it's a small Bush
a small rock a large Bush or a large
Rock it's all the same package and the
package isn't entering into a modified
state so that affords us that variation
that we need to fill out a a world and
make it look like each Rock has its own
size or each bush has uh has its own
size the other reason to use a model
group is that you can think of this
model group as the bucket of things that
will be packaged or can be packaged up
so in this example I'm just going to
come over here and I'm going to grab
this park
bench copy it and I'm going to paste it
into this model group paste into at
original location it's going to say hey
you're adding something to the package
you're entering a modified State and
again say okay I'm going to pull
this right next to this fire
hydrant I'm actually going to delete the
fire
hydrant um just to just to prove a point
here so now I have a package that's
named fire hydrant and fire hydrant is
gone but I do have a park bench in there
now I'm going to publish
this and we're going to see the the copy
of it behind is auto updated as we'd
expect and this just goes to show that
because we're using that model group as
that that bucket or container for
everything that's going to be p packaged
we aren't stuck with that fire hydrant
as being part of our package where if
you package up just a a mesh by itself
without without first putting it in a
model group you're kind of stuck with
that mesh that mesh always has to be
there because this package link is is
childood to that object um do the same
thing here where we're going to grab the
park bench
we're going to copy it and we're going
to paste it and in this case we have to
paste it with inside the mesh itself so
paste into at original location it's
going to say hey you're you're um
entering a modified State on this
package uh we're going to say
okay but in this case I can't delete
that fire hydrant even if I wanted to I
can't delete it um because it is the
parent container for the package link so
I'm kind of we're kind of stuck with
that mesh in this package now
which isn't really what I want um I'll
go ahead and publish here and you can
see the second one picked up the the
update of the bench being in here but I
don't want the fire hydrant now um so if
I actually there's no way for me to
delete this or to move the package link
under another object you can see here um
you can't reparent package
link so we've kind of got ourselves into
a corner here um and there's no way to
really change this the only way to do
this is just you know delete this
package and start with and start by
creating a brand new package that has a
model group as its parent um there are a
couple plugins that you know if you do
make this mistake and you've placed
um a ton of your packages that actually
we're we made out of a model there are
replace plugins that you can use to
quickly fix this issue um so here I'm
going
to select the fire hydrant and there's a
replace
objects plugin that's really useful use
it all the time and this will replace
selected objects with the last
selected um object or asset so I've
selected this this package and I've
selected the the one I want to replace
it with and I've replaced it and it the
uh pivot Points were in different spots
so um it did move but I I could have
done all three of these or all two of
these replacing with the actual one I
want to
use and this is just a quick way of
replacing even if you've even if you've
placed a bunch of non-packaged
um assets down and you're like oh I
forgot to package everything up this is
a really easy way of um creating a
package and just replacing all your
placements with your your new
package and the package system isn't
just meant for meshes and 3D objects you
can package up basically any asset
within Roblox Studio from scripts to UI
surface UI
goys um
also effects and sound effects so
basically anything that you want to
share across Place files or across
placements within your place file you
can package that object up for
reusability so don't think that it's
just the 3D meshes or um artwork it's
it's anything with inside of
studio um so once you kind of get that
in your head you can really start to use
the full power of the packages
system so now let's go through some of
the package rightclick menu options
within the
Explorer so here you'll see we have a a
bunch of options in the package section
here we have publish package which we've
already seen we have undo changes to
package um let me demonstrate that one
I'm going to go ahead and add a part to
this fire hydrant
and just going to place
it just right in inside
here and let's say I didn't want to do
this modification uh I I'm kind of in
a spot where I did something to it or um
that I didn't want to or I I
accidentally did something to it and I
wasn't even aware that I did it um so in
this state um if I've done something and
I don't want to publish it um even if I
deleted this cube out of here this part
out of here it would still be in a
modified State because I've I've kind of
opened it up for editing and if I wanted
to revert that that's all you have to do
is go into the right click menu and do
undo changes to package and that will
bring you back uh into its its current
version um having something in a
modified state will also keep that
object or that placement from receiving
any changes so um just to demonstrate
that I'm going to add another part to
this one over
here I'm going to change it to a sphere
or a ball make it little easier to work
with
um let's say I wanted this sphere to be
on the top of all of my hydrants so I'm
going to I'm going to publish
that publish the package you'll see all
of the packages have updated but this
one that was left in a modified State
won't get that modification because it
is modified any package that uh you want
to have receive updates needs to be in
what I like to call a clean state so one
thing you can do here is undo package or
undo changes to package and that will
automatically tell it to get the latest
version um and now you can see it's back
in a clean State the other item on the
list is get latest package so this is if
somehow if you've
reverted
your package version down to something
other than the current you can see now I
have that recirculation saying that it's
not at the current state and you can
right click on an object and say get
latest package and that will
also uh automatically fetch the latest
version you can see how it went I forced
it to two and it came back up to three I
don't believe let me see I think if you
have
a
modification on object you can't get
latest um because you're in a modified
state so what you'd have to do first is
undo the changes and then get
latest next on the list is package
details and this is this is interesting
uh it pulls up uh the
configuration file
[Music]
for this
package and there's a bunch of um
information in here the title you can
change the the
name or the title of the package you
can't
change um the Creator if it's created
under your account or a group account
there's no way to switch those um
there's some permissions you can see who
has permissions to this object um and
within a group you can see
the the roles and what permissions each
role has and you you can also see the
version number and I'll get into this a
little bit more later in this video so
there is some information in in this um
but not a ton and we'll um get into some
more deeper dives into the
information here with the compare
package version and this is a new tool
which is uh extremely helpful for
understanding what changed within a
version of a package um
we could do a video just on this
window but here we can see we have two
view planes um and we're comparing
version three with our local copy and
our local copy is at version three so
just to show this off let's go down and
look at version one you can see now
version one does not have the sphere on
top where our local copy
or version three does
have the sphere on top and you can
see
um see the changes that happened uh
within this package we deleted a
folder that had a copy of the mesh in it
and we've also added a part which is our
our sphere here we can also go to
properties and we can click on each
object and if there was anything that
changed um you'll see that highlighted
here you can see on the version one this
the part was not a member of the package
so it's not showing any data but over on
the right hand side in version 3 view
you can see all the properties for
that sphere so this is really handy and
trying to figure out what changed um
between packages
and this kind of gets into team
collaboration right you can see what has
changed if you're using a package from
someone that um maybe you grabbed a
package off the market place and it
changed for some reason you can come in
here and kind of investigate what
changes happened and maybe decide which
version you want to use depending on
what changes have been made to that
package but that's a brief overview
of the rightclick menu and the package
version tool
that's built in
there one other rightclick menu option
that I want to go over is the update all
so if you have a bunch of packages that
for whatever reason you decided not to
have the auto update feature
on um this is a way that you can update
all of your placements of that package
without having that feature turned on so
I'm going to go in and delete the sphere
sphere that we had put on top of that
hydrant I'm also going to change its
color just just to show this off a
little bit more clearly so I'm going to
publish the package and you'll notice
all the other placements of this package
are still at version two or three let's
see which one says that this is at four
so all of these are at version three
um and if I wanted
to update all of those I could either go
through and select them if they're in
you know all throughout my hierarchy and
in different folders uh the other way to
do that is to update all and this will
basically pull
up the and show you the entire uh Place
file that's going to be updated if you
hit update here it'll run through and it
shows you its update progress and when
you close and come back you notice all
of those have now been forced into the
fourth revision also wanted to touch on
um how you can manually roll
back a
package so here I'm going to make
another copy of this move it out five
studs and in this package here I'm going
to delete or not delete the package link
but in this package here I'm going to
roll back to version three
so now I have my sphere back in here and
I have the yellow color I'm actually
going to
break the link here so at version three
and I can't
publish the changes because there's a
newer version and it won't let me
override that version so we're going to
kind of do a little work around here and
we're going to delete the package link
we're going to grab these two parts and
we're going to cut them and
grab a
package that's at version 4 I'm going to
paste into at original location it's
going to tell me that I'm in a modified
state I'm going to
delete the contents of that version 4
package now I have the contents from
version 3 in the version 4 package
that's in a modified state I'm going to
snap this back to the
original position and then I'm going to
publish and what this is going to do is
basically
override
um the meshes and parts I had in that
package and now you'll notice that I'm
at version five so version five is
basically a roll back of version three I
can come in again and do update
all and you can see all of
those fire hydrants are now have the
little sphere top and they're back to
yellow and if we look at their package
links they're also at version five so we
currently don't have a way to roll back
um and publish and this is kind of a
little work around to um achieve
that there is one more way to roll back
a a package to a previous version um and
if go into
the um package details you can see
version here
um this is one way to do it but it's uh
it's a little bit difficult to know what
you're actually rolling back to the
there's no way to see a preview of this
um but you can click the version and it
will roll that back um it's a a little
bit of a blind process this and we're
hoping to get this
functionality into the compare package
versions
tool as you can see uh I have a time and
date stamp here for this I'm going to go
ahead and pick version one and then
submit and it it basically uploaded that
and here it gives you a link to the
actual package on the Creator hub
bring this over
here um here you can't really see much
information you can't see the version
number on here but now we're rolled back
to version
one as you can see all of these are at
an old version so I'm going to update
all once
again close and you can see that now I'm
at version
six so version six is basically a copy
of version one it's a little bit um
confusing and hard to understand um
what's what here but if you go back into
your package
details you can see now I have a version
six you can pull up um in Creator Hub um
you can get to
your package and its version history by
typing in the package number here and
this one at least shows that here's the
current published version which is
version one but it's also the version
for version six so this one gives you a
little bit more detail but again you
can't um you can't see any details as
you can in the uh package versioning
tool um you can also restore here as
well but again it's um kind of Flying
Blind cuz you you can't really inspect
that package and there's there's no
change notes in this to help you in that
process so I always like doing the the
manual roll back method that I showed
previously but this is another way that
you can achieve that same
goal and that's going to about wrap it
up for the second video of the series
package workflows stay tuned for the
third video Advanced package usage
[Music]
Voir Plus de Vidéos Connexes
Flatpak vs Snaps vs Appimage vs Packages - Linux packaging formats compared
Azure Service Fabric - Tutorial 17 - Data Packages, Config and Environment Variables
How To Create And Publish Your First NPM Package
Nix in 100 Seconds
2024 Unity VR Tutorial (OpenXR and XR Interaction Toolkit) - PART 1 - Project Setup
EntityFramework Core Migrations | ASP.NET CORE | CLI Migrations | Package Manager Console Migratio
5.0 / 5 (0 votes)