#How to create and use Support Packages

1 messages · Page 1 of 1 (latest)

vernal yacht
#

This guide will explain the concept of "Support Packages," which can be extremely useful in collaborative projects or certain situations. A separate guide will explain how to publish a map which uses a support package.

#

Almost every map published by the community is made as a single .udk file which contains all models, textures, material instances, and anything else needed for the map.

Many maps also make use of the Dummy Assets, at the very least for materials but sometimes for things like background objects. Unreal Engine allows game designers to easily reference assets across packages, which is really the whole reason why we can mod Rocket League so easily.

#

Psyonix typically releases maps as a set of at least 4 distinct .upk packages. Because these all go straight into the CookedPCConsole folder for everyone who has the game, they can do that. If a community map is made of separate .udk or .upk files, anyone playing that map will need to add all of the separate files into CookedPCConsole. The Steam Workshop does not do this, but the Workshop Downloader plugin does.

#

Generally speaking, official maps are built as a number of separate files:

  • {MapName}_P - the playable map, which includes spawns, goals, boosts, etc
  • {MapName}_MapImage_SF - the in-game thumbnails for the map
  • {MapName}_OOB or {MapName}_Background- the out-of-bounds background detail for the map
  • {MapName}_FX or {MapName}_VFX or {MapName}_Effects - things like particle systems or ambient effects
  • {MapName}_SFX - sound effects

Specific maps may have dedicated packages for a single feature, such as the arena's cage or a complicated background object. Many packages will also contain assets that "should be" in a different package.

#

There are fundamentally two types of packages used by UDK and Rocket League. There are probably precise, technical terms for these, but I will explain both here anyway.

#

1️⃣ The first type of package is a Playable Level, which is what all of us are here to create. These files contain a library of assets (meshes, textures, etc that you see in the Content Browser), but also contain a playable level which has been built in the 3D editor. These files also contain things like spawnpoints, goals, and kismet logic to make the level playable. Each mesh placed into the level has information like location, physics settings, and materials.

#

2️⃣ The second type of package is known in the community as a Support Package. This is purely a library of assets, without any playable 3D level, logic, or spawnpoints. Nothing exists in the UDK 3D editor for these packages.

#

You can test this yourself with unreal commands in the Bakkesmod console (F6).

unreal_command "start Music_P?Game=TAGame.GameInfo_Tutorial_SF?Aerial?Hard?" will start the aerial training on Neon Stadium

unreal_command "start Music_OOB?Game=TAGame.GameInfo_Tutorial_SF?Aerial?Hard?" will try to start aerial training on a non-playable "support package" and crash your game.

#

Official maps are built so that the Playable Level will load pieces from the various Support Packages associated with it.

vernal yacht
#

In general, the main reason for putting assets in a separate package is for organization. You ensure that you can mess with the assets in your main level and not impact the support package assets, and vice versa. But there are two main reasons why we like them for Rocket League custom maps.

#

1️⃣ UDK will not delete "unused" assets from a package which is not the playable level. This is constantly annoying for us and is a big waste of time. Unused assets are safe in a support package.

#

2️⃣ Projects become modular, which allows for better collaboration. If person 1 is working on the main level, MyNewMap_P, person 2 can work on assets in MyNewMap_Support. For example, if MyNewMap_P is using MyNewMap_Support.Meshes.GiantMountain, person 2 can update GiantMountain, send a new version of MyNewMap_Support, and person 1 will get the updated model when they restart UDK. Multiple people can work on a map at the same time.

#

The downsides of Support Packages are that they are more complicated when publishing a map, and are also more complicated to work with during the map building phase. I am writing this guide to help you avoid those issues.

#

Support Packages must be kept inside the Content folder of your UDK installation. Mine are at C:\UDK\RLMM\UDKGame\Content. They must also be .upk files.

#

And just like how official maps can reference assets in their packages, any project you are building which relies on a support package will need to be able to find it inside CookedPCConsole. This means whenever you update a support package, you will need to update it inside UDK and CookedPCConsole.

#

To create a support package, import (drag and drop) or create a new asset in the Content Browser. Type the name of your new package, and press OK.

#

Find the new package under NewPackages at the very bottom of the Content Browser. Right click it and press Save.

#

Save this as a .upk file within the Content folder.

#

It should now appear under the Content folder in the file browser part of the Content Browser

#

Congrats! You now have a support package that can be used as a safe storage place for assets and can be sent to others for easy collaboration. Import any meshes, textures, materials, etc. which need to be in a separate package. Avoid putting things in a support package which you are actively working on. Every time you update an asset in this package, you will have to save it, copy it into CookedPCConsole, restart Rocket League, send it to your friend, and also have them restart both UDK and Rocket League.

#

Updating an asset in a support package is the same as for a playable level. Either drag and drop the new asset or right click and Reimport it. After updating something inside a support package, right click the support package in the Content Browser and select Save. UDK will notify you if you try to close the program with unsaved changes, but you still do not want to use File > Save All because of the risk of corrupting dummy asset packages.