What is the best way to load a map (and other content) created after release?

Hello,

I’m working on an application that will need to load content – umaps and uassets – that will be generated over time after the application’s release. Sort of like DLC, but it’ doesn’t have to be very automatic or tightly integrated into the user experience. If the simplest way to do this is command line flags when running the application, then so be it.

I’ve been hunting around for solutions to this, and I don’t see a lot of helpful information out there. The best I’ve got so far is that I’m packaging up my umap and associated uassets into a pak file, using FPakPlatformFile to mount it at runtime, and using FStreamableManager to load all that into memory. This is all pretty much gleaned from ( Stream an asset from the internet - Blueprint - Epic Developer Community Forums ).

However, this is still not working as I’d like. Specifically:

  1. The FFPakPlatformFile only seems to be able to mount the pak file to the Engine Content directory, and not the Game Content directory (if you try to mount under game content the files just don’t show up). This breaks all the asset references, such as the materials applied to the models, because that was all created under Game Content.
  2. Once the contents of the pak file have been loaded, I have been able to use some of the assets, by doing things like spawning in StaticMeshActors that utilize the meshes from the pak file. However, I have yet to be able to successfully load a level (umap) from the pak file. I’ve tried various methods, including using UGameplayStatics::OpenLevel and level streaming with UGameplayStatics::LoadStreamLevel, but everything crashes in different ways, depending on if I’m trying to do it in the Editor or standalone.

Can what I want to do be done? It really seems like it should be possible, but if it is, then the solution seems remarkably hard to find. Please help! Thank you!

same issue: broken asset reference.

Did you have any success with loading umap?