Async load materials and blueprints from .pak

The problem: I need to be able to distribute characters remotely after the app is shipped. Right now I have a blueprint where I have a character with a skeletal mesh, some materials and some textures. I cook these assets and put them in a .pak file. Then I download the .pak and I need to load the character during game run-time. For this, I am using a modified version of GitHub - moritz-wundke/AsyncPackageStreamer: Simple plugin giving you the ability to load PAK files from the local FS or a remote one. (mostly changed the path of the assets retrieved, otherwise it always failed to load them). It uses FStreamableManager to load assets asynchronously. The problem is, I can load the mesh and textures just fine, but the blueprint object is always null, and the app crashes when trying to load materials (I run out of memory because it tries to allocate hundreds of GBs).

Is this an Engine bug, or am I doing something wrong? Did anyone manage to do something similar in version 4.13?


Apparently my solution doesn’t work at all on a standalone app. It loads meshes and textures when I run it in PIE, but when I try to do it in a standalone app I can’t load anything. I can mount the pak file, and PakFile.FindFilesAtPath is able to fetch the list of files, but when StreamableManager->RequestAsyncLoad finishes, ResolveObject() returns null for every object. Did anyone manage to get this working on a standalone build?