MultiPersistent Data
MultiPersistent is a Ren’Py feature that allows separate games to share data with each other. It is primarily used by multi-part game series where a sequel needs to read your choices and progress from a previous installment.
How It Works
Section titled “How It Works”When a game developer creates a MultiPersistent object, they assign it a shared identifier (typically a domain-like string such as "mygameseries.example.com"). Any game that uses the same identifier can read and write to the same shared data file.
For example, a two-part visual novel series might work like this:
- Game Chapter 1 — As you play, the game saves your choices, romance routes, and story flags to a MultiPersistent file
- Game Chapter 2 — When launched, the sequel reads that same file to import your decisions and build a personalized continuation of the story
This allows developers to create branching narratives that span multiple standalone releases without requiring you to manually transfer save files between games.
What Gets Shared
Section titled “What Gets Shared”MultiPersistent data typically includes:
- Story choices and branching decisions
- Romance route selections
- Character relationship stats
- Completion flags (which endings you’ve seen)
- Any other data the developer chooses to share
How Spark Handles MultiPersistent
Section titled “How Spark Handles MultiPersistent”Spark stores MultiPersistent files in a dedicated multipersistent directory within the Ren’Py data folder. This directory is shared across all games, which is what allows different titles to access each other’s data — just as Ren’Py intends on desktop platforms.
iCloud Sync
Section titled “iCloud Sync”When iCloud sync is enabled, Spark automatically syncs your MultiPersistent data across devices. This means if you finish Chapter 1 on your iPhone, Chapter 2 on your iPad can pick up your choices without any manual transfer.
Common Use Cases
Section titled “Common Use Cases”- Episodic visual novels — Games released in chapters where each new chapter reads progress from the last
- Shared universe games — Separate titles set in the same world that unlock bonus content based on what you’ve played
- Sequel imports — A direct sequel that tailors its opening based on how you completed the original
Troubleshooting
Section titled “Troubleshooting”If a game isn’t detecting MultiPersistent data from another title:
- Ensure both games have been launched — The first game needs to have been played and the MultiPersistent data saved before the sequel can read it
- Check iCloud sync — If playing across devices, wait for sync to complete
- Verify game compatibility — Both games must use the same MultiPersistent identifier, which is set by the developer. If the developer changed the identifier between releases, the data won’t be shared automatically