Omen Threat Meter
Omen
Omen is a threat meter.
Basically, enemies in WoW decide who to attack by deciding who is the most threatening based on the abilities you use. What Omen does is provide accurate values of your group's relative threat level on individual enemies, so that you can see when you're in danger of pulling aggro (or, if you're next on the snack list if your tank bites it). This info is usually only critical in raids, where only tanks can survive aggro, but it's useful for any multi-player situation.
Changes from version v3.1.6 to v3.1.7
- Add option to choose what sound channel to play warnings on, default is SFX (thanks tharai).
- Add fixes for MoP patch 5.0.4 (thanks dridzt).
- Removed compatibility code for older versions of WoW. This version now only runs in MoP.
FAQ
How is Omen3 different from Omen2?
Omen3 relies completely on the Blizzard threat API and threat events. It does not attempt to calculate or extrapolate threat unlike Omen2 except when Tricks, Misdirection, Mirror Image, Fade and glyphed Hand of Salvation are active.
Omen2 used what we called the Threat-2.0 library. This library was responsible for monitoring the combat log, spellcasting, buffs, debuffs, stances, talents and gear modifiers for calculating each individuals threat. Threat was calculated based on what was known or approximated from observed behaviors. Many abilities such as knockbacks were just assumed (to be a 50% threat reduction) as they were mostly impossible to confirm.
The Threat-2.0 library also included addon communication to broadcast your threat to the rest of the raid as long as they were also using Threat-2.0. This data was then used to provide a raid wide display of threat information.
Since patch 3.0.2, Omen no longer does any of these things and the need for a threat library is no longer necessary. Omen3 uses Blizzard's new in-built threat monitor to obtain exact values of every members threat. This means Omen3 has no need for synchronisation of data, combat log parsing or guessing, resulting in a significant increase in performance with regards to network traffic, CPU time and memory used. The implementation of boss modules for specific threat events (such as Nightbane wiping threat on landing) are also no longer necessary.
Further benefits of this new implementation include the addition of NPC threat on a mob (eg, Human Kalecgos). However, there are some drawbacks; frequency of updates are much slower, threat details cannot be obtained unless somebody in your party/raid are targetting the mob and it is also not possible to obtain threat from a mob you are not in direct combat with.
How do I get rid of the 2 vertical gray lines down the middle?
Lock your Omen. Locking Omen will prevent it from being moved or resized, as well as prevent the columns from being resized. If you haven't realized it, the 2 vertical gray lines are column resizing handles.
How do I make Omen3 look like Omen2?
Change both the Background Texture and Border Texture to Blizzard Tooltip, change the Background Color to black (by dragging the luminance bar to the bottom), and the Border Color to blue.
Why does no threat data show on a mob when I target it even though it is in combat?
The Blizzard threat API does not return threat data on any mob you are not in direct combat with. We suspect this is an effort on Blizzard's part to save network traffic.
Is there ANY way around this Blizzard limitation? Not being able to see my pet's threat before I attack has set me back to guessing.
There is no way around this limitation short of us doing the guessing for you (which is exactly how Omen2 did it).
The goal of Omen3 is to provide accurate threat data, we no longer intend to guess for you and in the process lower your FPS. Have some confidence in your pet/tank, or just wait 2 seconds before attacking and use a low damage spell such as Ice Lance so that you can get initial threat readings.
Can we get AoE mode back?
Again, this is not really possible without guessing threat values. Blizzard's threat API only allows us to query for threat data on units that somebody in the raid is targeting. This means that if there are 20 mobs and only 6 of them are targeted by the raid, there is no way to obtain accurate threat data on the other 14.
This is also extremely complicated to guess particularly for healing and buffing (threat gets divided by the number of mobs you are in combat with) because mobs that are under crowd control effects (sheep, banish, sap, etc) do not have their threat table modified and addons cannot reliably tell how many mobs you are in combat with. Omen2's guess was almost always wrong.
The tooltips on unit mouseover shows a threat % that does not match the threat % reported by Omen3. Why?
Blizzard's threat percentage is scaled to between 0% and 100%, so that you will always pull aggro at 100%. Omen reports the raw unscaled values which has pulling aggro percentages at 110% while in melee range and 130% otherwise.
By universal agreement, the primary target of a mob is called the tank and is defined to be at 100% threat.
The threat updates are slow...
Omen3 updates the threat values you see as often as Blizzard updates the threat values to us.
In fact, Blizzard updates them about once per second, which is much faster than what Omen2 used to sync updates. In Omen2, you only transmitted your threat to the rest of the raid once every 3 seconds (or 1.5s if you were a tank).
Where can I report bugs or give suggestions?
Who wrote Omen3?
Xinhuan (Blackrock/Barthilas US Alliance) did.
Do you accept Paypal donations?
Yes, send to xinhuan AT gmail DOT com.
Older Changes
Changes from version v3.1.5 to v3.1.6
- Multiply the threat values reported by the WoW Servers in Dragon Soul instance by 10 because they are scaled by 10%. This fixes MI/Fade/Tricks oddities and reported TPS values.
Changes from version v3.1.4 to v3.1.5
- Remove code that causes divide by 0 for future WoW updates/PTRs.
- Show the "Hide Minimap Button" option if the button is ever registered with LDBIcon instead of trying to check whether FuBar or FuBar2Broker is loaded.
Changes from version v3.1.3 to v3.1.4
- Omen will no longer create a second unremovable minimap button for the players that have other installed addons providing the LibFuBarPlugin-3.0 library but are not using FuBar.
Changes from version v3.1.2 to v3.1.3
- Optimize CLEU codepath for 4.2 instead of 4.1 now that we are in 4.2. That is, the 4.2 forward compatibility code is now 4.1 backwards compatibility code.
- Rearrange initialization code slightly.
Changes from version v3.1.1 to v3.1.2
- Fixed issue where some players are unable to see any threat text on the bars until the current profile or TPS option is changed. The fix also fixes issues with some bar settings being "reverted to default" on login.
- Fixed potential errors caused from combat log changes introduced in patch 4.2 PTR (untested on PTR servers).
Changes from version v3.1.0 to v3.1.1
- Fixed errors caused from combat log changes introduced in patch 4.1.
Changes from version v3.0.11 to v3.1.0
- Omen3 will now read the combat log and:
- Track and estimate temporary threat created by Tricks and Misdirect
- Track and estimate threat caused by damage while Fade, Mirror Image and glyphed Hand of Salvation are active
- Display these *estimated* threat in a grey (default) color bar, with an expiry countdown (earliest one) next to the name.
- When using class colored bars, the alpha transparency of the bars is now controlled by the "BG Bar Color" setting (which can only be modified if "Use Class Colors" is turned off).
Changes from version v3.0.10 to v3.0.11
- Death Knights will now check for Blood Presence instead of Frost Presence for tanking (the description wasn't updated, please update DISABLE_WHILE_TANKING_DESC at http://www.wowace.com/addons/omen-threat-meter/localization/ for your language).
Changes from version v3.0.9 to v3.0.10
- Updated a few digits in the TOC to make people happy for Cataclysm.
- Removed the outdated Warrior FAQ.
Changes from version v3.0.8 to v3.0.9
- Add option to make Omen click-through (non-interactive).
- Optimized the bar animation code significantly.
- Fix bar backgrounds not being set to the inverted color on login if the "Invert Bar/Text Colors" setting is on. This wasn't noticeable if the bar label color was the default white text with 100% alpha.
Changes from version v3.0.7 to v3.0.8
- Fix GetShapeShiftFormInfo() error that occurs for DKs when they aren't in any presence. This occurs when they respec between their primary/secondary specs and the game drops them out of all presences and subsequently enter combat presence-less.
- Add ConfigMode support (see addon OneButtonConfig).
- Omen will now update its bars immediately on showing from a hidden state instead of updating on the next threat event.
- Includes updates to all localizations via http://www.wowace.com/projects/omen-threat-meter/localization/
Changes from version v3.0.6 to v3.0.7
- Add optional !ClassColors support.
- Add /omen show and /omen hide slash commands.
- Add "Invert Bar/Text Colors" option (default off) which swaps the bar background and text colors.
- Omen now generates the config tables on demand to make it use less memory.
- Omen now provides better error feedback if AceGUI-3.0-SharedMediaWidgets is not found and will continue to function (but without any config).
- Includes updates to all localizations via http://www.wowace.com/projects/omen-threat-meter/localization/
Changes from version v3.0.5 to v3.0.6
- Update zhTW/zhCN/deDE localizations
- Add Fade/MI Color to the options. This color is used on players under the effects of MI/Fade.
- Add 410065408 threat to all players with negative threat for display purposes. English translation: You can now see the "un-Faded/un-MIed threat" of players under the effects of Fade and Mirror Image.
Changes from version v3.0.4 to v3.0.5
- Implement an update event throttle, reducing CPU usage significantly without any loss of updates.
- Clear the guidNameLookup table on zoning to recover some memory.
- Fix Omen getting stuck to the mouse if autocollapse is on and you moved Omen while you are in combat and exited combat during the move.
- Set a player's threat to 0 (for display purposes) if the player's threat is less than 0. This occurs on Fade and Mirror Image, which gives the caster a temporary threat reduction of 410057408 (or 4.1m threat in Omen's terms). Previously Omen ignored players with negative threat.
- Omen will now remember its visible state when you log out (applicable only if auto-show/hide is off).
Changes from version v3.0.3 to v3.0.4
- Update ruRU, koKR and zhTW localizations
- Fix "Passed X% of Y's threat" message where it would report your name instead of the tank's name if you passed your tank's aggro AND pulled aggro at the same time.
Changes from version v3.0.2 to v3.0.3
- Update various localizations. esMX will now see the same translations as esES
- Add LSM callbacks so that the user can use custom media or media registered by other addons correctly
- Allow the user to have different background settings for the Title Bar than from the main Omen window
Changes from version v3.0.1 to v3.0.2
- Update various localizations
- Fix error that occurs on changing Clamp To Screen option
- Add option to change the Pet Color and changed the default Pet Color to violet
- Omen will no longer create its internal minimap button if FuBar or Broker2FuBar are loaded
- Fix bugs with "Hide Omen on 0 bars" option that caused Omen to keep appearing when unwanted
Changes from version v3.0.0 to v3.0.1
- Fix error that occurs on changing profiles: Omen-3.0.0\Omen.lua:592: attempt to index global 'bar' (a nil value)
Changes from version RC3 to v3.0.0
- Updated various localizations
- Add Show threat values and % options
- Add Aoogah! sound from Omen2
- Fix Omen's alpha setting not applying on login
- Add option not to use class colors
- Fix bug which caused ghost bars to show when some classes are not selected to be shown
- Add Tank Bar color option
- Add "Always Show Self" option
- Add Show/Hide Title Bar option
- Add Use Focus Target and Test Mode checkboxes into the configuration panel
- Add Show Aggro Bar option
- Make Test Mode much more useful by showing bars of every possible class and the player
- Fix minor issue where the TPS numbers are 1 pixel higher than the rest of the text on the threat bars
- Hard embed LibDataBroker-1.1 and use it
- Add LibDBIcon-1.0 external
- Add minimap button option, default shown
- Fix Omen's FuBar plugin issue for right clicks to open the configuration panel interfering with library upgrading paths
- Rewrite Auto Show/Hide options to be more intuitive. Add option not to use Auto Show/Hide
- Add an internal flag so that if the user manually toggles Omen's visibility, it stays shown/hidden until he next zones, join/leave a party/raid, or change any Auto Show/Hide settings
- Add option to ignore player pets to display threat info on (Default: On). Yes, player pets have aggro tables too!
- Add Frame Strata and Clamp To Screen options
- Apply a whole list of configuration settings that were forgotten on changing profiles
- Updated the FAQ
Changes from version RC2 to RC3
- Renamed localization\deDE.lua to Localization\deDE.lua so that the auto-generated zip file will contain the folder "Localization" rather than "localization", which means Omen will now work on non-Windows operating systems
Changes from version RC1 to RC2
- Add keybind to toggle using the focus target
- Fix missing localization entry for "Passed %s%% of %s's threat!"
- Add option to color your own threat bar to a color of your choice
- Fix "VGrip1Ratio" error that occurs when completing a drag and Omen incorrectly attempts to hide itself.
Thanks for the great addon.
I've a problem with hide and show. When im in party or raid i want to omen to show when im in combat and hide when im not. can it be done ?
Thanks for the help
Need some help for Adding own *.ogg files to get an nice Aggro Alert sound!
Posiible?
Tanks
I would like to uninstall some of the adon's I just added ... I'm not that good at the game so I don't realy understand how to use them. How do I uninstall? ty
If you go into your curse client, then into your addons, you can right click and choose "uninstall" for any addons you want to remove.
hey, I'v never used Omen Meter before but decided to try it out. After about 1 hour of using it, all my keybinds had changed. Not back to default but to random. Is this a bug or something? I use ElvUI, is there any suggestions that can help me with this?
Thanks
Omen does not have the capability (i.e no code that does so) to change any keybinds.
Hi There! Thanks for the great work on the addon! I saw this post earlier in the comments section but wanted to re-post in hopes for a response so I know what to fix.
I currently use Omen in conjunction with ElvUI and everytime I log into a character, I have found that my Omen settings have reset, even if I am using a specific profile that I created. There are minor position changes as well as a size change, and I have to continually reset it in the configuration menu. Is this a problem with its compatibility with ElvUI, or is this a general problem? I did have the same problem occasionally before using Elv as well, but that was quite a long time ago.
Thanks again!
All I can say is that it is not a general problem otherwise I would have a million comments on settings not saving! Does the new profile you have created remain created? If you have an addon called Reflux in your UI pack, it is possible ElvUI could be using it to force every addon's setting to switch to a specific UI-wide profile on every login - something some UI compilation authors do.
I've been testing a fix for the mirror image/md/tricks problem, only multiplying the damage values by 10 to get the threat values inside Dragon Soul. It seems to be working correctly, so it would seem that Blizzard are definitely only multiplying by 10 inside that instance only.
What are the specific code changes you made, and does this affect Priests (Fade) the same way?
I spent a long time trying to find if the threat multiplier was queriable but I couldn't see it anywhere. I was hoping it'd been added as an extra return value to UnitDetailedThreatSituation or maybe GetInstanceInfo but no such luck that I can see.
So, what I did was RegisterEvent("WORLD_MAP_UPDATE") and then set a handler for it. In the handler check if WorldMapFrame:IsShown() and if so abort, otherwise check for GetCurrentMapAreaID() == 824 and if it is set Omen.threatMultiplier to 10 otherwise 100.
Then in a handful of spots replace 100s by self.threatMultiplier.
It's ugly, but it does work. Happy to send you a diff, or the replacement Omen.lua, if you like.
I spent a fair amount of time testing WORLD_MAP_UPDATE to make sure it was reliable for this, but I'm still only 99% sure.
A diff would be perfectly fine. I wouldn't store the multiplier in Omen.threatMultiplier though, I would just store it in local file variable (as an upvalue) declared near the start of the file. (The Omen repo uses git.)
You can attach files to bug reports at http://www.wowace.com/addons/omen-threat-meter/tickets/83-scale-raw-threat-values-zone/ (if it doesn't let you, you might need to open a new ticket - I'll look at both submissions).
I don't have my copy here at the moment to upload (at work), but I had a look at the ticket you linked and the solution Dridzt attached seems basically equivalent, assuming that he or she has tested the use of ZONE_CHANGED_NEW_AREA.
The problem with using that instead of WORLD_MAP_UPDATE is that it's theoretically possible to change zones with the world map open, and GetCurrentMapAreaID() gets the area ID that the map shows or would show, which could be different from where you are.
A lot of addons get around this problem by calling SetMapToCurrentZone() before calling GetCurrentMapAreaID() but that has negative UI consequences. (If you've noticed that when you have the world map open and change zones it resets it's because one of your addons has this poor behaviour).
The advantage of WORLD_MAP_UPDATE is that it fires when you close the map as well as when you zone in or out of an instance. With ZONE_CHANGED_NEW_AREA if GetCurrentMapAreaID() returns the wrong thing when you call it then it'll continue to be wrong until you zone in and out again or reloadui.
At very least you should never believe the results of GetCurrentMapAreaID() if the world map is currently shown.
Yes, I know the behavior of Z_C_N_A and GetCurrentMapAreaID() quite well. :) There's even a race condition with Z_C_N_A that pretty much makes it unusable.
I attached my diff (twiddled to use the the upvalue) on a new ticket:
http://www.wowace.com/addons/omen-threat-meter/tickets/86-another-ds-threat-values-tinkering/
I seem to be getting a lot of FPS spikes, and I seem to have narrowed down a lot of it to Omen. When I disable only Omen, I am hardly ever getting drops. Quite a curious thing..
Is it a known issue that, when mirror image is used, the threat shown on the threatmeter of the mage is skyhigh? After it fades out, threat returns to the actual threatlevels.
Would be kinda nice to know when Im actually at a high threat level you know :P
I'm getting reports that when in Dragon Souls instances, the threat value Blizzard provides to the addon is 10% of the usual amounts. Its not 100% verified if this problem is confined only to that particular instance or whatever, thus when you use Mirror Image, the values that Omen adds internally to track your threat while Mirror Image is active are 10x larger than what is reported by game servers.
I won't be fixing this since this appears to be a bug on Blizzard's end, either that or they are realizing that raiders are hitting past the 20 million threat limit (signed integer limit on a 32-bit) which is 2.147b in threat values, and that they needed to scale the threat down by 10.
Having looked at the mage threat to try to figure out what is going wrong, it looks like mage threat is [number of mirror images + mage] * [actual threat]. This is not limited to Dragon Soul instances. It is behaving like threat is being duplicated to each mirror image and then summed to get the mage's threat. I know that mirror images at one time spread threat and could be used as threat management. It may be that there has been a change to the threat assigned to the mirror images that was not reported and thus not handled.
I also use threat plates when I'm fighting and the threat that is being reported by Omen is NOT the threat being reported by threat plates. When Omen says I'm at 300% tank threat and well over the pull aggro mark, Threat Plates has me in the green. It turns yellow if I get close to tank threat.
I have tried continuing dps when my threat is off the charts and I never pull aggro. If everyone's threat was off by orders of magnitude, it would scale the same and in fact, it IS scaling the same. It is merely not being reported the same by Omen.
I highly recommend revisiting this issue and verifying that the mirror image threat is not being summed with the mage's threat, especially since this is not happening with all threat management addons.
yes i have a problem of omen going back to 100% when i set it to 150% everytime i have to /rl, or zone into place where i get a loading screen or even just signing in to the game. i have check the lock omen but it still does this. i am use elvui but i have had this problem before i started to use his UI. What can been done to stop this ?