GS_Save
Categories:
The Save system is the universal means of storing, loading, and handling game data. It provides a centralized Save Manager for file operations, entity-level Saver components for automatic data capture, and a Record Keeper for lightweight progression tracking — all backed by JSON-formatted save files that work across PC, console, and mobile platforms.
Every component that needs to persist data plugs into this system through one of two patterns: extend the Saver base class for complex per-entity data, or use the Record Keeper for simple key-value records.
For usage guides and setup examples, see The Basics: GS_Core.
Contents
Architecture

Breakdown
When a save or load is triggered, the Save Manager broadcasts to every Saver in the scene. Each Saver independently handles its own entity’s state. The Record Keeper persists flat progression data alongside the save file.
| Part | Broadcast Event | What It Means |
|---|---|---|
| Save Manager | OnSaveAll | Broadcasts to all Savers on save. Each serializes its entity state. |
| Save Manager | OnLoadAll | Broadcasts to all Savers on load. Each restores its entity state. |
| Record Keeper | RecordChanged | Fires when any progression flag is created, updated, or deleted. |
Savers are per-entity components — extend GS_SaverComponent to persist any custom data. The Record Keeper is a global singleton that lives on the Save Manager prefab.
E Indicates extensible classes and methods.
Patterns - Complete list of system patterns used in GS_Play.
Components
| Component | Purpose | Documentation |
|---|---|---|
| GS_SaveManagerComponent | Central save/load controller. Manages save files, triggers global save/load events, provides data access to all savers. | Save Manager |
| GS_SaverComponent | Base class for entity-level save handlers. Override BuildSaveData() and ProcessLoad() to persist any component data. | Savers |
| RecordKeeperComponent | Lightweight key-value store for progression tracking (string name → integer value). Extends GS_SaverComponent. | Record Keeper |
| BasicEntitySaverComponent | Pre-built saver that persists an entity’s Transform (position, rotation). | List of Savers |
| BasicPhysicsEntitySaverComponent | Pre-built saver that persists an entity’s Transform and Rigidbody state (velocity). | List of Savers |
Quick Start
- Create a Save Manager prefab with the GS_SaveManagerComponent.
- Optionally add a Record Keeper to the same prefab for progression tracking.
- Add the Save Manager
.spawnableto the Game Manager’s Startup Managers list. - Attach Saver components to any entities that need to persist data.
- Call
NewGame/LoadGamethrough the Game Manager — the Save Manager handles the rest.
See Also
For conceptual overviews and usage guides:
For component references:
For related resources:
Get GS_Core
GS_Core — Explore this gem on the product page and add it to your project.