Focused reference · Unreal Engine 5.8

Schema and stable identifiers

unreal-save-load/references/schema-stable-identifiers.md

Split definition from state

Definition: Primary Asset ID / row ID / tag -> display, class, tuning, soft assets
Save record: stable instance ID -> definition ID + minimal mutable values
Runtime: resolved definition + validated mutable record + transient caches

Use value structs/arrays/maps in the SaveGame object. Avoid world pointers, components, delegates, latent actions, timers, UI objects, replicated caches, and derived presentation data.

Header fields

Include at least:

  • format magic/product namespace when using a custom envelope;
  • save schema version and optional subsystem versions;
  • build/content compatibility identifier;
  • slot/profile ID and platform-user binding policy;
  • creation/update time for display only, not authority;
  • map/checkpoint identity and playtime if needed;
  • payload validation/checksum metadata when your format provides it.

Identity

  • placed persistent actor: authored stable GUID/domain ID stored with the actor;
  • runtime-spawned actor: generated persistent instance ID plus definition ID and spawn record;
  • item/quest/ability: stable domain/Primary Asset ID, never display text or array index;
  • map: soft world/Primary Asset identity or governed map ID;
  • destroyed/consumed placed actor: tombstone/state record keyed by stable actor ID.

Validate uniqueness in editor/CI. Duplication workflows must generate or deliberately preserve IDs based on semantic identity; accidental duplicate GUIDs make load order decide state.