AusCraft, Diablo IV ALPHA Build v0.2.0

Diablo IV gear comparison, is this drop an upgrade?

Go to Character Planner
Checking for the screenshot reader…
✦ AusCraft Unique Feature ✦ Read your gear from in-game screenshots
How it works, four steps
  1. Snip each item in game with Win+Shift+S, one screenshot per item.
  2. If a tooltip is too tall for your screen, take it in two. Screens differ; drop both halves and they are stitched back together.
  3. Drop them all in at once, drag and drop, or click to browse. Any order.
  4. Don't shrink them. Every shot is read at full detail. Anything it can't place is listed with its lines, never dropped.

Click here, then Ctrl+V
to paste your character
Saved in this browser, gear, item pictures, portrait and name. Set it up once.

Your skills

Damage over time can't crit and can't overpower; a direct hit can. Most builds do both, a Firewall Sorcerer burns with Firewall and crits with Charged Bolts, so each skill is weighed separately and the result is blended by how much of your damage each one does. Share is relative: 60 and 40 means the same as 6 and 4.

Skill
Damage type
Element
Share
% of it DoT

Not sure? Paste the skill's tooltip

The game already says which it is. Firewall's tooltip reads "dealing 145% × [Damage] Burning damage over 3.5 seconds", that's damage over time, stated outright, for whatever patch you're on. Paste a tooltip here (or its text from a build planner) and the type is read off the words rather than remembered. It shows you which words decided it.

Known skills fill in their own type when you pick them. Anything not recognised stays unset and is left out of the total rather than guessed at, Paladin, Warlock and Spiritborn aren't catalogued yet, so set those by hand. If a skill both hits and burns, pick Both and say roughly how much of it is the burn.

How accurate should this be?

Every answer below is only as good as what we know about your build. Pick how much you want to tell us, Simple is five questions, Basic adds four numbers off your character sheet, and Advanced uses the gear, skills and paragon you have already entered. Whatever you pick, we say what we are still guessing at.

What to look for on your next drop

The same roll is not worth the same on every build. What decides it is how much you already have in each bucket, a multiplier you are saturated in buys almost nothing, while an empty bucket pays full price. This is read from your gear above.

All Damage and the seven damage types are separate buckets. The game rolls All Damage Multiplier, and a multiplier for each of Cold, Fire, Holy, Lightning, Physical, Poison and Shadow. All Damage helps every skill you have and typically rolls lower; a damage-type multiplier only pays on the skills that deal it, and pays nothing at all on the ones that do not. So on a build that deals one type, that type's roll usually wins; on a build that deals two or three, All Damage often does. Set each skill's type in Your skills above, and the rows below follow it.

Weighing a drop

Pick the slot it would replace and paste the new item, drag its screenshot in, or type the lines. Your saved gear above stays untouched.

-
Add a candidate item to see whether it's an upgrade
The math character sheet numbers, stat weights, buckets, self-tests
Read this before you type anything. Every number here comes off your character sheet, not off individual items. The sheet already has your paragon board, glyphs, skill tree and gear summed into it, so seeding from the sheet means paragon and skills are already accounted for. Turn on Options → Gameplay → Advanced Tooltip Information first. When a tooltip shows two numbers (Critical Strike Damage, Vulnerable Damage), always take the bottom one. The top one is already inflated by your multipliers and will double-count here.

01 Character, weapon, skill

The base of the chain. Weapon damage and Skill% set the size of the hit; main stat is its own independent multiplier that nothing else dilutes.

Weapon

Skill

Calibrate the class coefficient yourself

Coefficients change between patches, so don't trust any hardcoded number, including mine. Hover your main stat on the character sheet. It says +X% Skill Damage. Type both values here and this gives you the coefficient that is true right now, for your patch.

02 The additive bucket [+]%

One shared pot: Close, Distant, Core Skill, Damage to X, Damage vs X, most tempers, weapon implicits, and the additive half of paragon. This is the only place diminishing returns live. At +2000% in the pot, another +60% Close Damage is worth 2.85%.

Conditional additives

Name
[+]%
Uptime %

A +60% bonus you only meet 25% of the time averages to +15% additive. Set uptime honestly or the tool lies to you.

03 Crit, Vulnerable, Overpower

These are enumerated as real branches, not averaged. [+]Crit Damage sits inside the additive pot but only counts on a crit, and is then multiplied by the crit-only multipliers. That interaction is why "+150% Crit Damage" loses to "+100% unconditional additive" at 40% crit chance.

Overpower leave proc at 0 unless your build is built around it

Overpower is a stacking buff now, not a proc. Lord of Hatred reworked it: each stack grants additive damage, 15% base per stack, and you naturally hold up to 4, each lasting 4 seconds. Gear, glyphs and paragon add more per stack, and a few sources raise the stack cap well past 4. +X% Overpower Damage is no longer a rollable affix.

This works for damage over time too. Unlike crit, Overpower stacks pay out on DoT ticks, so a Firewall build gets the full benefit here even though every crit stat is worth nothing to it. Because so many sources say per stack, this can end up the single largest term on a build; enter what you actually hold, not the theoretical maximum.

Recover your hidden [x] multipliers from the tooltip

The character sheet's Critical Strike Damage and Vulnerable Damage figures bake the additive, the fixed baseline and every [x] multiplier into one number, which is why they look far too big. But that is invertible: give both numbers and this returns the Σ[x]% you actually have, which is what belongs in the multiplier fields above.

Summed multipliers, affixes containing the word "Multiplier"

The word Multiplier in the affix text is the tell. x56% Critical Strike Damage Multiplier sums with others of its kind and then applies once. x56% Critical Strike Damage without that word is a separate global multiplier, that one goes in panel 04.

Baselines are built in and cannot be raised by anything: a crit carries an inherent x50%, a Vulnerable target an inherent x20%.

04 Global multipliers [x]%

Aspects, uniques, paragon rare and legendary nodes, skill mods. Each one multiplies independently, so these never dilute each other. Set the condition to crit or vulnerable to route the multiplier into that branch, then leave its uptime at 100, because the branch already handles how often it fires. other is uptime-averaged.

Name
[x]%
Condition
Uptime %

Attack speed

Two separate caps of 100% each. They add, they do not multiply. Anything past a cap is thrown away. ApS = WeaponApS × (100% + min(Cap1,100%) + min(Cap2,100%))

05 Where your damage comes from

-
Average damage per hit
-
Average damage per second
-
Attacks per second

The bar shows how much damage you would lose if that link vanished entirely. A long bar means that link is carrying you. A short bar means the next point you spend there is nearly wasted.

Rolls carry roughly 80–120% weapon variance compounded with 90–110% skill variance, so a single hit swings from about 72% to 132% of this. The number above is the average, which is the only thing worth comparing gear on.

06 What one more point is worth, right now

Marginal gain at your current totals, this is the entire point of the tool. The same +60% Close Damage is a 60% gain on a fresh character and a 2.85% gain at +2000% additive.

StatPer pointPer typical roll

Attack-speed weight here is the naive continuous value. Real DPS only moves when you cross an animation breakpoint. Check your skill's breakpoint table before you buy attack speed, between two breakpoints it is worth exactly zero.

Equivalence

07 Gear comparison

List only the affixes that differ. A is what you are wearing, B is the drop. Values are deltas on top of the character above, so if the new ring loses the old ring's 40% crit damage, that 40% goes on side A.

A, currently equipped

B, the drop

-
B versus A, change in average DPS
SideAffixValueWorth on its own

Attack-speed breakpoint override

If the swap changes attack speed, continuous ApS lies to you, DPS only moves at animation breakpoints. Look up the frame counts for your skill before and after, and the comparison will use framesA ÷ framesB instead.

08 The formula this implements

Damage = AvgWeaponDamage
       × Skill%
       × (1 + MainStat / ClassCoefficient)
       × E[ (1 + Σ[+]additive + branch additives) × branch multipliers ]
       × Π(1 + each [x] global multiplier × its uptime)
       × (1 + Σ summed multipliers in the active category)
       × (1 − EnemyDamageReduction)

DPS    = Damage × WeaponApS × (1 + min(Cap1,100%) + min(Cap2,100%))

E[...] enumerates all 8 combinations of crit / vulnerable / overpower
       rather than averaging them, because [+]Crit Damage lives inside
       the additive pot but only pays out on a crit.

crit branch       : p = crit chance,      +[+]CSD,  × 1.5 × (1+ΣCSD mult) × Π(crit globals)
vulnerable branch : p = vulnerable uptime,+[+]Vuln, × 1.2 × (1+ΣVuln mult) × Π(vuln globals)
overpower branch  : p = overpower chance, +[+]OP,   × (1 + 0.5 × currentLife/maxLife)

Flat-damage effects (X'Fal's, Thorns) replace AvgWeaponDamage × Skill% with their flat number. Model those by setting Skill% to 100 and both weapon min and max to the flat value. Main stat still applies to them.

09 Self-test, checks that either pass or fail

These are Maxroll's published worked examples, run as real assertions against the same compute() the rest of this page uses. They run automatically every time you open the file. If a change to the math ever breaks one, a red banner appears at the top of the page, you don't have to remember to check. Each test builds its own character from scratch, so running them never reads or changes the numbers you typed above.

not run
CheckExpectedGotResult
What to do when one goes red. The number under Got is what the code now produces; Expected is what the published source says it must produce. Either the last change to compute() was wrong, or the game changed and the source needs re-reading, in that order of likelihood. Don't edit the expected value to make the light go green.