How to mount pak files without breaking the loading of other assets?

You are right, this parameter will let you alter the pak’s mount point, which can save you the hassle of unpaking and repaking with a different folder name. However, there are some more complications to take into account. As described in the Primer, PAK file is structured like this :


It has a defined mount point, and all files within it are relative to that mount point.
If you alter the mount point, files will be relative to the mount point you specify.
However, in my experience the mount point is not necessarily consistent, ie. here is another example of PAK file :

Display: Mount point ../../../MyProject/
Display: "AssetRegistry.bin"
Display: "Content/BP_Base.uasset"
Display: "Content/BP_Base.uexp"
Display: "Content/M_Mat.uasset"
Display: "Content/M_Mat.uexp"

In the first sample, the PAK mount point is pointing to the parent folder of the Engine folder, which would be your game’s root folder. In the second sample, the PAK mount point is pointing to MyProject folder, so it is already one level deeper.

Then there’s the case of plugin paks, which looks like this

Display: Mount point ../../../MyProject/Plugins/Plugin1/
Display: "AssetRegistry.bin"
Display: "Content/BP_Base2.uasset"
Display: "Content/BP_Base2.uexp"
Display: "Content/M_Mat2.uasset"
Display: "Content/M_Mat2.uexp"

Here the references will look like /Plugin1/BP_Base2 and /Plugin1/M_Mat2 so if you override the mount point to place it under /Game it’s not gonna work either. In this case you do need to register a new mount point /Plugin1 that points to wherever you mount the pak.


Thinking about it, lots of game ship with a single monolithic PAK. So the PAK contains both Engine folder and project’s folder. That means the PAK mount point is most likely a parent of these two, ie. the game’s root folder, and that means the project’s name is not part of the mount point but part of each asset’s path. In that case the parameter to override mount point won’t be useful unfortunately.