Get an Epic Experience with Premium


Combat Login to Add Favorites
  • World of Warcraft
  • 631 Monthly Downloads
  • Supports: 6.0.3
  • 336,185 Total Downloads
  • Updated 11/06/2014
  • Created 04/10/2009
  • 586 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 13 of 61 Next Last
  • #771

    First of all, I DON'T play a hunter, but  if I were to try to set it up, here's how I'd go about it.

    Wherever you put Black Arrow in priority, Cobra Shot should be just above it. Modify Cobra Shot so that it is only suggested to be cast when you have something like 45 or 50 focus or less. Below both Cobra Shot and Black Arrow should be Arcane Shot. 

    A Murder of Crows (and any other cooldowns/DoT's) should be placed above Arcane Shot in priority as well, unless it's an instant cast that's off of the GCD. 

    So your priority list would look like this:

    1. Instant-casts that are off of the GCD/raid buffs/stuff you should just always use the moment's it's needed or available.

    2. Cooldowns/Procs that are more important than even the upkeep of Black Arrow and other DoT's

    3. Cobra Shot (With a requirement that it only show when you have under 47 focus)

    4. Black Arrow

    5. Cooldowns/Procs that are less important than Black Arrow, but more important than Long Cooldowns like A Murder of Crows

    6. A Murder of Crows

    7. Other procs/cooldownds less important than A murder of Crows but more important than Arcane Shot

    8. Arcane Shot.

    Murder of Crows might be an important cooldown to use, but my guess is it's low on the priority list because of the long cooldown.... whether you use it now, or you wait 2 seconds to use it so that you could squeeze in another tick of Black Arrow, the dps from Murder of Crows will likely still be the same. Having Cobra Shot so high on the priority list means that you'll always maintain your focus over the required focus (which I put at 47), which should be enough to cast Murder of Crows and Black Arrow as needed.

    What you should see is Arcane Shot and Cobra Shot dance back and forth as you go above and beyond the Cobra Shot's minimum focus requirement. You only really need to pay attention to this as the high-focus requiring cooldowns/DoT's approach cast time... otherwise you can just go arcane shot crazy and cast Cobra Shot when you're low on focus.

    If that works, awesome, otherwise if you think there's still issues that need to be addressed, please say so.

    Last edited by nothingsknower on 9/2/2012 11:34:46 PM
  • #770

    howdy! glad you like the work we've done!

    Arcane Shot (as i understand it) is most times a filler spell. As such, what i do with ALL my filler spells is set it as the very last priority. Even if the spell shows up, it shouldnt matter, because you will sell a higher priority spell on top of AS.

    the resource stuff is always going to be more of an "intuitive" function. That means you will be responsible for pushing what ever you need to gain the resources you want, instead of having the addon tell you. the game as is has too many variables per encounter to configure this addon to those purposes. 

    the good news is, theres a number of ways that you can customise this addon in game to work exactly (or close to it) as your playstyle demands. much like your self fix for AS, you can also create a new AS with thrill of the hunt if you like. you can also set cobra shot to be the number 1 priority IF your focus dips below a certain amount. personally what i do (for a murder of crows situation) is when i see a CD coming down the bar that i know needs a resource, but its greyed out, thats when i start trying to build the resource by using whatever spell will do that for me.

    also, looks like i missed putting thrill of the hunt into the hunter lua. that will be a part of the next patch.

    in time, it is my hope to have the addon work 100% out of the box, and per spec, with possible modules, but that is a long way down the road.

    hope that helps.

    Last edited by Hallowman100 on 9/2/2012 3:38:30 PM
  • #768

    Very nice addon! Just discovered it! Thanks for supporting it.

    One question. I'm new to the hunter class and I set up my rotation according to the one suggested at Elitist jerks, but I come to a situation very often where I am suggested to use Arcane Shots even if I, for example, don't have active Black Arrow DoT ticking and the spell is off cooldown. A Murder of Crows never even being suggested, it just drowns in priority list with its high focus cost. Would be nice to have an option to ignore resource requirement of spells so I know that I need to do a couple of cobra shots to gain focus, because I need to renew my Black Arror for example and I don't want to care about Arcane Shots in this interval even though I can shoot one or two. 

    I know that I should manage my focus myself, but I think it would be easier if it prioritised abilities regardess of focus requirement. It seems to me that I need to use Arcane shot only when I have all other attack abilities on cooldown. Currently it shows Arcane Shot to me just when I have enough focus for it.

    I used to have CLCRet on my Ret Paladin and that addon ignored mana reqs by default. I know that focus is a little bit different because it is constantly spent and regained rapidly, but still.

    One another thing that would be potentially cool is to have a special tick for abilities like Cobra Shot that regenerate the main resource so it would show it when I have no focus for the ability that I need to use.

    Please feel free to correct me on my points as I'm not very experienced in endgame hunter play. I just wrote my general observations when I compared what addon suggests me and what I'm used to. And I actually saw DPS drop when I followed the addon suggestions mainly because of frequent lower cost spell cost suggestions like Arcane shot.

    Looking forward to hearing from you! Thank you for your hard work!

  • #769

    Ok, I guess I know how to solve Arcane Shot problem - I will just make it require at least 50 focus to be shown on the list. But now I'm having problems with configuring differen case for Arcane Shot with active Thrill of the Hunt. I configured it the same way Explosive Shot with Lock'n'Load is done but it still doesn't work. It never shows for me.

  • #767

    all hail to nothingsknower. i went to the wow forums looking for help on getting this addon back up and running. looks like one of the last updates we'll see in a while is now up, with all the class' taken care of. a lot of the spells already have their settings pre set up, so pretty much all one need do is set the priority list and rock n roll.

    dump yer saved variables for this addon before starting up the new one, it should run smoothe as silk after that.

  • #764

    First I have to say thanks so much for updating this add-on, its really become a must have on all my chars.

    I noticed that I kept getting a message saying that my add-ons were causing a bunch of errors, so after looking into it I found the following: 

    Message: Interface\AddOns\Watcher\gcds.lua:116: attempt to compare number with nil
    Time 08/29/12 21:31;50
    Count: 17180
    Stack: [C]: ?
    Interface\AddOns\Watcher\gcds.lua:116 in function 'gcd'
    Interface\AddOns\Watcher\Core.lua:805: in function



    Any Ideas?

  • #765

    I think I got it. I was on a low level priest that doesn't have fortitude yet. Seems to work well with my other toons.

  • #766
    Quote from alpinebreeze »

    I think I got it. I was on a low level priest that doesn't have fortitude yet. Seems to work well with my other toons.

    ya that would do it... the addon uses a certain few generic spells who are on the GCD to determine the length of the GCD. This is an example (among many others) where the addon wasn't particularly well designed to handle situations that are outside the norm... like when spells get removed from the game. The author was in the middle of a lot of work on the addon when he suddenly abandoned it, so it will be some time before I can interprete his half-way completed work and close up all the little holes. 

  • #758

    Hey there, I was using FaceShooter till today. Since it's not supported anymore, for now at least, I started to look for a replacement. What a nice surprise this find was! Nicely done mate, after switching off what I don't need, works like a charm!


  • #757

    Thank you so much for working on this addon again.  I can't tell you how relieved I am to be able to continue to use this addon.  It's by far my favorite!

  • #753

    Heyas,  looks like altho this (or at least my edited version) were working on beta just fine, but with live Im getting the following error:


    Message: Interface\AddOns\Watcher\Core.lua:931: attempt to call field '?' (a nil value)
    Time: 08/28/12 15:51:11
    Count: 1
    Stack: Interface\AddOns\Watcher\Core.lua:931: in function `SetPriorityFrame'
    Interface\AddOns\Watcher\Core.lua:585: in function `CreatePriorityFrame'
    Interface\AddOns\Watcher\Core.lua:349: in function `?'
    ...non\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...non\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
    [string "safecall Dispatcher[1]"]:4: in function <[string "safecall Dispatcher[1]"]:4>
    [C]: ?
    [string "safecall Dispatcher[1]"]:13: in function `?'
    ...non\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
    ...ace\AddOns\Bagnon\libs\AceEvent-3.0\AceEvent-3.0.lua:52: in function <...ace\AddOns\Bagnon\libs\AceEvent-3.0\AceEvent-3.0.lua:51>

    Locals: self = <table> {
    defaults = <table> {
    powertypemin = <table> {
    sounds = <table> {
    CancelTimer = <function> defined @Interface\AddOns\Broker_TolBarad\Libs\AceTimer-3.0\AceTimer-3.0.lua:311
    ShowHideFrame = <function> defined @Interface\AddOns\Watcher\Options.lua:1472
    dir = <table> {
    GetSeventhshowraidboss2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2602
    SetFont = <function> defined @Interface\AddOns\Watcher\Options.lua:2667
    SetLabelCol = <function> defined @Interface\AddOns\Watcher\Options.lua:1787
    GetShowCombat = <function> defined @Interface\AddOns\Watcher\Options.lua:1498
    SetDefaults = <function> defined @Interface\AddOns\Watcher\Core.lua:59
    Get2Keybind2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2207
    ScheduleTimer = <function> defined @Interface\AddOns\Broker_TolBarad\Libs\AceTimer-3.0\AceTimer-3.0.lua:276
    SetFifthPriority = <function> defined @Interface\AddOns\Watcher\Options.lua:2428
    GetFont = <function> defined @Interface\AddOns\Watcher\Options.lua:2679
    SetSeventhPriority2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2567
    SetThirdshowraidboss2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2634
    SetSeventhshowraidboss2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2606
    ShowBarText = <function> defined @Interface\AddOns\Watcher\Options.lua:1321
    SetRipCombo = <function> defined @Interface\AddOns\Watcher\Options.lua:1744
    db = <table> {
    GetFifthPriority2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2543
    SetSegmentSize = <function> defined @Interface\AddOns\Watcher\Options.lua:2014
    SetLabel21 = <function> defined @Interface\AddOns\Watcher\Options.lua:1917
    GetSeventhPriority2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2563
    swingtype = 0
    GetThirdshowraidboss2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2630
    GetFifthPriority = <function> defined @Interface\AddOns\Watcher\Options.lua:2424
    SetLabel6 = <function> defined @Interface\AddOns\Watcher\Options.lua:1899
    Activateaxis = <function> defined @Interface\AddOns\Watcher\Options.lua:1964
    scan = <function> defined @Interface\AddOns\Watcher\Core.lua:399
    SetFifthPriority2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2547
    GetSegmentSize = <function> defined @Interface\AddOns\Watcher\Options.lua:1547
    GetLabel21 = <function> defined @Interface\AddOns\Watcher\Options.lua:1595
    unbindkeys2 = <function> defined @Interface\AddOns\Watcher\Options.lua:2321
    GetLabel23 = <function> defined @Interface\AddOns\Watcher\Options.lua:1603
    SetBar2Col = <function> defined @Interface\AddOns\Watcher\Options.lua:1811
    SetLabel24 = <function> defined @Interface\AddOns\Watcher\Options.lua:1935
    UNIT_ENTERED_VEHICLE = <function> defined @Interface\AddOns\Watcher\Core.lua:436
    AddPriorityTable = <function> defined @Interface\AddOns\Watcher\Options.lua:1287
    ActivateShowRaid = <function> defined @Interface\AddOns\Watcher\Options.lua:1447
    RAID_ROSTER_UPDATE = <function> defined @Interface\AddOns\Watcher\Core.lua:456
    GetBar8Col = <function> defined @Interface\AddOns\Watcher\Options.lua:1689
    GetSecondshowraidboss = <funct

  • #754

    That error seems to happen when you have/had something set in your priority list, but that something no longer exists. I need to build something that detects that problem and clears out the priorities automatically, but I don't have that set up yet. You'lll have to delete your saved variables for that addon to get it to work right.

  • #763

    Posted a followup directly below your post, just wanted to make sure you saw it :)

    Ty again for fixing this one up!

  • #762
    Quote from Jeslinis »

    "Well, by default mangle is supposed to show up and be timed to cast with the debuff that causes slower movement. you can override this by changing the "spell to track" to blank, removing infected wounds"

    Problem is.. I deleted it (it let me).. and now when I created a new mangle, its unable to track it.

    Im gonna delete the stuff pertaining to watcher in the wtf folder and see if that fixes.

    edit: where exactly is this stuff to delete? I see saved variables in my specific character (for the druid).. but I think the spell variables are global... However, there is no watcher.lua in my global saved variables?

    the variables are character specific, so you can delete the file for your character.

  • #761

    and basically continuing on here:


    Deleted my watcher.lua in my druids folder. this reset the addon for my druid.

    went into spell stuffs --

    For mangle: removed it tracking by Aura for the snare debuff (you should make this defaultly track CD only)

    For thrash: removed it tracking for its bleed aura only (you should make this defaultly track CD only)

    for lacerate; removed it tracking for its bleed aura only.


    Appears to be working


    Note: does not have a base default for Faerie Fire. .. Only Faerie swarm, which most tanks wont take due to pulling a mob by snaring it = bad (like why prot paladins do NOT glyph for snare shield throw)

  • 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 »

Darkest Dungeon Wiki Editing Contest