Skip to content

andrewRCr/DOOM-NewGamePlusCustomizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOOM (2016) NewGame+ Customizer

License: GPL-3.0

A desktop modding tool for DOOM (2016) that lets players define custom starting inventories 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.

Credit to @elizabethany for creating the original NewGamePlus mod, which inspired this project.

Praetor Suit upgrades Equipment and Weapons Weapon Mods Runes

Download   |   NexusMods   |   Portfolio

Details

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
  • 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
  • Code generation producing valid .decl mod files from user-configured loadout selections, matching the engine's devInvLoadout 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
  • Validation preventing loadout configurations that would block campaign progression
  • Automated mod deployment: Steam installation path detection with common-path scanning, mod directory creation, and automatic replacement of previously generated versions
  • GUI with tabbed category navigation, in-game descriptions as tooltips, and auto-detected Steam installation paths

Installation & Usage

Requires DOOMModLoader to load generated mods into the game.

For full installation instructions and detailed usage notes, see the NexusMods page.

Technology

  • Language: Python
  • GUI: CustomTkinter, Pillow

License

GPL-3.0

↑ Back to top

About

Python desktop application generating custom DOOM (2016) starting-loadout mods, with a dataclass hierarchy modeling the game's inventory systems and validation enforcing balance constraints.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages