GithubHelp home page GithubHelp logo

tlentz / d2modmaker Goto Github PK

View Code? Open in Web Editor NEW
96.0 96.0 18.0 48.92 MB

A program that lets you mod Diablo II from a config

License: GNU General Public License v3.0

Go 96.97% Shell 0.69% Makefile 0.35% HTML 0.98% SCSS 1.01%
d2 diablo diablo2 mod qol

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

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!

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.

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.

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+

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!

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.

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

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?

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

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.

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

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.

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 )

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.

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

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

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.

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

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

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.

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.

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.

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.

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.

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.

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

Read / Write mpq files

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

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

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.

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

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

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.

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 ?

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.