How does life on hit work?

I have a witch doctor with +10 life on hit and no other means of restoring life. I had thought that this was self-explanatory, but I am not getting +10 life per hit -- I'm getting +20!

So if the flat numbers can't be trusted, what's going on? How does +Life on Hit work with abilities?

I already know that life steal scales based on difficulty from this answer, but since I'm on Normal difficulty, it can't explain the difference in numbers. What's going on?


Here's a video comparing life steal vs life on hit.

Basically, different abilities have different life on hit modifiers.


Life on hit is one of the many ways of gaining like in Diablo 3 (besides life steal, heal spells, potions, health globes, life regeneration). You also restore all your life when you level up, kill a boss, quit/rejoin the game, and receive a blessing.

How does it work ?

Every time a monster is affected by your attack or a spell, you gain life. The amount of life that you gain is calculated as follow:

life_gained = life_on_hit * nb_monsters_hit * skill_modifier
  • life_on_hit is the total life on hit that you have from your gear
  • nb_monsters_hit is the number of monsters affected by your attack or spell (if you cleave and hit 3 enemies, then it's 3)
  • skill_modifier is ticky: every spell in the game has a modifier attached to it, and its a number between 0 and 1. It is used to balance some spells. If that modifier didn't exist, some spells would give you too much life on hit and be overpowered as a result.

Also note that nb_monsters_hit may be capped for some skills, thought not sure, hitting more than 3 enemies with cleave does not give you additional life_gained.

The modifiers for each skills can be found here: for barb, monk & dh, for wizard.

Why are you getting +20 numbers instead of the +10 life_on_hit that you have ?

The heal numbers that appear on your character are aggregated over time to be more readable. As I said in my comment: If you attack two times between each tick, the next tick will be the sum of the total life gained since the last tick (the two attacks).

If you want to know how much life you get from 1 attack, just hit once and wait for the number to show up.

The heal numbers may also benefit from crit (sometimes they have the crit animation). But I don't know much about that.