Documentation contents
Build from source
Compile the launcher, run its tests, publish a release, and find your way around the code.
Mistly is open source under the MIT license. The code is on GitHub; the Rust project is in the misty-rust folder.
Requirements
- Windows 10 or 11.
- Rust (stable toolchain, MSVC target) with the Visual Studio C++ build tools.
CurseForge API key
The CurseForge API needs a personal key, free on console.curseforge.com. It must stay private:
- Paste it into
misty-rust/curseforge.key(the file is ignored by git). - Rebuild: the key is embedded in the exe at build time.
Alternatively, set the MISTY_CURSEFORGE_KEY environment variable. Without a key, the CurseForge tab explains how to set one up; Modrinth works normally.
Build and run
cd misty-rust
cargo run # development build
cargo build --release # final exe: target\release\Misty.exe
Tests
The tests use the Internet and your Mistly folder, but never start the game:
cargo test -- --ignored --nocapture
Publish a release
-
Update
VERSIONinmisty-rust/src/services/app_info.rsandversioninmisty-rust/Cargo.toml, then add an entry toCHANGELOG.md(it is embedded in the exe and shown on the Release notes page). -
Run the release script (it needs Inno Setup 6:
winget install JRSoftware.InnoSetup):powershell -ExecutionPolicy Bypass -File installer\build.ps1It produces in
publish\: theMisty-<version>folder, theMisty-<version>.ziparchive (used by the auto-update) and theMisty-Setup-<version>.exeinstaller.-SansInstallateuronly builds the folder and the zip. -
Create a GitHub release with the tag
<version>and attach the zip and the installer.
VERSION, the GitHub tag (without av) and theMisty-<version>folder name must be identical. Otherwise the launcher will offer the update over and over.
Find your way around
| Folder | Role |
|---|---|
misty-rust/ui/ | The Slint interface: theme, widgets and one file per page |
misty-rust/src/ui/ | The code behind each page |
misty-rust/src/minecraft/ | Game installation and launch: versions, Java, mod loaders |
misty-rust/src/services/ | The logic: settings, accounts, profiles, content, Modrinth and CurseForge clients, updates… |
misty-rust/lang/ | Translations (en.json, fr.json, es.json, it.json, ru.json), embedded in the exe |
installer/ | Release script and Inno Setup installer |
Contribute
Bug reports and pull requests are welcome on GitHub. To improve this documentation, use the Edit this page on GitHub link at the bottom of each page: the docs live in the Misty-Web repository, in docs/<language>/.