Code Monkey home page Code Monkey logo

d2modmaker's Introduction

Github All Releases release Hits

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.

D2 Mod Maker

The idea behind this project is to play Diablo II the way that you want to play. Every option in the ModConfig is optional.

v0.5.0_ux

Links

PlugY and Things

This should be compatible with PlugY and other things such as:

Options

The mod config is located in cfg.json. You can change this config to your liking and run to produce a new data folder.

General Options

SourceDir string

  • 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.

OutputDir string

  • 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.

MeleeSplash bool

  • 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.

IncreaseStackSizes bool

  • 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

IncreaseMonsterDensity float

  • Will increase the density of all areas by the given multiplier
  • MIN: 0.0
  • MAX: 30.0
  • Set to -1 to omit

EnableTownSkills bool

  • Enables all skills in town

BiggerGoldPiles bool

  • 10x bigger, fewer gold piles

NoFlawGems bool

  • (Mostly) Disables Flawed & Flawless gems from dropping on higher difficulties.

NoDropZero bool

  • Sets "NoDrop" = 0 (Monsters will always drop items)

QuestDrops bool

  • Enables quest drops for boss kills always

UniqueItemDropRate float

  • 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

RuneDropRate float

  • 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.

StartWithCube bool

  • Characters will start with cube when created

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

RemoveLevelRequirements bool

  • Removes level requirements from items. (Oskill level requirements still apply!)

RemoveAttRequirements bool

  • Removes attribute requirements from items.

RemoveUniqCharmLimit bool

  • Allows to carry more than 1 unique charm of the same type.

UseOSkills bool

  • Will change class only skills to oskills

PerfectProps bool

  • All props will have the max value for min/max values

SafeUnsocket bool

  • Adds recipe (item + quiver) to unsocket an item, returning both the item and everything from its sockets.

PropDebug bool

  • 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.

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

RandomOptions RandomOptions

Randomize bool

  • Will randomize if set to true

UseSeed bool

  • Will use provided seed if set, generate random seed every run if not set

Seed int

  • Will use this seed for randomization
  • Set to -1 to generate a random seed

EnhancedSets bool

  • Removes all full set bonuses because they change on existing items every time d2mm is run

IsBalanced bool

  • 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

AllowDupeProps bool

  • 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

BalancedPropCount bool

  • 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

MinProps int

  • Minimum number of non blank props that spawn on an item
  • Set to -1 to omit

MaxProps int

  • Maximum number of non blank props that spawn on an item
  • Set to -1 to omit

ElementalSkills bool

  • Add the ability to spawn + to cold skills, poison skills etc, not just + fire skill.

GeneratorOptions GeneratorOptions

Generate bool

  • Set to turn on the Prop Generator

UseSeed bool

  • Will use provided seed if set, generate random seed every run if not set

Seed int

  • Will use this seed for randomization
  • Set to -1 to generate a random seed

EnhancedSets bool

  • Removes all full set bonuses because they change every time d2mm is run
  • Configures all sets to have more partial set bonuses

BalancedPropCount bool

  • 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

MinProps int

  • Minimum number of non blank props that spawn on an item
  • Set to -1 to omit

MaxProps int

  • Maximum number of non blank props that spawn on an item
  • Set to -1 to omit

NumClones int

  • Number of clone unique items to create. Clones will have
  • same name but different generated properties.

PropScoreMultipler int

  • The I Win lever. 1 = vanilla. 2 = 2x the score of the vanilla item.

ElementalSkills bool

  • Add the ability to spawn + to cold skills, poison skills etc, not just + fire skill.

Screenshots

Nagel

Nagel

Raven Claw

Raven Claw

Venom Ward

Venom Ward

Angelic Halo

Angelic Halo

Wall of Eyeless

Wall of Eyeless

MonsterDensity: 30

MonsterDensity: 30

Melee Splash

Melee Splash

How to use UI

  1. Launch d2modmaker binary
  2. Go to http://localhost:8148
  3. Press Load Config
  4. Change all the things
  5. Save Config
  6. 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

Support

Buy Me A Coffee Donate

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!

Change Log

v0.6.1

  • Added code to safeguard against MinProps < MaxProps

v0.6.0

  • 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

v0.5.4

  • 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)

v0.5.3

  • Fixed version #

v0.5.2

  • [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.

v0.5.1

  • 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

v0.5.0

  • 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! v0.5.0_ux

v0.4.0

  • Adds new feature MeleeSplash
    • This enables Splash Damage as an affix on jewels.
    • Can spawn on any magic or rare jewel.
    • Melee Splash

v0.3.4

  • 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

v0.3.3

  • Added new option to cfg
    • RuneDropRate 'float'
      • Scales Rune drop rates from vanilla to even chance per rune.

v0.3.2

  • Fixed an issue where MinProps and MaxProps weren't working correctly
    • This may invalidate seeds that were using these options

v0.3.1

  • Fixed an issue where unique drop rate multipliers less than 10 would actually reduce drop rates

v0.3.0

  • Fixed an issue where seeding wasn't working correctly
  • Fixed an issue where IncreaseMonsterDensity couldn't be a value between 0 and 1

v0.2.0

  • 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

v0.1.6

  • 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

Credits

  • 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.

d2modmaker's People

Contributors

cvermilion avatar deadlock39 avatar oldbeardedcoder avatar tlentz avatar wraithulek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

d2modmaker's Issues

Recognized as virus

Download is detected as trojan by a few major antivirus engines. I would suggest to clarify it with the respective vendors if this is a false positive.

image

Increased inventory and cube size

Plugy will take care of the stash but we can increase the inv and cube size, will research which dc6 images we have to add into the data folder and where, along with the location for the x and y values for inv and cube.

Add rune drop chance control

Add a control knob that affects rune drop chances.

Minimum setting is vanilla drop rates
Maximum setting is equal drop chance for every rune any time a rune TC is selected.
Use logarithmic scaling instead of linear to give more intuitive results.

Example:
When TC 17 is selected Zod drops at a 0.02% chance.
At them maximum, it will drop at a 3% (1/33) chance
At half of the maximum setting it should drop at a 0.25% chance (0.02/0.25 = 0.25/3) instead of a 1.51% chance

This is done using log scaling.
Instead of:
chance = minChance + (maxChance - minChance) * scaleFactor
Use:
chance = Pow( 2, Log2(minChance) + (Log2(maxChance) - Log2(minChance) ) * scaleFactor )

Runeword systems

Possible Runeword systems:

  • Magic Sentence: implemented according to a formula, sort of like how sentences are constructed (Noun Verb Noun, Adjective Noun Verb Noun, etc). Depending on how complex we want to go, each runeword could be assigned a modifier depending on where it is in the sentence, or we could specify that each runeword could only go in a particular place in a sentence. Each rune would have a property based on where it was in the runeword, similar to how gems have different properties based on which piece of armor they are on. The property could also be dependent on the item type

Set bonuses

Set bonuses are recalculated often, and when this happens if the property is a range, the value in the range is recalculated. Change to not roll ranges for partial or full set bonuses.

Play with vanilla item stats

I suggest a feature with either of these possibilities:

  1. Vanilla stats but x amount(pick by player) of random stats are changed by randomization.
  2. Vanilla stats but x amount(pick by player) of stats are added of top of the item.

I believe this will make for a fun and interesting tweak. I would personally do a full holy grail on this.

Shako used as example from 1. (2 stats chosen by the user)
+2 To All Skills
+1-148 To Life (+1.5 Per Character Level) -> rolled to +17 Dexterity from Raven Frost
+1-148 To Mana (+1.5 Per Character Level)
Damage Reduced By 10%
50% Better Chance of Getting Magic Items
+2 To All Attributes -> rolled to +Regenerate Mana 20% from Manald ring

Shako used as example from 2. (1 stat chosen by the user)
+2 To All Skills
+1-148 To Life (+1.5 Per Character Level)
+1-148 To Mana (+1.5 Per Character Level)
Damage Reduced By 10%
50% Better Chance of Getting Magic Items
+2 To All Attributes
+1 To All Skills from Stone of Jordan for a total of +3 all skills on the item.

Features Request

Some suggestions I think would be cool :)

  1. Would be awesome if you could add some way to re-roll properties for a specific item (maybe even creating a new Seed from the change). Maybe a cube recipe?

  2. Having "Replenishes Quantity" on items that have no quantity/ +bow skills on a shields etc', maybe add some restrictions to which item can get which properties?
    feelsgoodman

  3. Another cool option would be to add category filters for properties. For instance: if I don't want "charges" properties I tick that off and no items can get "15 charges of teleport"/"30 charges of dim vision" etc'.

  4. Ability of adding a priority to properties. For instance: If I like to play melee chars, prioritize properties that would aid them, so if an item gets FCR it would try to re-roll that to something more helpful towards melee (Can assign properties as beneficial to certain dmg types like melee/ranged/magic/cold etc'. Then if I choose melee+cold as a priority it would prioritize properties categorized as these types).

  5. Ability of adding a priority to characters. If an item scores +x to druid skills and I choose Necro+Sorc as a priority, it would try to re-roll that property to something that benefits those characters more. (Can mark properties as beneficial to each class, so AR would have Amazon/Barb/Pala/Druid as its benefiters).

  6. An ability to view the item rolls you got (maybe generate an items file that can be viewed by the user) so we can decide if we like this seed, or if we want to re-roll before we start playing.

I could go on, but I think I already overdid it XD ty, and sorry.

Game crashes with Cowzzz option enabled on 1.14b and 1.14d

Hi,

I don't know if the mod is supposed to work on 1.14, but me and two others tried it on 1.14b and 1.14d and can confirm the mod works, as long as Cowzzz isn't enabled.

If Cowzzz is enabled, the game crashes on character creation. On 1.14b, the error is:
image

Thank you so much for your work!

Melee Splash

Options

  • Magic prop on jewels
  • Magic prop on charms
  • Add to randomized props
  • Add as prefix to all weapons - Automagic.txt?

Research

  • How do we get it in the game?
  • What are all the files that are changed foreach option

Remove Level Requirement Issue

I'm not able to get the Remove Level Requirement feature to work. Does anyone know if it works or not? I'm getting uniques in the first map of Act 1 that are lvl 36+

Will have to prioritize the order of code.

Example, melee splash will add another row to the missiles.txt, the allow skills in town function is going to edit a column. If allow skills in town is done before adding melee splash it will make it so melee splash does not work in town.

Let me know if you need me to explain better.

Properly changing and tuning my choices (cfg)?

Hi.
What happens if I want to change my settings? Can I just re-run the app? I could not find any info.
Every time I do it, I save the config.
Next time I open modmaker, I firstly load the old config, but it dit not persevere many settings, like MonsterDensity and DropRates.

Can sombody explain a correct "Mod -> Apply -> Play -> Change -> Apply" Cylce ?

d2modmaker-windows-amd64.exe stops responding to UI button clicks.

My current flow has been to check/uncheck the Use Seed button to generate a new seed, Save, and then Run before starting a new game of Diablo 2.

I've noticed that, after running a few of these cycles, the d2modmaker-windows-amd64.exe running in the console stops responding to button clicks in the UI. I've also noticed that, when clicking the Run button, the Success message defined in makeRunRequest in Main.js doesn't fire, but the almost identical saveConfig function does. The only difference between the two appears to be that the former is an async function, but I'm not sure why this would prevent the callback from firing. The post seems to work, as the console indicates that the call was logged, but the response in .then is never handled.

To resolve this, I am required to close the console app and the browser, and restart. Also, anecdotally, it looks like this happens after 5 or 6 iterations, at which point the console app needs to be restarted.

EDIT: it appears to be after exactly 6 iterations that the web server no longer responds.

Improving Monster Density

Since a lot of people seem to enjoy the density, though it might be nice to give some advice on improving it/allowing greater density:

  1. MonDen in levels is cap at 10000 (10% chance to spawn a pack per 3x3 subtiles), this means you can't actually really cap out density. However if you increase the MinGrp/MaxGrp fields in monstats you can bypass this without a code edit (though you need to just avoid this for PrimeEvils, NPCs or special bosses -- all of these can be skipped by checking the relevant flags in monstats).

  2. MonUMin/MonUMax caps at 255, so you might want to check for this to avoid rollovers.

improved documentation for players

Specifically, I am noticing that the difference between the Generator and Randomizer modes is not detailed anywhere in the 0.5.2 alpha's ui.

The tooltips could generally be a little more verbose, extend the sentence fragments, and the language should always assume that the user might not know which related options and game objects a checkbox or slider interacts with. Names of concepts within the context of the project should be emphasized in some way, like by capitalizing them.

Finally, while there is a wiki button on the repo, there is no wiki!

The details provided in the readme should be links to other resources, like the wiki and the releases page, as well as some developer intro comments and a welcome message.
Generally, the wiki should take over documenting what the program does and how to use it, and the readme should state what the project is.

By removing the pressure on the readme (which is effectively tied to the state of code in the current master branch) you will have to do less work to maintain that front page, and you can open up editing privileges on the wiki so that the community can contribute. You can also have a "Features In Development" area of documentation that is subject to change or complete removal, and request user feedback by making submitting issues with a particular tag so that you know they come from potentially non-developers.

CubeMain.txt Enhancements

Options

  • Remove gems from rune recipes
  • Reduce num runes/gems to 2
  • Remove wirts leg from cow portal
  • Remove TP from hel rune
  • Reduce reroll magic pgems from 3 -> 1
  • Remove khalim organs from cube recipe
  • any hp -> full juv
  • 2 mag rin/amu -> rare rin/amu
  • Stamina Pot -> Token of Absolutio
  • Remove gem from repair recipes

Help Wanted: ModMaker Worked Once, Then Not Again?

Hi All,

I'm new here, and excited to be a part of this community!
I got the ModMaker set up, and started playing around with settings. All seemed good, and the monster density/start cube were my first tests. They went great!

I then closed out and was heading into change the item randomization, when I received a popup from Blizzard, asking if the program was working as intended. I feel like this is where I screwed up, since after hitting Yes, ModMaker no longer works for me.

Is there a setting or something I can configure to get the ModMaker to work again?

Thank you in advance,
DireBatman

Infinite Throwables, excluding potions.

In automagic.txt add a new line
Name: INFINITE_AMMO
Version: 100
Spawnable, rare, level, frequency: 1
Group: 600
mod1code: throw
mod1min and mod1max:1
itype1: weap
divide, multiply, add: 0

In weapons.txt on lines 44-52,137-145,241-249,297, and 307
Need to change Stackable,minstack,maxstack, and spawnstack to 0
Need to add/change the auto prefix to 600
Need to Change qntwarning to 0

This would rewrite some of the auto prefix's of items to unlimited throws.

Please improve installation doc - unusable

I tried to follow the installation guide and found several unanswerable questions. As I won't use software I can't believe I've reliably setup, I can't use your app even if I think it's the coolest thing ever (it does look super neat). Here are the issues I ran into.

I have D2 from current Battle.net, not from a torrent site or from old installation disks. This auto installs as 1.14b and is already compatible with Windows 10 without messing with compatibility settings. Can I even use this app? I saw on a patch note that a bug was fixed for 1.14. Ok, that implies I can but it's a guess at this point as everything else refers to 1.13.

The instructions say to unzip to C:\D2. This isn't my install path but the rest of the guide sort of implies it is. I don't have a good mental model even for the file layout. If it's not supposed to be the same as the game installation directory, there are zero instructions on what to do after you've ran the mod maker.

I use PlugY, again out of the box. The installation guide seems to imply I'm using some set of custom command line args to get it work. I don't. So why does the guide specify an example? Are there some args I'm supposed to set? Does this not work if I don't? Again, another guess. If this is included for compatibility, it's not for compatibility to modern versions and is only confusing as presented.

I unzip to C:\D2, run the windows amd64 executable, and the react UI pops up. According to the guide since I'm on 1.14 and can't use the QoL settings. Well, the very first line on the react UI is Quality of Life. I'm back to questioning if I can even use this as it's not clear. Why aren't things separated to note what's reliable versus what works for older version? Even looking for the BaseMod download path has 113c in the file name. I'm assuming I can't even use that. OK...

As is, this app sounds like it was made during that time where even just a few years ago getting D2 working on modern systems was a chore or required using D2 in nonstandard ways compared to other software you'd install. That's not true anymore. As I said in my opening, going through the guide and trying to get something configured with it just doesn't work. It has assumptions that are no longer valid.

If I can't use it for 1.14 at all, please make that clear. If only parts aren't usable please make them more obvious. The basic functions aren't really even explained. After I click "run" what am I supposed to do then? How do I diagnose and debug issues?

I'm writing this only because there seems to be a level of care here so I'm trying to engage with it as a robust app and found it's not quite there. Cheers.

PerfectProps

Hi man/team,
Really enjoying this mod!

I have a question/suggestion:
Could you also make the "PerfectProps" available outside of the Randomizer?
As a single player it would be nice to only have to find rare items/make expensive runewords only once with PerfectProps
because of no trading(For people wanting to play without the randomizer).
Or if you know a good existing mod for doing this, add it too the howto to use alongside modmaker.

Happy with any response and continue the good work!

Randomizer produces junk lines in UniqueItems.txt

(I see that a rework is planned before v1.0, so apologies if this is already planned to be fixed by that rework. I thought it best to report it just in case.)

Some lines in UniqueItems.txt are actually just section headings, e.g.
search for 'Expansion' or 'Class Specific', where the only filled-in data fields are the 'index' and the 'eol' column.

Running the v0.5.0 randomizer erroneously fills in the prop columns on these rows too. It doesn't seem to confuse the game itself, but it could lead to some properties being (effectively) removed from the game when running with the Balanced option.

(I suspect, but haven't confirmed that the same happens to items which are disabled, e.g. the 'enabled' column = 0, see e.g. Constricting Ring.)

Remove Annoyances

Options

  • remove small rejuvs from game
    • actually removes full juvs
    • game only drops juvs
    • juvs give 100%
    • swap image
    • copy over cols?
  • Only drop sup white items
  • Remove garbage from drop tables
    • cracked, low quality etc
    • gold, able to remove gold drops or limit how little drops?
  • Increase qty of javs, throwing pots, arrows, etc
  • Remove durability from items?
  • Change spawn location for acts
  • Give act 3 guy keys?
  • make all chars not need keys
  • ShrineThings
    • increase duration
    • do not get overridden by curses
    • stacking?

"invalid argument to Intn" when running the Generator

This issue is caused by setting MinProps > MaxProps.
This is further exacerbated by the UI not properly setting the MinProps/MaxProps in the cfg.json from the slider.
The work-around is to turn on/off BalancedPropCount, then change min/maxprops, Save and verify the change makes it to the cfg.json, or just edit the cfg.json manually.

Desktop GUI

Want to create a desktop gui that is linked to the cfg.json directly so that it is easier to visually see/change settings.

Wants

  • Be able to edit all values in cfg.json through gui
  • re-randomize seed button
  • run button

Modding system tweak - Remove lines

In 0.6.0 The modding system does not allow the modder to remove specific rows in a file if there are multiple rows where column 0 matches. This means that you cannot alter any except the first Rainbow Facet for example. It also doesn't allow the modder to just remove a line. I propose changing the format of the modding files to handle a [-] special prefix to the first column in any file to indicate that this exact row must be removed, and if the row doesn't have [-] then that row is to be added. This should solve both issues nicely.

Read / Write mpq files

It would be nice to read / write a patch_d2.mpq file rather than reading/writing a data folder.

v1.0

Requirements for v1.0

  • Melee Splash on Jewels #7
  • Final Rework of Randomization
  • Desktop GUI
  • QOL
    • #9
    • Everything plugy covers like ladder runewords etc
    • #8

Scorer/Generator

Implement a Scorer/Generator pair that will create items that have the same feel and power as the source items. This is accomplished by scoring each item using PropScores.txt, which defines the score ranges for all of the base properties. These scores are then targeted by the Generator when choosing new properties for the items, such that the final score will approximately match the source item.

Failed to extract

Don't know if this is just an issue on my end, but, I cannot extract this file no matter how I try. It just fails continually. Tried different extraction apps, different locations, different permissions, with and without antivirus. I don't know if I'm just missing something simple but usually it isn't this difficult for me to extract a file to a location.

troubles with shortcut setup

Hello, i was very interested in the mod and tried to create a seperate folder with diablo 2 v 1.14, plugy, and the new mod aswell
i was able to set up the glide
the properties went well,
but when i get to the shortcut adding -w -3dfx -direct -txt
i receive an error issue on the pathing. would love to receive help on setting this mod up

Don't randomize Khalim's flail

Randomizing Khalim's flail may lead to very high level requirements (esp. if OSkills are enabled) such as CLVL 36 to equip[0]... which effectively makes the quest uncompletable in Normal.

The easiest fix I can think of is to just completely exclude the two versions of the flail from randomization. (I guess the pre-cube one could be allowed, but it just seems a bit weird if the post-cube one is 'regular'.)

An example would be rolling Whirlwind as an OSkill (from the ASN claw) and the player character not being a barb.

Too many drops?

I really enjoy running 45x density, but I'm running into the issue of having so many drops (already using a dropfilter, but that's not working the way I would expect it to be..), I cannot see the good drops anymore once I killed a big hoard. Is there any way to just disable magical and normal items from dropping? As well as things like explosive potions etc

I've considered editing the itemratio, but I am not sure I understood the file correctly

SafeUnsocket conflicts with vanilla runeword

Someone reported that there is an existing runeword:
1 Spear + 1 Quiver of Arrows --> 1 Stack of Javelins (non-magical, random quantity)
that conflicts with the SafeUnsocket runeword (item + 1 quiver)
Need to update recipe to disambiguate.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.