Giter VIP home page Giter VIP logo

diablo4-build-calc's Introduction

diablo4-build-calculator

A build calculator for Diablo 4.

frequently asked questions

Where does this data come from?

With a few exceptions: It all comes directly from the game; I do the data mining myself.

The tools I use for this are not currently public.

You can use CASCExplorer to extract your own copy of the game assets.

Parsing the proprietary file formats within is an exercise left to the reader.

I recommend examining the .stl files first.

Blizzard uses a relatively simple hash function to reference just about everything, including other files.

uint HashFunctionExample(string input)
{
    input = input.ToLowerInvariant();
    uint hash = 0;
    for (int i = 0; i < input.Length; i++)
        hash = (hash << 5) + hash + input[i];
    return hash;
}

How do I run a copy of this site locally?

Launch any web server with diablo4-build-calc as the root directory:

cd ./diablo4-build-calc/
python3 -m http.server 8000

What are the attack speed multipliers I see listed on some skills?

Each skill has its own unique attack animation. Blizzard occasionally wants certain skills to be faster, or slower. Rather than rework the animation directly they simply multiply how quickly your character executes that specific skill.

I datamine that multiplier as the "attack speed multiplier" you see on certain skills.

One skill having a significantly higher multiplier than another doesn't necessarily mean that skill is faster, just that it was slower than it currently is at some point in the past.

Just as an example, Maul was buffed between build 39858 and 41428 to be 10% faster — that change can be seen here.

Can I give you money for this?

You're free to do whatever you want, I do have a Patreon. I'm not selling you anything though.

I found a bug or want to request a feature, what should I do?

You can open an issue or message me on Discord.

diablo4-build-calc's People

Contributors

lothrik 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  avatar  avatar  avatar  avatar

Watchers

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

diablo4-build-calc's Issues

High CPU w/ Chrome

Noticed CPU spikes to 100% on v.1.0.2.41917 when using Chrome, but is fine using Firefox. Also reproduces incognito/private window on Chrome so it's not some extension or w/e. Chrome tab needs to be active and using build calculator. Delete/close issue if Not Repro on your end.

  1. Launch Task Manager
  2. Launch Chrome > New incognito window
  3. Navi to https://lothrik.github.io/diablo4-build-calc/#N4RgTAXArANALGeBmed4DYZRF2VNQAcWAnBCuiNDOoumulNepugOw0kxsAM3ibJOW5xhbWGzbCSfcFRTgFSSEqFLCwkHBwBjCAGcA9gCcdAU2MWYAIwgA5Q9YDuAFQCCADTfG3dtwBkAIQBZYMMARUCnEAAlNwArTwAPAHNAlIApAAsACTAsgGsASx4ASQBlAE8Y8JyATUCAeQAFAFEk8MrggGkQKAA1ADtPcrcYM3s4AFUnABFPN1TElJSAcSzZgEM3AHU3AC8ClJc-DKOALXipmIAxHayAYXDZ88NAnYy3Wfjn4IKmzarNytcrhVoOfRuTYFAA2SUMbn6KRuhBSY1ak3SXkS7jsgTqszqD30gQAZqUxgAHMCbPjUzY4amERDUkgsmnswgoalsNBMvlgKCwamMGA84WCzDUqAcaXEEXysBsRWERUkRXoLisrVgaw6nQ6gAmOvQmzFYB0ZpF1nNOhtIp05rYjqZLrAJDdmzd1k9hvNmzMtsD9NJ5usoepOgjYEN0bM0dJ0ay0c2KXNpLT1JW5qymZpWXTBepWSLNKK-vi-oKtpdcFpYrrjLrLLgJG5dfbJD5reFdd7hClrcHhFlcENo+VDdVDfVDes8rgOgXhoXZgXbC1rc3m03PCt2n3NIbSH3dYbUH3pobbH3hH3JHv9rrT49M79lLghGDre-AYb6AjT9AM2QCoEzOB0HAthwNRf8izgNh4LYcsPzYSsP0IdDWywzYcOrD9NnlPc6R4EhGT3ci2TFUjuVIvkeGsejxGokhhQYtiWGotgpR4AcWJ46weMNHjJBY2U93E6xxJ0cTxxYoj52opdqL1FSrR4S0lPtDSXT3d8GP0nR9L-Sk9ylKAsm5KAzD5MDbKyWyzGFKBSWclJnOEsVrPMlJzJkry5MpKBFKC5Sgp3LzVPCq0iHtKASDizY4qgF18FS50vMIVKxy8qB3ygMBgygJAirgIq2CKsAIygOBqrYaqwK8yCvOgzLMxqot8E6whOpITq4BQoVBvQQaSEGqB0PiybcK86FcojTCrUIAoltJe1CCKdb4nW0kXVRPasj2oo9tJd9CFJYNUUulIFuTMUeszHqC3rBkYE2RBNhQTY0B0EBZhgHQ4AAWwBsBygB2BAcrX6MgBn6QDGQHEdquH9ABv0dDAfoAbMABfIA
  4. Observe CPU

Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz 3.60 GHz
RTX 3080TI
Windows 10

I have a requirement.

  1. On top of Diablo's enhanced skills, you choose one of the two. But I think it's very inefficient to press the one you've already clicked to release it again and press the other one. I think it's better to automatically release the clicked one when you click the one that's turned off.
  2. In order to add Korean with my lack of skills, I added a drop-down menu to html, found value in the js file, and tried to import Korean translated data.js, but the function I wrote in onchage doesn't work in main.js. Do you happen to know the cause?
//index.html
	<div id="footer">
		...
		<select id="selectLang" onchange="selectedLang()">
			<option value="eng">English</option>
			<option value="kor">Korean</option>
		</select>
	</div>

//main.js
    ...
    function selectedLang() {
        let selectedLang = document.getElementById("selectLang").value;
         console.log(selectedLang);
        //error: Uncaught ReferenceError: selectedLang is not defined at HTMLSelectElement.onchange
    }
    ...

equipIndex answer

Thanks for your job )
Does equipIndex work as intended? Is it total number of used paragon boards?

Localization not complete

Just a hint, you probably already know anyway:
There are still a few things missing in the translation.

  1. the name of the skill on the skilltree is still in english.
  2. the tags are still english
  3. additional texts like the enchantment effect are still in english.

grafik

If you need some of these texts manually, give a reply.
I can do it for german.

Unique Aspect on the wrong class/weapon

Hi, it's me again, I just want to say, I use your website daily and I must be your biggest user haha.

As a Rogue, I noticed that I see the offensive aspect The Grandfather, but when I check on other build website like this one: https://d4planner.io/skilltree/Barbarian/EO:185

That weapon is actually a two-handed sword, which rogues can't equip. So I guess my question is, is there a way to have the weapon type in the tooltip of the aspect so we don't base a build around a specific aspect that the class can't use?

Also, is there any plan to improve the overall visual of the page? I personally set chrome zoom at 50% and on the website I put the zoom level to 2.0 (max). Adding some visual artwork or the tooltip. I love the change on paragon board, we can now rotate and place them, you're the best, thank you for that!

I managed to finish planning my build with your tool, here it is :D !

https://lothrik.github.io/diablo4-build-calc/#N4RgbANCDsUBwQExwFwFYkE4IGYQTRBRwOzAAYIxErpirUSxN7oNpI4M5JMAWeiHL4hOQeT5RyGIZBAg0g8IMQ0QiWOtRrE2EDkr7E6KDhL6MAYwA2AQwDO9gHK2AtgFMUAJwD2AcwBXdwgAIx9bLwATABFbABdbFCcfEIB3ACsAQQANTIAVTKdMgC8AIUyAO2jMr3KQ6MiAUVTU0tSARR8AYQBqAFkASVtMuIAxTIB5VMy+gHVGtABNd0jS6ziAJUyAgGtMiAAHEFtKI9t8I5CLkEtrgDNryxojyOeQdze7z5Iju8kXjBHdyAkB3EGWSAvSHqWBHHCwkB8BFoBFgBGWBEgBBHZCHBTY8AE6AEkIEywEkDYI7QKlY2mYWm2WkhWmWWnkWx4454uCcy58mAhHlCo5gSx46Di0WRPFoYKi+UKO54vh+WVqnEACzxOG1Rz4evkAEs8YgTXDzYjLWhLWBLdBLYh0hLnUc4K7KR7bF6doccO4Nf69Tg7sH3OacN6-SFXThLLHIrH3LHbL6DhzTuRMBcOTnMM8sz8s-8s4Cs5CORXbLCs9iOXXSYcs1TyCym7ym5g+a3u5Zu3AReRLIO4FKh2PbDL0yEp0PZ7Z5SjIWgeIcUbC0Cu12BsSjd2gqWgOWvuQc0Ig+WhI2u+Je0JecCKr1Kr1Pz4v-WvEMqz2gf+eNSvQDVTXNBALAYC9TQMAoOgKC4CgzAoJtbdzQPNDMFde8sNTQ4wBwQEwD4QjNzwsBCLYPCcEhNEaNXA5mBo2waPhPCkTwlE8OrPDcQYnBsSIgStwYnc8OJPDKR4qk0WkuBpOPBjTx3Pk0RFHc1MwNTbDUsUxKlMBbClXlTh4C44GgMy4DM7NDl5MzqFs-DbOgH4uH+Hh3OgdzSIOczATgLhbMwfzbH8kJ-MsCLIQHWFR1ixtfPJWzImxOB3FS9wqTgO4sr8XK+TgI0CvSAqdgKu4RTgPxKqNSr3CMu4jL8IzNSMo0GqnbL5Sq7q-B-BD+s1DUEO1J4AAUIAhSacAAKUmkB7EmvhJCeAAtJbKCeabZnmgA3Sa7gAXyAA

Starting paragon boards seem incomplete

I've been exploring your db data have noticed that the starting paragon boards are missing data. The typical board is 21x21 but the starting is only 15

starting
image

typical board
image

Thanks for Your work

I want to provide this datas to korean Diablo4 user for free.
Thank you very much

Backwards aspect ranges

There are several aspects where it is better to have a lower value. In the game, these show the range as higher first then lower second. Is there a way to also have that in the database export?

'Seismic-shift',
'Blood-bathed',
'Eluding',
'Frostblitz',
'Gravitational',
"Infiltrator's",
'of Piercing Cold',
'Serpentine',
'Tidal',

Paragon board location can't be set adjacent to starting board

Scenario:

After exiting the starting board, I place a board above it at position [2]. From this board I exit to the right to position [3]. If this third board has a bottom exit gate, I cannot position a board below position [3] (aka directly to the right of the starting board) to accurately simulate this visually. It seems the board grid locations might need to be expanded to account for this, unless there's something in-game that prevents this positioning.

Screenshot 2023-05-26 115638

Circular dependency in JSON file

Found a circular dependency in this file: database/build-41428.json
The problem is in the Rogue "Skill Tree" first node with key id "0".
Power name is Rogue_Flurry and you can se here that the connections is linking to the node itself:

...
"Skill Tree": {
			"0": {
				"connections": [
					0,
					114,
					104
				],
				"id": 1,
				"power": {
					"power_name": "Rogue_Flurry",
					...

Rogue Paragon tooltip mistake

Hi, in the Rogue Paragon board under the Deadly Ambush, some nodes looks mixed up with the Damage [TO/FROM] Affected by Traps. The title says "Damage TO Trapped" but the tooltip has the Damage Reduction.

Movement of Paragon Tiles

Clicking the arrows to move the paragon board seems clunky, it gives what looks like array locations? I had to scroll up to figure out what was going on. I thought it had completely deleted the paragon board. Possibly just making it move the array one time in the direction of the arrow clicked of its initial location would be better.
Paragon Board Movement

Database info

Hey! I appreciate what you have done with the D4 calculator. I am trying to take your info and place it into a CSV and have the least amount of manual editing as possible so that I can quickly access the data when patches are released, etc. What is the best way to do that? Or do you have an API that I can use to pull this info? Basically I want the ability to select items from the skill tree and paragon board but from within Excel. I'm a number cruncher but want the app to do the crunching as well then compare the results. Any ideas for this? Really appreciate you either way but thought I would ask.

Values for Glyphs are completely off?

Hello,

I've been comparing online paragon board planners, and for the glyphs I use, the multipliers that the GUI tells you are vastly different than in any other, as well as ingame. For example (using the glyph levels I have at hand):

Control: For every 5 Dexterity purchased within range, you deal +X increased damage to crowd controlled targets.
For Glyph Level 11:
Diablo 4 ingame: +8.9%
d4builds.gg: +8.9%
yours:+13.5%

Destruction: For every 5 Dexterity purchased within range, Core Skills deal +X increased Critical Strike Damage
For Glyph Level 7:
Diablo 4 ingame: +4.4%
d4builds.gg: +4.4%
yours:+6.6%

I've glanced at a few others and across the board, the values in your calculator are far higher than ingame (but strangely all almost exactly 50% higher). How does that discrepancy come to pass? Your readme says you do datamining, are your values outdated or calculated differently than the ingame GUI does it? I'm now stuck using multiple calculators at the same time because no other gives you an equally detailed breakdown of the gained stats as yours.

Search

Need a search to highlight legendaries or nodes.

Something pretty simple for the MVP, like case-insensitive exact match.

Examples:

  • Shadow
  • Corpse
  • Blood
  • Bone

Spiritual Power rare node on "Ancestral Guidance" board incorrect

At the moment the Spiritual Power rare node on the "Ancestral Guidance" provides incorrect or insufficient information.

The tootip says:
"
14% Basic Skill Damage
Bonus: Another 14% Basic Skill Damage if requirements met:
{220+(130 * EquipIndex)} Willpower
{170+(90 * EquipIndex)} Intelligence

Tags: Core, Damage, Basic
"
The node should provide both Basic & Core skill damage. The basic being around 33.5% and the core being 14%. It has the correct bonus interaction, but has the wrong value since it should be an additional 33.5% basic damage. But regardless, it's just missing it's 2nd stat value like all the other rare nodes have.
lothrik

Inspiration

Hey, inspired on your work i created something similar with React

https://github.com/alejodaraio/d4planner

Feel free to use it if you wanna or if someone wanna use it too.

image

image

Admin Mode

image

Adding Skill

image

Edit Skill

image

Link Skill with another Skill

image

Cheers!

Add glpyh neighbor / connection data

This is a feature request to add "connections" data for glyphs similar to how it's done for skills. When clicking on a node, I'd like to easily be able to programatically access and operate on neighboring paragon nodes.

When i open the project on Local Host its blank

image
It shows blank screen when I open on local host. i see you typed its private in description but on top it says its public.
i am new to github. can you please tell me how it works.
Thanks

Question about data

Hi,

great work so far.

I have a question: where did you get the data from? Is it publicly available somewhere or did you put this all together on your own?

Thanks

Chinese translation Issue in the Druid's Codex of Power

Aspect of the Blurred Beast (Legendary)
While dashing, Shred seeks out Nearby Poisoned enemies instantly dealing [60 - 90]% of the Poisoning damage to them

Following is the Chinese Translation
迷踪野兽之 (Legendary)
冲刺时,利爪撕扯会寻找附近中毒的敌人,立即对其造成[60 - 90]%的伤害(作为毒素伤害)。
In the Chinese translation it dealed Shred's [60 - 90]% damage as posion damage,but I think this is a mistake.
I think the right translation would be
冲刺时,利爪撕扯会寻找附近中毒的敌人,立即结算其[60 - 90]%的毒素伤害

And similar problems arise below

Aspect of the Changeling's Debt (Legendary)
Damaging a Poisoned enemy with a Werebear Skill will instantly deal [120 - 150]% of the Poisoning damage and consume the Poisoning.

Right translation would be
变身债偿之 (Legendary)
使用熊人技能对中毒的敌人造成伤害时,立即结算其[120 - 150]%的毒素伤害并消除中毒效果。

Paragon Point Spend Counter

A counter indicating how many paragon points have been spent on a board would be very handy, frequently when optimizing a path I just want to know how many total squares were involved and obviously you can just count them by hand, but a counter would minimize errors and potentially help optimize pathing.

Rogue core skills inherent attack speed multiplier?

I'm pretty sure some of the rogue core skills have different attack speed multipliers. Rapidfire fires much slower than barrage, and also locks you in place until done firing. How did you get the attack speed multiplier for the sorc skills?

Improving stats and usability

Hey, great work on this D4 build calculator, here are a few points of feedback/requests:

  1. On the paragon board stats there is often things such as "+50% non-physical damage" and "+[100-120%] non-physical damage" (Note: applies to all kind of stats here, non-physical is just an example). That makes it hard to figure out the total. I think it'd be better if the bonuses were merged (in this case: +[150-170%] non-physical damage).

  2. It would be nice if the skill tree's passive bonuses were also integrated/merged into the stats window (assuming they're permanent, and not conditioned to using a skill of course). Ex.: Permafrost on sorcerer, Golem mastery on necro, etc..

  3. Same with aspect of items, although I'm assuming that'd be a lot more work.

  4. That one is more tricky: some glyphs giving a bonus on some boards do not seem to affect the magic nodes, probably because the bonus type isn't immediately the same than the element type of the magic node. Ex.: on sorcerer's "Searing Heat" board, the "Elementalist" glyph is supposed to give up to +192% bonus for non-physical damage. The magic nodes within range aren't "+X% non-physical damage" so they aren't affected.. but they are doing "+X% fire damage", which to my understanding should be affected by this glyph's bonus, as fire damage is a part of non-physical damage.. and that means that the total stats window isn't entirely reflecting the build's strength.

  5. Can you increase the height of the glyph and board selection windows ? The glyph one in particular shows only 2 glyphs out of the whole list, forcing you to scroll all the time..

Cheers, and keep the nice work going ! :)

Missing Values

Don't now if we should post this here or if you aready know the issuses:
On some skills there are missing vlaues (#) e.G.:

"Rend": { connections: ["Core", "Enhanced Rend"], description: Fury Cost: {#} Lucky Hit Chance: {#}%...

Paragon Board Labeling

On the starter board for paragon for druid, on the left bottom corner is labeled as Barbarian_Rare_015.
Druid Rare Missing

Summarize selected skills

Hey there, first off, I want to say that your tool is amazing! It's been a huge help for managing my Diablo characters.

I was thinking it would be great if we could add a "Summarize" button to the group sections at the bottom.
This button would essentially go through all the selected skills and display the total points allocated to each skill, along with their descriptions and cooldowns. This would make it much easier to see which skills have good synergy with each other. It would be helpful to also display the cooldowns for each skill.

This would give players a better understanding how they can strategically incorporate them into their gameplay.

Thanks again for your hard work on this tool!

How do I spin this up locally?

Can you explain how to spin this repo up locally? I am confused by the lack of a package.json file. Normally I can use yarn to install all the packages and then use yarn start to spin it up.

What am I missing?

Any plans to improve the UI with the in-game feel and icons?

It's kinda hard for me (and I imagine for others too) to actually understand what a particular node is just from the initials. Having them as icons instead makes you "instantly" recognize them.

Alternatively, this could be a toggle between in-game look and the current look.

Here's an example of too many acronyms:

image

Request: "reset Paragon board" button

At the moment you can reset everything (the entire board + skill tree) but if you want to experiment with multiple Paragon boards, you have to recreate the skill tree from scratch all the time which isn't too practical. There's a button to reset individual boards but it doesn't make them move back to their initial position besides the Start board.

Can't interact with the page

Is it just for me? The only thing i can interact is the Class selection. Can't zoom in/out, spend points

Tried on Chrome and Opera, same thing.

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.