Skip to content

Repository files navigation

Corruption Tracker

A lightweight command-line tracker for a corruption system with manual point control, fixed resistance levels, mutation rolling by tier, and automatic save/load.

What It Does

  • 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

Requirements

  • Python 3.8+

For Non-Technical Users (Windows)

If you do not want to install Python, use the prebuilt Windows release.

  1. Download corruptiontracker-windows.zip from GitHub Releases.
  2. Extract it to a normal folder (for example, Desktop).
  3. Run corruptiontracker.exe.
  4. Keep corruptiontracker_mutations.json in the same folder as the exe.

The app will create corruptiontracker_data.json automatically in the same folder for saves.

Run

From this folder:

python corruptiontracker.py

Menu Options

  1. Add character
  2. Add corruption points
  3. Remove corruption points
  4. Set resistance level (1-3)
  5. Apply mutation
  6. Show character status
  7. Show all characters
  8. Reset one character
  9. Reset tracker (remove all characters)
  10. Quit

Resistance Levels

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 Rules

Tier is based on points above threshold:

  • Tier I: 1-3 above threshold
  • Tier II: 4-6 above threshold
  • Tier III: 7+ above threshold

Corruption Points Needed Per Tier

Level 1 (Standard, threshold 0)

Tier Total Corruption Points Needed
Tier I 1-3
Tier II 4-6
Tier III 7+

Level 2 (Resistant, threshold 3)

Tier Total Corruption Points Needed
Tier I 4-6
Tier II 7-9
Tier III 10+

Level 3 (Hardened Resistant, threshold 6)

Tier Total Corruption Points Needed
Tier I 7-9
Tier II 10-12
Tier III 13+

Mutation Rolling

  • Applying mutation rolls randomly from the current tier only.
  • If the character is not in any tier yet, no mutation is applied.

Custom Mutations (User Editable)

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.

Persistence (Auto Save)

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 Behavior

  • Reset one character: sets that character's corruption points to 0 and clears mutations.
  • Reset tracker: removes all characters after confirmation.

Troubleshooting

  • Windows protected your PC or SmartScreen warning: Click More info then Run anyway.
  • Exe closes instantly when double-clicked: Open Command Prompt in the folder and run corruptiontracker.exe to read the error.
  • Changes to mutations are not being picked up: Make sure corruptiontracker_mutations.json is 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.

Releases

Packages

Contributors

Languages