How can I package my objects as downloadable content?

Hi

Is there some sort of way to package my objects (with compiled code) to distribute as extension to already builded project? As DLC or something.

You could maybe use a tool which scans the normal and dlc build, and give you the files that changed/are new.
Steam does something similar when uploading patches.

Hi, thanks for answer.
Question is not about how to get dlc files, but about: will my distributed project work with uassets which wasn’t distributed with it from begining?

What you want is to create PAK files, a PAK file is a bundle that can be mounted in runtime. Right now there is no code that handles authority though so that is still up to you.

PAK files contain .umap or .uasset files so you can use them for DLCs or even User Generate Content with some extra work. One part that needs a bit more work and setup on your end is to handle cooked content within PAK files.

You can create PAK files with UnrealPak.exe. To create a pak file you have to do the following:

UnrealPak.exe OutPak.pak myasset.uasset anotherasset.uasset mymap.umap

Just add the .umap or .uasset files you would like to add to the pak.

Cheers,
Moss

Hi, Moss.

Thank you for answer. I’ll try it. But as I mentioned, I’m talking about objects (blueprints) which was based on my compiled class.
I don’t think that such objects will work standalonely. Or I’m missing something ?

As I expected:

LogLinker:Warning: CreateExport: Failed to load Super for BlueprintGeneratedClass /Game/Paks/GoGoGo.GoGoGo_C

Because there is no compiled parent class in another project.

How compiled class can be in pak file? It’s a compiled library somewhere in the astral (can’t find any documentation about it). It’s not a blueprint, there is no such object in assets at all.

Is the parent class also in the PAK file? Have you tried having the parent class within your base content?

When I prepare DLC stuff I usually prepare all base stuff within the base content that come shipped with the game, this is a common procedure.

So the parent class of your ‘GoGoGo’ class is a code class and not a BP class?

Yes, it is.

Strange. Just to see if my settings works for you.

I had to mount the assets in /Engine/ instead in /Game/ and so I added an engine module with all the basic stuff that would like to have in my PAK files. For textures and static assets its easy because you can change the mount where to mount those when loading the pak file. For BPs you probably require to have them already in engine, so parenting will work as expected. Pak files still seam to be very new and not as usable as we would like to.

Another way would be adding a type of assets (a data asset) that describes what you want, but this way you can not add any new BPs.

Any suggestions from developers ?

Been wondering myself. Creating the paks are easy enough. Im curious how you would control the download for it.

Would be awesome to have a game that allows you download extra content for it. I am assuming you were using code.

In blueprints only i think it will be almost impossible to achieve

I have added some snippets in another answer that shows how to stream a PAK file over the net, loading it from local is nearly the same: Stream an asset from the internet - Blueprint - Unreal Engine Forums

I’m preparing a plugin to make it easier and BP accessible too.

As I can see, there is no solution.

what is the plugin and where to get it?