Integrate the MoonWell launcher and deployment tooling on the local upstream baseline d0d1b5de. Correct the shipped icon path, regenerate the code map, and make source/Lua gates portable to Windows. Classify launcher startup icon access as input plumbing.
Verified on Windows: scripts/gates.sh ALL GATES GREEN; MoonWell release build without dev; 12 deployment tests; deployment and packaging script syntax. Stock MPQ chain excludes the custom patch-3. Thirty-one addon tests skip per data-enabled rung because the corpus is absent. Native macOS/Linux and live login smoke were not run; no declared test account is available.
MoonWell
MoonWell starts benilla through run_with and adds its own window title and platform
branding. The client build banner identifies it as extended.
For player package staging, Rust MPQ builds, launcher manifests and S3 publication, see MoonWell deployment.
Build the player executable on Windows:
cargo build -p moonwell --release --no-default-features
The executable is target/release/MoonWell.exe. Provide your own WoW 1.12.1
Data/ or WoW/Data/ beside it, or set WOW_DATA to your install's Data folder.
Local client state is in benilla-config/ beside the executable.
For development, run cargo run -p moonwell --profile play. The dev feature
forwards benilla's instruments; disable it for a player build.
Replace crates/moonwell/assets/moonwell.ico with your own multi-resolution Windows icon and
rebuild to update both the executable's icon and the running window's icons.
The icon is embedded; the player does not need the source .ico file.
On macOS, build and package a player app from the repository root (Python 3.11+):
cargo build -p moonwell --release --no-default-features
python3 crates/moonwell/package_macos.py \
--binary target/release/MoonWell \
--icon /path/to/MoonWell.icns
This creates target/release/bundle/MoonWell.app with the MoonWell name and app
icon. Packaging requires a macOS executable and an ICNS icon; it does not convert a
Windows EXE into a Mac application. Build natively on each target Mac architecture.
Pass --output to choose a different destination and --bundle-id to set your
application identifier. An existing destination is never overwritten.
Launch the .app from Finder. Its launcher finds your own Data/ or WoW/Data/
beside MoonWell.app and keeps benilla-config/ there too, outside the bundle.
Explicit WOW_DATA and BENILLA_HOME values take priority.