A web-based save file editor for Hitman: Blood Money (PC). Edit your
Profile.pro— money, items, levels, difficulty and more.
This project is the result of vibe coding and reverse engineering of both the PC and PS2 builds of Hitman: Blood Money.
Save format internals were recovered via STABS debug symbols (PS2 ELF) and RTTI analysis (PC EXE).
All parsing runs entirely in the browser — no server needed.
Built with React 19, TypeScript, Ant Design 6. Zero dependencies outside the browser — all parsing runs client-side.
- Drag & drop your
Profile.profromMy Documents\Hitman Blood Money\ - Full profile overview — name, difficulty, training flag, save ID
- 4 save slots — edit each slot independently
- Money editor — change your cash balance
- Difficulty switcher — Normal / Expert / Professional
- Training flag — toggle on/off
- Current & last completed level pickers
- Completed levels display — see which missions are cleared
- Full item editor with all 322 item types from the game:
- Select any weapon, tool, ammo or mission item from a searchable dropdown
- Set ammo count
- Toggle all upgrades on/off with one click
- Choose suitcase or inventory
- Add new items / remove existing ones
- Download the modified
.profile — ready to drop back into your game
npm install
npm run dev # dev server at localhost:5173
npm run build # production build → dist/web/
├── src/
│ ├── savefmt.ts — binary parser & serializer for .pro files
│ ├── items.ts — all 322 item types with labels & categories
│ ├── levels.ts — 12 mission names and scene enum
│ └── App.tsx — main React UI (Antd 6)
├── public/
├── index.html
├── package.json
└── vite.config.ts
The save format was reverse-engineered using:
- STABS debug symbols from the PS2 debug ELF (
MDEBUG_HITMAN3.ELF) - RTTI from the PC executable (
HitmanBloodMoney.exe)
Key structures:
| Structure | Size | Description |
|---|---|---|
sProfileHeader |
24080 B | Profile file header |
sHeader |
5872 B | Per-slot save header (x4) |
sStatStruct |
268 B | Per-level statistics |
sSuitcaseItem |
32 B | Inventory item entry |
eItemType |
322 values | Complete item/weapon enum (from STABS Tt7904) |
MIT