Last EpochEpoch DPS

Alpha

Paste a lastepochtools.com build-planner link and get an estimated per-skill DPS breakdown.

What is Epoch DPS?

Epoch DPS is a free, per-skill damage calculator for Last Epoch. Paste a lastepochtools planner link and it breaks the build down skill by skill, showing what each one does against a target rather than a single sheet number.

Sheet DPS is the naive hit-times-attack-speed-times-crit figure. Effective DPS accounts for what actually lands over time: ailment stacks, damage-over-time, minions, transforms, echoes, hit chance, and the target's defences. For most builds the two are a long way apart, and the gap is usually where the build lives.

This is an alpha. The numbers are estimates meant for comparing builds and finding what scales, not exact in-game readouts. Expect rough edges, and check the assumptions panel for anything the engine hasn't modelled yet.

How it works

  1. Paste a planner link

    Drop in a lastepochtools planner link (or just the code). Epoch DPS pulls the build straight from lastepochtools' public planner API.

  2. Read the per-skill breakdown

    Every skill, sub-skill, and ailment gets its own effective DPS and a full stat breakdown, so you can see exactly what carries the build.

  3. Tune and share

    Adjust the assumptions — target, ailment stacks, roll mode, conditional buffs — then share the /b/ link so anyone can open the same result.

FAQ

How accurate are the numbers?

It's an alpha. The engine aims to land within a few percent of what lastepochtools' own offence tab reports for global stats, but per-skill effective DPS is a model, not a measurement. Treat every figure as an estimate for comparing builds and finding what scales — not a guaranteed in-game readout.

Why are my numbers higher than lastepochtools?

By default Epoch DPS rolls every affix and implicit to its maximum — the build ceiling — so it usually sits above lastepochtools, which shows the average of each roll range for planner builds. Switch the roll mode to Average to compare like for like.

What does it actually model?

Direct skills, sub-skills (cast-on-hit and procs), ailments and damage-over-time, minions and their own skills, player transforms such as Werebear and Swarmblade, and echo repeats. Scaling from stats, tags, tree nodes, idols, affixes, uniques, and conditional buffs is folded into each skill's breakdown. Some mechanics still aren't modelled — those are flagged in the assumptions panel.

How does sharing work?

Every analysed build gets a stable link at /b/<code>, where the code is the lastepochtools planner code. Send that link and whoever opens it sees the same per-skill breakdown. No account needed.

Is it free?

Yes — free, no ads, no account, no paywall. It's a community tool built by a Last Epoch player for other players.

Is this affiliated with Last Epoch or lastepochtools?

No. Epoch DPS is an independent, unofficial tool. It is not affiliated with, endorsed by, or connected to Eleventh Hour Games (the makers of Last Epoch) or lastepochtools.com. Build data is fetched from lastepochtools' public planner API; all trademarks belong to their respective owners.

Changelog
September 3, 2026
  • share pages can no longer be rewritten by someone else entering your build code
  • the feedback form now refuses to run without its bot check in production
  • analyze errors now show a short reference code instead of internal engine details
  • fixed damage-over-time auras (Fire Aura, Maelstrom) counting critical strikes they can't roll
  • the notes behind this changelog are now assembled from one file per change instead of everyone writing into the same one. Nothing about your builds moves — it just stops entries from colliding and getting mangled when several changes land at once.
  • your mastery's own bonuses now come from the game's data instead of a hand-typed list, and several of them were wrong. Falconer had NOTHING recorded at all — it actually grants +12 Dexterity and +1 Falcon melee damage per 4 Dexterity, which is worth up to 80% on a Falcon build. Spellblade passes 40% of the melee damage added by your weapons into your spells, which the old list described as something about ward and so counted as nothing; adding it brings a Fire Aura Spellblade we measured in game from 24% under to under 5% under. Sorcerer's mana-cost bonus is a capped multiplier (1% more per 2 mana, up to 50%), not the uncapped one we had. Beastmaster's +1 companion is real rather than already baked in, so companion armies are one bigger. Warlock's per-curse bonus is 4%, not 5%. Void Knight's melee void bonus scales with Vitality and is not a flat 75%, so that line is no longer invented — it is listed in the assumptions panel until the real version is modelled, as is Paladin's health-based multiplier
  • the same affix is now worth what the item it's on makes it worth. Last Epoch scales every crafted affix by the kind of item carrying it — a two-handed weapon rolls dramatically bigger numbers than a ring, a body armour bigger than a helmet, and idols scale by their size — and the tool was reading one flat number per tier for all of them. The game's own character sheet settles it: on a corpus build wearing two one-handed swords, two 'Pyromancer's' T5 affixes that the tier table caps at 60% each measure 210% increased fire damage together, which is exactly 60 x 1.75 apiece, and 1.75 is what a one-handed weapon does to an affix. The same rule closes a mana question that had been open for weeks — four identical T7 '+Mana' affixes on a relic, a chest, gloves and an amulet measure 560 added mana between them, not the 4 x 120 the table says, because per slot they are worth 120, 180, 120 and 140. Values, ranges and the min/max roll toggle now all read from Last Epoch's own affix tables rather than a second-hand export, so 58 affix ranges where the two disagreed move to the game's numbers too. Every build in the corpus moves. Two-handed builds move most — an Earthquake build doubles and a Static Orb build gains 55% — while most builds land between 5% and 30% higher; four go down. Measured against the game's own character sheet across 66 captured builds, the tool now reproduces 964 stat buckets exactly where it reproduced 850, and its max-mana reading lands within 5% on 54 of them where it managed 38.
  • unique items now read their mods straight from the game's own data. Until now every unique's stat lines came from a text file copied out of another tool; the tool re-reads them from the game's structured records instead — each mod's property, tags and roll range as numbers, rendered into the same wording you see in-game. Almost everything is unchanged (2,271 of 2,323 lines came out identical), but a handful of things the old text got wrong are fixed: Doom's penetration is necrotic and Torment's is void, not the other way round; a few max rolls were being rounded down a point; and Paranoia's cooldown penalty on Lunge was written in a format the tool could not read at all, so it was silently ignored — it counts now. Items also gained the behaviour lines the old text left out entirely, like Volcanus casting Magma Shards on melee hit. Two items, Undisputed and Lament of the Lost Refuge, carry a line in the old text that the game's current data does not have.
  • a passive that only pays off at five points no longer pays off at one. Lots of nodes in the class trees hand you something extra once you've put enough points in — Missile Mastery's "+50% Armor Shred Effect" at 5 of its 10, Flow's "100% More Damage When Consuming Flow" at 3 of its 5, Incinerating Aura's fire-resistance multiplier at 5 of its 8 — and the tool was handing that bonus over from the very first point. It waits for the real point count now, exactly as the game's own data states it, on all 253 nodes that work this way. The ordinary per-point lines are unaffected; only the threshold bonus waits. Thirty-four builds in the corpus drop, every one of them because it was being given something the game withholds: most lose under 1%, but a Falconer two points into Flow loses 47% and a Firebrand Mage three points into Incinerating Aura loses 22%. Anything you did allocate far enough is untouched, and every skipped bonus is now listed by name in the assumptions ledger with the points you have and the points it needs.
  • fixed Yulia's Path. The game's own text for it carries a broken character where an apostrophe should be, and the tool could not tell which skill the item's conversion was talking about — so it converted your whole build's damage to necrotic instead of just Maelstrom's. Anyone wearing the boots was seeing the wrong damage type, and the wrong number, on every skill they had.
  • the tool no longer reads Path of Building data anywhere in how it identifies your gear. Every item and affix in a build link is now matched against Last Epoch's own data as lastepochtools publishes it, which is the only source this tool is meant to trust. The identities came out identical, so nothing about your builds changes — it just closes the last route by which a second-hand copy of the game's data could drift out of date without anyone noticing.
  • Crowstorm now scales with your minion bonuses. It is a Storm Crow's own ability — the crows call the storm, you don't — but because the game files it under the Summon Storm Crows tree rather than under the bird, the tool was counting it as one of YOUR skills and handing it your player stats. Minion stats are a separate universe, so it saw none of them: probed on a corpus build, Crowstorm sat completely unmoved by +1000% increased minion damage, +1000% increased minion lightning damage and +1000% increased minion fire damage alike, while the same crow's Lightning Blast moved on every one. It now reads the minion side — minion-scoped bonuses, the summon's attribute scaling, and an item like Rahyeh's Embrace that converts your Storm Crows to fire, which is what finally lets that conversion reach it. The tool works out which pet an ability belongs to from the game's own internal name for it, so four more abilities sitting in the same place are covered by the same rule: Assemble Abomination's Stomp, Ballista's Explosives, Summon Bear's Thorn Burst and Summon Raptor's Raptor Screech. A transformation is deliberately not a summon — Spriggan Form's Spirit Thorns is your own hit and keeps your own stats. Four builds in the corpus run the Storm Crows; Crowstorm gains between three and nine times on each, worth about a third to two thirds of a percent of the build. Two things are called out rather than assumed: the character-level minion damage bonus and the number of crows are NOT yet applied to this stream
  • a bonus worded "melee AND throwing" or "attack AND cast" now actually applies. The tool read those as ONE bonus that needed the skill to be both things at once — and no skill is both melee and throwing, or both an attack and a spell, so lines like Time Legion's "3% Increased Melee and Throwing Attack Speed" and Blademaster's "+6% Sword Attack and Cast Speed" were silently doing nothing. The game's own character sheet settles it: it files each of those as two separate lines, one per kind, so they are alternatives and not a requirement. Forty builds in the corpus carry at least one — every one of them an attack-speed or cast-speed line. A Warpath Void Knight gains 19% attack rate and a Paladin's Rive 13%; a couple of spell cards on those same builds dip slightly, because the faster melee now takes a larger share of the mana
  • "chance to ignite on FIRE hit" now only counts when the skill actually hits with fire. Affixes like "+152% Chance to Ignite on Fire Hit" and "+63% Chance to Poison on Fire Hit" were being handed to every skill on the build, so a physical melee attack on a fire-affix character was collecting the whole page. The game keeps those bonuses in separate buckets by damage type — its own character sheet shows them that way — and a skill banks the ones its hit qualifies for. What settles it is a stripped-down test character with all 47 of its skill-tree nodes removed: the game reports its Vengeance as a PHYSICAL hit even though the build carries +35 melee fire added damage, and the ignite it applies carries 7.5 stacks, not the 12 the tool was giving it. The same capture shows its poison stream applying about three times in three seconds, which is exactly the ONE fire skill on the bar doing it — not all of them. Flat added fire damage doesn't make a hit a fire hit; what counts is the skill's own damage after any conversion. With this in, that bare character reads within about 16% of the measurement where it used to read 30% over.
  • an item or node that converts ONE skill now converts only that skill — two more spellings of it. "Fire Aura -> Lightning", "Warcry Converted To Cold" and "100% of Acid Flask Base Damage converted to Cold" were all being read as though they converted your whole build, because the tool couldn't tell the skill's name apart from the rest of the line. A relic reading "of Hungering Souls Base Damage Converted to Fire" was the worst of them: it turned every skill on the character fire, which then unlocked every fire-only ignite affix the build was wearing. Four builds in the corpus correct by 2% to 8%, and one Fire Aura goes up by 63% now that a Warcry node stops turning it cold.
  • ailment damage now comes from the game's own ailment table. Ignite's 40 fire per second, poison's 28, bleed's 53 — the tool was reading these from a secondary export rather than the game data itself. Every value it already had is unchanged, and one that was missing entirely arrives: Torment, a 120-per-second necrotic damage-over-time, was being skipped because the old source had no entry for it. Two Chthonic Fissure builds gain around 3%. Effects that carry damage but aren't damage-over-time at all — Bone Curse, which the tool already counts as its own skill — are correctly left out.
  • Vitality now gives you necrotic and poison resistance, one percent of each per point, the way the game does. The tool had no line for it anywhere because the game has no line for it either — it is simply what the attribute does — so every build in the tool was reading short on those two resistances, by as much as 224 points on a Vitality-stacking necromancer. Checked against the game's own character sheet on all 65 captured builds. It matters for damage wherever a bonus scales off your uncapped resistance or your overcapped resistance, including the minion penetration from Rite of Undeath.
  • your mastery's own starting bonus now counts, whichever class you play. Every mastery hands you something the moment you pick it — Runemaster 30% increased elemental damage, Beastmaster 50% increased melee for you and your pets, Necromancer 50% increased minion damage, Lich the increased damage equal to your missing health — and the tool was only reading Rogue's. It reads every class's now, and the game's own character sheet confirms each one to the point across the captured builds. Two Void Knight lines are deliberately left out: its echo, which the tool already counts on its own, and its 75% increased melee void damage, which the captures don't back up yet. Eleven builds move.
  • an item that converts your MINIONS now converts the minions instead of you. Rahyeh's Embrace reads "Summoned Spriggans are converted to Fire" and "Summoned Storm Crows are converted to Fire" — and the tool got both halves of that backwards. It didn't recognise the two named pets, so it re-coloured the whole build fire instead: your Swipe and your Tempest Strike were being counted as fire attacks by a chest piece that never mentions them, while the Spriggans and Storm Crows the item exists to convert stayed physical and lightning and couldn't see the same item's own "increased Minion Fire Damage". Both now land where they belong. The named pets convert whole — their damage, the ailments they inflict, the tags they carry, and the enemy resistance they strip all change type together — and nothing else on the build is touched, not your own skills and not your other pets. On the four builds in the corpus wearing it, that means a Spriggan gaining about 16% and Storm Crows about 8%, while the Anurok companion sitting next to them correctly stops pretending to be fire
  • your overcapped resistance now arms your minions, the way Rite of Undeath says it does. That Acolyte passive reads "1% Minion Penetration Per 5% Overcapped Resistance", and the tool was throwing it away — it read the line as a flat 1% and never worked out what it was 1% OF. It counts per damage type now: every 5 points of resistance you hold above the 75% cap gives your minions 1% penetration of that type, and a shared line like "+61% Elemental Resistance" counts toward fire, cold and lightning alike. Only the resistances the node itself grants are eligible — necrotic and the three elements — so stacked void or poison resistance buys nothing, exactly as the node's own reminder text says. It is also a threshold bonus that needs 7 of its 10 points before it does anything. Measured in game on a Death Knight build twice over: the character's fire resistance swings between 800% and 708% on a buff cycle, and the minions' fire penetration tracks it to the decimal both times — 157.2% at the top, 138.8% at the bottom, on top of the 40% their weapon already gave them. Fourteen builds in the corpus carry the passive. None of them move against the training dummy, which has no resistance to strip in the first place, but against anything that does resist they gain between 2% and nearly triple
  • Thicket of Blinding Light now deals its damage. The body armour reads '+1 Damage dealt to enemies facing you every 0.5 seconds per 1 Damage Reflected to Attackers' — a damage source with no skill behind it, which is why the tool had no place to put it and simply dropped every reflect line on the build as irrelevant. Measured in game it is by far the biggest thing a thorns build does: on the reference Spriggan Druid it lands 173,926 damage twice a second, 81% of everything the build deals, and the tool showed none of it. It now adds up your flat Damage Reflected to Attackers from every source — the armour itself, its roll that scales off your uncapped physical resistance, Thornshell, 'of the Briar' idols, Thorn Shield and its Briar Shell node, and Summon Spriggan's Thorny Stalks — multiplies it by Thornshell's per-Attunement bonus and by the armour's 'more reflected to bosses and rares' roll, and ticks that twice a second. Percent reflect lines are deliberately left out, because the armour's own tooltip says they don't scale it. The tool now reads within 1.2% of the measurement. One thing there is a ruling on rather than data: standing in Spriggan Form counts as one of the Spriggans you control for Thorny Stalks, which is what the measurement says. Four builds in the corpus gain the card. Damage is assumed at melee range, where the armour is at its full value — it falls to a tenth of this at 10 metres
  • gear that casts a skill you never specialised now actually casts it. A ring reading '100% Chance to cast cold Volcanic Orb when you directly use a cold melee attack or cold traversal skill (3 second cooldown)' on a build with no Volcanic Orb in its five skills produced nothing at all — the tool only knew how to cast skills you had specialised, so the line was quietly dropped. It now cards the BASE version of the skill: the game's own base damage packet, no skill tree (you never invested in one), at the affix's stated rate and under its stated condition, with all your character-wide scaling applied. Where the tool already had a rough reading of one of these lines from the item text, the new path replaces it and honours caps the old reading ignored — 'max 6 per 10 seconds' on Orian's Descent was being thrown away, so eight Smite builds were counted at ten times the rate the affix allows and now drop 1-4%. Twenty builds move in total
  • the skill you press most can now also be cast by your gear. The rule that an item's casts ADD to your own instead of replacing them already covered every skill on your bar except the one you actually spam, which was left out because replacing THAT skill's rate would have been catastrophic. Driverless triggers carry no such risk, so they now stack on the primary too: a Volcanic Orb build wearing a 100%-chance ring gains a cast every three seconds on top of its own cadence, about a quarter more casts of its biggest card. Five builds gain between 0.3% and 10%; a Volcanic Orb Spellblade wearing two Keplahan rings gains the most, with the tool correctly counting only the ring whose element the build can actually trigger
  • "increased effect of legendary affixes" now works. Legendary affixes are the crafted lines slammed onto a unique — and two things in the game boost them. The Weaver Set's two-piece bonus reads "50% increased effect of equipped weapon legendary affixes", and Permanence of Primal Knowledge reads "52% increased effect of Skill Level modifiers on Legendary Affixes", which its own wording says rounds up (+1 becomes +2). Neither was doing anything. The weapon one is the big mover: any build completing the Weaver Set — and Legends Entwined completes it for you off a single piece — gets every crafted affix on its legendary weapon at 1.5x, so twenty-nine builds in the corpus gain between 2% and 40%. Only the crafted affixes move; the weapon's implicit and the unique's own lines are untouched, as are rare weapons. Two builds wearing Permanence gain a skill level on Rive
  • an item that casts a skill you already have on your bar now ADDS those casts instead of replacing yours. A ring reading '3.35% Chance to cast cold Volcanic Orb when you directly use a cold melee attack or cold traversal skill' was making the tool forget you press Volcanic Orb at all — it ran the orb at the ring's rate of one cast every ninety seconds, when the skill's own cooldown lets you cast it more than once a second, so everything the orb drives went with it and that build read a hundred times too low. You still press the skill; the item merely also casts it, so the two now add up. This only applies when nothing is DRIVING the trigger — an item's own timer or a proc off any of your hits. If a real skill is what casts it (a 'chance to cast Smite on melee hit' off the skill you're spamming), that stream still stands in for pressing it, and a skill that isn't on your bar still runs purely at the trigger's rate, since that's the only way it casts. Eight builds move: the Volcanic Orb build more than triples, and four Warpath builds dip a few percent because their Abyssal Echoes is now counted as a cast you pay mana for
  • an item that converts ONE of your skills now converts only that skill — and the resistance it strips off the enemy changes type with it. Ash Wake reads "Aura of Decay is converted to fire", and the tool was applying that to every skill on the build; the same went for Natural Wrath's "Earthquake is converted to Lightning". Only the named skill converts now. The other half is the one that matters on a boss: Aura of Decay's Fume Weaver and Vulnerability strip the enemy's POISON resistance, and the skill's own conversion nodes say outright that all its poison-resistance effects convert too — so on an Ash Wake build those points come off the enemy's FIRE resistance instead. Measured in game the dummy's own stat sheet reads -167% fire resistance on that build, which is exactly what the tool now produces; before, all 167 points sat on poison, a type the build never deals. Against the zero-resistance training dummy this changes nothing (stripped resistance stops helping at 0), so it shows up on bosses and other resistant enemies
  • max mana now counts the attributes your sets and conditional gear give you. The mana pool was worked out before the tool had finished adding up your attributes — set bonuses and lines like '+N to All Attributes' land later — so any Attunement they gave you was missing from your mana, and with it every bonus that scales off maximum mana. Checked against the game's own character sheet on 64 captured builds: a Bladedancer wearing Legends Entwined completes three sets for +12 to every attribute, and the game counted 24 mana the tool did not. Thirty-four of the 64 now land within 5% of the sheet, up from 24, with fifteen exact. One corpus build gains 3.4%. The remaining gaps are logged as a known unknown, the largest being a mana-stacking Lich the tool still reads 18% under
  • Runic Invocation's rune order now depends on the node you took, the way the game does. One node in the tree, Immutable Order, locks your runes to the first three skills on your action bar left to right — and its own wording says exactly that. Without it, the runes are simply the last elemental skills you cast before you press, so the tool now works them out from the rotation it models and cards every invocation that rotation produces, weighted by how often each comes up. Builds without that node used to get no invocation card at all. Along the way the tool learned two more ways the game says a skill changes element: Flame Ward's Frost Ward node ("Flame Ward is converted to Cold") and the tag swaps on nodes like Pyroglass. That correction is what makes the model reproduce the two invocations measured in game on a reference Runemaster — a two-rune one on the opening cast before the runes had filled, and the three-rune one from then on. The invocation also can no longer fire faster than you can press the button when the build's action bar data is stale
  • a tree node that GIVES a skill a cooldown now actually gives it one. Runic Invocation has no cooldown of its own, so Author of Arcana's "+12 second cooldown" — a node every Runemaster takes — was being thrown away and the invocation ran at button-mashing speed, about 39 times faster than measured in game. The same was true of Javelin's Battle Standard: the tool had it thrown nearly three times a second where the measurement is eight throws in forty-four seconds. Bone Curse's Bone Prison, Healing Hands' Rahyeh's Chariot and Focus' Null Profusion are corrected too. A cooldown that the game attaches to a side effect rather than the skill — Static Orb's chance to double-cast, for instance — deliberately still doesn't slow the skill down
  • one more spelling of cooldown recovery now counts: "Increased Cooldown Recovery Speed OF Reap", from Reaper Form's Swift Harbinger. The tool read the "for" and "with" spellings but not "of", so that whole family of nodes was doing nothing
  • found the missing multiplier on Fire Aura, and it was hiding in your fire resistance. The Mage passive Incinerating Aura reads "+1% Fire Aura Damage per 1% uncapped fire resistance", and the tool was getting it wrong twice over: it only counted resistance ABOVE the 75% cap, and it lumped the bonus in with your ordinary increased damage. In game it counts your FULL fire resistance, cap and all, and it multiplies on top of everything else — the same way Flame Ward's Eye of Flame says its own Fire Aura bonus does. On a build sitting at 154% fire resistance that is a x2.54 the aura was missing entirely. A stripped-down test character with every skill-tree node removed proved it: the aura's per-tick damage rebuilds from the game's own character sheet to within a rounding error on that build and on two others at 394% and 762% resistance, while Firebrand on the same fight — a melee hit, not the aura — was already exact. Fourteen builds gain, the Fire Aura ones between 20% and 5x. Six more move a little because the same corrected reading feeds "chance to ignite per uncapped fire resistance" affixes. Penetration bonuses worded the same way are deliberately left as they were until they can be measured too. A blessing line reading "+20% to All Resistances" was also being dropped for the word "to", which now counts
  • two damage streams that both call themselves 'Lightning Explosion' now count. They are different abilities that happen to share a name, which is how they stayed invisible. The first is Lightning Aegis: when the buff ends it detonates, and you gain it either from Lightning Blast's Lightning Attunement (a 5% chance per cast) or from Static Orb's Static Armor (every single cast) — measured in game, one detonation lands per aegis gained, matching Static Orb one-for-one across three builds and Lightning Blast's 5% across four. Nineteen builds gain that card. The second is Static Orb's own explosion when the orb expires, worth double the orb's base at twice the effectiveness and landing once per cast — eight builds gain it, and on a Static Orb build it is a fifth to a third of the whole card. Scatter Blast's extra orbs deliberately do not multiply it, since the game data doesn't say the smaller orbs explode. Aegis gained from BEING hit still isn't counted and is called out in the assumptions ledger
  • Runic Invocation is now invoked once per press instead of once per spam cast. The tool was firing the invocation at your primary skill's cast rate, so a Runemaster spamming Lightning Blast sixteen times a second was credited with sixteen invocations a second — measured in game that build lands closer to one every six seconds. Builds that auto-cast the invocation from a tree node are unchanged, since those already rode the trigger skill's rate
  • Death Knights now cast Hungering Souls, and it is the biggest thing a Death Blossom build does. The node says your Death Knights cast Hungering Souls using YOUR Hungering Souls tree — and the tool wasn't counting that stream at all, even though in game it is 97% of the build's damage. It now runs the real ability (the same base packet you cast) through both sides: the Death Knight's own scaling and your whole Hungering Souls tree, with the node's own rule that the tree's mana and minion-count bonuses read YOUR mana and YOUR army. Two things it uncovered came along for the ride: the Death Knights node says it removes all other kinds of Skeletal Mage, and the tool was still summoning Pyromancers alongside them; and a bonus worded "per Minion" — Necromantic Emanation's "+6% Damage Per Minion" — was being counted as if you had exactly one minion instead of your actual pet count. Seven Death Blossom builds go up several times over, three more builds with per-minion bonuses gain a little, and nothing else in the corpus moves. Measured against the game the stream is still about four times under, which is logged as a known unknown
  • Volcanic Orb's Explosive Ground is now the whole stream it really is. Taking that node makes the orb leave burning patches as it travels, and each patch is not one hit — it throws five circles onto the ground in quick succession, so a single cast delivers roughly nine of them. The tool was counting one, and only if you had also taken Tectonic Orb; the node that actually creates the ground carries no link the tool could see, so a build with just that node got nothing at all. Frozen Orb builds get the right packet too: converting the orb to cold swaps the patches to Shattering Ground and its Ice Circles, rather than re-colouring the fire version. The patches also pick up the core's damage multipliers, exactly as the node says they do — measured in game, the circle stream is within about 1.5% of the tool's number now. Five Volcanic Orb builds in the corpus gain between 3% and 84%
  • corrected which skill the Ice Circles belonged to. They were credited to Ice Barrage; they come from Volcanic Orb. Two measured fights that pressed the two skills in opposite proportions settle it, and Ice Barrage's own volley rate is unchanged
  • Shadow Daggers is now ONE card instead of two. The tree nodes that give you Shadow Daggers — Lethal Darkness on Umbral Blades, Dark Blades on Dancing Strikes, Nightblade on Bladestorm, Death's Imprint on Puncture and four more — only ever say they INFLICT a stack on hit; none of them adds a hit of its own. The tool was carding that phantom hit under the parent skill AND carding the real damage, which is the finisher that plunges every 4 stacks, so the same daggers were being paid for twice. Only the finisher card remains. Fixing it also uncovered two builds' worth of the opposite problem: a Bladedancer with no Shadows at all (Bladestorm, Dancing Strikes) was getting no finisher card, because the stack rate was being computed inside the Shadow economy when stacking a dagger only needs a hit — and Puncture's node says "apply" where the others say "inflict", so its whole family was reading zero stacks. Seven builds gain a finisher card they never had. Rogue and Bladedancer builds drop, some of them a lot; a build wielding no dagger at all now correctly shows no Shadow Daggers damage where it used to show over a million
  • four more kinds of cooldown recovery now count. "X% increased Cooldown Recovery Speed for Movement Skills" — the Primalist and Sentinel passives, worth up to 30% — was being read as if "Movement Skills" were the name of a skill, so it applied to nothing; it now reaches every movement or traversal skill you run (Lunge, Teleport, Shift, Fury Leap, Surge, Transplant, Shield Rush, Volatile Reversal, Flame Rush, Aerial Assault, Dive Bomb, Flay, and Werebear Maul), and nothing else. The same misreading dropped three character-wide lines whose wording happens to put a qualifier where a skill name usually sits: Teleport's Wormhole node ("+5% Global Cooldown Recovery Speed"), Lunge's Endless Will ("+6% Additional Cooldown Recovery"), and an affix that says "increased Increased Cooldown Recovery Speed". Eight builds in the corpus speed up — Lunge by as much as 36%, Volatile Reversal by 18%, Lethal Mirage by 7%
  • the tool now works out which skill you actually hold down, instead of assuming it is whichever one you specialised first. That first-specialised skill decides where every 'on hit' proc chain is sourced from, and on the seven builds whose rotations we measured in game it named a buff, a pet summon and a movement skill more often than the skill you press — it got one of the seven right. It now reads your action bar in order and skips what you cannot hold: buffs and auras, movement skills, pet summons, anything another skill is already proccing for you, and anything doing a trivial share of the damage next to the real contender. Four of the seven measured rotations now come out right (Flay, Shadow Rend, Swipe, Lightning Blast); the other three are held up by separate gaps that are named in the assumptions ledger. Fourteen builds move — a Spellblade whose Mana Strike feeds Frost Claw into Lightning Blast more than doubles now that the chain starts where you press, Runemaster invocations rate off the leading spell, and a Reaper build stops carding a Marrow Shards spam that its own Flay loop already supplies
  • Fire Aura hits harder, and its card finally agrees with itself. Three things were wrong with how the aura's per-tick damage was built. Flame Ward's Eye of Flame node says outright that Fire Aura "deals more damage (multiplicative with other modifiers)" and that it applies to Fire Aura from every source, and none of that +15% was reaching the aura. Brand of Arcanus makes each Firebrand stack grant added SPELL fire damage as well as melee, and only the melee half was counted — the game's own character sheet on two measured builds shows both halves at once (30 and 30 at six stacks, 45 and 45 at nine), so every fire SPELL on those builds was short, the aura worst of all because stack damage was nearly the only added damage it had. And the card was quoting a per-hit number that contradicted its own DPS, because the over-time scaling was applied to the total but not to the hit shown on the card. Twenty-nine builds in the corpus are affected; nine of them gain damage, between 2% and 34%, with Frost Claw and Enchant Weapon's Fire Burst also picking up the spell-side stack damage on Firebrand builds. The aura's per-tick damage is still under-counted against what we measure in game and stays logged as a known unknown, but by a lot less than before
  • cooldown recovery that NAMES a skill now stacks the way the game stacks it. Your character-wide recovery, the skill's own tree nodes and any tree it inherits all add together as before — but a source that singles the skill out by name (Fury of the Maul's "+20% Maul Cooldown Recovery Speed", boots reading "45% increased Cooldown Recovery Speed for Fury Leap", the Mage's Flurry passive for Teleport, a relic for Volcanic Orb) multiplies on top of that total instead of being thrown in with it. Two measurements in game pin it: the reference Werebear's Maul recharges every 1.665 seconds, which is exactly what multiplying gives and 9% faster than adding, while a Beastmaster's Fury Leap — whose only extra recovery is on its OWN tree — comes off cooldown at the rate adding predicts, ruling out the other way of grouping it. Twenty-nine builds in the corpus speed up, all of them carrying a named source: Teleport, Surge, Judgement, Volcanic Orb, Lethal Mirage, Shift, Fury Leap, Maul and Reap. Where a form's cooldown skill now takes more of the rotation, the filler skill beside it (Swipe) correspondingly does less
  • skills your rotation never actually presses are no longer counted twice. If a skill's damage is already being delivered by something else you press — Shadow Rend consuming your Shadows to imitate Shadow Cascade, or Flay procing Chaos Bolts — the tool used to card the proc stream AND a full spam of the skill itself, which is a rotation nobody can play. Measured in game, pressing Shadow Cascade directly on one of these builds is over six times WORSE than just spamming Shadow Rend, so the direct card is now switched off with the reason shown on the card (designate it as your primary skill and it comes back). Twenty-two builds in the corpus are affected, all of them Shadow Cascade or Chaos Bolts. A skill that only comes off cooldown is never switched off this way, since tapping it costs you nothing
  • Umbral Blades dropped by your Shadows now count. "Umbral Remnant" leaves a blade behind whenever one of your Shadows ends, and the tool was skipping that entirely on Shadow Massacre builds — where in game it is the main source of blades, measured one-for-one against the Shadows being consumed on two builds that never press Umbral Blades at all. Builds running Explosive Blades, where every dropped blade detonates on its own, now card that whole stream and lose the phantom throw that was standing in for it. Recall builds are unchanged: measured in game, the blades pile up faster than Shift can collect them, so those keep their existing rate
  • a skill left off your action bar is now ignored even when the bar has an empty slot — one blank slot used to switch the whole check off, which on one build left a full Shadow Cascade card for a skill that isn't on the bar at all
  • Ice Barrage is now cast once per volley instead of as fast as you can press it. Its barrage runs for six seconds and re-casting cancels the one already in the air — measured in game, seven presses over a fight delivered more than twice the damage of four hundred, so the tool now paces it at the volley's own length
  • four damage streams the tool was missing or mis-rating now show up properly. Ice Barrage is not one hit — it plants an object that fires a homing ice shard every fraction of a second for its whole duration, so a single press is a whole volley; the tool was counting one shard and now counts the full volley, with your Duration and Fire Rate nodes changing how many you get. Paladin's Flame Burst had no card at all: your melee hits stack Fiery Inquisition and every 60 stacks detonate, so it now rates off your real melee hit rate. Enchant Weapon's Fire Burst was being cast once per Enchant Weapon press instead of on every melee hit up to its stated limit per 2 seconds, and it was borrowing another skill's Fire Burst numbers — four different abilities share that name. And Reaper Form's Reap was swinging at its animation speed, about 16 times a second, when the game gives it a 3 second cooldown; every form skill now takes its cooldown from the game data rather than a hand-kept list. The same name-collision fix also corrected Smite's Lightning Bolt (it was using a monster ability's damage by mistake), Devouring Orb's Abyssal Orb, and Shadow Daggers
  • Holy Aura is now counted as a skill you press, not one you leave alone. Activating it doubles the whole aura — the base 30% increased damage and every stat its tree adds — for 4 seconds, and measured in game on a Paladin, pressing it on cooldown was worth 38% more damage than leaving it passive. The tool defaulted to passive, so all of that was missing. It now presses it on cooldown by default and blends the doubling by how much of the cooldown the 4-second window actually covers (64% of the cycle on a build with 60% cooldown recovery, 40% on one with none), which the card and the assumptions ledger both spell out. Switch the card to Passive to model never pressing it. Paladin builds gain between about 3% and 12%
  • builds that can't afford their own cast rate are now capped at what their mana pays for — not just the Void Well builds that already were. A Beastmaster spamming Upheaval measured 0.69 casts a second in game with mana pinned negative the whole fight, against the 3.4 a second the tool was crediting; that card was an impossible rotation rather than a DPS number, and the build reads 0.25 million where it used to read 0.71 against 0.31 measured. The cap deliberately does NOT apply to a build whose mana lines the tool can't read: a Bladedancer spamming Shadow Rend measured no mana trouble at all while the model said it was hopeless, because "+6 Mana Gain Per Shadow", "25% Mana Refunded" and "+24% Mana Efficiency" are all unread — capping from an income model with holes in it is worse than not capping, so those builds stay uncapped and the ledger names the lines that are missing. Summoned pets are exempt: a companion standing on the field keeps hitting whether or not you can afford to re-summon it. Percentage mana-cost lines on skill trees ("-50% Mana Cost", "+160% Mana Cost") also now read, having been dropped entirely before
  • cooldown-gated skills now fire as fast as they really do. Two things were missing. Cooldown recovery that names a skill — Fury of the Maul's "+20% Maul Cooldown Recovery Speed", boots with "45% increased Cooldown Recovery Speed for Fury Leap", the Mage's Flurry passive for Teleport, relics for Volcanic Orb — was being dropped entirely, so those skills ran on your unscoped recovery alone. And a node that REPLACES a skill's cooldown rather than adding to it (Warcry's Shallow Breath, "Warcry now has a cooldown of 5 seconds") was being added on top of the base, making Warcry a 13-second skill where the game has it ready every 3. Measured in game on the reference Werebear, Maul recharges every 1.67 seconds, where the tool used to say 2.00. Fourteen builds across the corpus gain between a fraction of a percent and about 19%
  • Fire Aura and the auras like it now tick the way they do in game. Measured against every capture we have, the whole family pulses twice a second on one shared clock and every live copy of the aura ticks together — so the damage comes from HOW MANY copies are on you, not from how fast you re-apply it. The old model had it backwards: it treated re-applications as speeding the aura up, which happened to fit the one build it was fitted on and fell apart at a real spam rotation (measured 90 ticks a second against the 28 it predicted). Counting the copies properly also fixed four things that were being missed — grants from your attacks now build stacks, Flame Ward's "while active" grant is correctly one refreshed copy rather than a stream, the +36% duration from Dilation now applies to the aura, and Flame Walker and Burning Hands are read at their own stated chances and trigger limits. Firebrand builds gain on the aura card, presence-only builds settle lower, and the per-tick damage is still under-counted and logged as a known unknown
  • conditional bonuses that depend on a state your build can't actually apply no longer count. Every "more damage against Bleeding / Ignited / Poisoned / Damned" line is now checked against the ailments your build really lands on the target — and it respects conversions, so a tree that turns its own damned chance into bleed and its ignite chance into frostbite (Chaos Bolts' Sanguine Reverie and Call of Morditas) stops earning the vs-Damned and vs-Ignited bonuses it could never trigger. Same for bonuses gated on consuming a minion (Marrow Shards' Bones Of The Follower): a build with no minion anywhere gets nothing for it. Bonuses to bosses and rares are untouched, and any enemy state the tool can't verify is left on and called out in the assumptions ledger, which now explains every conditional it resolved and why. Chaos Bolts builds running both conversions drop a few percent
  • "Nearby minion" bonuses now count — lines like Aura of Decay's Infectious Bones ("+75% Nearby Minion Poison Damage") were dropped entirely because the tool had no reading for the word "Nearby", and the leftover was then being mis-credited to your own Aura of Decay instead of to the pets it names. Range isn't modeled, so your minions are assumed to be standing in the aura (noted in the assumptions ledger). Pet poison builds gain the multiplier on the pet cards; the caster's own Aura of Decay card drops back to what it should have been
  • tree nodes that grant the whole CHARACTER flat added damage now actually count. A node like Werebear Form's Wisened Claws ("+1 Spell Damage per Strength while in Werebear Form") was parsed, found to match nothing on the skill granting it, and silently dropped — the game's own character sheet on the reference Werebear read 325 added spell damage where the tool supplied 148, the missing 166 being exactly its Strength. Only nodes whose wording names YOU (or your allies/companions/minions) as the recipient are promoted; a node that grants ONE skill or ONE pet its damage stays where it is, so Warcry's Kinetic Scream and the Bone Golem's Charred Bones don't leak onto the whole build. Twenty nodes across the build corpus were affected — Enchant Weapon's Frozen Sparks/Thundering/Molten Steel/Frostbrand, Warcry's Berserker, the Spriggan's Aura of Kinship, Frenzy Totem's Bestial Frenzy, Tempest Strike's Gladiator of Lagon and others. On the Werebear Upheaval builds this lands Shatter Totem within 1% of the number measured in game, up from 64% of it
  • minions granted by an item or set now get the damage scaling the game gives them. They have no summon skill for the tool to read, so they were missing it entirely — the Apiarist Queen Bee and item-summoned bees now gain 4% increased damage per point of Attunement like any other pet, and the Anurok, the Tyrannosaur and the Rift Beast — which the game gives no attribute scaling at all — instead gain increased damage per character level (6%, 6% and 10%), which is what their own game data states. Verified against four in-game entity stat sheets captured at once, each landing on its number exactly. Chorus of the Anurok's measured calibration shrinks accordingly (105x to 74x) and that build's total is unchanged; other Anurok, Tyrannosaur and bee builds gain between a fraction of a percent and about 70%
  • Marrow Caster's Splinter Nova now lands the whole nova instead of a single hit — the node scatters your shards in a full circle around you, and measured in game a target standing in it takes about twenty of them per cast, not one. Splinter Nova streams go up roughly twentyfold; on the Ghostflame Lich builds this lands within a quarter of the measured number, up from about a nineteenth of it. The shard count itself is a measurement, not something the game data states, and is logged as a known unknown
  • penetration, resistance shred and "-N% Enemy Resistance" debuffs no longer amplify damage once they've pushed a target's resistance below zero — measured in game, taking a dummy from -162% physical resistance to 0% changed the damage taken not at all. They still strip resistance down to 0 at full value, so they're worth exactly as much as ever against a resistant enemy; they're simply inert against the practice dummy, which starts at 0. Cards say so in the assumptions ledger. Builds that stacked deep negative resistance drop the most (a Fume Weaver Aura of Decay build loses the 2.5x it was being credited); most builds move a few percent
  • Shatter Totem is now a real card instead of a stand-in. Upheaval's Rejuvenating Splinters shatters your totems, and on a Werebear Upheaval build that one stream is the great majority of the damage — but the tool was pricing it off a bare copy of the ability that saw only your gear, with no per-hit or rate of its own. It now uses the game's own Shatter Totem ability (80 base at 400% added-damage effectiveness, matching the effectiveness measured in game exactly) and is scaled from both sides: your Upheaval tree and pool, which is also what carries Natural Wrath's conversion onto it, plus the totem's own scaling — your minion and totem bonuses, the 4%-per-attribute every summon gives its minions, and the minion level bonus. The rate is now the measured one: every totem you have is shattered exactly once per Upheaval cast (six on the reference build, matching the game's own bursts), rather than a guess. Werebear/Upheaval totem builds gain several times over on that card
  • Chorus of the Anurok's Anurok army now counts. The helmet's "Summon Anuroks up to your Companion Limit" produced no card at all, and on a Beastmaster running it that army is over 90% of the build's damage — measured in game at about 11.5 million a second against a build total of 0.04 million. The Anuroks are now summoned at your companion limit and carded with their full kit at their measured attack cadence. Their per-hit damage is far higher than their stats explain, so the size of it is a measured calibration rather than a modeled mechanic and is logged as a known unknown; the same goes for the base companion limit and the Exemplar passive's conditional +1, which is still not counted
  • ailments your MINIONS inflict now count. Two things were missing: the game's own data says the Spriggan Vine's melee poisons on every hit and the Volatile Zombie's vomit does too, but the minion records the tool was reading drop that line entirely — so those pets applied nothing at all; and "+100% Minion Poison Chance"-style lines were being read as if they were yours, landing on your own skills and never reaching the pets they name. Both are fixed, and stacks are now counted as one shared pool on the target that the whole army feeds (pack size multiplies how OFTEN the ailment is applied, never how hard each stack hits — which also means a capped ailment like Doom or Time Rot no longer multiplies past its cap with pack size). Stack caps and durations now come from the game's ailment table. Pet poison/bleed builds gain a lot — a zombie-vomit Necromancer's card multiplies several times over; a Spriggan Form build's vines go from nothing to the largest number on the build. Your own skills lose the minion-only ailment chance they were wrongly counting
  • Spriggan Form's vines are now counted at the 12 the game allows instead of 1 — the form's vine-summon ability states the cap in its own data but had no name the tool could match it to
  • added-damage effectiveness now comes from the game's own ability data rather than the community export wherever the two disagree. Three skills are corrected: Volcanic Orb from 100% to 200% (roughly doubling the added damage it carries), Detonating Arrow from 200% to 125%, and Static Orb from 200% to 100% — Static Orb cards drop by around a third. Cinder Strike and Shatter Strike, which had no effectiveness recorded at all, now use theirs (200% and 100%). Minion kits follow the same rule, so a summon's abilities are read off the game's actor data with the export filling in only what it doesn't carry
  • channelled beam skills are no longer counted at a made-up cast rate — Ghostflame, Disintegrate and Drain Life were all being run at 20.6 "casts" a second (a placeholder cast time in the source data, then multiplied by your cast speed on top). They now tick on the fixed interval the game's own ability data states — four times a second for Ghostflame and Disintegrate, 5.5 for Drain Life — matching what was measured in game to within a couple of milliseconds, and that interval does not scale with cast speed. Their damage is also damage over time rather than hits, so it no longer crits (measured: not one crit in 580 ticks). Ghostflame and Disintegrate cards drop by roughly 90%, Drain Life by about 85%
  • Ghostflame's Feast of Bones now actually casts Marrow Shards — the node ("damaging an enemy with Ghostflame causes you to cast Marrow Shards towards them") produced no card at all, so on a Marrow Caster build the Splinter Nova it creates was completely uncounted despite being over 80% of the build's damage in game. It now fires at the rate the node's own caps give it (1 a second against a single target, raised by Fuel of Anguish's frequency bonus), which measured 1.60 against 1.61 in game. Splinter Nova is also no longer double-counted alongside the Marrow Shards hit it replaces
  • Static's Overload ("you expend 10 charges to cast Lightning Blast every second") now produces a Lightning Blast card. On a Runemaster whose Lightning Blast is specialised but off the action bar, this was the only thing casting it and the card read zero; it now runs at the stated once a second. The Static-charge threshold that gates it is not modeled and is logged as a known unknown
  • Death Seal's Mortal Pulse ("you release a Wave of Death each second while sealed") now sets the wave's rate — it was being counted once per Death Seal cooldown instead, about seven times too slow. The wave's own magnitude still ignores the seal-duration and missing-health ramps its description mentions, which is logged as a known unknown
  • measured Maelstrom's own tick rate in game instead of borrowing Fire Aura's — each lingering Maelstrom pulses about twice a second, not 0.75 times, and re-casting doesn't re-trigger the ones already out. Whirlpool's "+10% Stack Duration" per point now actually lengthens them too, which was being left out, so a Maelstrom lives 9.8 seconds at 4 points and you keep more of them alive at once. Maelstrom cards on builds that cast it gain roughly 3.7×, and every "per Maelstrom Stack" bonus (Cyclone's more physical damage, Sleet-Footed) counts the higher stack count. Builds running Violent Squall, which caps you at one Maelstrom, go the other way. Fire Aura is unchanged
  • the Sabertooth's two missing damage streams now count — the Ancestral Sabertooths that Ancestral Hunter summons on its hits (measured in game at roughly 15 melee hits a second across the pack, worth about a quarter of the build) and the Upheaval that Destructive Power triggers off its attacks, both of which were worth ZERO on the card. The Sabertooth's own melee also finally gets the measured 1.65x base damage the tool had already recorded but was keying to the wrong ability id. The triggered Upheaval is credited with the Sabertooth's stats, and now with your Upheaval tree too — see the next entry
  • a summon that casts one of your skills can now borrow that skill's tree. Summon Sabertooth's Destructive Power says the Upheaval it triggers "uses your sabertooth's stats, but your Upheaval tree" — the tool had no way to lend a tree across skills, so that stream was running about three and a half times under what was measured in game. It now takes the Sabertooth's own stats and damage exactly as before and layers your allocated Upheaval tree on top, minus any node that only works when you cast the skill yourself. Measured against the in-game capture the stream lands within a quarter of the real number, up from a fifth of it. The same wording appears on nine other nodes (the Scorpion's Maelstrom and Avalanche, Death Knights' Hungering Souls, the Wolves' Gathering Storm and others) — those are listed in the assumptions ledger as detected but not yet applied, since none of them has been measured in game
  • transform form abilities now receive full build scaling — Werebear's Maul, Swipe and Rampage, Swarmblade's Armblade Slash and Swarm Strike, Spriggan's Spirit Thorns and Reaper's Reap were all missing their own attribute scaling (a Werebear at 166 Strength and 111 Attunement was losing +1108% increased damage on every kit card, by far the biggest number on it), because the in-form versions were built without it while every ordinary skill got it. Measured in game, the form kits were running two to fifteen times under; they now land close on the abilities we could measure — Swarmblade's Armblade Slash and Werebear's Smite are within a few percent, Maul and Rampage within about a quarter. Two smaller fixes came with it: a form-tree node that names specific abilities (Rip and Tear's "+60% Maul and Rampage Damage") no longer leaks onto the rest of the kit, and Swarmblade's Dive is now a real card (it deals damage; like Rampage it sits benched as a travel skill until you tick "cast on cooldown"). Earthquake's added-damage effectiveness is corrected from 200% to the 600% the game itself uses
  • reworked the Fire Aura / Maelstrom tick model from measured data — these auras don't hit once and sit there, they pulse on their own about 0.75 times a second and every skill that re-applies them re-triggers the whole aura. Their cards now show the tick rate ("Fire Aura (9.4 stacks, ~28.2 ticks/s)"). Builds that feed the aura from a fast skill gain a lot: a Firebrand Spellblade whose Heat Wave node grants Fire Aura on every swing now reads ~28 ticks a second against the 28.4 measured in game, up from 2. Builds whose only source is Flame Ward's "while active you have Fire Aura" drop to the base pulse — that is what the same measurement showed those builds doing. Maelstrom is the same kind of aura and now counts its lingering instances instead of one hit per cast
  • added full minion & companion ability kits to DPS cards — every summoned entity now cards its whole kit, not just one melee swing. The Sabertooth's Flurry Swipes (three strikes, on 24% of its attacks), the Volatile Zombie's Vomit, the Queen Bee's explosion and Forge Strike's Forged Weapons were all worth ZERO before, and persistent minions granted by an item or set (the Apiarist set's Queen Bee, Tyrant's Skull's Tyrannosaur) now get their own card. Minions also finally gain the inherent 4% increased damage per point of each attribute their summon skill scales with, decomposed exactly off in-game entity stat sheets — the largest single multiplier on most pets, so every minion, companion and totem build gains substantially. A Giant Zombie node now correctly collapses the zombie army to one, and ability rates measured in game are used where the data carries none, each named in the assumptions ledger
  • max mana now counts an idol altar's "+N Mana per Idol in a Refracted Slot" once per idol that actually sits in a refracted slot instead of just once — worth +105 mana on a mana-stacked Necromancer, and it lifts every bonus that scales off max mana. Separately, "per N Max Mana" bonuses on skills your minions cast were silently capped at 99 steps while your own copy counted the full amount — the cap is lifted on the minion side too
  • Shadow Cascade nodes with a minimum-shadow requirement (Careful Assault, +100% damage at 4 or more Shadows) now check the shadows you have standing when the cast goes off, not the halved count the volley consumes as it fires — measured in game, removing the node halves the damage, so the bonus is genuinely active. Shadow Massacre builds whose shadow population clears the requirement gain about 20% total (their Shadow Cascade shadow-cast card doubles). The per-shadow damage bonuses (Shadow Torrent, 'per Active Shadow' idols) are unchanged — those still scale on the halved count
  • builds that pay for their casting with a mana refund rather than a mana-generating skill are no longer counted at a cast rate they can't afford — Void Well's "drop below 0 mana, consume 3 essences, set mana to 30% of maximum" is income, and your casts are now capped at what that income buys (total income ÷ the mana each cast really costs, including the mana its procs consume). The assumptions ledger shows the sustainable rate, the full rate your gear allows, and the share between them. Void Knight builds running Void Well drop by roughly half to two-thirds; every other build is untouched, and the cap is a steady-state ceiling — a real fight opens with a full pool, so short bursts still beat it
  • item procs that need a boss or rare hit now count instead of being dropped — Aurelis' "chance to cast Smite after you use Multistrike and hit a boss or rare enemy" was producing no card at all. It is now modeled at its full rate, matching how the tool already treats "more damage to bosses" bonuses, and the ledger flags the proc as boss-conditional so you know it won't fire on a practice dummy or a normal enemy
  • skill trees now read from the current-game data instead of an older extraction, so reworked trees show the right node names and effects. Flame Reave's tree is almost entirely different (Dancing Flames, Rhythm of Fire, Heat Wave, Arcane Severance and a dozen more replace the old nodes), Erasing Strike's upper tree is new (Void Lens, Time Loop, Shattered Continuity, Chamber of Fate), Sigils of Hope's Last Wish is now Heavenly Justice at 5 points, and Vengeance's Combo Riposte is now Flaming Sword. Any build that had allocated one of these was being scored with the OLD node's effect, so those cards move — some a lot. Nodes that remove their skill's cooldown (Shattered Continuity, Time Compression, Beneath Solarum, Urgent Inquisition, Flurry of Blows, The Rush of Sacrifice, Arborist, Unbound Thought, Unending Storm) now actually take the cooldown off, and downsides worded "deals less damage (multiplicative with other modifiers)" now apply as a true multiplier rather than sinking into your increased-damage pool
  • lingering ground effects that a skill tree grants now deal their damage instead of nothing — Smite's Fissure, Aerial Assault's Featherstorm, Judgement's Consecrated Ground, Acid Flask's Poison Pool, Static Orb's Charged Ground, Transplant's Blood Pool, Storm Totem's Blizzard and Swarm Strike's Locust Swarm were all listed on their skill's card with no damage at all. Each now ticks at the rate the game's own data gives it (Fissure twice a second, Featherstorm 2.5 times a second — both within a few percent of what was measured in game), so the skills that spawn them gain anywhere from a couple of percent to double their card
  • items that cast a skill you don't have equipped now count in two more cases — an idol's "chance to cast Maelstrom every 3 seconds" (it states its own rate, so it never needed a skill to trigger off) and a proc of a skill that is specialised but sitting off your action bar, where the proc is the only way it ever fires. Previously both produced no card at all. Affects Maelstrom idols on Primalist builds and off-bar Smite proc'd by a Shield Throw idol
  • Erasing Strike with Shattered Continuity is no longer treated as cooldown-gated — measured in game it can be recast several times a second, and the node says outright that it removes the cooldown, so it now runs at your attack speed like any other melee skill (its card was computing at roughly one cast every 3.7 seconds). Its "-20% damage" downside applies as the multiplier the node describes. An Erasing Strike build WITHOUT that node keeps its normal 5-second cooldown
  • "per N Max Mana" bonuses now scale off your actual computed max mana instead of counting as a single stack — Skeletal Mage's Forbidden Arcana, Static Orb's Manacharged, Disintegrate's Hyperfocal and World Splitter's melee crit multiplier were all stuck at one stack (and silently capped at 99 where they weren't). Mana-stacking builds move a lot: attunement-stacked Skeletal Mage builds gain 50–700%, mana Disintegrate about 97%, and Void Knight builds wearing World Splitter gain a large melee crit multiplier
  • Void Essences (Sentinel) are now modeled: with any essence source that can actually fire on a boss, the buff sits at its 3-stack cap for +9% more void and +9% more melee damage (both multiplicative, per the node's own wording), with a stack control and a ledger note naming every source — on-kill sources are called out as inert against a single target. Void Well's refund ("drop below 0 mana, consume 3 essences, set mana to 30% of maximum") now feeds the mana model as sustained income at the cadence your essence generation supports, and pins the pool near that 30% set-point when it is what pays for your casting
  • skill-tree proc triggers now actually drive the skill they name — Healing Hands' Cleric's Hammer ("cast Healing Hands when you directly use a melee attack") and Warpath's Abyssal Tempest ("cast Abyssal Echoes every 5 seconds") were parsed but never wired up, so Healing Hands was counted at its own full spam rate. Both now run at the driving skill's real rate, and a proc'd Healing Hands pays the mana its node says it consumes. Healing Hands cards move either way depending on how fast the melee skill that casts them actually swings
  • minions now gain 0.8% more damage per character level above 25 (was 0.6% above 26, capped at +45%) — measured off the in-game character sheet at two different levels, which the new law reproduces exactly (level 98 → +58.4%, level 100 → +60%). The old +45% cap was cutting every minion build off from level 101 downward, so all pet/companion/totem builds gain roughly 11% minion damage at level 100
  • the Rogue passive Confidence ('Increased Damage at Full Health') was being dropped entirely instead of counted — its damage now applies, sharing the one 'while at full health' toggle with Asuvon's Pact and the full-health uniques (so switching it off removes them all together). Separately, Umbral Blades' Burst of Agony node ('+Explosion Damage Per Second On Ground') was contributing nothing at all: the blade explosion now gets the bonus accrued over the arming window that Explosive Blades sets, ×1.4 at 4 points
  • the Rogue's Concentration buff now applies its hidden hit-damage penalty as well as its bonus — the game data gives Concentration both a more-damage and a less-hit-damage property, and only the first was modeled. Concentration builds lose 10% hit damage (the in-game character sheet's ×1.044 is exactly the 8-point ×1.16 bonus times ×0.90); damage over time and ailments are unaffected
  • per-Active-Shadow damage bonuses (Shadow Torrent, Careful Assault, the Cascading affix) now use the shadow count the game actually sees when a Shadow Massacre volley fires — measured in-game, the volley consumes the shadows as it goes, so the bonus lands on about half the shadows you were standing with. The multiplier also now reaches the shadow-cast skill's own sub-skills (Shadow Cascade's thrown daggers), which move with it in-game. Shadow-economy Rogue builds read a few percent to ~20% lower on their shadow-cast cards
  • verified Shadow Cascade, Dagger Throw and Blade Explosion added-damage effectiveness against in-game measured values (300% / 120% / 60%) — all three already matched, and the engine now always prefers the game's own damage-stats value over the skill tooltip's text, which is stale on some abilities (Shadow Cascade's says 250%)
  • passive-tree stack caps are now linked to the bonuses they bound — a passive that declares both a maximum stack count and a per-stack bonus (Rogue's Perfection '10 Maximum Perfection Stacks' + '10% Increased Damage per Stack of Perfection', Sentinel's Guardian's Zeal, Berserker, Fester, Sharpshooter, Barrage of Pain, Runic Energy, Storm Battery, and 10 more across all five classes) now assumes the bonus at its declared maximum instead of a single stack, matching how skill-tree stack caps have always worked. Perfection builds gain roughly 15%; a per-stack passive with no stated maximum still stays at one stack
  • the 'Increased Damage with Shadow Cascade per Active Shadow' affix (the Cascading prefix, all tiers) is now read as two separate effects instead of one — the bonus applies only to Shadow Cascade (its own cast, its shadow-cast copy and its sub-skills) rather than leaking onto every skill in the build, and it scales with the number of shadows you actually have, taken from the shadow-population model (shown in the assumptions ledger). Shadow Cascade cards gain a lot; the rest of the build loses a bonus it was never entitled to
July 27, 2026
  • the ≥1-curse detection behind Harvest's double-damage-to-Cursed, Symbol of Loss, and the 'against Cursed' leech/crit lines now counts only curse SEEDERS — a build that can actually put a curse on a clean target. A curse is defined strictly by the game data (an ailment flagged curse:true — Marked for Death, Exposed Flesh, Spirit Plague, Bone Curse; Doom and Frailty are NOT curses and never count), applied by a hitting skill or item, a curse skill cast directly, or a granted curse whose trigger doesn't need an already-Cursed target. A pure PROPAGATOR (e.g. Another Affliction's 'Chaos Bolts' hits against Cursed enemies cast Bone Curse', which can only fire on an already-Cursed target) no longer counts as cursing on its own — a build whose only curse was such a propagator loses the wrongly-earned double/Symbol-of-Loss credit, while builds that apply a real curse (including via node text like Flay's Scent of Death → Marked for Death) are correctly detected. The assumptions ledger now names the seeders and lists any excluded propagators
  • Flay's Deadly Plot ('Flay and all skills triggered by its skill tree deal more spell damage per 100 maximum mana') is now scoped correctly — the bonus stays a MORE multiplier (was mistakenly applied as increased) and reaches only Flay, its Blood Eruption, and the skills Flay's tree triggers (Chaos Bolts from Chaos Rip, Marrow Shards from Marrow Gnawer), lifting those proc'd casts. A directly-cast Chaos Bolts and unrelated spells like Aura of Decay no longer receive it, and Blood Eruption no longer double-counts the bonus
July 26, 2026
  • damage-type conversions now also re-type your on-hit ailment chances — when a skill's damage is converted (Blood Font Poison→Physical, Crimson Death Necrotic→Physical, Call of Morditas Fire→Cold, and so on), its matching on-hit ailment chance follows: poison chance becomes bleed chance under Poison→Physical, ignite becomes frostbite under Fire→Cold, etc., at the same chance, and the new ailment then scales with the new type's damage-over-time stats. Nodes that already spell out an ailment conversion (Soul Ripper bleed→damned, Frostblight, Corrupted Blood) keep their stated behavior. Partial conversions re-type that fraction of the chance. This makes Aura of Decay's Blood Font builds inflict bleed (its '75% Bleed Chance Effectiveness' now applies to the converted chance) instead of poison, and re-types Warpath/Spirit Thorns ailments on element-converted builds
  • 'Armor Shred Stacks' nodes (Werebear's Army Sunderer on Rampage/Maul, Abyssal Echoes' Rippling Corrosion) are now recognized instead of showing as unrecognized modifiers — they register the skill as an armour-shred source, contributing the armour-reduction bonus to your hits. Separately, Rage income/cost lines ('+Rage Gained On Hit' and rage costs on Werebear/Maul/Swipe/Rampage) are now recognized as not-DPS-relevant — Rage is assumed sustained for boss fights, so it never gates your damage
  • Tempest Strike's Gladiator of Lagon buff ('+Shared Spell Damage Buff') is now recognized instead of showing as an unrecognized modifier — the flat added spell damage is applied to both you and your minions; the companion node that doubles this buff's effect on minions with 50+ Intelligence is flagged as not-yet-modeled (a minion-buff-effect refinement) in the assumptions ledger
  • Warpath's Abyssal Tempest node ('while spinning, you cast Abyssal Echoes every 5 seconds') is now recognized instead of showing as an unrecognized modifier — Abyssal Echoes is modeled as an auto-cast at a fixed 1-per-5s rate while channelling Warpath, adding its damage when Abyssal Echoes is a specialized skill on the build
  • Reap's Death's Door node ('Reap deals more damage for each percent of health you are missing') is now recognized instead of showing as an unrecognized modifier — modeled as a multiplicative bonus scaling on your missing-health percent, which is 0 for a full-health build (so it stays inert vs the boss dummy) and rises for low-life builds, using the same missing-health basis as the Lich mastery scaler
  • Frost Wall's 'Enemy Targets' and 'Maximum Frequency Bonus' nodes are now recognized instead of showing as unrecognized modifiers — both drive the wall pillars' Lightning Blast auto-casts (a positional multi-target effect not modeled for single-target boss DPS), so they're flagged as not-DPS-relevant in the assumptions ledger rather than warning
  • Healing Hands' Cleric's Hammer node ('when you directly use a melee attack and hit an enemy, you have a chance to cast Healing Hands around the target') is now recognized — Healing Hands is modeled as a melee-hit-triggered proc (rate = your melee hit rate × chance) when it isn't your main cast, so its Searing Light fire hit contributes; and Divine Barrier's '20% Healing Conversion' is recognized as a heal-into-ward (defensive) effect rather than an unrecognized modifier
  • Shadow Rend's Breaking Force node ('the shadow's attack has a chance to shred armor on hit, doubled with a bow') is now recognized instead of showing as an unrecognized modifier — it registers Shadow Rend as an armour-shred source, so a build whose only armour shred came from this node now gets the armour-reduction bonus to its hits (builds that already shred armour elsewhere are unchanged, since armour shred is assumed maxed once any source is present)
July 25, 2026
  • leech aggregation corrected to match the game's Health Leech stat — skill-tree leech is now counted (a general '+N% <Type> Leech' node like Marrow Shards' Marrow Hunger was being dropped; a skill-scoped one like Flay's Go For The Throat now leeches only its own skill's damage), and 'Increased Health Leech' is no longer folded into the leech% (the game shows base leech% and it boosts leech rate, not amount). Together these land the reference Lich build on its true 30% health leech (was 34.9%), which feeds Hollow Lich's per-1%-leech damage and the Scornful Blood drain
  • Chaos Bolts' Chance of Snow node ('6% Chance for Double Hit Damage against Chilled') is now modeled — its hits get an expected-value boost (a 6% chance of double damage = ×1.06 on the hit) when the build applies chill (the node's own Chill Chance counts), assumed maintained on the boss; the boost is hit-only (bleed/damage-over-time untouched) and rides Chaos Bolts wherever it's cast, including proc'd copies
  • Aura of Decay's Blood Font node ('75% Bleed Chance Effectiveness') is now recognized instead of showing as an unrecognized modifier — your chance to inflict bleed now applies to Aura of Decay at 75% effectiveness, so on builds where the aura inflicts bleed its bleed stacks drop by a quarter (its inherited-chance penalty for the poison→bleed conversion)
  • stale build saves are now handled gracefully — skill-tree points allocated beyond a node's current maximum (from a save made before a tree rework) are clamped to the live maximum, and points allocated to a node that no longer exists are ignored; both surface a plain warning naming the node. Clamping fixes over-counted damage where a now-smaller node still carried its old point total (e.g. Flame Reave trees with 4-5 points in nodes whose maximum is now 1)
  • Devouring Orb's Abyssal Rush node ('while moving, automatically cast Devouring Orb') is now recognized instead of showing as an unrecognized modifier — Devouring Orb is modeled at its cooldown-gated cast rate (its 4s cooldown, reduced by any cooldown recovery) scaled by movement uptime, assumed 100% for the constantly-moving Warpath spin builds that run it (adjustable in the mechanics registry)
  • Harvest now deals double damage to Cursed enemies — its inherent ability effect, previously unmodeled. On a build that applies at least one curse (the boss is assumed cursed full-time), Harvest's hit — direct and proc'd — is doubled; a curse-less build sees no change, and the double never touches Harvest's own bleed/damage-over-time. Harvest's Symbol of Loss (more damage against Cursed enemies) is likewise now gated on applying a curse, so curse-less Harvest builds no longer over-credit it
  • 'Physical Penetration with Bleed' and the other 'Penetration with <Ailment>' effects (e.g. Double Edged Scythe, and 'Void Penetration with Doom') now correctly apply to that ailment's damage-over-time instead of your hit — matching the in-game stat (it belongs to the ailment, not the strike). Damage-over-time resistance still floors at 0, so this helps mainly against resistive enemies
  • Flay's Blood Eruption sub-skill now models its tree wires — Bloodsoaked Blade adds a fraction of your equipped axe/dagger flat melee damage (weapon implicits + affixes only) as flat spell damage to the eruption (previously mis-read as a small increased-damage bonus), Thirst of Dread's flat spell damage is doubled when a bleeding enemy is near (assumed, since the boss bleeds), Plasma Fountain's eruption-damage bonus and Deadly Plot's more-spell-per-100-max-mana still apply, and the eruption now triggers on every second Flay melee hit against a boss or rare (so it doesn't fire against non-boss targets) instead of at Flay's full hit rate — a large per-hit increase for Warlock Flay builds
  • culling is now modeled — a build with a cull effect (e.g. Harvest's Finality: enemies below ~13% health are instantly killed) shows its kill-equivalent DPS: the culled slice of the target's health is free, a ×1/(1−cull%) multiplier on the build total (labeled separately, never folded into the per-skill numbers, with a cull-immune enemy toggle for bosses that resist it). Detects cull from skill-tree Kill Threshold nodes (Finality, Swipe's Culling, Rive's Coup de Grace, Bone Curse's Brittle Bones, ...), base-ability data, and gear lines; culls don't stack, so the highest threshold among your actively-hitting skills governs
  • leech-drain damage (Scornful Blood, Fangs of the Berserker) is now recursive — the drain is itself damage you deal, so it re-triggers your leech (probe-proven geometric series, ~×1.4 on the reference build); typed leech lines ('X% of Void Damage Leeched') are now counted against that type's damage share, and overkill leech is flagged as dead vs bosses instead of silently dropped
  • damage-over-time now stops benefiting from resistance reduction once the target reaches 0 resistance — penetration and shred still help your DoTs against resistive enemies (down to 0), but over-penetration below 0 amplifies hits only, not DoTs (in-game measured: the reference build's bleeds ticked at sheet value on the 0-resistance dummy while its hits amplified)
  • extra spread projectiles ('+N Additional/Extra Projectiles', e.g. Frost Claw's Hand of Morditas) now all land on a real boss instead of getting half credit — the earlier half-credit was a training-dummy artifact (its small hitbox catches only part of the fan), so the engine now models the real-boss ceiling (Frost Claw '+2 Extra Projectiles' → 3 hits/cast); Explosion Tendrils, forks, and chains still add nothing on a single target since they reach outward, not from a hitbox limit
  • derived stack and proc rates now read your real (throttled) cast rates under the mana alternation cycle: a proc off a spender/generator (e.g. Flay → Chaos Bolts) rates off that skill's sustained rate rather than its un-throttled ceiling, and indirect casts stay outside the mana economy so they aren't double-counted; Undisputed's melee-hit stack count now includes indirect/proc'd melee hits (e.g. Harvest proc'd via Chaos Bolts), per its 'all melee attacks' wording
  • dual-spam builds now model the real cast cycle: the generator's swing is animation-canceled at its damage point when you alternate skills (timing read from game data), and the spender/generator split counts casts, not time — matching in-game measured cast rates for Flay + Harvest (A21Ke939 Flay ~2.3→3.2/s, direct Harvest ~1.7→1.9/s)
  • added Excoriation logic — Army of Skin's stacks grant Flay and Harvest +5 Melee Damage per stack, held at the 13-stack cap vs bosses (the boots gain a stack on every Flay hit against a boss), plus the per-stack chance for Flay hits to cast Rip Blood
  • calibrated the dual-spam mana economy against in-game measurement — a generator/spender build that can't sustain its cast rate (e.g. Flay + Harvest) now splits casts by the steady-state alternation share = return/(cost+return) (each generator cast funds return/cost spender casts) instead of the old raw-flow time-share, with per-cast cost and return read from the data (skill mana cost incl. tree nodes, mana-gain affixes, and skills' intrinsic on-hit mana return like Mana Strike's +15/hit); a predictive current-mana LEVEL now drives 'while above X% mana' and 'per current mana' effects (Star Guide's doubling, Mana Spark) — income vs spend incl. mana consumed by procs — so a mana-starved spam build correctly reads hover-low; and leech drains (Scornful Blood, Fangs) now scale off the damage you actually DEAL (post-crit, post-mitigation hit + DoT), landing in the millions instead of a pre-crit estimate
  • generic 'X% of damage leeched as health' lines with no damage-type qualifier (e.g. the Lich mastery innate) now leech off your damage-over-time output too, not just hits — so a leech-redirect build (Scornful Blood) credits its DoT damage into the drain
  • added Scornful Blood logic — 'instead of healing you, your leech drains the health of an enemy' now converts your total health leech (every source: gear, passives, skill trees, and the Lich mastery innate, scaled by any 'Increased Health Leech') into an unmitigated damage-over-time card named after the node; DoT-scoped leech (Essence Devourer) drains off your ailment damage, 'against Cursed' leech rides your curse detection, minion leech stays out of your pool, and Hollow Lich's '2% Increased Damage Per 1% Leech' rides the same aggregated total. Generalizes the Fangs of the Berserker leech-drain model to the 100% redirect
  • curses and aura nodes that reduce enemy resistance (Marked for Death −25% all, Exposed Flesh −15% cold, Aura of Decay's Vulnerability −15%) now lower the target's resistance — at full value vs bosses — and are re-typed by your damage conversions (Blood Font turns Vulnerability into −15% enemy PHYSICAL resistance); resistance shred a skill applies is likewise re-typed when the skill's own damage is converted (Harvest's Harrowing Blade necrotic shred becomes physical shred under Crimson Death)
  • added 'chance per N maximum mana to release <Skill>' proc logic (e.g. Flay's Chaos Rip: each Flay hit releases maxMana × 1% Chaos Bolts) — the released skill is now cast as an indirect proc scaled by your maximum mana, driving its downstream proc chains (Chaos Bolts → Harvest via Reaper of Mayhem). Previously this was unmodeled, so a build whose main damage comes from that proc chain was massively under-counted; these indirect casts correctly sit outside the mana economy (they aren't throttled)
  • Harvest's Death Inside now scales '+15% more hit damage per unique ailment' by the actual number of distinct ailments your build inflicts on the target (bleed, poison, doom, chill, etc.), capped at the node's Maximum Damage Bonus (+90%) — previously it applied a flat +15% regardless of how many ailments were on the target
  • '−X% Enemy <Type> Resistance per <Attribute>' effects (e.g. Aura of Decay's Fume Weaver: −1% enemy poison resistance per Intelligence) are now applied, and are re-typed when the aura's damage is converted (Blood Font turns Fume Weaver into −1% enemy PHYSICAL resistance per Intelligence) — a large physical amplifier that was previously ignored
  • added Undisputed logic — the unique axe's '5% increased Physical Damage for each recent Melee Hit against a Bleeding enemy (up to 255%)' now ramps as a stacking increased-physical buff whose stack count is derived from the build's melee hit rate over the 4s 'recent' window (capped at +255%), assuming the target is Bleeding
  • a skill node that converts the skill's damage type and swaps its damage tag (e.g. Harvest's Crimson Death 'Necrotic → Physical', Aura of Decay's Blood Font 'Poison → Physical') now re-types the skill's inherent flat damage (its per-attribute/base flat) to the new type, so it scales with the new type's increases and penetration instead of the old type's — previously that inherent flat kept the pre-conversion type and missed the converted scaling
  • a specialized skill that isn't on your action bar is no longer modeled as actively cast — its phantom cast (and any skills it would proc) is dropped, fixing large over-counts on builds that specialized an extra skill without slotting it (e.g. an off-bar Chaos Bolts that was proc'ing Harvest). Skills genuinely proc'd by an on-bar skill still count, and builds with an unreliable action-bar record (duplicate slots) or a transform are left unchanged
July 21, 2026
  • proc'd-skill rate caps phrased as 'this effect can occur a maximum of N times per second' (e.g. Reaper of Mayhem's Chaos Bolts → Harvest) are now respected — previously only 'N Maximum <Skill>s per second' was parsed, so these procs ran uncapped and were over-counted
  • extra spread projectiles ('+N Additional/Extra Projectiles', e.g. Frost Claw's Hand of Morditas) now add partial single-target hits (in-game measured ~half of each added projectile lands on a lone target) instead of being ignored; Explosion Tendrils, forks, and chains still add nothing on a single target since they reach outward
  • a skill that 'Automatically Casts on Melee Attack' (e.g. Enchant Weapon) is now capped by its own cooldown instead of firing on every melee hit — a self-cast can't outpace the skill's cooldown
  • Enchant Weapon's Icicle Strike now casts Ice Shard as a melee-hit proc at its real rate (capped by 'Limit per 2 Seconds') with its chance weighted by Enchant Weapon's actual uptime — buff duration plus Active Duration nodes over the cooldown reduced by cooldown recovery — instead of firing at Enchant Weapon's cast rate; also fixes Ice Shard scaling to ignore Enchant Weapon's own tree, matching the node
  • passive/gear 'X% <Skill> Chance On Hit' now casts that skill off all your hits (rate scaled by your total hit rate), and 'X% <Skill> Chance Per Second' fires it periodically — previously only skill-tree proc sources were counted, so passive/gear procs of an equipped skill (e.g. a passive that casts Frost Claw on hit) were ignored
  • Spark Charge apply-chance from passives (e.g. Storm Blade's 'Spark Charge Chance with Lightning Melee Attacks') is now counted for every qualifying skill instead of being ignored — previously only gear/idol and per-skill-tree sources fed the Spark Charge model, so passive appliers were dropped
  • 'X% Res Shred Chance Per Second' modifiers now register as a shred source instead of surfacing a bogus 'Per Second' toggle — the shred still applies (assumed at max stacks), the phantom input is gone
  • 'X per Enemy Hit' self-buffs like Rune Sap now derive their stack count from how fast the granting skill hits (hit rate × the buff's duration) instead of asking — e.g. Mana Strike's 'Global Spell Damage Per Enemy Hit' scales with Mana Strike's hit rate, and the boss/rare doubling is applied
  • 'X% damage per 1% uncapped resistance' modifiers (a common Last Epoch pattern, any resistance type) now scale automatically from your uncapped resistance instead of appearing as a manual toggle
  • 'per Complete Set' scaling (Legends Entwined, etc.) is now derived from your equipped sets instead of being a manual toggle
  • primary-skill detection no longer picks a low-damage utility skill over the skill you actually spam — a candidate carrying under 10% of the top skill's own DPS can't be the detected primary (e.g. detects Mana Strike, not Static Orb)
  • changelog date sections are now collapsible — the newest date stays open, older dates start collapsed
  • modifiers with two conditions now keep BOTH (e.g. Nightbringer's 'hit damage to Blinded Enemies with Multishot') — previously the second condition was dropped; both must now be satisfied and their stack scaling combines
  • added Lethal Concentration logic — 'N% of Player Poison Damage Applies to Skeleton Rogues / your Falcon' now feeds the player's typed added and increased damage onto the named minion
  • added '+X Damage Over Time' logic — flat added damage-over-time now boosts every matching-type DoT ailment the build inflicts (e.g. The Ghost Maker)
  • Omen of Thunder's '+Spell Lightning Damage for all existing totems' is now counted — the 'all existing' wording was previously dropped
  • corrected Crystalwind, Unearthed Memories, and Lament unique text against lastepochtools — added Crystalwind's bow scope, Unearthed's 'against cursed enemies' restriction, and Lament's missing Spell Void Damage line
  • corrected Spark Charge damage — now uses the explosion's base (20 lightning, 100% added-damage effectiveness) and its +4% damage per Intelligence, fixing a large under-count on Spark Charge builds (in-game validated within 3%)
  • changelog now groups changes under a date header instead of repeating the date on every line
  • fixed Hand of Judgement's '+X Melee Damage per Attunement for Judgement' — now scales by Attunement and applies only to Judgement (was a flat bonus applied to every skill)
  • corrected 'while Unarmed' detection — now requires no weapon in either hand (a Shield or Off-Hand Catalyst still counts as unarmed, and an off-hand weapon now correctly counts as armed), fixing Hand of Judgement and similar unarmed-gated mods
  • fixed dropped skill-scoped flat damage on uniques/idols — mods like '+52 Melee Damage for Shield Bash' and '+18 Spell Damage for Storm Bolt' are now counted for that skill instead of being ignored
  • fixed Fragment of the Enigma's Spark Charge modifier — now applied as a multiplicative 'more' scoped to melee appliers (was counted as additive 'increased' and applied to all appliers), matching the in-game tooltip
  • corrected Shield Throw ricochet model (in-game validated): count the return-to-you bounce toward Lava Burst procs, and only count single-target return hits — fixes a ~35% DPS under-prediction on ricochet builds
  • new engraved masthead + typographic refresh
  • replaced emoji icons with custom sigils
  • class-colored build identity + timeline divider
  • added a DPS composition bar
  • fixed dropped damage/ailment conversions on tree nodes that also carry a structured stat (e.g. Upheaval's Glacial Cascade phys->cold)
July 19, 2026
  • added Berserk and Aspect of the Panther buffs
  • transform rotation now honors attack speed
  • fixed Wildfire Embers fire penetration over-count
  • fixed sub-skill damage inheritance (Shatter Totem, Explosive Ground)
July 18, 2026
  • added Bhuldar's Wrath logic
  • added Laup's Path logic
  • added transform skill cards — per-kit-skill breakdowns with cooldown rotation
  • updated logic for detecting primary skill on build
  • fixed shared ailment stack caps across proc'd skills
July 17, 2026
  • idols in refracted slots now detected automatically from the altar layout
  • launched epoch-dps.com