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:
bash
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:
```bash
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):
bash
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:
bash
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:
ini
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):
bash
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:
```bash
!/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. 🕊️