Everything in one window.
SalmonLauncher splits the job of a launcher into seven areas, but they share one config, one instance folder and one task queue. Here is exactly what each area does.
Install: manifest to runnable folder
The version list comes from Mojang's official version_manifest_v2.json: the latest 40 releases plus the latest 12 snapshots and historical builds. Pick one and the launcher fills in libraries, assets and natives from the manifest, then finds or downloads a matching Java.
- Fabric, Quilt, Forge and NeoForge loader installs
- Automatic BMCLAPI mirror fallback when the primary source fails
- Resume plus SHA-1 verification; mismatches are downloaded again
- 2026 natives rules: windows-x64 only, other platforms pruned
Launch is a visible sequence
Launching is not a click and a wait. Every stage shows up in the task centre: parse metadata, verify libraries, rebuild natives, top up assets, locate Java, assemble arguments, start the process. Success and failure both land in the instance log.
- Memory, window size and extra JVM arguments per instance
- Natives are rebuilt on every launch, so stale DLLs never leak in
- Game stdout and stderr are redirected into the instance log
- Abnormal exits drop straight into diagnostics
Instances are folders, not a database
Each instance owns a full tree under instances/<id>/: meta, versions, mods, resourcepacks, shaderpacks, saves, logs, natives, crash-reports. Removing one instance touches nothing else.
- Mod toggling is a rename: .jar ↔ .jar.disabled
- Real metadata read from fabric.mod.json, mods.toml or mcmod.info
- Local mods import directly, leaving the original untouched
- Saves can be zipped for backup; migrating is a folder copy
Multiplayer: relay, LAN, invite code
The first version ships a local loopback TCP signalling relay. Invite codes look like SLROOM-xxxx-xxxx and the port is picked from the system, so no manual forwarding rules. A public relay needs a server; this release still runs loopback.
- Host a room and share an invite code for the same machine or LAN
- LAN scan lists joinable games on the same subnet
- Manual relay: point at an address you already run
- Signalling is separate from the game process; closing the launcher leaves the game running
Content: three Modrinth categories
Mods, shaders and resource packs share one search view, while the install folder follows the category: mods, shaderpacks, resourcepacks. With an instance selected, finished downloads land in the right folder.
- Faceted search by category and game version
- Shaders are not pinned to a game version, so usable projects are not hidden
- A China mirror can be selected
- The target instance and folder are shown before install
Microsoft sign-in, three ways
Signing in does not depend on one embedded browser. Device code suits environments without a browser, and system-browser sign-in pastes the callback link back into the app. Offline accounts are unlimited, with UUIDs generated by the offline rule.
- Embedded browser authorisation with full-page scrolling
- Device code sign-in confirmed on any device
- System browser sign-in opens the default browser and copies the link
- Sessions persist locally, refresh automatically, and fall back to offline with a notice
Four languages, two themes, one workshop
The interface ships in Simplified Chinese, Traditional Chinese, English and Japanese, follows the system by default and switches on demand. Light and dark can follow the system or be locked; accent colour, a block-colour theme workshop and wallpapers keep the window from being a grey slab.
- Theme tokens swap as a whole, with no flicker
- System-follow listens to AppsUseLightTheme in the registry
- Custom accent applies immediately
- Block-colour workshop and wallpapers
After a crash, start with the conclusion
Diagnostics read the tail of latest.log through FileStream + FileShare.ReadWrite, sidestepping log4j's file lock. Signatures cover mod conflicts, out-of-memory, Java version mismatch, missing dependencies and OpenGL, then hand back a plain-language explanation and next step.
- No FileNotFoundException just because the log is held open
- Signature matching instead of keyword guesswork
- Actionable advice rather than a pasted stack trace
- The raw log stays readable and exportable
Boundaries
What it does not doNot in scope
- No Minecraft game files are bundled or modified
- No cracked servers or accounts are provided
- Mods are not auto-updated; you choose the version
- A public relay server is not hosted for you
What it relies on
- A network connection for the first version manifest
- Game files come from official sources or public mirrors
- Java is downloaded on demand (Eclipse Temurin)
- Mods and shaders remain their authors' property
Install one and see if it stalls.
A 59.5 MB installer with its runtimes included, no extra dependencies.