dfherr / LibThreatClassic2

A library for multi-target threat tracking in WoW Classic. Successor of ThreatClassic-1.0
GNU Lesser General Public License v2.1
16 stars 13 forks source link

Greater Blessing Threat #29

Open TheTitan94 opened 4 years ago

TheTitan94 commented 4 years ago

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:

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

boktai1000 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

TheTitan94 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@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.51.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 commented 4 years ago

"This should be 2280 threat total, but only 1140 threat per enemy, since there are 2"

I do not believe blessing threat splits the same way as healing threat. You can observe this with things like the whelps in Onyxia and the Goblins in BWL.

On Wed, Apr 15, 2020 at 10:28 AM TheTitan94 notifications@github.com wrote:

@dfherr https://github.com/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 67 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.51.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 the meter showed, and 35 more threat than predicted from mana. I am not sure where this extra 35 threat comes from but it is most likely the mana somehow.

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. However I have just pulled aggro in this image with only 1140 threat while my ally has 1400 or so. I was only casting GBoK, casted 10 times, had 2 targets of the blessing, with 2 enemies to split the threat between. The threat is predicted correctly on the meter, but the in game result is not in line with this.

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.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/dfherr/LibThreatClassic2/issues/29#issuecomment-614173879, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAM57BETRU4D547OZ6YQMQ3RMXVCHANCNFSM4MEDKFXA .

mikekochis commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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:

Test 2:

Test 3:

Test 4:

Test5:

Test 6:

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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago
  • 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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

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

TheTitan94 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

The panther is a poor example, the mobs focus a target and ignore threat.

Gar I don't know what to tell you beside that maybe his pulse is dismissing your righteous fury buff. I've always had all his adds come to me every time. Same with sulfuron and domo.

On Tue, Jun 9, 2020, 12:08 PM TheTitan94 notifications@github.com wrote:

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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dfherr/LibThreatClassic2/issues/29#issuecomment-641513478, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAM57BE3IQ5MQOK2KKAXYQTRV2CCXANCNFSM4MEDKFXA .

TheTitan94 commented 4 years ago

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 commented 4 years ago

Yeah whole fight. The only time they change targets is when the focused player dies, becomes immune, or the focus debuff goes away.

On Wed, Jun 10, 2020, 8:12 PM TheTitan94 notifications@github.com wrote:

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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dfherr/LibThreatClassic2/issues/29#issuecomment-642379394, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAM57BDRA7IRWU3UVATOE5LRWBDTLANCNFSM4MEDKFXA .