Skip to content

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.

OSPath
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 store

Per-file purpose

PathWhat it is
data.sqlite3Profiles, installed mod records, settings, game install paths. Backups should snapshot this.
data.sqlite3-wal, -shmSQLite WAL companions - back them up alongside the main file.
games.jsonCached list of supported games and their metadata. Safe to delete; will be re-fetched.
latest.logThe 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:

sh
# 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 / -shm if present)
  • <game-slug>/ folders for any games whose mods you want to keep installed exactly as-is
  • randomizer/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:

  1. Quit the app.
  2. Delete the data dir.
  3. 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:

  1. Quit Zephyr on both machines.
  2. Copy the entire data dir from old to new.
  3. 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.

Released under GPL-3.0.