Skip to content

Data layout

The data directories

Tauri exposes 5 different directories to PolyLauncher. app_data_dir, app_config_dir, app_local_data_dir, app_cache_dir and app_log_dir. These point to different paths on different operating systems.

DirectoryLong pathShort path
app_data_dirC:\Users\<user>\AppData\Roaming\com.crjakob.polylauncher%APPDATA%\com.crjakob.polylauncher
app_config_dirC:\Users\<user>\AppData\Roaming\com.crjakob.polylauncher%APPDATA%\com.crjakob.polylauncher
app_local_data_dirC:\Users\<user>\AppData\Local\com.crjakob.polylauncher%LOCALAPPDATA%\com.crjakob.polylauncher
app_cache_dirC:\Users\<user>\AppData\Local\com.crjakob.polylauncher%LOCALAPPDATA%\com.crjakob.polylauncher
app_log_dirC:\Users\<user>\AppData\Roaming\com.crjakob.polylauncher\logs%APPDATA%\com.crjakob.polylauncher\logs

Versions, Storages and Profiles

Versions

Versions are stored as .asar files in folders categorized by edition.

app_data_dir/
├── versions/
│   ├── polymodloader/
│   │   ├── v0.6.0-1.asar
│   │   └── v0.5.2-3.asar
│   ├── cwctrack/
│   │   ├── v1.2.2.asar
│   │   └── v1.1.1.asar
│   └── polytrack/
│       ├── v0.6.1.asar
│       ├── v0.5.2.asar
│       └── v0.3.1.asar
| ...

The .asar files are electron's native app archive format. The reason versions are stored as .asar files is so that many versions can be stored at once while preserving space and existing build workflows for PolyTrack, PolyModLoader etc. don't have to be adjusted for PolyLauncher.

Profiles

Profiles are stored as json files.

app_data_dir/
├── profiles/
│   ├── pml1/
│   │   └── profile.json
│   ├── cwctrack3/
│   │   └── profile.json
│   └── polytrack1/
│       └── profile.json
| ...

the name of the folder storing the .json file is determined by the profile's id.
In the future more json files might be added to the profile directory, like mods.json

Storages

LocalStorages are stored as a pair of a json file and an .enc file.

app_data_dir/
├── localStorage/
│   ├── localStorage1/
│   │   ├── storage.json
│   │   └── localStorage.enc
│   └── localStorage2/
│       ├── storage.json
│       └── localStorage.enc
| ...

the .json file contains metadata while the .enc file is an encrypted file storing the LocalStorage data.

Cache

Extracted versions

app_cache_dir/
└── extracted/
    ├── polymodloader/
    │   └── v0.6.0-1/
    │       ├── main.bundle.js
    │       ├── index.html
    │       ├── PolyModLoader.js
    │       └── ...
    ├── cwctrack/
    │   └── v1.2.2/
    │       ├── main.bundle.js
    │       ├── index.html
    │       └── ...
    └── polytrack/
        └── v0.6.0/
            ├── main.bundle.js
            ├── index.html
            └── ...

Cached edition assets

app_cache_dir/
└── editions/
    ├── cwctrack/
    │   └── edition.json
    ├── polymodloader/
    │   ├── assets/
    │   │   ├── hero/
    │   │   │   └── PolyModLoader.png
    │   │   └── logo.svg
    │   └── edition.json
    └── polytrack/
        ├── assets/
        │   ├── logo.svg
        │   └── hero/
        │       ├── 0.1.0.jpg
        │       └── 0.5.2.jpg
        └── edition.json

Logs

app_log_dir/
└── polylauncher.log