A desktop modding tool for DOOM (2016) that lets players define custom starting inventories — equipment, weapons, weapon mods, suit upgrades, and runes — and generates the .decl mod files the game engine reads. Python dataclasses model the game's internal systems as a three-level inheritance hierarchy: abstract base elements specialize into perks and items, which further specialize into eight concrete types matching DOOM's inventory categories. A validation layer enforces the game's own balance constraints, preventing configurations that would break progression. Published on NexusMods with a GUI built for non-technical players, auto-detecting the local game installation and deploying generated mods directly.
[key features]
Players configure a custom starting loadout — selecting equipment, weapons, weapon mods, suit upgrades, and runes with optional permanent equipping — and generate a ready-to-load mod with one click.
- Three-level dataclass hierarchy with eight concrete types modeling DOOM's full range of inventory categories
- Code generation producing valid
.declmod files from user-configured loadout selections - Validation preventing loadout configurations that would block campaign progression
- Level inheritance chain ensuring generated mods propagate correctly through all campaign levels
- GUI with tabbed category navigation, in-game descriptions as tooltips, and auto-detected Steam installation paths
[implementation details]
Domain Modeling
- Each inventory type implements its own serialization method, translating domain fields — upgrade levels, equipment flags, rune slot overrides — into the game engine's key-value format
- Level inheritance map reproducing DOOM's loadout propagation chain — each level inherits its starting inventory from the previous, so a single generated base definition propagates correctly through the full campaign
Generation & Deployment
- Configuration-to-file pipeline: user selections build an Inventory of module entries, serialized into indexed
.declitems matching the engine'sdevInvLoadoutformat - Automated mod deployment: Steam installation path detection with common-path scanning, mod directory creation, and automatic replacement of previously generated versions

