How-To: Turnkey Save Setup with CrimsonCore
Goal: get a working save/load loop with essentially no C++ by using the ready-made integration in the CrimsonCore plugin.
CrimsonCore (its GameMode ACrimsonGameMode, GameState, and ACrimsonPlayerState). CrimsonCore already depends on CrimsonSaveSystem.1. Use the CrimsonCore game framework classes
ACrimsonGameMode already forwards player login/logout to the save manager (NotifyPlayerLoggedIn / NotifyPlayerLoggedOut) and saves on exit, and ACrimsonPlayerState already saves its per-player data (stat tags, squad id) as a player-scoped fragment. No wiring needed.
bVerboseLogging on, the log shows the player's fragment loading on join and flushing on leave.2. Make your world actors persist
Reparent placed actors to ACrimsonPersistentActor (it implements ICrimsonSaveableActor for you) and mark their variables SaveGame. Shipped ACrimsonCorePickupActor pickups already persist as collected.
3. Drive New Game / Save / Load from your menu
UCrimsonSaveFacade is a Blueprint function library with one-call helpers. Save Game guarantees an active slot and - because the main save includes world state - persists systems and world actors in one call.
See also
- How-To: Build a Save/Load Menu - the full slot-list / delete / metadata recipe
- How-To: Save Player Progression - extend the player-state fragment
- How-To: Persist a Level Actor - the raw-interface path without CrimsonCore