unreal-save-load

Designs and debugs versioned persistent game state systems in Unreal Engine 5.8.

Updated May 28, 2023
One-click install
npx skills add https://github.com/steveulrich/ProjectB --skill unreal-save-load-steveulrich
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unreal-save-load
Source: https://github.com/steveulrich/ProjectB/tree/main/.cursor/skills/unreal-save-load
Command: npx skills add https://github.com/steveulrich/ProjectB --skill unreal-save-load-steveulrich

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building save/load systems in Unreal Engine involves subtle pitfalls: game-thread serialization hitches, corrupt or newer-version saves, schema migrations across releases, platform-specific slot and cloud behavior, and multiplayer authority boundaries. This Skill provides a structured methodology to design, implement, version, migrate, and debug persistent game state correctly. ## Core Features & Use Cases - Persistence Contract Design: Build a persistence matrix assigning every datum an authority, stable ID, owner slot, lifetime, and migration policy before writing code. - Versioning and Migration Pipelines: Implement monotonic schema versions, pure data transforms, FCustomVersion handling, and safe recovery from corrupt or newer saves. - Platform and Multiplayer Coverage: Handle slots, platform users, ULocalPlayerSaveGame, cloud conflicts, and server-authoritative persistence with idempotency. - Use Case: When your open-world game needs checkpoint saves that survive patches, use this Skill to define stable actor identifiers, an autosave ring, migration fixtures, and a corruption recovery policy. ## Quick Start Use the unreal-save-load skill to design a versioned save system with checkpoints and autosaves for my Unreal Engine 5.8 game.

Frequently Asked Questions about unreal-save-load

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I save and load game state in Unreal Engine 5?▼

Create a USaveGame subclass with value-type properties, then call AsyncSaveGameToSlot and AsyncLoadGameFromSlot through a coordinator subsystem. Persist stable domain IDs rather than live Actor pointers, and validate version and type before applying loaded state.

How do I migrate old save files to a new schema version?▼

Use a monotonic schema version and run pure data transforms from version N to N+1 repeatedly until current, validating invariants at each step. Keep fixtures for every released version and never overwrite a newer-version save automatically.

Does AsyncSaveGameToSlot run fully on a background thread?▼

No. In UE 5.8, AsyncSaveGameToSlot still serializes the SaveGame object on the game thread and only moves the platform write to a worker. Large object graphs can still cause hitches, so keep snapshot cost bounded and measure with Unreal Insights.

Should I use USaveGame or ULocalPlayerSaveGame for per-player data?▼

Use ULocalPlayerSaveGame for per-local-player state since it binds a SaveGame to a Local Player and provides load/create, version, and async lifecycle helpers. Use a custom USaveGame schema for playthrough and world progress, and UGameUserSettings for graphics options.

Why does my save file get corrupted or fail to load after a patch?▼

Failures come from changed serialized layouts without version bumps, missing content definitions, or interrupted writes. Classify results separately, preserve original bytes, validate headers before applying, and test real previous-version files plus power-loss scenarios on target hardware.

Can I trust client save files in a multiplayer game?▼

No. Local save data is untrusted for competitive authority, paid entitlements, or server economy. The server must own shared world state and progression, persisting authenticated account records with idempotency and version checks.