A lightweight command-line tracker for a corruption system with manual point control, fixed resistance levels, mutation rolling by tier, and automatic save/load.
- Track multiple characters
- Add or remove corruption points manually
- Set one of 3 resistance levels per character
- Roll random mutations from the character's current tier
- Save data automatically between runs
- Reset one character or reset all
- Python 3.8+
If you do not want to install Python, use the prebuilt Windows release.
- Download
corruptiontracker-windows.zipfrom GitHub Releases. - Extract it to a normal folder (for example, Desktop).
- Run
corruptiontracker.exe. - Keep
corruptiontracker_mutations.jsonin the same folder as the exe.
The app will create corruptiontracker_data.json automatically in the same folder for saves.
From this folder:
python corruptiontracker.py- Add character
- Add corruption points
- Remove corruption points
- Set resistance level (1-3)
- Apply mutation
- Show character status
- Show all characters
- Reset one character
- Reset tracker (remove all characters)
- Quit
There are exactly 3 resistance levels:
| Level | Name | Threshold |
|---|---|---|
| 1 | Standard | 0 |
| 2 | Resistant | 3 |
| 3 | Hardened Resistant | 6 |
Threshold is the number of corruption points ignored before tier progression starts.
Tier is based on points above threshold:
- Tier I: 1-3 above threshold
- Tier II: 4-6 above threshold
- Tier III: 7+ above threshold
| Tier | Total Corruption Points Needed |
|---|---|
| Tier I | 1-3 |
| Tier II | 4-6 |
| Tier III | 7+ |
| Tier | Total Corruption Points Needed |
|---|---|
| Tier I | 4-6 |
| Tier II | 7-9 |
| Tier III | 10+ |
| Tier | Total Corruption Points Needed |
|---|---|
| Tier I | 7-9 |
| Tier II | 10-12 |
| Tier III | 13+ |
- Applying mutation rolls randomly from the current tier only.
- If the character is not in any tier yet, no mutation is applied.
The app supports custom mutations without editing Python code.
On first run, it creates:
- corruptiontracker_mutations.json
You can edit that file to replace the mutation lists with your own.
Required JSON shape:
{
"Tier I": [
["Name", "Perk", "Punishment"]
],
"Tier II": [
["Name", "Perk", "Punishment"]
],
"Tier III": [
["Name", "Perk", "Punishment"]
]
}Rules:
- All 3 tiers must exist.
- Each tier must have at least 1 mutation entry.
- Each mutation must contain exactly 3 non-empty strings: name, perk, punishment.
If the file is invalid, the app falls back to built-in defaults.
Data is saved automatically to:
- corruptiontracker_data.json
- corruptiontracker_mutations.json (user-editable mutation definitions)
It loads automatically when the program starts.
When running as an exe, the save file is created next to the exe. When running as a script, the save file is created next to corruptiontracker.py.
- Reset one character: sets that character's corruption points to 0 and clears mutations.
- Reset tracker: removes all characters after confirmation.
Windows protected your PCor SmartScreen warning: ClickMore infothenRun anyway.- Exe closes instantly when double-clicked:
Open Command Prompt in the folder and run
corruptiontracker.exeto read the error. - Changes to mutations are not being picked up:
Make sure
corruptiontracker_mutations.jsonis valid JSON and in the same folder as the exe. - Mutations file is invalid message appears: The app is using built-in defaults. Fix JSON format and restart.
- Save data not persisting: Ensure the app has write permission to the folder (avoid protected system folders).
- Antivirus flags the exe: This can happen with unsigned one-file executables. Add an exception or use source version with Python.