Quick Start: World Actors
By the end, an actor placed in your level (a door, chest, lever) - or one spawned at runtime - remembers its state across save and load. World actors opt in through ICrimsonSaveableActor and, unlike saveable systems, need no registration.
CrimsonSaveSystem plugin is enabled (see Quick Start: Saveable Systems -> step 1, or the Overview), and you have a way to trigger a save. An active save slot must exist - start or load one first.1. Implement ICrimsonSaveableActor
Add the interface to the actor. That is the only opt-in - there is no register call. On every save the world subsystem scans loaded levels, finds each actor that implements the interface, and captures it automatically.
Register Saveable System. World actors must not - implementing ICrimsonSaveableActor is the whole opt-in. The world subsystem discovers them by scanning loaded levels (bAutoCaptureActorsOnSave, default on).2. Mark the state you want to persist as SaveGame
Tag each property SaveGame. Fields on the actor's components count too - component state cascades in automatically, along with transform, the hidden flag, and physics velocities.
3. Save and reload
A normal save persists world actors too: with bIncludeWorldStateInMainSave (default on), RequestSaveProgress captures and flushes every saveable actor alongside your systems, and a load restores them. You do not call anything per actor.
WorldSlab_<Level>.sav file appears in the slot.SaveGame and Replicated are independent. Restored values live on the server; a client sees them only if the property is also Replicated. Full explanation: Concept: Multiplayer & Player Scoping.