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.
| Directory | Long path | Short path |
|---|---|---|
app_data_dir | C:\Users\<user>\AppData\Roaming\com.crjakob.polylauncher | %APPDATA%\com.crjakob.polylauncher |
app_config_dir | C:\Users\<user>\AppData\Roaming\com.crjakob.polylauncher | %APPDATA%\com.crjakob.polylauncher |
app_local_data_dir | C:\Users\<user>\AppData\Local\com.crjakob.polylauncher | %LOCALAPPDATA%\com.crjakob.polylauncher |
app_cache_dir | C:\Users\<user>\AppData\Local\com.crjakob.polylauncher | %LOCALAPPDATA%\com.crjakob.polylauncher |
app_log_dir | C:\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.jsonLogs
app_log_dir/
└── polylauncher.log