Why are my update sizes so big?

Hey everyone!

I’ve upgraded a project from 4.27 to 5.0.2 and now my updates when pushing to Steam are going from <500 MB to up to 4-5 GB.

I’m getting a few complaints from my users because we do a lot of iterations on our beta branch which can cause havoc on our users data so I’m hoping to find a quick solution.

I understand that the first update from 4.27 to 5.0.2 would probably be big, but now I’m consistently updating using 5.0.2 and regardless of the changes I make I’m looking at a 4-5 GB update for each version.

This is just small fixes like code changes too. No rebuilding nav mesh or changes/additions to maps, textures, materials, etc…

I’m generating chunks and I understand encryption will mess with the diffs, but this is a major change from the small <500 MB updates I had with the exact same process.

I also understand that I can use launch profiles for updates and DLC, but the problem is still the same.

Can anyone give me a fix for reducing the size of updates when pushing a project to Steam?

Or is this something I’ll have to wait for an Engine update for?

BTW 5.0.2 is amazing. No beef there. Nanite and Lumin have drastically increased the visual fidelity of our game, but these update sizes are killing my users.

Did you happen to find a solution? I’m experiencing the same issue. My updates to Steam are consistently ~1GB without touching any BPs or other content, just code changes. Something must be non-deterministic when making the pak file, but I haven’t determined what is it.

Quick followup, I found a process to find out where the issue may lie, thanks to this UDN thread. Basically you can use the cooker to diff what is going into your pak files. Copying from the UDN thread in case future reader doesn’t have access:

  1. Find a way to reproduce the spurious diffs- whatever content edits are necessary (possibly none if this happens every build); this step is called in #3 below

  2. Cook your map normally

    UE4Editor-Cmd.exe -run=cook -targetplatform= -map=

  3. ReproduceTheProblem()

  4. Cook your map with -diffonly

    UE4Editor-Cmd.exe -run=cook -targetplatform= -map= -DiffOnly

  5. Inspect the logs. (\Saved\Logs<YourProjectName>.log). When running with -DiffOnly, callstacks for the Serialize function from each class where the before and after packages differ will be written to the log.

In my case it turned out we were using a plugin that created non-deterministic function names when cooked. Hope this helps.

1 Like