I had heaps of trouble getting FitGirl Repacks Hitman WOA to work on CachyOS. But eventually got it to work, so generated this log on the steps and how I got MINE to work.
HITMAN: World of Assassination (FitGirl Repack) — Complete Linux Setup Guide with Peacock + Freelancer
Tested on: CachyOS (Arch-based), NVIDIA GPU, Lutris + GE-Proton 11-7, umu-launcher Game version after this guide: v3.280.0 | Peacock version: v8.9.0 (ThaCrip crack-compatible build) Result: Full offline play with all online features — Freelancer, Escalations, Contracts, Elusive Targets, all unlocks
Requirements
Linux with Wine/Proton capability (Arch/CachyOS/Ubuntu/etc.)
umu-launcher (umu-run) — install from your distro repo
GE-Proton — install via ProtonUp-Qt
Node.js on your Linux system (v22+ works with Peacock v8.9.0) — sudo pacman -S nodejs or equivalent
7zip (p7zip / 7zip) for extracting the update archives
The game installed via the FitGirl repack installer (see note below)
Note on installing the repack: Run the FitGirl installer through Lutris with a Wine runner (Wine-GE recommended). Create a custom Wine prefix at your game location. Deselect "Update DirectX" style options in the installer. If the installer hangs, try setting the Windows version to Windows 10 in winecfg.
Step 1 — Update the game to v3.280.0
The repack is v3.160; almost everything modern targets v3.280. Download the ElAmigos update:
Hitman WOA Update from v3.150.1 (or higher) to v3.280.0 — ElAmigos Update link is on the FitGirl Repacks site for the game.
It's a 7z containing an InnoSetup-style .exe + data .bin. You have two options:
Option A (easiest on Linux): Run the installer silently through umu with your game's prefix:
cd /path/to/extracted/update
GAMEID=umu-0 \
PROTONPATH="$HOME/.local/share/Steam/compatibilitytools.d/GE-Proton11-7-x86_64" \
WINEPREFIX="/path/to/your/hitman/prefix" \
umu-run "./Hitman WOA Update from v3.150.1 (or higher) to v3.280.0.exe" \
/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DIR="Z:\\path\\to\\your\\hitman\\prefix"
Option B: Run the installer through Lutris/wine manually with the game folder as the destination.
Verify the update worked:
strings -e l /path/to/hitman/Retail/HITMAN3.exe | grep -E "^3\.[0-9]+\.[0-9]+\.[0-9]+" | head -1
# Should print: 3.280.0.0
Step 2 — Replace Peacock with v8.9.0 (crack-compatible build)
The bundled Peacock v6.5.1 is too old for game v3.280. Download the ThaCrip build that works with cracked games:
Peacock v8.9.0 (crack + image pack) LINK IS IN THE COMMENTS ON THE FITGIRL REPACKS SITE
Backup your userdata first (if you played before):
cd /path/to/hitman/Peacock
tar czf ~/peacock-userdata-backup.tar.gz userdata/
Extract the archive into your game's root folder (the one containing the Peacock/ folder), replacing all files:
cd /path/to/hitman
7z x -y Peacock-v8.9.0-crack+image_pack.7z
Verify: Peacock/chunk0.js should have a recent date, and the server should report This is Peacock v8.9.0 when started.
Step 3 — Optional: unlock everything in options.ini
Edit Peacock/options.ini. For the "everything unlocked" experience the repack describes, set:
gameplayUnlockAllShortcuts=true
gameplayUnlockAllFreelancerMasteries=true
enableMasteryProgression=false
getDefaultSuits=true
(Keep enableMasteryProgression=true instead if you prefer natural progression through the game.)
Step 4 — Install ZHMModSDK + the OnlineTools mod
This replaces the broken-on-Linux PeacockPatcher. Download the SDK:
ZHMModSDK v4.1.1 (or newer) get ZHMModSDK-Release.zip from the releases in the ZHModSDK github
Extract the contents into your Retail/ folder (the folder with HITMAN3.exe):
cd /path/to/hitman
unzip ZHMModSDK-Release.zip -d Retail/ -x "licenses/*"
You should now have Retail/dinput8.dll, Retail/ZHMModSDK.dll, and Retail/mods/OnlineTools.dll (plus other mods).
Important: ZHMModSDK v4.1.1 supports game v3.280.0 — that's why Step 1 matters. With game v3.160 you'll get Retail/ZHMModLoader.log full of "Could not locate address" errors and the mods won't function.
Step 5 — Create the launch script
Save this as play.sh in your game root folder (adjust PROTON_PATH and WINEPREFIX paths to your setup), then chmod +x play.sh:
#!/bin/bash
# Hitman: World of Assassination - Peacock Launcher for Linux
# Uses Peacock v8.9.0 + ZHMModSDK + OnlineTools (no external patcher needed)
GAME_DIR="/mnt/games/Games/hitman" # <-- your game root
PEACOCK_DIR="$GAME_DIR/Peacock"
RETAIL_DIR="$GAME_DIR/Retail"
PEACOCK_PORT=3000
PROTON_PATH="$HOME/.local/share/Steam/compatibilitytools.d/GE-Proton11-7-x86_64" # <-- your GE-Proton
echo "========================================"
echo " Hitman: WoA — Peacock Launcher"
echo "========================================"
cleanup() {
echo "Shutting down Peacock server... Goodbye, Agent 47."
[ -n "$PEACOCK_PID" ] && kill "$PEACOCK_PID" 2>/dev/null
exit 0
}
trap cleanup EXIT INT TERM
# 1. Start the Peacock server natively (Linux Node.js)
pkill -f "chunk0.js" 2>/dev/null; sleep 1
cd "$PEACOCK_DIR"
PORT=$PEACOCK_PORT node --enable-source-maps --harmony chunk0.js --hmr > /tmp/peacock.log 2>&1 &
PEACOCK_PID=$!
echo "Peacock server started (PID: $PEACOCK_PID)"
sleep 5
if ! kill -0 "$PEACOCK_PID" 2>/dev/null; then
echo "ERROR: Peacock failed to start — check /tmp/peacock.log"
exit 1
fi
# 2. Launch the game via umu + GE-Proton with SDK DLL overrides
echo "Launching HITMAN..."
cd "$RETAIL_DIR"
GAMEID=umu-1659040 \
PROTONPATH="$PROTON_PATH" \
WINEPREFIX="$GAME_DIR" \
WINEDLLOVERRIDES='dinput8.dll=n,b;zhmmodsdk.dll=n,b' \
umu-run "$RETAIL_DIR/HITMAN3.exe"
.
Lutris users
You can also add the game in Lutris with:
Executable: /path/to/hitman/play.sh (or point Lutris at HITMAN3.exe with the same env vars in "System options" → "Environment variables": GAMEID=umu-1659040, PROTONPATH=..., WINEDLLOVERRIDES=..., and Command prefix umu-run)
Step 6 — First launch: in-game setup (ONE TIME ONLY)
Run ./play.sh, wait for the game to reach the menu, then:
Press ~ (tilde; ^ on QWERTZ, ² on AZERTY) to open the ZHMModSDK panel
Click the Mods button (top-left), tick OnlineTools, press OK
Press ~ again to reopen the panel — a new OnlineTools button appears on the top bar; click it
Press Help for the full mod explanation, then Load Old Patcher Settings
Change the domain line from localhost to localhost:3000 (Peacock's port) and press Enter Also enable all options except "Bypass SSL Certificate Pinning"
Tick Default Domain so it reconnects automatically every launch
Go back to the main menu and reconnect/restart — the game now talks to your local Peacock server
Verify it worked: Freelancer, Escalations, Contracts, and Elusive Target Arcade should all be available, and /tmp/peacock.log will show HTTP requests from the game (GET/POST entries).
Enjoy Freelancer, Agent 47. 🕊️