Different .PAK files for same packages?

Hi guys,
So I’m generating .PAK files for my multiplayer project (in UE 5.2). I have chunk IDs for certain folders. Now here is the weird issue…
When I run back-to-back packages (without any changes in between both packages), I generate different .PAK files. So here is what happens:

Create Package A → Don’t make any changes in the project → Create Package B → .PAK files from Package A and Package B are different

When I say “different”, I mean that the .PAK files from Package B are slightly different sizes from Package A. This problem basically defeats the purpose of generating .pak files for project updates.

Why is that happening?

I know you can change the PAK file ordering,

and I think even when you don’t do that, the order isn’t deterministic. A different order could lead to slightly different file sizes.

Ok, interestingly, I don’t have the GameOpenOrder.log file in my packaged build.

1 Like

It seems that my issue is related to this post, but no solution was ever given:

Any way to disable/deactivate the time stamps?

It seems that this is a bug on UE 5. Can someone confirm?

No answers for this?
Does anybody currently do their own version control with .pak files and experience this issue with UE5? Because I didn’t see this happening with UE4.

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