Documentation · v1.0.3

From first launch to first crash.

This page follows the order you will actually need: launch, sign in, then Java, instances, mods, multiplayer, download sources and the data folder. Troubleshooting sits at the end.

SL / DOCS
8 SECTIONS
UPDATED 2026-11

01First launch

The first run opens an onboarding flow: choose the interface language and theme, confirm an account name, then pick a version to install. Not having Java installed is fine — the launcher downloads it when needed.

  1. Open the app and choose a language and light/dark theme. Both can be changed later in settings.
  2. Confirm the offline account name (3–16 characters, changeable at any time).
  3. Go to the download area, pick a release or snapshot, and install.
  4. Return to the launch page, select the instance and hit launch.
First install size: Libraries, assets and natives go into a shared folder, so installing another version only tops up what is missing. The version file itself is small; most of the size is asset objects.

02Accounts

The launcher supports Microsoft accounts and unlimited offline accounts. The sign-in entry offers three methods; pick whichever works in your environment.

Three ways to sign in with Microsoft

  • Embedded browser: the Microsoft page opens inside the app and returns automatically.
  • Device code: the app shows a code; enter and confirm it in any browser.
  • System browser: opens the default browser and copies the authorisation link; paste the callback link back into the app when done.

A successful sign-in stores the session locally. It refreshes automatically at launch; if refresh fails, the app falls back to an offline identity with a notice instead of blocking the launch.

Offline accounts

Offline accounts use only a name; the UUID follows the offline rule used by offline servers. They suit local testing and offline packs.

03Java

The launcher scans for local Java before downloading anything. The scan covers JAVA_HOME, Program Files\Java, Eclipse Adoptium, ~\.jdks, LocalAppData\Programs, and the launcher's own java folder.

  • If no matching major version exists, the corresponding Eclipse Temurin major is downloaded.
  • Downloads prefer the TUNA mirror, fall back to Adoptium or GitHub, and verify SHA-256.
  • After extraction the top-level folder is stripped, landing in %APPDATA%\SalmonLauncher\java\temurin-<major>.
  • After a successful launch the environment is rescanned in the background, making the next pick faster.
Java version mismatch: Newer Minecraft versions need a newer Java major. Do not point the launcher at an old JDK; let it fetch the right one, or install the correct Temurin major and restart the app.

04Instances

Each instance is an independent tree: versions, mods, worlds and logs do not interfere. Copy the whole folder to migrate; delete the folder to remove it completely.

Instance folder layout
%APPDATA%\SalmonLauncher\
├─ libraries\          shared
├─ assets\             indexes · objects · virtual
├─ java\               temurin-17 · temurin-25
├─ cache\meta\         version_manifest_v2.json
└─ instances\<id>\
   ├─ meta\  versions\  natives\
   ├─ mods\  resourcepacks\  shaderpacks\
   ├─ saves\  logs\  crash-reports\

Instance settings cover memory limit, window size and extra JVM arguments. They apply only to that instance and never leak into another version.

05Mods & content

Toggling a mod never moves the file; the extension switches between .jar and .jar.disabled. Names and versions come from fabric.mod.json, mods.toml or mcmod.info, falling back to the filename only when those are missing.

Where content lands

  • Mods → instances\<id>\mods
  • Shaders → instances\<id>\shaderpacks
  • Resource packs → instances\<id>\resourcepacks

The Modrinth view shows the target instance and folder before downloading. Local mods can also be imported directly, with the original file left untouched.

06Multiplayer

VoxLink offers three routes: host a room, scan the LAN, or point at a relay manually. Room invite codes start with SLROOM, and the port is chosen by the system to avoid common conflicts.

  1. Host: choose “Host a room”; the app generates an invite code and starts listening.
  2. Join: the other player enters the invite code on the same machine or the same LAN.
  3. LAN scan: choose “Scan” to list joinable games on the current subnet.
  4. Manual relay: if you already run a relay, enter its address and skip hosting.
Scope in this release: Signalling in 1.0.3 is still loopback, which covers the same machine and the same LAN. Playing across the internet needs your own relay server; a public relay is not bundled yet.

07Download sources

Every download passes a source allow-list and a final check:

  • Official: piston-meta.mojang.com, libraries.minecraft.net, resources.download.minecraft.net
  • China mirror: bmclapi2.bangbang93.com (mirror-first is a setting)
  • Java: api.adoptium.net, TUNA mirror, GitHub Releases
  • Modrinth: official API and a China mirror

Primary retries fall back to a mirror; resume handles servers that ignore Range by rewriting the whole file; the final SHA-1 or SHA-256 check deletes and re-downloads on a mismatch.

Inspect the cached manifest
# PowerShell
$root = "$env:APPDATA\SalmonLauncher"
Get-ChildItem "$root\cache\meta"
(Get-Content "$root\cache\meta\version_manifest_v2.json" -Raw).Length

08Data folder

Settings, accounts, logs, instances and worlds all stay on this machine:

Open the data folder
explorer "$env:APPDATA\SalmonLauncher"

“Clear all data” at the bottom of settings first asks which extra items to remove, then starts a 10-second cooling-off countdown. Only after that second confirmation does it run, and the app exits when done.

Backup tip: To move to another PC, copy the whole %APPDATA%\SalmonLauncher folder, instances and worlds included.

09Troubleshooting

Start with the log. The instance log is at instances\<id>\logs\latest.log, and crash reports are in crash-reports.

Windows says “Unknown publisher”. Is the file bad?

No. The installer is self-signed, so machines without the certificate see an unknown publisher. Compare the SHA-256 on this site to confirm integrity.

Launching seems stuck on one step

Open the task centre to see the current stage. Assets means missing objects are downloading; Java means a download may be in flight. On a restricted network, turn on mirror-first in settings.

The game exits with OutOfMemoryError

Raise the memory limit in the instance's launch settings (for example above 4096 MB), and check that the system itself has free memory. Bigger packs need bigger heaps.

A mod is installed but absent in game

Check three things: the mod matches the game version, it matches the loader (a Fabric mod will not run in a Forge instance), and the file is not renamed to .jar.disabled.

Joining a room fails

The 1.0.3 relay is loopback, so it only works on the same machine or LAN. Across the internet you need a reachable relay address. Make sure both sides run the same version and that the firewall allows the app.

The log cannot be opened because it is in use

The game holds the log open through log4j. The launcher reads it with shared access, so its viewer is fine; other editors must allow shared reads.