- Home
- Downloads
-
Addons & Mods
Featured
World of Warcraft
6,100 Addons
-
Popular Downloads
- Top World of Warcraft Addons
- Top Minecraft Server Mods
- Top Rift Addons
- Top Skyrim Mods
- Top World of Tanks Skins
- Top StarCraft II Maps
- Top Terraria Maps
- Top Runes of Magic Addons
- Top Warhammer Online Addons
- Top The Secret World Mods
- Top Age of Conan Addons
-
- Curse Client
- Premium
- News
- Giveaways
- Forums
- Store
WeakAuras
- 43 Likes
- World of Warcraft
- 48,414 Monthly Downloads
- Supports: 5.2.0
- 959,428 Total Downloads
- Updated 03/05/2013
- Created 10/03/2010
- 801 Favorites
- Project Site
- Comments
- Release Type: Release
- License: GNU General Public License version 2 (GPLv2)
- Newest File: 1.4.7.9
About WeakAuras
WeakAuras
WeakAuras is a powerful and flexible framework that allows you to display highly customizable graphics on your screen to indicate buffs, debuffs, and a whole host of similar types of information. It was originally meant to be a lightweight replacement for Power Auras, but it now incorporates many features that Power Auras does not, while still remaining more efficient and easy to use.
Features include:
- An intuitive and powerful configuration interface
- Custom textures including all textures from Power Auras and the new Cataclysm spell alerts
- Progress bars and textures that show the exact duration of auras
- Displays based on auras, health, power (mana, rage, soul shards, holy power, etc.), cooldowns, combat events, runes, totems, items, and many other triggers
- Preset and user-defined animations
- Custom side-effects such as chat announcements or sounds
- Grouping, which allows multiple displays to be positioned and configured at the same time
- CPU optimizations such as conditional loading/unloading of displays, modularity, and prevention of full aura scanning
- Powerful customization options, such as animation paths, on-show/on-hide code, and custom triggers, for Lua-savvy users
To open the options window, type "/wa" or "/weakauras"
Note: WeakAuras works better with more media!
- SharedMedia for more bar textures.
- SharedMediaAdditionalFonts for more fonts.
For in-depth documentation, see the Usage page.
For some examples of what WeakAuras can do, see the Examples page!
News
- 1.4.0 is released! Many new features were added, including:
- Auto-cloning: a feature available for multi-target, group, and full-scan Auras that will automatically duplicate your display to show multiple sources of information
- Dynamic Text options for Progress Bar and Icon displays
- A Circular growth option for Dynamic Group displays
- Specific Unit options for all triggers that use a Unit option - this allows you to watch only a specific group member, or use the boss1, boss2, etc. unit IDs to watch bosses
- A new display type, Model, which allows you to display any 3D model from the game files on your screen
- Third-party addons can now define pre-made displays that can be quickly and seamlessly integrated into your configuration
- Localization for German, Russian, and Chinese, and partial localization for French
- WeakAurasTutorials, a framework for displaying in-game step-by-step assistance, along with two pre-made tutorials:
- Beginners Guide: A guide through WeakAuras' basic configuration options
- New in 1.4: See the new features of WeakAuras 1.4
- Examples!
Upcoming
Upcoming:
- More Tutorials, for more advanced features
- Documentation updated for 1.4
Problem?
------------------------------------------------------------------------
r299 | stanzilla | 2013-03-05 14:49:30 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
A /tags/1.4.7.9 (from /trunk:298)
Tagging as 1.4.7.9
------------------------------------------------------------------------
r298 | funkydude | 2013-03-05 13:03:53 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /trunk/.pkgmeta
M /trunk/WeakAuras.toc
M /trunk/embeds.xml
embed libchatanims
------------------------------------------------------------------------
r297 | stanzilla | 2013-03-05 02:07:09 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /trunk/WeakAuras.toc
M /trunk/WeakAurasModelPaths/WeakAurasModelPaths.toc
M /trunk/WeakAurasOptions/WeakAurasOptions.toc
M /trunk/WeakAurasTutorials/WeakAurasTutorials.toc
I'm in your toc, updating your Interface Version to 50200.
------------------------------------------------------------------------
r296 | stanzilla | 2013-03-04 16:55:39 +0000 (Mon, 04 Mar 2013) | 1 line
Changed paths:
M /trunk/WeakAuras.toc
fix toc
------------------------------------------------------------------------
r295 | stanzilla | 2013-03-04 16:53:14 +0000 (Mon, 04 Mar 2013) | 1 line
Changed paths:
M /trunk/Localization-enUS.lua
M /trunk/Prototypes.lua
M /trunk/Types.lua
M /trunk/WeakAuras.lua
M /trunk/WeakAuras.toc
add optional GTFO addon integration
------------------------------------------------------------------------
r294 | stanzilla | 2013-02-16 21:14:19 +0000 (Sat, 16 Feb 2013) | 1 line
Changed paths:
M /trunk/WeakAurasOptions/WeakAurasOptions.lua
fix for the last commit
------------------------------------------------------------------------
r293 | stanzilla | 2013-02-16 06:33:34 +0000 (Sat, 16 Feb 2013) | 1 line
Changed paths:
M /trunk/RegionTypes/model.lua
M /trunk/WeakAurasOptions/RegionOptions/model.lua
M /trunk/WeakAurasOptions/WeakAurasOptions.lua
apply smcn's patch to allow entry of display ID for models
------------------------------------------------------------------------
r292 | stanzilla | 2013-01-05 03:51:07 +0000 (Sat, 05 Jan 2013) | 1 line
Changed paths:
M /trunk/WeakAuras.lua
re-enable button glow
------------------------------------------------------------------------
| File Name | Release Type | Game Version | Downloads | Date |
|---|---|---|---|---|
| 1.4.7.9 | Release | 5.2.0 | 188,778 | 03/05/2013 |
| 1.4.7.9-nolib | Release | 5.2.0 | 230 | 03/05/2013 |
| 1.4.7.8 | Release | 5.1.0 | 180,224 | 11/27/2012 |
| 1.4.7.8-nolib | Release | 5.1.0 | 194 | 11/27/2012 |
| 1.4.7.7 | Release | 5.0.5 | 79,703 | 10/31/2012 |
| 1.4.7.7-nolib | Release | 5.0.5 | 142 | 10/31/2012 |
| 1.4.7.6 | Release | 5.0.5 | 33,521 | 10/27/2012 |
| 1.4.7.6-nolib | Release | 5.0.5 | 76 | 10/27/2012 |
| 1.4.7.5 | Release | 5.0.5 | 82,064 | 09/22/2012 |
| 1.4.7.5-nolib | Release | 5.0.5 | 164 | 09/22/2012 |
| 1.4.7.4 | Release | 5.0.5 | 22,603 | 09/17/2012 |
| 1.4.7.4-nolib | Release | 5.0.5 | 80 | 09/17/2012 |
| 1.4.7.3 | Release | 5.0.4 | 32,690 | 09/02/2012 |
| 1.4.7.3-nolib | Release | 5.0.4 | 129 | 09/02/2012 |
| 1.4.7.2 | Release | 5.0.4 | 14,358 | 09/01/2012 |
| 1.4.7.2-nolib | Release | 5.0.4 | 72 | 09/01/2012 |
| 1.4.7.1 | Release | 5.0.4 | 22,624 | 08/28/2012 |
| 1.4.7.1-nolib | Release | 5.0.4 | 100 | 08/28/2012 |
| 1.4.7 | Release | 5.0.4 | 3,545 | 08/28/2012 |
| 1.4.7-nolib | Release | 5.0.4 | 33 | 08/28/2012 |
| 1.5_MoP_Beta5 | Beta | 5.0.4 | 1,799 | 08/03/2012 |
| 1.5_MoP_Beta5-nolib | Beta | 5.0.4 | 18 | 08/03/2012 |
| 1.5_MoP_Beta4 | Beta | 5.0.4 | 945 | 07/21/2012 |
| 1.5_MoP_Beta4-nolib | Beta | 5.0.4 | 15 | 07/21/2012 |
| 1.5_MoP_Beta3 | Beta | 5.0.4 | 450 | 07/12/2012 |
| 1.5_MoP_Beta3-nolib | Beta | 5.0.4 | 4 | 07/12/2012 |
| 1.5_MoP_Beta2 | Beta | 5.0.4 | 305 | 07/06/2012 |
| 1.5_MoP_Beta2-nolib | Beta | 5.0.4 | 1 | 07/06/2012 |
| 1.5_MoP_Beta1 | Beta | 5.0.4 | 155 | 07/06/2012 |
| 1.5_MoP_Beta1-nolib | Beta | 5.0.4 | 2 | 07/06/2012 |
| 1.4.6 | Release | 4.3.3 | 38,308 | 04/07/2012 |
| 1.4.6-nolib | Release | 4.3.3 | 171 | 04/07/2012 |
| 1.4.5 | Release | 4.3 | 63,440 | 11/29/2011 |
| 1.4.5-nolib | Release | 4.3 | 585 | 11/29/2011 |
| 1.4.4b | Release | 4.2 | 27,471 | 10/16/2011 |
| 1.4.4b-nolib | Release | 4.2 | 839 | 10/16/2011 |
| 1.4.4 | Release | 4.2 | 14,844 | 10/14/2011 |
| 1.4.4-nolib | Release | 4.2 | 68 | 10/14/2011 |
| 1.4.3 | Release | 4.2 | 18,621 | 06/29/2011 |
| 1.4.3-nolib | Release | 4.2 | 55 | 06/29/2011 |
| 1.4.2 | Release | 4.1 | 3,459 | 06/27/2011 |
| 1.4.2-nolib | Release | 4.1 | 25 | 06/27/2011 |
| 1.4.1 | Release | 4.1 | 6,225 | 05/25/2011 |
| 1.4.1-nolib | Release | 4.1 | 38 | 05/25/2011 |
| 1.4.0 | Release | 4.1 | 116 | 05/25/2011 |
| 1.4.0-nolib | Release | 4.1 | 17 | 05/25/2011 |
| 1.4b9 | Beta | 4.1 | 207 | 05/16/2011 |
| 1.4b9-nolib | Beta | 4.1 | 3 | 05/16/2011 |
| 1.4b8 | Beta | 4.1 | 52 | 05/02/2011 |
| 1.4b8-nolib | Beta | 4.1 | 11 | 05/02/2011 |
Addon Packs Containing This...
-
Reat UI Pack
-
Okami727's Addon Pack
-
cyceron's Addon Pack
-
Do Anything Death Knight UI
-
Enigma required raiding.
-
Rujabu Restoration Druid UI
-
Hunter Pack - MOP Updated ( 22 / 03 / 21013 )
-
Snogard's Tank Prog-snitch Pack
-
Yarx Hunter UI
-
Robbeesta's UI
-
Qbrick's User Interface
-
Cowtilate's Rogue Raiding UI
-
Warling Hunter Raid UI
-
Everlasted Rogue UI 5.2
-
Jack'sUI
-
Simple Ui MoP style
-
Eninias Holy Paladin UI
-
Adventure Inc. Addons Package (Large)
-
Protection Paladin Raid & Leveling UI
-
Naltocs HUD-oriented UI
-
zombone essentials
-
CessyUI
Top Downloads
-
- Deadly Boss Mods
- Combat, PvP, and Boss Encounters
- 1,025,230 Monthly Downloads
-
- Bagnon
- Bags & Inventory
- 481,343 Monthly Downloads
-
- Auctioneer
- Mail, Tooltip, Bags & Inventory, Professions, and Auction & Economy
- 334,076 Monthly Downloads
-
- Recount
- Combat
- 328,627 Monthly Downloads
-
- HealBot Continued
- Healer and Unit Frames
- 299,676 Monthly Downloads







































Comments
I am using weak auras and I am trying to add a custom aura for Judgement. I want it to show when judgement in range, BUT I want it to hide as soon as it comes into melee (crusader strike) range. I can get it to show and hide when it is in and out of judgement range but cant work in the part about hiding in melee range. Here is the code that needs to be adjusted.
Here is the trigger:
function()
if(IsSpellInRange("judgement", "target") == 1) then
return true
else
return false
end
end
And the Untrigger:
function()
if(IsSpellInRange("judgement", "target") == 1) then
return false
else
return true
end
end
So I just have to add a check for Crusader Strike in there somewere.
This is what you want:
function()
if(IsSpellInRange("judgement", "target") == 1) then
if(IsSpellInRange("crusader strike", "target") == 1) then
return false
else
return true
end
else
return false
end
end function
Kroann, I think you want untrigger something like:
function()
--if judgement not in range, untrigger
if(IsSpellInRange("judgement", "target") ~= 1) then
return true
--or if crusader strike in range, untrigger
elseif (IsSpe<span>llInRange("crusader strike", "target") == 1) then
return true
--otherwise, don't untrigger
else
return false
end
end
I might be guessing wrong on the syntax/language you're using, so "~=" is supposed to be the operator for not equal, and "--" lines are intended as comments. Obviously change to the language you're using if I guessed wrong.
Maybe it's a stupid question (I'm new to WeakAuras), how do I create a "smart say" (posting a message either to raid channel when in raid or to group channel when in group). Is this possible with one action? Don't want to mess around with multiple events for different group situations that do about nearly the same.
Just wanted to say thanks for the addon and thanks for replacing PowerAuras! PA quit working right on just a couple of my characters while still working properly on others, and I never figured out why (even after deleting and re-importing or recreating my auras). So then I heard about WeakAuras and moved right over. It's all been good ever since.
My favorite aura system I set up so far is for my pvp Assassination rogue... without taking my eyes off the center of my screen I now am always aware of how many combo points I have, how many stacks of Deadly Poison on my target, timers for how long is left on Rupture and Slice & Dice and Recuperate, and a ton of other stuff. Pretty soon I'll just turn off the display of my ability bars entirely and operate only by auras.
Hi. Is there any way to keep only the analogue cooldown display without the text cooldown, and make the stacks text bigger?
I'd like to offer my sincere apologies since I have derived some conclusions based on BrokerCPU with profiling off. While the general idea might turn out to not be too off, I might come back with better conclusions.
Yes, the dynamic groups with icons do seem to increase RAM usage rapidly compared to other systems, however, the CPU impact is not as spectacular.
So... I'm trying to make an aura to warn me when I have an item equipped, it triggers fine, but if I replace the item (unequip it), it doesn't dissapear.
Any way to make it dissapear? Here's the code: http://pastebin.com/0wZgHGjx
This is probably normal and common in all addons but informing you that almost all animation effects shown constantly create VERY high CPU usage according to BrokerCPU addon. e.g. from 0.28% cpu it jumps to X5-6 times that if a single little icon gets any animation. I understand this as 'normal' since those are in effect like 'little videos'.
Actually, as much as I hate to admit it, WeakAuras' animations are not as optimally coded as they could be. It's a little embarassing for an addon that was originally created for the express purpose of using less CPU cycles than PowerAuras, and yet PowerAuras' animation subsystem is more efficient. Actually, when I first started working on WeakAuras, I actually planned to have no animation capabilities at all, because I knew an animation system would inevitably be a major source of CPU usage.
Where did things go wrong?
Well, of course, at some point in WeakAuras' development, I realized that it was going to end up being much more than a simple utility for my own use, but rather something I would want to share with the public. In that case, animations would be a highly desirable feature, so I felt obligated to include them. But, at this point in my addon development career, I didn't really understand Blizzard's Animation widget subsystem, which was a pretty new addition to the WoW API at the time, if I recall correctly.
Basically, Blizzard's Animation widget system allows a developer to specify certain preset animations to be applied to any UI element, and the WoW graphics engine will handle that animation. The idea is that WoW's graphics engine, which runs in native C code, will be much better at doing this than using Lua (addon) code to update the look of the UI elements on every frame. This is because whenever the Lua (addon) code has to interface with the C (WoW engine) code to get something to change graphically on screen, there is significant overhead involved. PowerAuras uses the Blizzard Animation widget system to animate things, whereas WeakAuras uses a custom animation system that is written all in Lua and updates on every frame.
So why not change WeakAuras to the faster animation system? A couple reasons. The most important reason is because the Blizzard Animation widget is very limited in terms of what types of animations can be specified and how those animations apply to groups of UI objects. In order to use the Blizzard Animation widget system in WeakAuras, I would have to either greatly reduce the capabilities of WeakAuras' animations - custom animation paths would be impossible, color animations would be impossible, all animations for Progress Bars and Progress Textures would be either impossible or very difficult - or use the system in such a heavy-handed and micromanagerial manner that it actually wouldn't provide any efficiency benefit.
I did, at one point, consider attempting to create a hybrid system: a system that would analyze the needs of any animation specification fed to it, run it on the Blizzard Animation widget system if possible, and use the custom Lua system if anything that was impossible with that system was needed. This ended up being far more of a hassle than I expected; messing around with the Lua animation system I had created often had far-reaching and surprising ramifications throughout the program, and getting even the simplest Blizzard Animation widget animations to work flawlessly with every other WeakAuras system (especially things like animated dynamic groups) was challenging to say the least. In the meantime, I came to realize that Blizzard's CPU profiling functions are very flawed, and started to question many things I thought I knew about CPU efficiency. In the end, I decided that it just wasn't worth the work, considering many of the most popular, unique, and useful displays and animation functions in WeakAuras (especially Progress Bars and Progress Textures) wouldn't be able to use the more efficient system anyway, and the Blizzard Animation widget system may not have been as big of an efficiency improvement as I initially thought.
Now, since I brought up the subject of Blizzard's CPU profiling functions (which are what BrokerCPU is based on) being flawed, I feel like I expand on that subject a bit. There are several major problems with it. The first is that it's often difficult to accurately attribute CPU usage to the proper addon, especially when libraries (like Ace 3) are being used. When an addon uses a function from a library, the CPU usage for that function will be attributed to the addon that first specified a need for that library. This is not really an issue that effects WeakAuras considerably, since I used very few libraries, but it's a big one for other addons, especially ones that depend on libraries heavily for combat event processing (things like BigWigs).
A more pertinent problem is that the CPU profiling functions also do a very poor job of profiling OnEvent and OnUpdate handler functions. If you're not familiar with WoW's addon code environment, OnEvent handler functions occur whenever a game event (such as a combat log message, an aura change, etc.) occurs, and OnUpdate handler functions are called on every frame of game animation (so, 60 times a second if you're running at 60 FPS). CPU usage statistics for these handlers seem to be attributed sometimes to the frames on which they are defined, attributed sometimes to the addon itself, and sometimes simply not registered at all. There was a point at which I had written a comprehensive CPU profiling suite for WeakAuras that was designed to measure the CPU usage of each of its separate subsystems (animations, event handling, progress bar and texture updating, config UI usage, loading/unloading, etc.) and each separate display defined by the user. But I had to cut the feature because the statistics shown were so inaccurate that they were entirely useless: some subsystems never registered any CPU usage, some considerably less than they should, the separate subsystem CPU usage stats never added up to the full addon CPU usage stat, the CPU profiler statistics never matched the values I obtained by inserting custom time-keeping code into various functions, etc.
Third, rather similarly, I'm not entirely convinced that the CPU profiling functions even "count" all CPU usage in the first place. It seems to me that they only measure Lua execution time, which means any time you're using particularly heavy WoW API calls - times when the Lua code will defer to the WoW engine's native C environment to get some work done - calls like the Animation widget system, the CPU profiler will just ignore the CPU usage of the "heaviest" part of your code. I never formally tested this suspicion, but suffice it to say, there is definitely a lot of CPU usage that the CPU profiling functions simply don't account for at all.
The final major problem with the WoW's CPU profiling functions is more philosophical than technical. The thing is that not all CPU usage actually affects your gameplay experience in the same way. I can think of no better way to demonstrate this than by WeakAuras' configuration UI's loading process. In the early versions of WeakAuras, it become immediately apparent that having a large number of displays specified would cause the configuration UI to "freeze" when you first tried to open it. This was because WoW game engine and the addon Lua code run on a single thread, which means that whenever an addon needs to accomplish some task, it literally pre-empts all other game functions - essentially, freezes the game - until that task is complete. Creating and displaying all of the sidebar buttons in the UI on the initial load of the WeakAuras configuration was taking too much time, and causing the game to freeze until it was finished. So, the solution to this problem: make the sidebar buttons "lighter" so they don't take as much time to load? No! The solution was to load the sidebar buttons one at a time and release control back to the game engine every so often so that frame updates etc. could still occur normally. This is essentially using the concept of asynchronous execution, which is very common in application programming, but not an available feature in WoW's addon code environment. But, it can be emulated using OnUpdate handlers and timekeeping code, and a lot of WeakAuras' heaviest tasks (which are almost all part of the configuration UI) are run on these emulated asynchronous execution handlers.
The point is that the loading process uses the same amount of CPU time as it ever did - probably more, because of the overhead of the asynchronous execution emulation - but it is a much much smoother experience for the end user because the CPU usage is spread over multiple frames. Realizing this, it becomes apparent that naively additive CPU usage statistics, such as those displayed by BrokerCPU, are not really enough to identify the addons that really effect your gameplay experience. They can be useful for catching addons that cause general framerate slowdown in heavy raid combat situations. But there is a much more pervasive and evasive problem in the WoW addon CPU usage paradigm that I refer to as "micro-stuttering", where an addon will spend several tens of milliseconds doing some large task, but use no CPU time anytime else. The amount of time spent can be so long that it causes a perceptible stutter in your framerate, or it can be subtle enough that you can't really tell it's happening unless you spend some time playing without addons and notice how much smoother everything looks all the time, even when your framerate reading is the same. I actually wrote a Broker addon that tried to catch these micro-stutters and provide CPU usage statistics only for the duration of the stutter... but unfortunately, because of the shortcomings I previously mentioned with regards to the CPU profiling functions, it turned out to be pretty useless. Some stutters would have identifiable culprits, but most of time, there would either be no or very little CPU usage by any addon during the stutter.
Anyway, this comment turned out to be far far longer than necessary to answer your question. I guess the TL;DR is that I'm acutely aware of the CPU usage of animations in WeakAuras, but I have no plans to change it. And you shouldn't really worry about it anyway. And if you are really worried about it, you shouldn't use animations in the first place.
I've heard this about BrokerCPU addon by many addon developers. And it makes sense. The API it is based on appears inefficient. However, disabling addons that do show high on it does seem to most of the time increase FPS. For example, I saw a significant increase in FPS in Ultraxion 25 with Recount off after BrokerCPU reported it having very high CPU time. The Recount guys do admit that the addon is not lightweight at all, with no plans to make it lightweight.
All I'm saying is, the API is inefficient to be accurate I'm sure, but it appears that in many cases, it does make the game have higher FPS if those that reports high are disabled.
I made a very graphic aura for when a debuf needed is missing from a target. However, I do not want it to show on a friendly target. However, if I use the attackable rule it does not show on targets that BECOME attackable (e.g. Ultraxion) unless re-targetted.
Do you know of a way to fix this?
(I mean without removing the rule, as I have it now).
Hey guys I am trying to set up an aura to show me the Escape Artist Icon, when am slowed or immobilized. Is there an easy way to do this rather then make one icon for each specific spell in the game? Can I add multiple checks to one aura or will it only be true if all the triggers are met?
I'm having the same problem as some others. After logging out only the first Aura show in the config. I'm fairly certain it's always the first alphabetically. The auras missing from the config still load when they are meant to, such as in combat, but they are impossible to edit. I will attempt to make some auras with some different loading conditions to see if a specific culprit can be isolated.
This seems like a great addon, one with which I would love to replace Power Auras. Unfortunately, this bug effectively makes it unusable in the long term.