This project is currently not being maintained.
You may want to check out https://github.com/mapron/d2modgen for a more up to date project that works with Diablo II: Resurrected.
The idea behind this project is to play Diablo II the way that you want to play. Every option in the ModConfig
is optional.
This should be compatible with PlugY and other things such as:
- PlugY by Yohann Nicolas.
- MultiRes / BH by SlashDiablo.
The mod config is located in cfg.json
. You can change this config to your liking and run to produce a new data
folder.
- Specifies the directory the source text files are read from
- If this is omitted, or set to "", the built-in 113c data files will be used.
- Specifies the data directory to write files to.
- If omitted it will default to creating the data file tree directly underneath
- the current directory, i.e.
- Enables spawning of jewels that have the added property "Melee Splash"
- If the Generator is enabled it can generate items with this property.
- The Randomizer does not produce items with Melee Splash, so you'll have to use jewels.
- Increases book of tp to 100
- Increases book of id to 100
- Increases arrows maxstack to 511
- Increases bolts maxstack to 511
- Increases key stack sizes to 100
- Will increase the density of all areas by the given multiplier
MIN: 0.0
MAX: 30.0
- Set to
-1
to omit
- Enables all skills in town
- 10x bigger, fewer gold piles
- (Mostly) Disables Flawed & Flawless gems from dropping on higher difficulties.
- Sets "NoDrop" = 0 (Monsters will always drop items)
- Enables quest drops for boss kills always
- Will increase the rate in which uniques/sets drop
- When using this setting, high values will prevent some monsters from dropping set items.
- Act bosses at approximately 10
- Mini bosses at approximately 85
- Other special monsters at approximately 200
- All other monsters at approximately 450
- Set to
-1
to omit
- Valid values are from 1 (vanilla drop rate) - 100 (even chance for all runes)
- Does not change the maximum rune any enemy can drop.
- Scales exponetially:
- Each increase of 1 raises the drop rate of the highest runes by ~5% cumulatively
- E.g. Zod is 12.5x more common at 50 (1/418), and 156x (1/33) more common at 100.
- Characters will start with cube when created
- Enables ability to kill cow king and still make cow portal
- Adds ability to cube 1 town portal scroll to make the cow portal
- Removes level requirements from items. (Oskill level requirements still apply!)
- Removes attribute requirements from items.
- Allows to carry more than 1 unique charm of the same type.
- Will change class only skills to oskills
- All props will have the max value for min/max values
- Adds recipe (item + quiver) to unsocket an item, returning both the item and everything from its sockets.
- Adds recipe health potion + socketable weapon => debugging weapon. General idea is to hand-edit the cubemain.txt file to add
- the property you are trying to debug, create and test it.
- If this is true, this will require the user to press enter to close the program
- If false, it will not prompt user input
- Will randomize if set to true
- Will use provided seed if set, generate random seed every run if not set
- Will use this seed for randomization
- Set to
-1
to generate a random seed
- Removes all full set bonuses because they change on existing items every time d2mm is run
- Allows props only from items within 10 levels of the base item so that you don't get crazy hell stats on normal items, but still get a wide range of randomization
- If this value is false, the same prop type will not be placed on an item twice
- E.g. two instances of all resist will not get stacked on the same randomized item
- Pick prop count on items based on counts from vanilla items
- Picks from items up to 10 levels higher when randomizing
- Enabling this setting will make MinProps and MaxProps unused
- Minimum number of non blank props that spawn on an item
- Set to
-1
to omit
- Maximum number of non blank props that spawn on an item
- Set to
-1
to omit
- Add the ability to spawn + to cold skills, poison skills etc, not just + fire skill.
- Set to turn on the Prop Generator
- Will use provided seed if set, generate random seed every run if not set
- Will use this seed for randomization
- Set to
-1
to generate a random seed
- Removes all full set bonuses because they change every time d2mm is run
- Configures all sets to have more partial set bonuses
- Pick prop count on items based on counts from vanilla items
- Generates up to 4 props more than vanilla if needed to match the vanilla item's score.
- Enabling this setting will make MinProps and MaxProps unused
- Minimum number of non blank props that spawn on an item
- Set to
-1
to omit
- Maximum number of non blank props that spawn on an item
- Set to
-1
to omit
- Number of clone unique items to create. Clones will have
- same name but different generated properties.
- The I Win lever. 1 = vanilla. 2 = 2x the score of the vanilla item.
- Add the ability to spawn + to cold skills, poison skills etc, not just + fire skill.
- Launch d2modmaker binary
- Go to http://localhost:8148
- Press
Load Config
- Change all the things
- Save Config
- Run
NOTE The d2modmaker binary must be in the same directory as the cfg.json
, and both the templates
and react-ui
folders.
NOTE Load Config
will read the cfg.json
in the same directory as the d2modmaker binary into the UI.
NOTE Save Config
will write cfg.json
to the same directory as the d2modmaker binary
NOTE Run
will run the program with the current cfg.json
loaded into the UI. If you want to save the cfg that you just ran, you need to press Save Config
If you'd like to support the project, you can do so by buying me a coffee or donating via paypal!
Donations will help support development in the project whether that is new features or bug fixes.
Anyone who donates, will get recognition in the form of a role in the Discord.
Thanks!
- Added code to safeguard against MinProps < MaxProps
- Preliminary support for different mods. Manual edit of cfg.json only for now.
- Removed UseSetsSeed/SetsSeed options in favor of EnhancedSets.
- Added debug cube recipes: axe + 1 health potion = axe with 1 each light,cold,fire,poison, magic skills. Not added to UI, this allows testing of new props to verify that they are working correctly.
- Added Scorer & Generator modules from the -alpha- branch:
- Scorer reads in Unique, Sets, Setitems & Runes and calculates scores for each item.
- Generator uses the scores from the Scorer to generate new weighted random properties. If it doesn't meet the target score, (the vanilla score * PropScoreMultiplier), the generator will re-roll the item until it does, or warns with error message. The properties the Generator rolls are item code, range, and group restricted based on columns in PropScores.txt.
Significant changes to the Scorer/Generator during the alpha development include:
- Added per-slot-ish probability buckets based on item code and type
- Widened out the allowable range of props rolled in the beginning. Properties rolled by the generator can vary more widely than any vanilla item.
- Added PropScores.txt:ScoreLimit -- Limits the max score rolled for a new affix to % of vanilla item score.
- Added PropScores.txt ScoreMax column and capped max score to itemlevel * (1.2 + 0.1 * (PropScoreMultiplier-1)) but only when PropScoreMult < 4. This prevents low level items from spawning with very high values for props that have low ScoreMax.
- Expanded level and item availability of auras for the Generator
- Fixes to +skills to prevent +5 all & +3 class showing up on same item
- Made +class skill cheaper on class specific items
- Adding BiggerGoldPiles, NoFlawGems and SafeUnsocket.
- Patch to elementalskills always being turned on. This is causing problems with +fireskills coming up negative, and not showing +fireskills text.
- Added elementalskills option in UI in Randomizer section
- Changed AllowDupProps & AllowDuplicateProps to AllowDupeProps
- Fix version # being loaded from cfg.json
- Added ElementalSkills option (+Cold,Lightning,Magic,Poison Skills)
- Fixed version #
- [bugfix] - fixed density overlap in old code, which was squaring density for nightmare, no increase for hell.
- Upped density max to 45 and split between MonStats.txt & Levels.txt so that the density caps are not hit.
- Fixed an issue that caused 1.14 game to crash with Cowzzz option enabled.
- Adds new feature
RemoveLevelRequirements
- Removes level requirements from items (Oskill level requirements still apply!).
- Adds new feature
RemoveAttRequirements
- Removes attribute requirements from items.
- Adds new feature
RemoveUniqCharmLimit
- Allows to carry more than 1 unique charm of the same type.
- Fix for
BalancedPropCount
not applying
- Randomization has been reworked. Old seeds are invalidated.
- Refactors IsBalanced mode
- Now item properties are selected from items up to 10 levels above
- This replaces the 0-30, 31-60, and 61+ buckets
- Fixes bugs with Runeword property parsing and randomizing
- Runeword props were previously always added to the 0-30 bucket, allowing them on all items regardles of runeword levels
- Runewords were previously assigned props only from the 0-30 bucket.
- Runeword properties and randomization are now assigned by the level requirement of their highest rune.
- Adds a new randomization option: BalancedPropCount
- This option enables picking the prop count for items from the counts on vanilla items
- The count is pulled from items up to 10 levels above the item being randomized
- The MinProps and MaxProps settings will be ignored if this is enabled
- Adds a new randomization option: AllowDupeProps
- If this property is false (default), the same property type will not be added to an item twice (e.g. two instances of resist all)
- Prevents two auras from being placed on the same item. This is bugged in the game, and one aura would not work.
- Adds an option to specify the directory to read source Diablo 2 text files from instead of using the built-in 1.13c data.
- Adds an option to specify the output directory.
- NEW USER INTERFACE!
- Adds new feature
MeleeSplash
- Fixed an issue where
MaxProps
was effectively one less than the configured value- This will invalidate most seeds
- If MaxProps was 7 or less, the seed can be preserved by setting it to one less than the previous value
- Added new option to cfg
- RuneDropRate 'float'
- Scales Rune drop rates from vanilla to even chance per rune.
- RuneDropRate 'float'
- Fixed an issue where
MinProps
andMaxProps
weren't working correctly- This may invalidate seeds that were using these options
- Fixed an issue where unique drop rate multipliers less than 10 would actually reduce drop rates
- Fixed an issue where seeding wasn't working correctly
- Fixed an issue where
IncreaseMonsterDensity
couldn't be a value between 0 and 1
- Fixed issue where buckets were incorrect for the
IsBalanced
option. - Added new option to cfg
- EnterToExit
bool
- If this is true, this will require the user to press enter to close the program
- If false, it will not prompt user input
- EnterToExit
- Cowzzz
bool
- Enables ability to kill cow king and still make cow portal
- Adds ability to cube 1 town portal scroll to make the cow portal
- Dead Weight Design - Thanks for creating the logo!
- tlentz, Deadlock39, OldBeardedCoder/EMPY -- Teh Devs
- Amek for being the true moderating god he is and for his awesome tutorials and cat herding.
- iksargodzilla - Thank-you so much for doing 90% of the grunt work for the scoring engine
- macohan, Negative Inspiration, for helping with design and being a huge help with the newbies.
- The many others that reported bugs, proposed enhancements and gave moral support & encouragement.