Different .PAK files for same packages?

Hi there.
I had the same issue and just found a solution. There is no documentation to find anywhere about how the ordering works, but looking into the source code I was able find it out.
So, if you don’t have a GameOpenOrder.log it will automatically fall back to CookerOpenOrder.log and EditorOpenOrder.log. These 2 files are changed permanently and therefore cause assets being differently ordered in paks.

Even if you had a GameOpenOrder.log in place, it would fall back to the other ones for assets not included in the GameOpenOrder.log. This means if you add new stuff to your game, you will have paks again that are not deterministically.

There is a way tough to specify a specific OpenOrder.log to be used and if you do this, it will ONLY use that file. In your DefaultGame.ini add PakOrderFileSpecs in the ProjectPackagingSettings section:

[/Script/UnrealEd.ProjectPackagingSettings]
PakOrderFileSpecs=(Pattern="CustomOpenOrder.log")

Now place a file called CustomOpenOrder.log in the FileOpenOrder folder next to EditorOpenOrder.log.

The file has to exist, otherwhise the build will fail.
I actually used an empty file, which basically deactivates load time optimization done by intelligent ordering inside the pak file. Honestly, I couldn’t notice a difference, but I didn’t measure the time.

Now my paks are deterministic.

1 Like