Get an Epic Experience with Premium


Combat Login to Add Favorites
  • World of Warcraft
  • 860 Monthly Downloads
  • Supports: 6.0.3
  • 329,398 Total Downloads
  • Updated 11/06/2014
  • Created 04/10/2009
  • 582 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: 3.0RC2

About Watcher


Watcher helps you manage your rotation by consolidating and condensing information onto a simple to read display. It allows you to focus on things that are more important like boss mechanics, your situational awareness, or listening to your raid leader; instead of being bogged down in the act of performing your rotation.

With deep and powerful configuration options, Watcher allows you to see exactly the information about your rotation that you want to see. However, it comes with a wide variety of defaults for many classes and specs to get you started. Properly configured and customized, Watcher is a mighty tool for both new players just learning their classes as well as players that have been raiding since classic.

A GIF of Watcher running on a 2H Frost Death Knight:

Watcher also includes:

  • A dynamic event-driven architecture; unlike some other rotation helping addons, Watcher won't tank your framerate
  • Masque support for skinning icons
  • A large number of visibility options to control exactly when Watcher shows up
  • And more!


Through the use of a priority system as well as powerful filters for spells and abilities, Watcher displays your rotation in the familiar context of a timeline, with higher priority spells stacked on top of lower priority ones and upcoming abilities placed on the timeline according to when they will become useful. Abilities on the timeline are waiting for a wide variety of things: coming off of cooldown, waiting for resources, monitoring a DoT, etc.

Attacks ready to be performed are displayed using a stack with the most prioritised attack shown on top.

Ability keybinds can be optionally displayed.


More to come in this section later.

A slightly old full walkthrough of Watcher configuration is located here

Display settings documentation.

Priorities can be adjusted to where they suit you.

Spells can be configured to be cast based on a wide variety of filters whether that be the presence (or lack there of) of an aura on you or your target, your target's health percent, your mana/resource percent, whether a spell can be stolen or interrupted, whether you have a particular talent or glyph, among other options.


Found a bug? Report it!

Want a feature? Request it!


Want to help make the defaults better? Vist the class forum posts for each default:

Death Knight | Druid | Hunter | Mage | Monk | Paladin | Priest | Rogue | Shaman | Warlock | Warrior

Here's a tutorial for creating and exporting defaults.

tag 3.0RC2
Michael P. Starkweather <>
2014-11-06 23:18:29 -0600


Michael P. Starkweather:
    - Some changes to message and TOC for the RC2
    - Change anticipation support in the secondary resource filter to only count anticipation if you have more than 5 combo points.
Marci @ Hellscream:
    - Fixed Feral defaults to properly not cap CP and not Thrash if you have SotF.
    - Added Anticipation support to Combat Rogue Defaults.
Michael P. Starkweather:
    - Fix for not using the correct spellId for the power filter change.
    - Fix accidental bug with not specifying unit
    - Remove check if a channel has a cooldown in the usability filter.
    - Change to remove the cost of the currently casting spell from the player's mana pool in the power filter
Marci @ Hellscream:
    - Various changes to Hunter defaults.
    - Made changes to ProtPaladin defaults to account for Talented buffs and procs.
    - Berserker Rage added to ProtWar defaults.
    - Rererere-fixed Jab. This should work for everyone and be simpler.
    - Added Force of Nature to Balance defaults.
    - Insanity issues in Priest Defaults, should fix.
    - Fixed Jab. Again. Apparently there is a different SpellID depending on MH weapon. 6 SpellIDs. 6 Filters per SpellID. 36 separate filters for Jab. 'Cause "Reasons". Thanks Blizz.
    - Fix for Shadow Word: Insanity.
    - Fixed SpellID issue with Jab. Different SpellID based on 2h vs DW. Wierd.
    - Fixes to Frost priorities and filters.
    - Added Brewmaster defaults.
    - Added Resonating Power, Bloodbath, Sudden Death.
    - Initial pass at Shadow Defaults.
    - Adjusted Prot defaults, to account for Bastion of Glory, and not capping Holy Power, and use Shield of the Righteous.
    - Thrash Fix.
    - Balance defaults in.
    - Small changes to ProtWar defaults. Probably more will be needed.
Michael P. Starkweather:
    - Spell texture should now always change if the spell texture changes.
    - Should now properly never show things that are usable on the GCD.
Marci @ Hellscream:
    - Added Prot Defaults.
    - Fix to Demonic Fury and Burning Embers reflected in the Defaults.
Michael P. Starkweather:
    - Demonic fury/burning embers is now fixed.
Marci @ Hellscream:
    - Fixed issues with various Assassination defaults.
Michael P. Starkweather:
    - Switch to using the frequent power updates for both power and secondary resource
    - Change to the max slider in secondary resources to allow for up to 1000. A soft max will still be set by the type of secondary resource.
Marci @ Hellscream:
    - Changes to Rend handling, Execute SpellID for Arms.
    - Changes to bugged Warlock defaults.
    - New Paladin defaults, including fixes to Exorcism and reaction to Divine Purpose procs.
Michael P. Starkweather:
    - Change the "Towards Solar" and "Towards Lunar" so that you are able to actually read them.
    - Changes to Mage, Warlock, and Warrior defaults -- thanks Marci-Hellscream.
    - Fix for Ticket #75 - Slam broken in Defaults.
    - Always choose the spellId that we know to add
    - Switch to LibSpellbook for adding spells by name, should be a little bit more reliable at adding the correct spell.
    - Now can edit filter set names with a popup, taking care of ticket #51
    - Tiny change to hunter defaults and will not ask to replace. Aimed Shot - Thrill of the Hunt was configured slightly wrong.
    - Secondary Resource filter revamp.
    - Slider is used in Secondary Resource tab instead of entry box, with min and max set by the type of resource.
    - Eclipse: can now specify what direction that the Eclipse is growing
    - Combo Points: can now specify if you want to take Anticipation into account if you are a rogue
    - New API Version.
    - Removes because it isn't needed
    - Adds a cooldown table to each priorityList, this will be for cooldowns and will have a secondary display. Not implemented yet.
    - Adds an optionalBehavior variable to secondaryResource filters. Not implemented yet.
    - Reverse the spellName and dropdownLabel in spell dropdowns. This change is based on how the defaults are playing out.
    - Fixes for defaults for Warrior (ticket #71), Warlock (ticket #58), and Death Knight (ticket #59).
    - Made the secondary resource use the UNIT_POWER event instead of the UNIT_POWER_FREQUENT event.
    - Embedded AceSerializer. We'll use it later for export/import.
    - Fixed issue with Timer not being canceled when the frame is suddenly hiden.
    - Removed the animation calls that I was using to test.
    - No OnUpdate! Frame will now determine it needs to be animating and won't update if it doesn't have to.
    - Also, finally fixed issue with stacking at load. Stupid undocumented Blizzard API bugs
    - Fix for Warlock Soul Shards and Burning Embers not returning a decimal for the actual amount of those resources. Blizzard API is a little weird with these two.
    - Fix for desaturate sometimes not being applied when under/over the correct amount.


First Previous Page 17 of 60 Next Last
  • #699
    Hmm, I had another idea for an additional feature, its still something I think thats important to DPS classes though not really a dps feature. That would be the ability to show an icon based on your current threat.

    This way you could add into your rotation your threat reducing ability, Feign Death, Fade, Soul Shatter, Invisibility, Cower (Druid cat form) and make it highest priority, set it to show when your threat passes say 90%. So when you generate too much threat you see the icon telling you to use your threat reduction skill to reduce it.
  • #700
    Definitely implementable. I'll put it on the list for things to do.
  • #698
    I know this was asked for before, but I am going to ask again, in redoing the dk.lua file. I was unable to implement 2 spells, Pestilence and Outbreak, this is because they require the checking of 2 debuffs, Blood Plague and Frost Fever.

    Also Pestilence also requires the ability to put a pseudo cooldown, so the spell will only show up every 30 seconds even if it is available, otherwise it will always be shown as the spell to use.

    Would it be possible for you to add multiple buff/debuff checking using an AND, OR, XOR logic, and the ability to restrict spells to only be shown every set time interval whether they are available or not.
  • #697
    I have updated the spell_functions.lua significantly, I have added functions for spells based on number of combo points/holy power, and health, as well as fixing the existing one for mana.

    I also updated all the existing functions such as Buff, Debuff, Direct, Apply etc... so that they take extra optional arguments to cast only on combo points/holy power, health or mana.

    I also updated the dk.lua, it includes every castable Death Knight spell including talents and cataclysm spells, and is set up using the spell_functions.lua functions.

    I will put both lua code into tickets on the CurseForge development site, hope you find them useful.

    I hope to add all the spells to all the other classes eventually, all using the new spell_functions.lua functions.
  • #690
    The addon is mostly working for my fury warrior except for Bloodsurge procs which don't seem to be being picked up. Is there anything that needs to be specifically modified to get it to work or is this a bug?
  • #689
    I have another question ..
    Is there a way to handle the new druid's Sunfire (93402)?
    It replaces Moonfire .. I think this mechanic is unique to this spell ...

    As a suggestion, can we have the ability to track multiple debuffs (AND'ed or OR'ed) for a single ability?
    For example: (If (Moonfire OR Sunfire) is not active, Cast Moonfire)
    -- Because Sunfire will be the same Keybinding as Moonfire ...

    Also we may need to do the following in next builds:
    (If (*X* AND *Y*) is active, Cast *Z*)
  • #692
    I think I can get this implemented. The major deal is just getting it implemented in a decent manner. The OR and AND logic should be the easy part.
  • #693
    Also I don't think Sunfire should be very difficult to implement at all.
  • #688
    Don't really want to be a pain, but I have added a multitude of custom spells to watcher, a lot of based on procs, holy power, runic power etc...

    I would like to be able to share these with other users, the spells I added were all based off the Elitist Jerks websites suggested priorities. In order to do this I would like to be able to add them to the class LUA files, so they were default spells, but I can't seem to work out how to do it from your files.

    If you have time, would it be too much to ask if you could right a very quick tutorial on what the different settings are for in the class LUA files so we can update them ourselves?
  • #695
    If you take a look at the spell function lua file you might get a good look at how to implement some spells simply. Some things that rely on holy power, mana, combo points or health thresholds won't be implementable using these though (not yet anyway). These spells are a bit more tricky and will probably require me setting up a guide or other system to implement them.

    I'll try and get onto it when I get a chance. If you set up a ticket on curseforge for this I'll try and get back to you on it.
  • #687
    Hey Gellin,
    First of all .... thats a brilliant addon you made ... Showing all u need to know without trivializing the gameplay .... Many thx for ur effort ..

    I got some issues using Watcher after 4.0.1. On my Moonkin it works ok .. but on lock it shows error once I click on "Spells" to add some spells. The error is related to "Countreq" field. After some reading up in ur nice code, it seems you set it in the file "spell_functions.lua" at Watcher:Debuff() and Watcher:Apply() which the warlock.lua file uses (which isnt the case with druids, as they have their own functions). After commenting the two lines "def.countreq[k] = stack or 0" and deleting the setting file for my lock, the addon is now working OK.


    May I suggest some changes to the Warlock.lua?
    -- generic spells
    Watcher:addicon("Curse of the Elements", 1490)
    Watcher:addicon("Bane of Doom", 603)

    -- talented spells and procs
    Watcher:addicon("Empowered Imp", 47283)

    --function Watcher:addClassSpells()
    Watcher:Debuff("Curse of the Elements")
    Watcher:Debuff("Bane of Doom")
    Watcher:Direct("Chaos Bolt")
    Watcher:Proc("Empowered Imp", "Soul Fire")

    Watcher:Capitalize("Immolate", "Conflagrate") -- INTO
    -- Because as far as I'm aware, Capitalize(x, y) means y will be more powerful when x is up, but Conflagrate will be disabled when Immolate is not up.

    Watcher:Capitalize("Immolate", "Incinerate") -- INTO
    -- Because only Destro locks make use of Immo to increase Incinerate dmg. and All Destro locks should keep Immolate up.


    I got another Issue I couldnt handle.
    When I add some spells A, B, C and D (in that order) and then delete B, The settings for the other spells seem to get shuffled. Settings like which spell to cast, which aura to look for, ... etc
    Will appreciate if u take a look at this.

    Many thanks
  • #694
    I think the issue with the "def.countreq[k]" might have been due to some saved variables being wonky.

    I'll check out your warlock spells and probably implement them. I don't play the class but the current ones were provided to me by the person who actually created the various functions found in spell_function.lua so I haven't looked into how useful they are.

    The final issue is due to some annoying table system I implemented before. I'll have to do some work to get it working nicely.
  • #683
    Another problem I have noticed, one of the spells I created for my Death Knight, does not show the icon, its a specialized Death Coil cast when Sudden Doom Procs.

    The problem does not seem to be limited just to just user created spells, I also had a problem with scourge strike not showing the icon and it is one of the built in spells.

    Has anyone else experienced this, and does anyone know a workaround?
  • #685
    I believe I've found one of the issues with icons not displaying properly which occurs when you change the table name for the spell. I think that is what caused your problem.

    Scourge Strike appears to be working correctly for me.
  • #686
    Yeah, I don't know why scourge strike icon wasn't showing, on the dummies it is now working fine, and yes the other ones that aren't displaying the icon correctly are ones where the name in the table, is different to the spell name. A couple of my warlock spells are not displaying icons either.

    I don't know how you get the icon for the priorities bar for custom spells, but is it possible to get the icon from the spell name associated with the table entry?

    Thanks for getting warlocks up and running its a big help.
  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Legends of Hoenn Tin Giveaway