Patching an app

Ship a change to a live Eagle 3D Streaming app by uploading a small patch file instead of the whole Unreal build again.

What a patch is for

A patch updates an app's assets - levels, Blueprints, meshes, materials, textures, sounds, animations, UI. It does not update compiled C++ code or the executable. For those, see which way fits your change.

Why patch at all

A packaged Unreal build is large. Re-uploading it for a changed material or a moved object means sending gigabytes to replace a few megabytes of content, and waiting out the whole upload sequence each time.

A patch is a .pak file holding only what changed. It sits on top of the base build, and the app loads both.

What patching buys, and what it costs

You get much smaller, much faster updates. You pay for it with a versioning scheme you have to keep straight yourself — every patch is built against a specific base version, and getting that wrong produces an app that does not run rather than an error message.

What a patch can change, and what it cannot

Unreal compares the newly cooked content with the released base build and puts every changed package in the patch. A .pak whose name ends in _P is mounted with priority, so its files replace the base build's copies when the app starts.

In a patch - updatedNot in a patch - needs a new executable or a full upload
Levels (.umap) and any cooked asset (.uasset): Blueprints, meshes, materials, textures, sounds, animations, UMG widgetsC++ code - your game module and plugins are compiled into the executable
Config .ini files packaged with the content - Unreal mounts the pak files before it reads its configThe engine version and the list of enabled plugins
Localized textPackaging settings (for example Use Io Store) - fixed when the base build is made
Non-asset files you added under Additional Non-Asset Directories to PackageFiles copied loose next to the build (Additional Non-Asset Directories To Copy), DLLs, the executable itself

From Epic Games:

The three stages

  1. Try it on a demo app — upload a prepared build and a ready-made patch, so you see the mechanism work before your own project is involved.
  2. Set up the launch profiles — one for the base build, one for patches. This is the part that has to be right.
  3. Make and upload your own patch.

In this section

Related

Last updated