Save System

The Save plugin handles persisting game state between sessions. It saves and loads player data, inventory contents, quest progress, customization choices, and everything else that needs to survive a game restart.

How Saving Works

Spark's save system works automatically for all built-in plugins. Each plugin that stores data registers its own save/load logic with the Save plugin. When a save is triggered, each plugin's data is collected and written to a save file. When a load is triggered, the data is read back and applied.

You don't need to configure save behavior for built-in systems. It works out of the box.

What Gets Saved

Each plugin manages its own save data. Here is what each plugin saves:

Plugin
Saved Data

Character

Character selection and state

Items

Inventory contents, equipment loadout

Currency

Wallet amounts

Quests

Active quests, objective progress, completed quests

Progression

Experience and level per progression instance

Classes

Main class and secondary class selections

Professions

Learned professions

Races

Selected race

Character Customization

All customization choices (elements, colors)

Crafting

Unlocked recipes

Spellbooks

Learned abilities

Item Bar

Slot assignments

Game Settings

Audio, video, and keybind settings

In-Game Save Manager

The InGameSaveManager extension provides an in-game UI for save/load operations. It lets players:

  • Save to a named slot

  • Load from a saved slot

  • View existing saves with timestamps

  • Delete saves

Add the InGameSaveManager component to your scene to enable this UI.

Save Data Overview

Save data is stored as serialized files on the player's device. The location and format are managed by the Save plugin's Save Provider system.

GameSettingsSaveProvider handles game settings separately from gameplay saves, since settings should persist regardless of which save slot is loaded.

Auto-Save

Some components support auto-save. For example, InventoryEntity can be configured to save automatically when items change. This ensures data is not lost if the game crashes.

Manual Save/Load

Saves and loads can be triggered through commands and the in-game save manager UI. The templates include pre-built save/load screens.

Last updated

Was this helpful?