1. Proton → umu-launcher (core rework)
umu-launcher (zipapp, 1.4.0) replaces direct Proton invocations. No Steam
required. GE-Proton10-34 is downloaded deterministically from the release CDN
(instead of the GitHub API, which is rate-limited). GE-Proton 11.x is
explicitly excluded due to a documented hang (imm32.dll).
Prefix init uses wineboot --init with polling instead of blind sleep 60 +
pkill. Prefix migration on version changes via .created-by-proton marker.
Required Wine 10 compatibility fixes included:
- Sentry crashpad disabled (reads Wine TEB values, attempts multi-GB stack dumps)
- steam_appid.txt (2430930) placed next to the server binary
- Steam SDK symlinks (~/.steam/sdk{32,64}/steamclient.so → SteamCMD)
2. Server detachment fixed
Servers now launch via setsid nohup ... </dev/null & disown instead of &.
They survive terminal close, SSH disconnect, and script exit.
The trap handler no longer runs pkill -P $$, which previously killed the
very servers it claimed to leave running.
3. Cluster paths fixed
- ClusterDirOverride now uses
Z:\Windows paths. Previously, Unix paths were
treated as relative by UE → duplicated directory nesting, different cluster
dirs per CWD → broken character transfers. - Cluster parameters use a Bash array instead of a string with escaped quotes.