Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Greater Blessing Threat #29

Open
TheTitan94 opened this issue Apr 8, 2020 · 57 comments
Open

Greater Blessing Threat #29

TheTitan94 opened this issue Apr 8, 2020 · 57 comments
Labels
bug Something isn't working

Comments

@TheTitan94
Copy link

TheTitan94 commented Apr 8, 2020

I am posting here based on the issue of Greater Blessing of Kings and possibly other blessings threat meters during fights. The suggested value of one Greater Blessing of Kings cast should be 60 threat (based on the level the spell was learned) per target of the blessing, divided by each enemy in the fight. In practice, the meters seem to not be able to properly track the paladins threat generation based on having aggro when the meter says you are not at the top or even in the top 10.
When testing and in a raid environment, it has been observed that the meters are not accurate, but for what reason. It can occur on single target bosses, so potentially the split threat between enemies is not a factor. The attached image clearly shows a paladin with 1140 threat pull aggro against a 1400 threat ally in melee. Greater Blessing of Kings was cast 10 times on 2 targets for 60 threat per target, multiplied by 1.9 modifier of Righteous Fury, divided by the two enemies. Based on the current understanding of threat generation, this should result in 1140 threat which it shows, but this seems to be inaccurate since the tanking paladin has pulled aggro of the enemies with the lower threat. In the image, multiple threat meters are shown, indicating that it is likely a library issue.
Good reference of this happening are also found in Askalon and Holyfrog paladin raid tanking videos. They currently use a Greater Blessing tracker. The confusing thing about this is that the tracker simply calculates the number of blessing casts and the targets cast on and assumes 60 threat per target and multiplied by 1.9 for Righteous Fury, to result in 114 threat per GBoK target. This is confusing because the tracker clearly shows they are top threat, but the meter does not. I am not certain where this discrepancy comes from.
I plan to do a few more tests to confirm that GBoK should in fact produce 60 threat and if in fact Righteous Fury should multiply the threat by 1.9 modifier. Then maybe additionally if the threat should be multiplied correctly per target.
PaladinTanking Threat Test 1

Updates:

  • (tests inconclusive) Judgement of Wisdom and suspected Judgement of Light procs generate more threat than is expected or depicted on threat meters. Expected 56 threat with RF from 59 mana proc, but ally pulled around 103.5 more threat than expected (318 instead of 214.5), this predicts my threat at 286, which is 91 extra threat from somewhere, possibly the mana regen.
  • Casting Seals generate threat but do not according to meters.
  • GBoK single target and single enemy pulls off when expected at 60 and 114 with RF.
  • GBoK has pulled aggro of enemy at 1140 threat, when ally had 1400 threat, when there were 2 enemies. GBoK threat is also incorrect when on single target bosses in raid environment, so not only a multi target issue.
  • The GBoK that you use that enters you into combat does not generate threat or pull the enemy from the current target.
  • GBoK does not generate threat for targets hit who are not in combat with the enemy, but on the meter it does show as threat being generated.
  • GBoK after many tests, 6 of which I discuss below, shows a behavior that implies it is not having its threat split between enemies in the open world that are around level 55.
  • The meter does not track threat of GBoK properly in a single target raid environment. Chromaggus one target, buffing warriors while in melee range, does not show proper threat on the meter. I have a weak aura that simply shows threat per cast of GBoK, and all it does is count the casts of GBoK, and based on how many allies I cast it on, tells me my threat. Which was not being properly tracked by the meter. If the meter was counting each GBoK cast and multiplying it by allies, then it would show a much higher number than it did.
  • I have observed a more accurate depiction of threat on trash in MC with split threat than on single target boss fights.

Look Below in comments for details of some of these findings.

@dfherr dfherr added the bug Something isn't working label Apr 11, 2020
@boktai1000
Copy link

We have a Paladin Tank in Classic WoW that generates threat using GBoK spam, and it seems like Details! Classic doesn't really track it, at least in our experience. People zoom by him on Details, but he maintains his threat lead. Using sites like http://82.130.21.56/threat/ we are able to see the threat lead.

Originally, I was trying to get in touch with Details to report this, but recalled that Details was just a front end so came to the threat library.

Here's an example of the Threat Plotting website listed above with one of our WCLs and what it shows, which is what I would say is a more accurate representation of threat:

image

@dfherr
Copy link
Owner

dfherr commented Apr 14, 2020

So something seems to be wrong and I'm happy to change the values, but I need to know what is wrong to fix it. I don't play a paladin myself. Currently blessings generate 60 aoe threat per player buffed.

The right way to test this is to reduce the number of variables as far as possible and then see at what point someone pulls aggro. Going with full raid logs is like trying to find a needle in a haytsack.

@dfherr
Copy link
Owner

dfherr commented Apr 14, 2020

Maybe Greater Blessings are not split by multiple targets but applied to all?

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 14, 2020

So testing blessing, it is in fact generating 114 threat with Righteous Fury. In the example I originally posted it is clear that having 2 mobs, buffing 2 paladins at once, 10 times, should generate 1140 threat per target. I pulled threat with 1140 threat when my paladin friend had 1400, so that means that with only 10 blessings on 2 targets with 2 mobs in combat, the threat I generate should have been at least 1540 in melee range to pull aggro. This is still less than if the threat was not being split, and in fact when I raid it is clear that my threat is not quite as high with multiple mobs, I believe.

In a test I did today I also noted some interesting paladin threat issues. So I did a test on a spider with a priest friend. I Auto attacked the spider twice for 68 and 71 and regenerated 59 mana. Then I let my priest auto until they pulled aggro. His meter reported 139 (the threat without the mana regen). My mana regen threat should have been 56, which is 59 mana * .5 threat * 1.9 Righteous Fury = 56 threat. My meter showed 195 threat, which is correct assuming that is the calculation for the judgement of wisdom mana proc threat, his did not show the mana. He should have pulled aggro at 214.5 threat, but pulled aggro at 318 threat. His autos deal about 3 each so it could be from 316-318 threat where he pulled. So this means that my threat was likely 286 or so. 286 threat - 195 shown threat, is a difference of 91 threat that was not accounted for on my meter and even more on his meter. If you calculated the threat the judgement of wisdom mana procs with RF should generate without the .5 threat modifier of mana regen, it comes to 112.1, but 56+91=147 threat. So this means that somehow I am not only generating more threat than the .5 mana regen modifier should allow, I am also generating more threat than that. I will test more to confirm these numbers.

I suppose the next controlled tests I can do is have 2 mobs, bless once, and see when an ally pulls aggro from one. Then have two targets for blessing.

@dfherr
Copy link
Owner

dfherr commented Apr 14, 2020

I think there need to be more controlled test with a single unit. Establishing that something is wrong is helpful, but to fix it I need to know what would actually be right or what exactly is wrong. From all the information so far, I can't tell what's wrong.

That the mana reg wasn't on your friends meter is probably because you did not continue generating threat and would have been synced on the next threat generating action.

@dev7355608
Copy link
Contributor

Maybe it's the UnitInRange check in Paladin:ClassCounter. The range is further than 40 yards. Only the unit you cast it on needs to be within 40 yards of you but others not necessarily: other class members only need to be in visible range (i.e. UnitIsVisible), it seems.

@dfherr
Copy link
Owner

dfherr commented Apr 14, 2020

Regarding the priest: did he maybe have blessing of salvation? Or maybe meele attacks from priest get a threat reduction to 71% on meele attacks (similar to rogues), which is not considered because it's a usually completely irrelevant scenario? Would approximately line up, but just guessing here.

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 15, 2020

The priest did not have salvation, it was a very controlled test. I judged wisdom autod twice and one procced mana regen. Then I turned my back and the priest started meleeing the mob. Also I have tested GBoK with single target dfherr, it seems to work correctly with the same priest tests. He pulled at what is to be expected with GBoK and RF+GBoK. He also pulled when he was expected to from my basic auto threat. So I would conclude that they do not generate 70% threat with melee.
Also, another notable thing, seals generate threat, but the meter did not track that. I used seal of righteousness and kept threat for a while, then when they pulled I sealed again and pulled back, all while the meter said I had no threat.
Dev7355608, that is a good point, based on the first image, something is wrong with the threat from 10 GBoK on 2 targets with 2 enemies, while everyone is in melee range.

@mikekochis
Copy link

I'm the paladin that @boktai1000 referenced. I want to try to share some information that may help to provide some clarity, as well as share my personal insights.

In terms of the threat value of Greater Blessing of Kings, it's helpful to reference https://classic.wowhead.com/guides/lights-bulwark-protection-paladin-tanking -- but to try to keep this as concise as possible, Kings has a base threat of 60, but when specced into 3/3 Righteous Fury, it's 114 threat, per application of a player, split between all the threat tables the buffed player is on. It is NOT 114 threat per application of the player on all targets.

With that said, this bug report seems to be more focused on the threat values of specific spells, but the challenge I'm facing a lot more frequently (since mid/late Feb), is that Kings casts aren't registering at all. I am hypothesizing that this either has to do with combat state and/or range (what @dev7355608 was getting at, I think). We can rebuff Kings on an entire class (up to a certain range, I'd guess 100 yards), with only one of that class being within 40 yards.

Lastly, based on my history, threat calcs seems to get 'stuck' in either recognizing or not recognizing threat from Kings casts based on whether or not the first cast was 'clean' (whether that is: all buffed targets in range, all targets on the threat table of the target, or something else entirely, I have yet to resolve).

@dfherr
Copy link
Owner

dfherr commented Apr 15, 2020

i'll change the in range check to a visibility check, that makes sense and hopefully solves some issues.

@TheTitan94 regarding the priest test again: I removed the 57 bonus threat from judgment itself, because it seemed wrong (and better to add less threat to the tank than too much). That might also explain the difference here. However, to readd judgement threat, it's important to know: Does only the first judgement (without a debuff) cause threat or any judgement? Also 57 bonus threat seems too high. Based on your test it should be 49 bonus threat.

edit: also do different judgements cause different amount of threat? Than the threat is dependent on the debuff and not the judgement cast.

@jmckinney88
Copy link

Just want to comment on switching Greater Blessing threat to check visibility instead of range:

The problem with the current range check is that it checks for members of that class within range of the caster. However, only the initial target has to be in range of the caster, which the addon need not check for. The secondary targets only need to be within "group buff splash" range, which is 100 yards.

Switching to check visibility (I'm assuming this is synonymous with Line of Sight) will cause other issues, especially in BWL if kiting on trash.

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 15, 2020

@dfherr So regarding the Judgements, I was referencing the Judgement of Wisdom proc from auto attacks. From my tests it seems the actual Judgement (application) does not generate threat, if so it is less than 3, which the meter shows correctly. Judgement of Righteousness does however generate threat because it deals damage. The priest was able to pull a mob off with 3 threat after a judgement of wisdom to initate combat ( indicated that the actual judgement did not generate threat, which is correct in the tables.) However, the mana regeneration from auto attacks against a debuffed target, and possibly seal of wisdom autos as well, seem to generate more threat than logged on the table. I will try to test again making sure as few variables are present as possible, but I believe my test was quite variable free with no reflect damage and my character facing backwards and a priest auto attacking. The results seemed to show that the priest took more threat than expected to pull from 2 autos of 68 and 71 and a 59 mana regen proc. Mana regen should be .5 threat per mana, and Righteous Fury is a 1.9 multiplier. This is 59*.5*1.9 = 56 threat. So that would be 195 threat and the priest should pull in melee around 214.5 threat. The priest did not pull until 318 threat which predicts my threat at around 286. This is 91 threat more than should be expected. I am not sure where this extra threat comes from but it is most likely the mana somehow.

In the image, there are 10 casts of GBoK on 2 paladins for a total threat of 2280. The threat is then split between enemies for 1140 threat each. I have pulled aggro from a 1400+ threat ally at only 1140 threat. My paladin friend simply attacked the enemies for a bit and I saw how many casts of kings in melee range it would take to pull. After 10 casts I pulled aggro with less threat than my ally by a significant amount.

I agree that the GBoK threat could have something to do with range. Since as others have stated, only the first target needs to be in range of 40yd but it even extends past LOS for subequent members of the initial class buffed. However I did experience incorrect threat with a scenario with no spreading out in the picture above.

@mspk7305
Copy link

mspk7305 commented Apr 15, 2020 via email

@mikekochis
Copy link

mikekochis commented Apr 15, 2020

In the picture above, my tracker is not right in that I should have 1140 threat, but that is just me messing up a weak aura. It still tracked my 10 casts of GBoK. This should be 2280 threat total, but only 1140 threat per enemy, since there are 2.

Edit -- I was wrong.

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 15, 2020

@mikekochis Hmmm, you are not calculating the situation in the image correctly I believe, you may be forgetting the Righteous Fury multiplier of 1.9 or I am missing something, I have had a lot of numbers in my head so I may have gotten lost. Let me describe the image again.

2 paladins, 10 GBoK casts, 2 enemies, 60 threat per target of GBoK * 1.9 for Righteous Fury.

114 threat per cast per target. 114 threat * 10 casts * 2 targets = 2280 threat.
2280 threat split between 2 enemies is 1140 threat each.
The meter correctly shows this, but I have pulled aggro from my ally while I have the lower 1140 threat and he has at least 1400 threat. In melee, I should pull aggro at 1540 threat. I pulled around 1140.

@mspk7305
How exactly does healing aggro work?

@mikekochis
Copy link

@TheTitan94 Whoops -- I wasn't accounting for 2 friendlies getting buffed (even though I definitely said it)!

Can confirm:
With RF1.9
114 threat * 10 casts * 2 friendlies = 2280 threat
2280 threat / 2 targets = 1140 threat on each target

As you increase enemy targets to the encounter, threat per target decreases (and at a certain breakpoint, Consecration becomes better AoE threat).

2280 threat / 3 targets = 760 threat on each target
2280 threat / 4 targets = 570 threat on each target

and so on.

@dfherr
Copy link
Owner

dfherr commented Apr 15, 2020

Switching to check visibility (I'm assuming this is synonymous with Line of Sight) will cause other issues, especially in BWL if kiting on trash.

https://wowwiki.fandom.com/wiki/API_UnitIsVisible

no UnitIsVisible basically checks for 100yards ignoring line of sight

(have not had a chance to read all the other discussion yet, will reply in a separate comment)

@jmckinney88
Copy link

Thanks @dfherr

Just a software engineer who enjoys his prot pally, but dont have a lot of knowledge for the wow API. Thanks for clarifying and providing the docs.

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 16, 2020

So, some very interesting, yet confusing findings I'd like to report to you guys. So I did quite a few tests again yesterday. Again with the priest auto attacking with fists for 3 damage, fighting spiders in Searing Gorge.

Test 1:

  • We did a test with 2 enemies, 1 GBoK buff and Righteous Fury. The meter read 57 threat, which would be correct if we assume 60 threat for GBoK x 1.9 for RF, divided by 2 for enemies. The predicted threat the priest should pull would be 62.7 threat. When melee attacking a single mob, the priest did not pull aggro from me until 128 threat. Potentially 126 due to a 3 damage auto.

Test 2:

  • Same conditions with 2 enemies. The meter read 57 threat. Should pull at 62.7 threat on a single target. The priest pulled at 126 threat.

Test 3:

  • This time 3 enemies but same conditions. 38 threat on meter. Priest should pull at around 41.8 threat. The priest actually pulled at 126 threat....again.

Test 4:

  • 2 enemies. This time, tested to see when the paladin would pull off the priest. The priest generated 260 threat on a target. The paladin pulled off of the priest at 171 threat from 1 GBoK and 2 GBoK*RF. This predicts that the casts generated 286 threat to pull aggro, even with multiple enemies.

Test5:

  • Single enemy, 2 targets for blessing. Meter reads 228 threat. Should pull 250.8. Priest pulled 252 (autos are 3 damage).

Test 6:

  • 2 enemies, 2 targets for blessing. Meter threat reads 114. Should pull at 125.4 threat in melee. The priest pulled at 252 threat. Which is the threat required to pull off of 227 or so threat. 227 / 2 targets = 113.5 threat (about the value of a single GBoK) not split between 2 enemies, but full value.

If you pay attention to when the priest actually pulls aggro in all of these tests, I can only come to the conclusion that the GBoK threat is not being split between enemies in this situation. We consistently see the priest pulling aggro at almost twice the predicted threat, or 3 times the predicted threat with 3 enemies. For reference lets look at the math of test 2.

1 GBoK * RF = 114 threat / 2 enemies = 57 threat. The meters predict this. The priest pulled threat at 126. This number is highly significant.
126 is 10% more threat than 114 threat, which is what would be required to pull off of the paladin if he had generated 114 threat on the enemy.
The same thing occurs for the other tests 2 and 3 enemies as well as multiple enemies with multiple targets of blessing.
So this is concluding that in the open world, my threat for GBoK is not being divided per enemy in combat, up to 3 enemies at least.

I cannot jump to conclusions just yet though, because in a raid environment, I am not certain that this is the result I experience. In raid, particularly ZG yesterday, I was not able to maintain aggro in single target when there were many enemies in combat and my threat from GBoK overall was much higher than the allies threat on the meter. I am not sure what this means. Perhaps there are different behaviors for instanced enemies? I am however often able to keep aggro of targets for a while with GBoK even when there are many enemies, even with only 4 targets for GBoK in the 20 man environment. Overall I believe in a raid environment I do think I am potentially observing the threat being reduced based on number of enemies.

The priest has just pulled aggro in this image.
image

@jmckinney88
Copy link

@TheTitan94

This is from January, but fairly conclusively demonstrates that threat splits: https://www.youtube.com/watch?v=oXE4qKUN23Y&t=189s

How was the priest generating threat in your test?

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 17, 2020

@jmckinney88 The priest is simply auto attacking with his fists. He does about 3 damage per auto, so I have almost pinpoint accuracy when the spider pulls to him. I took the picture when it pulled off and it took him 126 threat to pull off which is about 10% more than 114 which is what the entire GBoK threat would be even though there were 2 enemies in combat when I cast it.
Maybe lower level enemies or open world enemies behave differently?

@dfherr
Copy link
Owner

dfherr commented Apr 21, 2020

There is probably more wrong here, but I at least changed the range check to 100 yards with the next release.

Regarding the multitarget/singletarget splitting: I guess there needs to be some reliable, boss fight testing to figure that out. ZulGurub bosses might be a good option for testing (less damage and easier available).

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 21, 2020

@dfherr thank you for helping out. I will continue to observe and test to fully understand Paladin threat so we can solve these issues. It does seem that the range may be an issue. So one thing is if the person buffed is not in combat they should not count toward the threat and if I am not in combat when it is cast I should not generate threat until I cast while I’m in combat according to tests with open world enemies. Finally the change to 100 yards seems promising and may solve large amount of issues, but is this 100 yards from the caster or 100 yards from the buffed target? Because this is potentially reaching people 140 yards away. Buffing someone 40 yards away and it splashing to allies within 100yds. I know range is likely difficult.

@Silverthane2864
Copy link

Silverthane2864 commented Apr 23, 2020

  • We did a test with 2 enemies, 1 GBoK buff and Righteous Fury. The meter read 57 threat, which would be correct if we assume 60 threat for GBoK x 1.9 for RF, divided by 2 for enemies. The predicted threat the priest should pull would be 62.7 threat. When melee attacking a single mob, the priest did not pull aggro from me until 128 threat. Potentially 126 due to a 3 damage auto.

@TheTitan94 Was the pally buffing the priest or themself? If the pally was attacking the priest, and the priest was only attacking 1 target, the pally will only generate threat on that one target.

@TheTitan94
Copy link
Author

TheTitan94 commented Apr 23, 2020

@Silverthane2864 i believe you mistyped some I am not sure what you are trying to say, but the exact process was I face pulled two enemies, turned away and buffed myself once with righteous fury active. The priest then started attacking one enemy doing 3 damage at a time. They do not pull the enemy until 126 threat, which is the threat it would require to pull if I had generated 114 threat. This is the threat the buff would do, not split by enemies. The meters clearly show I have much less threat than the priest but they have just pulled off in that photo.

@TheTitan94
Copy link
Author

So tanking ZG the other day, I noticed that the meters are unable to keep track of my threat on Hakkar. This I believe is a bit troubling because it is a single enemy encounter except for the occasional second enemy in the form of a spawn of hakkar. Also all of my allies are fairly close in proximity since the fight takes place on a small platform. There is potential for some allies to be out of 40yd range but not overall. I will see how the potential changes to the range of Paladin buff threat works, and hopefully it will resolve issues, but I am worried that there is more going on. I understand how the Paladin threat should work and the numbers, but I am not very knowledgeable about how the meters work, so I was hoping you may have some ideas on what kind of things might cause the meters to not show Paladin threat appropriately on single target with most allies within close proximity.

@dfherr
Copy link
Owner

dfherr commented Apr 26, 2020

I mean you said it yourself: It's not a single enemy. There are adds spawning, there are people getting mind controlled. That's all stuff that shows up on the threat table and will mess up aoe threat. I guess that mind controlled players are not affected by the blessing threat, but the threat meter calculates them in and maybe dying adds are not correctly removed from the threat table. But that's just guesses.

It's also hard to know when aoe threat is actually split by the game and when not. The threat addon just splits on everyone present in the threat table, which is incorrect in many situations. But improving the logic for the many edge cases is really hard, because we are lacking accurate data to begin with. (I can only fix something, when I know how it is supposed to be right)

So the realistic goal is improving the threat for single target boss fights. Because even that isn't really accurate to date.

@dfherr
Copy link
Owner

dfherr commented May 6, 2020

We just found out that Pallypower is creating a lot of communication traffic and bypasses the communication library that handles fair sending.

That caused threat messages to be delayed up to minutes on multiple fights in the raid that was tested (e.g. 2minutes delay until after the fight at firemaw!), because once we hit throttling and pally power keeps sending, all messages through the communication library basically completly stop sending. That means the threat of the paladin simply updates no longer in the threat meter of other players or updates with many seconds old data.

As mostly paladins have pallypower installed (duh! :D) this might heavily affect tank paladins, but not other tanks. I don't know what kind of messages pallypower keeps sending during a fight, but for tank paladins to send accurate in-time threat, they should consider disabling pally power for now...

@Dyaxler is handling pally power and can hopefully improve the situation.

@Dyaxler
Copy link

Dyaxler commented May 6, 2020

Not sure where this is coming from. The only time PallyPower sends an AddonMsg is when an update is needed (A Paladin with PP enters or leaves the group) or if buff assignments change. That's it. It only checks for reagent counts once every 60 seconds.

When Blizzard first implemented this AddonMsg throttling my guild and I would see warnings about addons exceeding a msg threshold and it wasn't very specific. We were certain it was Deadly Boss Mods but we haven't seen that in quite sometime.

I've been in lots of Battleground groups where there have been 10+ Paladins in the raid. If PallyPower were exceeding the addon msg threshold, I'd see it there.

However, we don't have a Pally Tank in either of our raid groups. Not sure why that would be a factor. I'd like to see some details and data concerning this test case.

There is a communication library that handles fair sending? Link please...

@dfherr
Copy link
Owner

dfherr commented May 6, 2020

@Dyaxler i posted you the report I got as an issue in curseforge https://www.curseforge.com/wow/addons/pally-power/issues/99

the library is called chatthrottlelib and for example part of AceComm https://github.com/dfherr/LibThreatClassic2/tree/master/Libs/AceComm-3.0

you can also just copy chatthrottlelib alone.

This explains how it's working: https://wow.gamepedia.com/ChatThrottleLib

@dfherr
Copy link
Owner

dfherr commented May 6, 2020

When Blizzard first implemented this AddonMsg throttling my guild and I would see warnings about addons exceeding a msg threshold and it wasn't very specific. We were certain it was Deadly Boss Mods but we haven't seen that in quite sometime.
I've been in lots of Battleground groups where there have been 10+ Paladins in the raid. If PallyPower were exceeding the addon msg threshold, I'd see it there.

the message throttling does exist since actual classic as far as I'm aware. It is throttling on outgoing messages tho, not on incoming messages. As far as I can see from the data in the example raid (i don't know how many palas, but they did not have a tank pala) pallipower pushes out about 300 bytes per second. WoW allows for up to 800 bytes per second consistently and it allows for some spikes.

As basically all other addons are using chatthrottlelib and stop sending, if there are too many messages, you won't see errors popping up in chat, because only pallypower keeps on sending, while everyone else just waits for it to stop. ;)

@Dyaxler
Copy link

Dyaxler commented May 6, 2020

I get what you're saying but PallyPower does NOT send any AddonMsg's during combat... all the functions for changing buffs in combat are locked down and thus any...

C_ChatInfo.SendAddonMessage(PallyPower.commPrefix, msg, type, self.player)

...calls which are embedded in the blessing assignment functions are using:

if InCombatLockdown() then return end

SendAddonMessage are also not being sent in any automated or timed/timer functions and the functions that do call it requires a hardware click which means it's not being done by accident or by another addon.

Buffing a Player/Players do not send msg's.

I had a feeling you guys were referring to the ACE3 library AceComm and ChatThrottleLib. This is for addons that send LARGE quantities of data and helps prevent players from being disconnected by limiting message payloads to 255 character chunks in a single msg send. PallyPower only sends one msg per mouse event and the payload is extremely small. Generally a msg only includes a key string which represents the assignment type, players name, class, and a single number which represents the actual pally buff being assigned. So at most we're only talking on average 15bytes per msg.

Here is a usage example. If I had the Blessings Config open and wanted to change blessing assignments I'll usually hit Clear (One msg "Clear" is sent - it's not spammed 40x). Then I'll hold shift and mouse wheel over the first Paladin to assign all classes the same buff (only one msg is sent "MASSIGN - my name - number") this changes the other Paladins using PallyPower that X Paladin is buffing X buff. This is done 3 more times for the remaining Paladins. AddonMgs aren't spammed in this process. The only way it would become spammy is if all Paladins in the raid suddenly began spinning their mouse wheels to constantly change the buff assignments... but the payloads are super small and would clear up in seconds not minutes. And again, this only happens while NOT in combat.

@dfherr
Copy link
Owner

dfherr commented May 6, 2020

@Dyaxler ChatThrottleLib prevents players from being disconnected by sending too much traffic overall. AceComm provides convience methods to split long messages into multiple smaller chunks. The disconnection happens based on traffic (maximum of 800 characters per second consistently, or you will get disconnected). Many small messages can get you disconnected as well as a few big messages. If you don't use ChatThrottleLib you are bypassing the rate limiting and effectivly block all other addons, when you're sending too much. That is exactly what the report is telling pallypower is doing. I asked to get the analyzer code the guy used, so I can verify myself.

Even if you're not sending massive amounts of data, bypassing chatthrottlelib is not being a good citizen.

However, why are we not continuing this discussion in the pallypower issue I created? https://www.curseforge.com/wow/addons/pally-power/issues/99

I pasted you the actual output I was given there. It shows 9639 bytes over 349 messages. That's an average of 27 characters (including the PLPWR) prefix. So a lot of short messages as you said. The question is why and what you're sending. I also looked through your code and can't find anything. But something seems to happen.

I suggest logging every message right before SendAddonMessage in your addon in a raid to see what's happening. I unfortunately do not have a paladin myself.

here is a link to the tracking code the guy who found out wrote:
https://github.com/rossnichols/ABGP/blob/master/ABGP/comm.lua

@Dyaxler
Copy link

Dyaxler commented May 6, 2020

@dfherr Nope. My bad. Sooo sorry.

You made me paranoid so I did a quick code check. I actually introduced an issue when I implemented the alternate blessings to wipe off Salvation on tanks. PallyPower is NOT supposed to send AddonMsg's during combat by design for the reasons you outlined above. In UpdateRoster() I'm checking the raid tanks for a user assigned PallyBuff so I can over-ride it with another user assigned PallyBuff (I.E. Remove Greater Blessing of Salvation and replace the assignment with a Normal Blessing of Sacrifice) and it's not checking to see if this setting has changed or if it's even enabled or disabled. It just spams "SetNormalBlessings(UnitName("player"), class, tmp.name, 0)" with each UpdateRoster() which contains a SendMsg trigger. Ouch. And to top it off UpdateRoster is fired once per second when ever these events fire: self:RegisterBucketEvent({"GROUP_ROSTER_UPDATE", "PLAYER_REGEN_ENABLED", "UNIT_PET", "UNIT_AURA"}, 1, "UpdateRoster"). YIKES. UNIT_AURA gets fired a LOT during combat. :(

Sorry guys!!!!! I'll post the fix and a quick summary in your thread on Curse.

@Dyaxler
Copy link

Dyaxler commented May 6, 2020

This build should fix that issue:
https://www.curseforge.com/wow/addons/pally-power/files/2950180

@TheTitan94
Copy link
Author

TheTitan94 commented May 7, 2020

Do you believe pally power delaying threat messages to be the primary cause of the problem with threat? I have always had pally power installed and actually utilize it use GBoK during combat. If this is the case, should I experience something different with pally power turned off? Perhaps accurate threat? This also could explain why raids are different than out in the world threat, because there are marked tanks and the normal blessings to take off salv settings dyaxler mentioned.

Edit: Looks like PallyPower has been updated.

Also, were the range changes implemented in the last update of Classic Threat? Like only the first target needs to be within 40 yds, but then all allies of the same class are buffed within 100yds of that target.

Also, allies that are not in combat should not contribute threat when buffed, and the buff that enters you into combat should not generate threat. (according to open world threat tests)

@dfherr
Copy link
Owner

dfherr commented May 7, 2020

Do you believe pally power delaying threat messages to be the primary cause of the problem with threat?

no. but it was a severe issue that would have made you not show up or very delayed on anyone elses threatmeter. A new version was released yesterday that should fix the issues.

@TheTitan94
Copy link
Author

TheTitan94 commented May 9, 2020

An interesting case that I observed, which may be a special case, was the panther boss in Zul'Gurub. The threat from GBoK is not split between the panthers. All of the threat from kings is put toward the boss, regardless of how many panthers are present and whether the boss is active or not. The meter does not track this, but simply using a weak aura that tracks GBoK casts and threat generated based on allies buffed, I could tell that my threat was not being split and that I continue to generate threat while casting when the boss was not "active" in the fight.
Also, another case, Chromaggus does not properly track my threat from kings, even though it is single target and all allies buffed are likely within 40yds (since I was in melee and all targets were warriors). I hope that scenario can help narrow it down and show that something is flawed with how the threat is being calculated with the meter.
The weak aura keeps track using the same numbers, (114 threat with RF per ally), but even on single target bosses, the meter does not track it. If the meter is supposed to give 114 threat per ally buffed when RF is active, then it is not doing that properly in a raid environment. Even in a single target situation, where most are stacked.

Update: As of 5/10/2020 I watched a video of Askalon tanking Firemaw, and the meter was tracking his threat what seemed like fairly accurately! I will see how they seem for me Sunday night in ZG given the new update that went out today!

@TheTitan94
Copy link
Author

TheTitan94 commented Jun 5, 2020

If enemies die within the fight, does the meter know that they are no longer splitting threat for GBoK? Does the meter know that all allies of the same class, within 100yds of the buffed target are buffed with kings?

@dfherr
Copy link
Owner

dfherr commented Jun 7, 2020

If enemies die within the fight, does the meter know that they are no longer splitting threat for GBoK? Does the meter know that all allies of the same class, within 100yds of the buffed target are buffed with kings?

yes, I already looked for both of this in the code and couldn't find any bug. Also I did some limited open world testing and killing mobs did remove them from the threat table.

@TheTitan94
Copy link
Author

I’m not sure I fully understand what could be causing an issue for the threat. I have a fairly simple weak aura that counts threat for GBoK. It simply returns the threat of a blessing cast x targets blessed x threat modifier. If it also just divided by active enemies it would keep track of my blessings threat almost perfectly.

@mspk7305
Copy link

mspk7305 commented Jun 8, 2020

At this point its fairly obvious that the "threat split" is not happening- at at least not always.

Having tanked every boss in every raid and instance (minus 2 of the three drakes in bwl), both single and multitarget, I can say I have never personally observed my kings threat being split by number of mobs engaged- I am always able to pull every mob from every player, every time.

There are likely other factors at play here unrelated to the paladin blessing threat like mob focus mechanics (like some of the cats in ZG on both Arlock and Thekal) or very high threat generation from other players... Or simply user error on the paladins end.

@TheTitan94
Copy link
Author

So for a boss like Gharr its clearly splitting threat because if I just used kings I should have aggro of everything and would pull from everyone. The panther boss is a special case where none of the panthers count toward the threat split, I get full threat toward the boss, but apparently some toward the panthers as well when theyre not focusing someone. I am fairly certain if I pull a large group in ZG for instance, cannot hold aggro as well just by blessings, which indicates that the threat is being split. I have not extensively tried it, but most of the time I feel I am better at generating threat with kings on single targets. Unfortunately it is difficult to have a low variable test in a raid environment.

A good example is Golemagg. If you were tanking him with blessings, and holding threat from all the dps, then you would most likely rip the dogs from the off tanks unless they were going as hard as they possibly could, which is not likely. The same would go for Sulfuron and Gehennas and such.

@apexmbv
Copy link

apexmbv commented Jun 10, 2020

Personally, I just ran BWL with my guild and with 10 warriors in the raid and me spamming BoK using PallyPower on them, I wasn't seeing near enough threat come through on ThreatClassic2. According to the math, 60x1.9x10 should equal roughly 1140 threat per cast, but on Nef in particular, I maybe saw 400-500 per update interval and was stuck in the middle of the pack - but I also wasn't the MT (I was spamming it to test, not to take threat). Just attacking from the outside. This wasn't a one off either. I tanked some trash and once everyone move to the mobs I was tanking, it seemed like ThreatClassic2 wasn't reporting correctly. I've also tanked Ony multiple times with class composition very close to the same as tonight's BWL, and ThreatClassic2 has never reported my threat correctly between phase 2 and 3 on the Ony fight. Is this to be expected? Is there another threat meter that does a better job of reporting the threat from this library? I have the most recent versions of PallyPower (1.13.4) and ThreatClassic2 (1.13.4) according to Twitch. Thanks ahead of time :)

@TheTitan94
Copy link
Author

Yeah this is the same issue many Protection Paladins are having apexmbv. I had a Flamegor tonight in BWL where my threat was tracked extremely accurately. I am not sure why, it just decided to work. I plan to try and limit some addons to test if there is any interference. I am not certain why a majority of the time it does not properly track our threat.

@dfherr
Copy link
Owner

dfherr commented Jun 10, 2020

Apparently the 1.13.5 PTR has the Blizzard threat api reenabled. This makes this library obsolete and threatclassic2 should display accurate threat numbers for paladin tanks ;)

@TheTitan94
Copy link
Author

I have heard about the PTR, are we sure yet that the update will be coming to live? If so we really appreciate all your effort and help improving the meters. We did have noticable differences and improvements to the library and meter which helped to better track paladin threat.

@mspk7305
Copy link

mspk7305 commented Jun 10, 2020 via email

@TheTitan94
Copy link
Author

For the whole fight? Because if I am pumping out kings for single target tanks cant pull off me, if I were doing the same threat to every enemy, then id pull everything and they couldnt get it back for the whole fight. Panther boss the panthers do not always ignore threat, many times they attack me while im also tanking the boss while i dont have an arrow over my head. Also, just because a mob ignores threat, it would not mean that your threat would be not be split against them. But yes, the panther boss is a special case. Hopefully the threat API will come out so we can better understand our threat.

@mspk7305
Copy link

mspk7305 commented Jun 11, 2020 via email

@dfherr
Copy link
Owner

dfherr commented Jun 14, 2020

You can try out the new api with version 2.20 of threatclassic2 on the ptr. maybe that acually gives some insight (that we could use if they decide to disable the api again for whatever reason). You need to be infight to see any threat with the new api.

@dfherr
Copy link
Owner

dfherr commented Jul 23, 2020

So did any of you observe what the actual behavior of the blessing does, especially in multi target scenarios?

@mspk7305
Copy link

mspk7305 commented Jul 25, 2020 via email

@mikekochis
Copy link

@mspk7305 do you have logs from your domo fight?

We had plenty of data, logs and experience from before the API even came out to confirm that blessings are split between targets. There is no reason that should not still be the case - and everything I've raided since the threat API being released continues to support that case.

The only nuance that remains is how exactly it is split. With the new API out, it's really moot to try to solve it, but the concern was whether threat was built on a target if the buffed friendly was not yet on the threat table of target.

@mspk7305
Copy link

mspk7305 commented Jul 25, 2020 via email

@fusionpit
Copy link

I had tried recording threat splitting for GBoK specifically on the 1.13.5 PTR when it was new. On the same three mobs at the start of the exact same Stockades instance, GBoK would give either 2000, 4000, or 6000 threat to each mob per cast. The named mobs also had their own "bucket" of threat, in that a GBoK had threat split between them but not trash mobs. In addition, I saw a maximum of 23 mobs per "bucket" with remaining mobs in their own "bucket". Finally, mobs that had some sort of social aggro in the open world would split full threat between themselves but ones that don't (e.g., bears, crocs, spiders) each had full threat applied per cast.

@skeetro95
Copy link

skeetro95 commented Apr 22, 2021

I know I am late to the party, been pala tanking since P1 of classic and have spent tons of time trying to sort out a lot of inconsistencies. Just stumbled on this, but will post math after work today proving the point. Threat generation as a paladin is inconsistent, and I am not referring to RNG resists ect but actual threat values applied based on a same target (for this example, exorcism crit with RF on) Bonus points if any of y'all know the DM paladin glitch, where all your net threat becomes 0 constantly :D meaning anyone can come up and rip a mob with even a single tick of R1 consecration or any action when I have been wailing on a mob for any amount of time.

It's nice to discover the math behind this, what isn't nice is finding inconsistency only to be explained by "the blizzard god smiled favorably on me today"

Have reported these issues to Blizz mutiple times, they just ignore me tickets and bug reports though unfortunately xd

edit a majority of the time, threat does generate how it should. Your guys math is off because you arent considering melee/caster range of threat gen. The final ratio is a combination of your blessing targets' position in reference to the enemy mob (melee or caster) and your own position in reference to that mob. Will post my roughly year and a half of trying to figure it out math to support what I am saying

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests