Contents
Unreal Engine 5.8 · System guide
Save and Load
Build durable versioned Unreal persistence
On this page
Choose a task
Choose an approach
Build and understand
Checkpoints and autosavesOpen reference →Corruption, failure, and recoveryOpen reference →Multiplayer authority and securityOpen reference →Save/load sequence and async behaviorOpen reference →Schema and stable identifiersOpen reference →Slots, users, platforms, and cloudOpen reference →Use-case recipesOpen reference →Versioning and migrationsOpen reference →World and actor stateOpen reference →
Workflow and boundaries
Use these checks when a task crosses several systems. The focused references above contain the specific actions.
Define the persistence contract first
Read references/system-selector.md.
- List state that must survive a checkpoint, map travel, application restart, device change, patch, account change, and multiplayer session separately.
- Assign each datum an authority, stable ID, owner file/slot, lifetime, default, validation rule, and migration policy.
- Separate immutable definitions from mutable saved state. Persist definition IDs, not asset objects.
- Capture a consistent snapshot, write through a serialized per-user operation queue, and acknowledge success/failure visibly.
- Load into data first; validate type/header/version, migrate, resolve definitions, travel/construct the world, then apply state in a deterministic phase.
- Preserve a last-known-good path and never overwrite a readable older/newer save after a failed load.
- Test real previous-version files, corruption, missing content, low storage, interrupted operations, multiple users, and packaged target builds.
Route neighboring work deliberately:
- definition assets, Primary Asset IDs, tables, and redirects ->
unreal-data-assets-tables; - subsystem/Actor interface architecture ->
unreal-blueprint-architecture; - save-related loading/memory hitches ->
unreal-memory-streamingandunreal-insights-profiling; - release artifact, patch, platform packaging, and crash collection ->
unreal-packaging-deployment; - replicated runtime authority ->
unreal-replication.
Load only what applies:
references/schema-stable-identifiers.mdreferences/save-load-sequence-async.mdreferences/world-state-actors.mdreferences/checkpoints-autosaves.mdreferences/versioning-migrations.mdreferences/slots-users-platforms-cloud.mdreferences/corruption-failure-recovery.mdreferences/multiplayer-authority-security.mdreferences/performance-testing-debugging.mdreferences/use-case-recipes.md
Hard rules
- Do not serialize live Actor/UObject pointers as durable identity. Persist stable domain IDs, Primary Asset IDs, tags, names, GUIDs, and value records with explicit resolution behavior.
- Do not save immutable definition data into every slot. Save the definition ID plus minimal mutable state.
AsyncSaveGameToSlotstill serializes on the game thread; it moves the platform write to a worker. Keep snapshot/schema cost bounded and measure hitches.- Serialize save/load operations per platform user/slot. UE warns that some platforms may not support simultaneous save and load; completion order must not decide data authority.
- Treat callbacks as stale-capable. Bind weak ownership/request generations and verify slot/user/request.
- Never mutate the live world incrementally from unvalidated bytes. Validate and migrate a data snapshot before applying it.
- Never overwrite an unknown newer-version, corrupt, or failed-to-migrate save automatically.
- Do not rely on application shutdown as the only persistence point.
- Local save data is untrusted for competitive authority, paid entitlement, or server economy.
SaveGameToSlotdocuments that it writes all non-transient properties and does not check theSaveGameproperty flag. Do not repeat the common claim that the flag filters this built-in call.- Verify path, quota, user identity, slot enumeration, cloud behavior, suspend/resume, and atomicity with
the target platform's current save API; desktop
.savbehavior is not a universal contract.
See references/sources.md for the UE 5.8 primary-source trail.
Version and evidence
Targets Unreal Engine 5.8 documentation. This label does not establish that every procedure was tested in an editor or packaged build.
Read the documentation sources and verification notes →