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.

World actors vs systems
This track is for actors that live in a level. For data-owning objects that are not level actors - inventory, progression, settings - follow Quick Start: Saveable Systems instead.
Prerequisites
The 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.

Class Settings -> Details -> Interfaces -> Add -> `Crimson Saveable Actor`. (Or reparent the Blueprint to `Crimson Persistent Actor` from CrimsonCore to get the interface for free.)
No registration - this is the key difference
Saveable systems must call 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.

Select the variable -> Details -> Advanced -> tick **SaveGame**. Repeat for each property to persist.

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.

**Get Crimson Save Game Manager** -> **Request Save Progress** (or **Request New Game Save** for a fresh slot). World actors are included automatically; **Request Load From Slot** restores them.
Verify
In PIE: change the value (open the door), save, then reload the slot - the door is open again. No per-change call was needed. A WorldSlab_<Level>.sav file appears in the slot.
Multiplayer: SaveGame is not Replicated
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.
What's next
Control what happens when a saveable actor is destroyed (stay gone vs respawn) and link one saved actor to another: see How-To: Persist a Level Actor, How-To: Save Cross-Object References, and How-To: Turnkey Save Setup with CrimsonCore.