How does Thorns work?

I'm trying to figure out how thorns works so I can start deciding how to approach making a viable thorns build. Stacking some thorns on my Crusader has led me to believe that it's not as simple as it sounded at first.

I have around 7,000 thorns right now, but when enemies attack me, they take over 90,000 damage. I've also seen the thorns damage crit, and I've also seen enemies take upwards of 2 million damage from a single activation of thorns.

With Vo'Toyias Spiker equipped and using Iron Skin with Reflective Skin and Provoke with Charged Up, I've just utterly melted enemies, seeing crits of over 8 million. None of my active attacks can deal even 2 million damage, so these massive numbers must be from some combination of these skills.

Is thorns return damage somehow a function of how much damage I sustain? What if I block or dodge? What is the approximate formula for damage return based on my current thorns?

6

6 Answers

After doing some math, I arrived at the following formulas for thorns damage:

Regular Attack

  • ((S / 100 / 4) + 1) * T

Reflective Skin Attack

  • ((S / 100) + 1) * 2T * (P / 100 + 1)

where

  • S is Strength (or mainstat)
  • T is your thorns damage
  • P is your Physical Damage bonus (as a percent)

It does not appear that regular thorns damage can crit, nor is it based off your weapon damage or the damage done to you. It did not to appear to be affected by any damage reduction modifiers nor is it improved by bonuses to Physical Damage Skills. It is scaled according to your mainstat by 1/4

Reflective Skin does indeed double your base thorns damage. However, because it is a skill doing the damage and not the thorns mechanic, it scales off your mainstat like all other skills (not at a 1/4 ratio). It is also then eligible to crit and receive your "+X% Damage to Physical Skills" bonuses. This is the reason for the (more than 2x) large spike in damage when using Reflective Skin.

An example:

For a crusader with 5000 Strength and 10000 Thorns and 20% Bonus to Physical Skills:

  • A regular attack would deal 135,000 damage.
  • An attack while Reflective Skin is active would deal 1,224,000 damage (with the option to crit).

After doing some research, I have reached a few conclusions, plus found how the approximate damage works.

Thorns return damage does not depend on how much damage the attack against you does. It's calculated by your base thorns times a multiplier based on your primary stat. The multiplier is one quarter of the bonus provided to your attacking damage. For example, if you have 20,000 thorns, and 6,000 strength, then you'll get 1500% bonus thorns damage (6000 / 4 as a percentage), which amounts to 320,000 thorns damage to enemies when they attack you (20,000 base plus 300,000 bonus from primary stat). This can then crit based on your normal crit chance and crit damage.

All of the insanely high damage numbers occur using the Iron Skin skill with the Reflective Skin rune, which appears to be bugged currently and do lots of wonky stuff (including killing allied Crusaders).

3

I did some testing because I was wondering the same question and came to the conclusion that only your main stat and dmg taken debuffs on the target affect thorns damage (dmg buffs on yourself do not increase thorns dmg, atleast not the ones I tested with), dmg taken debuff affects thorns dmg by 75% the normal amount and main stat increases thorns dmg about 25% of the normal dmg increase.

In the 2.0.5 patch notes, they mention changing the item Sanguinary Vambraces. Inside this change they mention the modifier.

The Thorns damage dealt by these bracers will now benefit from your main stat damage increase at a 25% rate, as normal Thorns damage does

Therefore, it is modified by 25% of your primary attribute. Confirmed.

2

Here's a thorns crusader damage calculator:

1

I have analyzed the source code of the crusader thorns DPS calculator mentioned in user77988's answer. The important lines are

var damage = Math.round(((parseInt(strength)/400)+1)*parseInt(thorns));
var rsdamage = Math.round(((parseInt(strength)/100)+1)*2*parseInt(thorns)*(phy/100+1));

Where damage is regular Thorns damage, rsdamage is Reflective Skin Damage. Converting from Javascript to regular Math, that is

D = (S/400+1)*T
RS = (S/100+1)*2*T*(P/100+1)

where S is strength, T is thorns and P is the bonus damage to physical skills in %

This is identical to the formulas in TheCheeseGod's answer.

You Might Also Like