A campaign progression tracker for Total War: Warhammer III
Track every campaign you've played, log your victory type, analyse your stats and plan what to play next — all stored locally on your device, no account needed.
Windows only. No installation of Node.js or any other software required — just download, install and play.
If you enjoy Grudgekeeper and want to support development, a small donation is always appreciated — but never expected!
Dashboard — active campaign, tier progress, hall of fame and next suggestion
Roadmap — tiered campaign guide with difficulty dots, playstyle tags and DLC info
Expanded card — why to play, key mechanic, campaign tip and victory tracking
Statistics — completion charts, playstyle distribution and victory type breakdown
- Roadmap — tiered campaign guide covering all 24 races with difficulty ratings, playstyle tags, start pressure, campaign tips and key mechanics
- All Factions — filterable and sortable table of all roadmap entries with completion status
- Faction Browser — browse all Legendary Lords organised by race, build a custom play queue
- My List — personal campaign queue with reordering, victory tracking and per-campaign notes
- Statistics — charts for tier progress, playstyle distribution, victory types, game origin (WH1/WH2/WH3) and Base vs. DLC breakdown
- Notes — freeform notebook for strategies, observations and campaign impressions
- Random Picker — spin the dice and let Grudgekeeper pick your next campaign
- Dark & Light Mode — TWW3-authentic dark theme and a Dwarf-inspired stone/gold light theme
- Fully local — all progress saved on your device, no server, no login, no tracking
| Tool | Purpose |
|---|---|
| React 18 | UI framework |
| Vite 5 | Build tool |
| Electron | Desktop app wrapper |
| Recharts | Charts in Statistics |
| PapaParse | CSV parsing for faction data |
Download the installer from the Releases page, run it and follow the setup wizard. No additional software required.
Prerequisites: Node.js 18+, npm
git clone https://github.com/ZintelFelix/grudgekeeper.git
cd grudgekeeper
npm install
npm run electron:devRun in the browser instead:
npm run devBuild a Windows installer:
npm run electron:buildgrudgekeeper/
├── public/
│ └── data/
│ ├── roadmap.csv # Campaign data (tier, faction, lord, tips...)
│ └── races.csv # All Legendary Lords with faction icons
├── src/
│ ├── components/ # DiffDots, Tag, PressureBadge, RandomPicker
│ ├── context/ # ThemeContext (DARK / LIGHT)
│ ├── hooks/ # usePersist, useCSV
│ └── views/ # Dashboard, Roadmap, AllFactions, FactionBrowser,
│ # MyList, Notes, Statistics
├── screenshots/ # Screenshots for this README
└── README.md
All campaign data lives in two CSV files under public/data/. No backend required.
roadmap.csv— one row per faction with fields for tier, faction, lord, difficulty, length, playstyle, tags, why-to-play, campaign tip and key mechanicraces.csv— one row per Legendary Lord with race, icon URL, game origin and DLC info
Want to add a faction or fix a difficulty rating? Just edit the CSV — no code changes needed.
- Per-lord entries — currently one entry per faction, per-lord breakdowns planned
- DLC Tracker — mark which DLCs you own; lock icons on missing content
- Campaign Journal — per-campaign log with date, rating and notes
- Achievement System — self-defined challenges
- Faction Comparison — side-by-side view of two factions
Contributions are welcome. If you want to add factions, fix data or improve the UI:
- Fork the repo
- Create a branch (
git checkout -b feature/your-feature) - Commit your changes
- Open a Pull Request
For data corrections (wrong difficulty rating, missing lord, outdated DLC info) a PR editing the CSV files is perfect and needs no React knowledge.
This is a fan project. Total War: Warhammer III and all related content are the property of Creative Assembly and SEGA. Faction icons are sourced from the Total War Wiki under fair use for non-commercial purposes.
MIT — free to use, modify and distribute.