Where Zephyr stores files
Quick reference for finding Zephyr's data on disk. Useful for backups, debugging, and cleanup.
Per-OS roots
Zephyr uses the OS-standard "app data" directory for everything. The bundle identifier is com.prismo-studio.zephyr.
| OS | Path |
|---|---|
| Windows | %APPDATA%\com.prismo-studio.zephyr\ |
| macOS | ~/Library/Application Support/com.prismo-studio.zephyr/ |
| Linux | ~/.local/share/com.prismo-studio.zephyr/ |
In the rest of this page, "data dir" refers to that path for your OS.
Layout
<data dir>/
├── data.sqlite3 # main database (mods, profiles, settings)
├── games.json # cached game catalog
├── latest.log # most recent app log
├── cache/ # default download cache (path is configurable)
├── randomizer/
│ ├── archipelago-runtime/ # bundled Python + Archipelago install
│ │ ├── venv/ # Python virtualenv
│ │ ├── custom_worlds/ # your installed .apworld files
│ │ └── ... # rest of the Archipelago tree
│ ├── schemas/ # extracted option schemas (overrides bundled)
│ ├── Players/ # YAML files used by the generator
│ └── output/ # generated .archipelago seeds + patches
└── <game-slug>/ # one folder per modded game
└── profiles/<id>/ # per-profile mod storePer-file purpose
| Path | What it is |
|---|---|
data.sqlite3 | Profiles, installed mod records, settings, game install paths. Backups should snapshot this. |
data.sqlite3-wal, -shm | SQLite WAL companions - back them up alongside the main file. |
games.json | Cached list of supported games and their metadata. Safe to delete; will be re-fetched. |
latest.log | The current run's log. Attach this when reporting bugs. Overwritten on each launch. |
cache/ | Default location for downloaded mod archives, before they're unpacked. Path is editable in Settings -> Locations. Safe to delete via Clear mod cache in Settings. |
randomizer/archipelago-runtime/ | The runtime install. Delete = forces a fresh install on next randomizer use. |
randomizer/schemas/ | Option schemas Zephyr extracted for the configurator. Safe to delete; regenerated by Refresh schemas. |
randomizer/Players/ | Player YAMLs you've created or imported. Back these up if you want them safe. |
randomizer/output/ | Generated seeds. Take real disk space (multi-MB each); clean up old ones. |
<game-slug>/profiles/<id>/ | The actual mod files for one profile of one game. |
Logs
Zephyr writes only latest.log and overwrites it on each launch - there's no rotation. Copy the file aside before relaunching if you want to keep a previous run's log.
For more verbose logging, launch Zephyr with RUST_LOG=debug set:
# Linux/macOS
RUST_LOG=debug zephyr
# Windows (PowerShell)
$env:RUST_LOG="debug"; & "C:\Path\To\Zephyr.exe"Backing up
Minimum backup for restoring a Zephyr install elsewhere:
data.sqlite3(and the-wal/-shmif present)<game-slug>/folders for any games whose mods you want to keep installed exactly as-israndomizer/Players/if you have YAMLs you want to keep
The randomizer runtime, schemas, mod download cache, and game catalog are all regenerated automatically - no need to back them up.
Resetting
To completely reset Zephyr:
- Quit the app.
- Delete the data dir.
- Relaunch - you'll get a fresh first-run state.
To reset just one game without touching the rest, delete <data dir>/<game-slug>/.
To reset just the randomizer, delete <data dir>/randomizer/.
Moving to a different machine
Cloud sync is the supported way (see Cloud sync). For an offline transfer:
- Quit Zephyr on both machines.
- Copy the entire data dir from old to new.
- Open Zephyr on the new machine - it'll re-validate paths and tell you if any games' install folders need to be re-pointed.
Game install paths are absolute and might not match between machines. The first launch after a transfer will surface any mismatches.