# Unlucky Launcher {{VERSION}} Rust-native **single-file** Minecraft launcher: iced 0.14 + Material 3 Expressive UI, built-in AI agent (chat / setting edits / crash diagnosis) and an MCP server other agent tools can attach to. No WebView, no bundled runtime, no JRE download needed to start the launcher itself. ## Downloads Asset names are `___`, underscore separated — the rule `packaging/make_artifacts.py::asset_stem()` applies: | Platform | Asset | Notes | | --- | --- | --- | | Windows 10/11 x64 | `unlucky-launcher_{{VERSION}}_windows_x64.exe` | single exe, double-click to run | | Windows 11 ARM64 | `unlucky-launcher_{{VERSION}}_windows_arm64.exe` | single exe, runs natively on ARM64 Windows | **This release ships Windows only.** The Linux (x64 / arm64) and macOS (Apple Silicon / Intel) slots are built by CI but are not assets of this release: they have not been verified on real machines yet, so nothing unverified is handed out. They stay out of the download list and out of `SHA256SUMS.txt` until that verification happens — the support matrix below marks them accordingly. The Windows assets are bare `.exe` files, so `LICENSE`, `NOTICE` and `README.md` are attached to this release next to them: the license terms travel with every download. Slots that ship an archive (Linux / macOS, once published) unpack to one top-level directory of the same name holding the binary plus those three documents. ## Command line Each published slot also ships the command line as its own small bare asset, `ull_{{VERSION}}__` (`.exe` on Windows): ```powershell .\ull_{{VERSION}}_windows_x64.exe instances list # servers and CI: no graphics stack needed ``` `ull` runs `instances`, `install`, `pack import`, `launch`, `accounts`, `sessions`, `logs`, `diag`, `config`, `java` and `agent`, and links no graphics library at all. The GUI binary accepts the same set before it ever opens a window, so a desktop machine does not need `ull`. ## Support matrix Published = shipped as a download of **this** release, listed in `SHA256SUMS.txt`. | Platform | Status in this release | Level | Runtime requirements | | --- | --- | --- | --- | | Windows 10/11 x64 | **published** | first class | nothing beyond the OS (UCRT is part of Win10+) | | Windows 11 ARM64 | **published** | first class (launcher artifact) | nothing extra; the launcher runs natively, the game itself runs through the OS x64 emulation layer with an x64 JDK | | macOS 12+ Apple Silicon | built by CI, not published | first class (unverified) | nothing; unsigned build, needs the Gatekeeper workaround | | macOS 12+ Intel | built by CI, not published | first class (unverified) | same as above | | Linux x64, X11 | built by CI, not published | first class (unverified) | `libxkbcommon`, `fontconfig`, `libGL` (or software renderer), `libxcb` | | Linux x64, Wayland | built by CI, not published | supported (unverified) | `wayland-client`, `libxkbcommon`, plus the X11 set for XWayland apps | | Linux arm64, X11 | built by CI, not published | first class (unverified) | glibc 2.35+, `libxkbcommon`, `fontconfig`, `libGL`, `libxcb` | | Linux arm64, Wayland | built by CI, not published | supported (unverified) | the above plus `wayland-client` | | Windows 8.1/8/7 | not built | unsupported | the baseline is Windows 10 | | Android — Termux + X11 | not built (no CI slot) | experimental, not promised | CLI only and only when built from source; GUI unverified | Both arm64 rows are formal matrix slots, not the experimental Termux path: Windows ARM64 ships here and is cross-built with the same static-CRT gate as x64; Linux arm64 builds on a native ARM64 runner and joins this list once someone has run it on real hardware. The rows above and the matrix table in `packaging/README.md` §9 are the same list — change one, change the other. ## Install **Windows** — put the `.exe` anywhere and run it (pick `_windows_arm64.exe` on ARM64 Windows, `_windows_x64.exe` everywhere else). The first run creates `.ULL/` and `.minecraft/` next to the exe (portable is the default data mode); the per-user `%APPDATA%\ULL` plus `%APPDATA%\.minecraft`, or a custom root, are selectable instead. Linux / macOS are not part of this release; their asset names are already fixed by the same rule (`unlucky-launcher_{{VERSION}}_linux_x64.tar.gz`, `_linux_arm64`, `_macos_arm64`, `_macos_x64`) so the links will not change shape when those slots open. ## No GPU? Software renderer The UI renders through `wgpu` (GPU) and falls back to the `tiny-skia` CPU rasteriser when no usable adapter is present; `--software-renderer` (or its equivalent `--renderer=cpu`) forces that path. ## Verify the download `SHA256SUMS.txt` lists exactly the assets attached to this release (Windows only), and `sha256sum -c` checks the ones you actually downloaded: ```bash sha256sum -c SHA256SUMS.txt --ignore-missing # Linux / WSL shasum -a 256 -c SHA256SUMS.txt # macOS (sha256sum is not bundled) Get-FileHash .\unlucky-launcher_{{VERSION}}_windows_x64.exe -Algorithm SHA256 # Windows PowerShell ``` ``` {{SUMS}} ``` ## Known limitations of this build - Microsoft (MSA) sign-in needs an Azure public client id, and release binaries do not carry one: set `ULL_MSA_CLIENT_ID=` before launching, or build with that variable set. Without it sign-in stops before any network call, and the GUI banner says so plainly: the title "Microsoft sign-in is not configured", a body naming `ULL_MSA_CLIENT_ID=` (set it, or build with it, then restart the launcher — a running process does not pick up a new variable) and `Code: msa_not_configured`, with no Retry button. Every other sign-in failure keeps the generic banner plus its own `Code:` line, with the full reason only in the launcher log. `ull accounts add msa` prints the same fix on the command line. Offline profiles and authlib-injector servers need no id. - Binaries are not code-signed / notarized yet: Windows SmartScreen and macOS Gatekeeper warn on first launch. The checksums above are the integrity reference for now. - When the macOS slot ships it is the bare binary (single-file promise), not a `.app` bundle: no Dock icon or Finder double-click — launch it from a terminal. ## License Apache-2.0, third-party notices in `NOTICE`. Not affiliated with Mojang or Microsoft; no game files ship. ## UI framework in this build Every asset here is built from the iced UI (`crates/app-iced`, iced 0.14, MIT); no other UI framework is linked into it.