Dolalin
09-30-2018, 06:19 AM
Let's talk about NPC hate.
Torven on EQEmulator.org has done some meticulous research on NPC hate mechanics since Sony introduced their "Hate Meter", making it possible to probe NPC hate mechanics on Live EQ in great detail.
I haven't seen it brought up before? Maybe I just haven't read enough.
His post can be found here:
http://www.eqemulator.org/forums/showthread.php?t=39819
It is amazing to note that many things I remembered from EQLive are faithfully documented in his post, finally. If implemented properly this would really change things here.
Some stunning stand-out highlights (there are more, and good charts):
Mallets shouldn't be a thing:
The non-damage hate from spells casted from items is capped at 400, unless the spell on the item is castable as a normal spell by the class of the item user.
E.g. the snare whip from Sebilis does the full hate amount if a ranger wields it. Also the shaman slow clickable from PoTime does full hate. Sony apparently just checked for class availability of spells in their spell hate routine instead of passing a 'isproc' parameter. Explains why most weapons use non-castable spells.
Items like WESS generate too much hate:
Hate from procs is capped.
From the February 21, 2001 patch notes:
— We reduced the amount of hate that can be caused by a proc. Due to
the high proc rates at upper levels, the amount of hate generated from
procs, and the spells that were selected for those procs, made keeping
the attention of the creature much too easy a task for the tank.
Simply, it nearly eliminated the challenge of keeping a foes attention
at levels above 50.
This affects not just stuns, but also slows and snares and presumably any of the effects with hate that scales with NPC hitpoints. The scaling spell hate portion of a proc is capped at 400-- any damage component will stack. I used a swarmcaller on a 3600 hp NPC and the proc did ~236 hate. The proc on a 11.5k hp NPC did 400 hate.
Off-hand attacks might generate too much hate:
Off-hand attacks do not apply the hate from the 1h damage bonus, which is expected since off-hand attacks don't have a damage bonus.
Some old research claimed otherwise, but it's wrong or was changed later so I'm noting it here.
Proximity hate and Sitting hate isn't quite right:
The hate bonus for being in melee range is...
For NPCs with less than 4000 hitpoints, bonus = 100.
For NPCs with 4000 to around 60k hitpoints, bonus = (maxHP - 4000) / 15 + 100.
After roughly 60k hitpoints, bonus = 250 + hitpoins / 100 with a cap of 2250.
The hate bonus/aggro threshold for sitting is...
The sit bonus is different depending on if you are inside or outside of melee range.
The inside melee range bonus is thus:
Up to around 13k hp, the sit bonus is equal to a non-damaging detrimental spell (hitpoints / 15) with a minimum of 15 instead of 25.
After ~13k hp, the NPC's sit bonus actually starts to decline down to 0 at 100,000 hitpoints with the function bonus = -hitpoints / 100 + 1000.
The outside of melee range sit bonus is also equal to a non-damaging detrimental spell (hitpoints / 15) but it caps at 1000 and stays there.
Trains are too carebear on P99:
NPCs calling for help will cause them to social aggro on players even after they are already aggro on another player.
There is an issue on the emus where, for example, you can aggro an NPC, then drag it nearby another NPC on the same faction that is engaged with another player, and you will not get on the hate list of that second NPC. This is incorrect behavior. NPCs will share who they hate with each other even after entering combat.
Misc others (like Ripostes not generating enough aggro):
Misc errors in the emu code: (all of these are unlike EQLive)
Demonstar may have fixed these already very recently or will soon, but I'll mention these for illustrative purposes.
The emu code is/was dividing up witness hate between every NPC that sees the cast. This is incorrect and trivializes healing aggro in multi-pulls.
The emu code is/was reducing first-to-aggro witness hate to 1/3rd the normal value. No idea why this is there.
Ripostes in the emu code were specifically made to not aggro. If the mob is hitting you, it's already aggro on you; there was no reason to do this. Using riposte discs to build a large amount of hate used to be something done on raid bosses. (hell, maybe it still is, I don't play Live)
Mezed and stunned NPCs are exempt from witness hate on the emu. It should be reduced, but non-zero.
March 6, 2001 patch note:
– NPCs that are mesmerized or stunned will now only add a very small
amount of hate when they see you cast beneficial spells on their
enemies. Prior to this, they would add full hate when they saw you do
this. This is why NPCs would always jump the cleric after breaking Mez.
Hill Giants and Undead, and others (dragons?) should constantly check their prox for new targets to hate:
The permanent hate bonus for aggroing most NPCs by proximity is 20 or 25, depending on the NPC.
If you run up to most NPCs and let them hit you first, you'll have either 120 or 125 hate.
An NPC will add everybody that it's aggressive to and are in aggro range of it to its hate list when its proximity aggro routine is executed.
This means that when an NPC spawns on top of multiple players, everybody within the NPC's aggro radius will get on the hate list simultaneously. Also, if you run multiple characters in range of the NPC between the periods the NPC checks for players, everybody in range gets on the hate list. After the NPC is aggro, it will stop checking its aggro radius.
Some NPCs continuously (endlessly) check for players in melee range (not full aggro range) to add to their hate lists even after aggroing on a player. (usually undead)
This used to be much more common in the classic world before Sony revamped all the zones. It's still common in Kunark, undead NPCs, fearplane, and other places. Players who first-aggro NPCs this way will still get the 20 or 25 hate applied when they aggro. The result of NPCs having this ability is that you can train them on to people who did not touch them by running over people if you have very little hate on the NPC. This is very much classic behavior. (see Fansy the bard)
Torven on EQEmulator.org has done some meticulous research on NPC hate mechanics since Sony introduced their "Hate Meter", making it possible to probe NPC hate mechanics on Live EQ in great detail.
I haven't seen it brought up before? Maybe I just haven't read enough.
His post can be found here:
http://www.eqemulator.org/forums/showthread.php?t=39819
It is amazing to note that many things I remembered from EQLive are faithfully documented in his post, finally. If implemented properly this would really change things here.
Some stunning stand-out highlights (there are more, and good charts):
Mallets shouldn't be a thing:
The non-damage hate from spells casted from items is capped at 400, unless the spell on the item is castable as a normal spell by the class of the item user.
E.g. the snare whip from Sebilis does the full hate amount if a ranger wields it. Also the shaman slow clickable from PoTime does full hate. Sony apparently just checked for class availability of spells in their spell hate routine instead of passing a 'isproc' parameter. Explains why most weapons use non-castable spells.
Items like WESS generate too much hate:
Hate from procs is capped.
From the February 21, 2001 patch notes:
— We reduced the amount of hate that can be caused by a proc. Due to
the high proc rates at upper levels, the amount of hate generated from
procs, and the spells that were selected for those procs, made keeping
the attention of the creature much too easy a task for the tank.
Simply, it nearly eliminated the challenge of keeping a foes attention
at levels above 50.
This affects not just stuns, but also slows and snares and presumably any of the effects with hate that scales with NPC hitpoints. The scaling spell hate portion of a proc is capped at 400-- any damage component will stack. I used a swarmcaller on a 3600 hp NPC and the proc did ~236 hate. The proc on a 11.5k hp NPC did 400 hate.
Off-hand attacks might generate too much hate:
Off-hand attacks do not apply the hate from the 1h damage bonus, which is expected since off-hand attacks don't have a damage bonus.
Some old research claimed otherwise, but it's wrong or was changed later so I'm noting it here.
Proximity hate and Sitting hate isn't quite right:
The hate bonus for being in melee range is...
For NPCs with less than 4000 hitpoints, bonus = 100.
For NPCs with 4000 to around 60k hitpoints, bonus = (maxHP - 4000) / 15 + 100.
After roughly 60k hitpoints, bonus = 250 + hitpoins / 100 with a cap of 2250.
The hate bonus/aggro threshold for sitting is...
The sit bonus is different depending on if you are inside or outside of melee range.
The inside melee range bonus is thus:
Up to around 13k hp, the sit bonus is equal to a non-damaging detrimental spell (hitpoints / 15) with a minimum of 15 instead of 25.
After ~13k hp, the NPC's sit bonus actually starts to decline down to 0 at 100,000 hitpoints with the function bonus = -hitpoints / 100 + 1000.
The outside of melee range sit bonus is also equal to a non-damaging detrimental spell (hitpoints / 15) but it caps at 1000 and stays there.
Trains are too carebear on P99:
NPCs calling for help will cause them to social aggro on players even after they are already aggro on another player.
There is an issue on the emus where, for example, you can aggro an NPC, then drag it nearby another NPC on the same faction that is engaged with another player, and you will not get on the hate list of that second NPC. This is incorrect behavior. NPCs will share who they hate with each other even after entering combat.
Misc others (like Ripostes not generating enough aggro):
Misc errors in the emu code: (all of these are unlike EQLive)
Demonstar may have fixed these already very recently or will soon, but I'll mention these for illustrative purposes.
The emu code is/was dividing up witness hate between every NPC that sees the cast. This is incorrect and trivializes healing aggro in multi-pulls.
The emu code is/was reducing first-to-aggro witness hate to 1/3rd the normal value. No idea why this is there.
Ripostes in the emu code were specifically made to not aggro. If the mob is hitting you, it's already aggro on you; there was no reason to do this. Using riposte discs to build a large amount of hate used to be something done on raid bosses. (hell, maybe it still is, I don't play Live)
Mezed and stunned NPCs are exempt from witness hate on the emu. It should be reduced, but non-zero.
March 6, 2001 patch note:
– NPCs that are mesmerized or stunned will now only add a very small
amount of hate when they see you cast beneficial spells on their
enemies. Prior to this, they would add full hate when they saw you do
this. This is why NPCs would always jump the cleric after breaking Mez.
Hill Giants and Undead, and others (dragons?) should constantly check their prox for new targets to hate:
The permanent hate bonus for aggroing most NPCs by proximity is 20 or 25, depending on the NPC.
If you run up to most NPCs and let them hit you first, you'll have either 120 or 125 hate.
An NPC will add everybody that it's aggressive to and are in aggro range of it to its hate list when its proximity aggro routine is executed.
This means that when an NPC spawns on top of multiple players, everybody within the NPC's aggro radius will get on the hate list simultaneously. Also, if you run multiple characters in range of the NPC between the periods the NPC checks for players, everybody in range gets on the hate list. After the NPC is aggro, it will stop checking its aggro radius.
Some NPCs continuously (endlessly) check for players in melee range (not full aggro range) to add to their hate lists even after aggroing on a player. (usually undead)
This used to be much more common in the classic world before Sony revamped all the zones. It's still common in Kunark, undead NPCs, fearplane, and other places. Players who first-aggro NPCs this way will still get the 20 or 25 hate applied when they aggro. The result of NPCs having this ability is that you can train them on to people who did not touch them by running over people if you have very little hate on the NPC. This is very much classic behavior. (see Fansy the bard)