You should not need one giant save script that knows every detail about your game. Core RPG uses save modules instead. Each module captures and restores one part of the character or world.
Main pieces
| SaveCoordinator | Runs save and load operations, tracks the current operation state, and sends success or failure events. |
|---|---|
| SaveSystemSettings | Controls storage, file names, format choices, slot limits, and other project level settings. |
| SaveDefinitionRegistry | Maps saved definition IDs back to items, quests, and other ScriptableObject content when a file is loaded. |
| SaveIdentity | Gives persistent scene objects a stable identity so the correct object can be restored later. |
| Save modules | Capture and restore inventory, equipment, skills, combat state, position, banking, quests, and other supported systems. |
Basic setup
- Create or locate the Save System Settings asset.
- Add the save bootstrap and required scene services to your starting scene.
- Open the Save System window and sync the definition registry.
- Make sure persistent world objects have a SaveIdentity.
- Test a new save slot before adding your own custom modules.
Do not save direct asset references: Store stable IDs and resolve them through the definition registry. This keeps files safer when content moves and makes the system much easier to adapt for networking later.
Included save coverage
- Player location and scene information
- Inventory and equipment
- Skills and progression
- Combat related player state
- Bank storage
- Quest progress and world state
- Persistent participants that register their own save module
Adding your own saved system
Create a small data model, implement the matching save module pattern, register it with the save participant setup, and only capture the data your system truly owns. Keep scene presentation out of the file whenever it can be rebuilt from saved state.