- Vue 48.6%
- Rust 43.4%
- TypeScript 6.1%
- JavaScript 1.1%
- Shell 0.5%
- Other 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .vscode | ||
| guide/images | ||
| packages/arch | ||
| public | ||
| src | ||
| src-tauri | ||
| .gitignore | ||
| export-localstorage.js | ||
| index.html | ||
| latest.json | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
PolyLauncher
An unofficial work-in-progress launcher for PolyTrack that lets you launch different versions of PolyTrack easily
Usage
The Menu
When you first open PolyLauncher you will be greeted by the play screen.
At first it will be pretty empty, since no profile is created yet.
This guide will walk you through creating a profile.
Aquiring versions
Before we can launch the game, we first need to aquire some game versions. To do this, open the sidebar by clicking the little hamburger button in the left of the titlebar, next to the < > buttons.
Then click on Versions. This will take you to the Versions page, where you can download the game.
In the top right you will be able to switch between PolyModLoader, PolyTrack and CWCTrack.
The launcher will automatically fetch the available versions and display them in a list (it might take a few seconds to load depending on internet speed and rate limits). Now you can download a version by clicking the Download button.

Creating a localStorage
Now we need to create a LocalStorage. The LocalStorage is what stores your game data (Account, Tracks, Settings, Mods etc.).
To create a LocalStorage, open the sidebar again and navigate to Storages. Then click Create and give your LocalStorage a name (names cannot contain special characters).

Creating a Profile
Now we can create a Profile. To do this, open the sidebar again and navigate to Profiles.
Click on Create, give your Profile a name, select an edition (PML, PT, CWCTrack), then select the version you just downloaded. Then select the LocalStorage you just created in the LocalStorage dropdown.
Click on Create to create the profile

Playing the game! :yay:
Now that we have made a Profile we can return to the Play menu by opening the sidebar and clicking on Play.
Now the dropdown next to the big Launch button should already have your newly created Profile and you should be ready to play the game! To launch the game, just click on Launch!
If you click the quit button ingame or click return to Launcher in the titlebar it will return to the launcher. If you close the launcher via the X button in the titlebar it will close the game and the launcher.
Important files:
- src-tauri/src/*.rs: app backend code
- src-tauri/resources/editions/*.json: the built-in editions
- public/*: images and assets bundled with the launcher's frontend
- src/App.vue: the main code for the vue frontend
- src/types.ts: types for the frontend code
- src/components/*.vue: the vue components for the different launcher pages
Data path layout:
app_data_dir/
├── profiles/
│ ├── pml1/
│ │ ├── profile.json
│ │ └── mods.json
│ ├── cwctrack3/
│ │ └── profile.json
│ └── polytrack1/
│ └── profile.json
├── 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
├── localStorage/
│ ├── localStorage1/
│ │ ├── storage.json
│ │ └── localStorage.enc
│ └── localStorage2/
│ ├── storage.json
│ └── localStorage.enc
└── config.toml
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
└── ...
localStorage.enc is the file that contains the per-profile localStorage data (mods, tracks, settings, account token). It will be stored encrypted for security reasons using a key stored in the device keychain
License
PolyLauncher is licensed under the GLPv3 license. For more info, see LICENSE