Generator is inspired by d2modmaker. It provides fast and easy way to create mod without any modding knowledge.
Features included:
- GUI-based desktop application with "one click and go" solution;
- Item randomizer - create new properties for Uniques, Runewords, Sets, Magic/Rare and even gems and runes!
- Monster randomizer - now any zone can have any monster! (balance taken into account);
- Increase monster density and boss pack count to insane numbers;
- Tired of finding High Runes? Bring drop levels to crazy amounts, adjust uniques, Runes and more;
- Ability to adjust monster stats;
- Make you life easier with dozens of quality-of-life features;
See screenshots below to have a look what d2modgen supports - and you can get comprehensive help on each page by clicking help icon.
If you interested in history of changes, changelog is here
- Download zip archive from releases page;
- Extract wherever you want and go inside extracted folder;
- Run modgen.exe in root folder; (see the screenshot);
- Check if "Input folder" is filled correctly; if not, edit it manually to point "Diablo II Resurrected/" folder;
- Select "File" => "Config from preset" => "Basic";
- Press "Generate" button.
Now randomizer mod is created, see next chapter how to set launch for D2R.
- Optional; press "Copy Settings.json" to initialize new mod with your default game settings (music volume, etc);
- Optional; press "Copy all save files" to copy character files to randomizer mod;
- Now you need to setup modded launch of D2R - that can be done either by creating the shortcut or modifying launch option in BNet launcher, choose what is suitable for you:
a) Press "Make shortcut on Desktop", that will make "Diablo II - modname Mod" link on your Desktop;
b) OR copy value from "D2R command arguments" and create shortcut by yourself, pointing to D2R.exe and use this as extra args;
c) OR close Battlenet client, press "Set launch to mod" to setup game launch as modded by default and launch BNet again;
d) OR make it manually, by going "Settings near Play button" - "Game Settings" - "Diablo II Resurrected" - "Additional command line arguments" and paste string from "D2R commandline" - Launch the game and go to offline tab mode. Create a new character and start;
If you done everything correct, new character will have Horadric Cube in the inventory after creation.
Now, go and play around with other settings, click "Generate" and restart D2R again!
Note 1: all you offline character still exist in non-modded save folder.
Note 2: mod does not affect online play in any way, you won't get banned for it.
Note 3: if you want to return to unmodded, press "Reset launch to unmodded" (again, BNet must be closed when you press this button).

There are 4 premade configs to quickly start rando!
Go to Presets readme to learn more about them.

High density setting in Lost City

Random affixes set on gem with Randomizer

That's and Eld rune I always wanted to see!

Nice boots i found in Cold Plains Normal!

Another GG find, Pelta Lunata! Trying to use balanced drops next time...

A lot of features enabled here - more Boss drops, increased Uniques/drop count/Rune drops etc. Almost close to D3 drop count (please, dont go that far!)
- Game (D2 and D2R) stores a lot of properties/balance of game cotent in tables - imagine an Excel spreadsheet or database table inside the game. One way to modify this data - provide a set of txt files (which are CSV - tab-separted). Starting with D2R, that can be done in a very simple way - creating a mod subfolder, so custom mod no not override the main game. d2modgen utilizes this feature.
- Main game data located in "D2R folder", mod in "D2R folder/mod/modname/modname.mpq/"; save files stored in "User folder/Saved Games", mod save files (and games settings) stored in "User folder/Saved Games/mods/modname". You can easily transfer your data between modded and non-modded versions (for example, shared storage).
- To run the game in modded version, you need to provide command-line option, like "-mod rando -txt" will run D2R with mod "rando" enabled.
- You can check "Export all .txt" checkbox, and have you own mod setup instead (mod folder is filled by D2R internal files).
For each tab, just click or hover over question button (?) to get help about features on each page.
Also, as you noticed, support for Dark and Light theme is available - choose what you prefer in Actions -> Theme.
You also can run d2modgen in commandline mode (without UI). bin/modgen_console.exe
will generate output using default application config (in LOCAPAPPDATA).
You can create script/batch file/global hotkey command that runs this executeable, and it will generate and update mod files.
If you want to have new seed on every run, use "Create new seed on every Generate call" checkbox.
- If there is many dead bodies on the screen, some portals won't open (e.g. near Summoner). Workaround - go far away to another location, wait while corpses disappeared and then trigger the portal.
- If charges spawned on a gem/rune, it will constantly update count on gem mouse hover. This glitch is fixes after gem is inserted in socket.
- Game trying to render limited item label on the screen - if there are too many items, you will see only closest ones. Use DropFiltering tab feature.
- You need to completely quit out of the game for Diablo 2 Resurrected, for mod changes to apply. In Diablo 2 legacy, however, you can just reload save again without quitting.
Prerequisites:
- Qt 6.12
- CMake 4.0
- C++20 compiler. Tested: MSVC 2026
If requirements are met, then go "cmake/build/build install". For windows platform, "build install" creates install in binary directory with all runtime dependencies.
- follow clang-format rules in
src/directory; - Generator logic is in
src/CoreLib/Modules/; - Corresponding ui configs are in
qml/Module-Something-.qml
- (MIT) CascLib (https://github.com/ladislav-zezula/CascLib) is used for Blizzard CASC data storage read;
- (Zlib) Zlib library is used internally by CascLib;
- (MIT) StormLib (https://github.com/ladislav-zezula/StormLib) is used for reading MPQ files.
- Qt , https://www.qt.io/, GPL/LGPL/Commercial; components utilized by d2modgen are available under LGPL.
Project source code is licensed under BSL-1.0 license - copyleft, permissive, no attribution is required in binaries.
















