Get an Epic Experience with Premium


Combat Login to Add Favorites
  • World of Warcraft
  • 741 Monthly Downloads
  • Supports: 6.0.3
  • 332,242 Total Downloads
  • Updated 11/06/2014
  • Created 04/10/2009
  • 583 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 19 of 60 Next Last
  • #669
    Great mod! Although it makes some wierd stuff when i add custom spells. Hope this will be fixed.
  • #670
    I think I've sorted some of the weird stuff with regards to the custom spells. Should be working after I commit the changes tonight.
  • #668
    After recent updates Watcher working again for warriors. However after additional tests i still have some troubles. It seems right now watcher can track overpower with default settings.
    To fix problem I modified existing spell "Overpower" to track Taste for Blood buff on player, and its solved problem, but only when i stay in battle stance. However, as soon as i change my stance (to berserker or protection) addon immediately stop detecting overpower (even if Taster for Blood proc). (option Set unusable spell's icon as Greyscale=enabled).
    Its important for me to know when overpower is ready in any stance. Is there some way to solve this problem?

  • #672
    Interesting problem. Overpower won't de-grey as it's not usable in that stance. You could use a spell that is able to be cast in that stack and just remember that it actually means Overpower but that's messy. There is one thing I could do but it would means adding some extra settings to the addon.
  • #667
    grrrr i really don't care for watcher i liked ShotAndAwe alot better with my hunter probly noway that it will be updated for this patch or to better use watcher is there any place that explains it more to i may adept to it...thanks
  • #664
    Got it more or less working on my hunter now - thanks for the fix!

    I've been trying to make Watcher track the improved steady shot proc, for this I decided that the easiest way was to add another steady shot spell to my list, like the Aimed shot and Aimed shot /w Fire! I can modify the existing steady shot spell, and I can create a new "Improved Steady Shot" spell but I get a crash when I try to set the spell for the new one to "Steady Shot", crash dump is below. I think what I want to do is to do is have Improved Steady shot higher than arcane shot in my prority que, then regular steady shot below. But with the Improved steady shot I am setting the "Adjust Time from DOT Threshold" box to 1.5 seconds.

    Thanks again for fixing the last bug so quickly and for the great addon!

    Date: 2010-10-20 15:30:27
    ID: 2
    Error occured in: Global
    Count: 1
    Message: ..\AddOns\Watcher\Options.lua line 177:
    attempt to index field 'cd' (a nil value)
    (tail call): ?
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[2]"]:9:
    [string "safecall Dispatcher[2]"]:5
    (tail call): ?
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[3]"]:9:
    [string "safecall Dispatcher[3]"]:5
    (tail call): ?
    ...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
    Swatter, v3.1.15 ()
    Altoholic, v4.0.002
    ArkInventory, v3.02
    ArkInventoryRules, v
    Atlas, v1.17.2
    AtlasBattlegrounds, v1.17.2
    AtlasDungeonLocs, v1.17.2
    AtlasOutdoorRaids, v1.17.2
    AtlasTransportation, v1.17.2
    AtlasLoot, vv5.11.07
    AtlasLootBurningCrusade, vv5.11.07
    AtlasLootCrafting, vv5.11.07
    AtlasLootOriginalWoW, vv5.11.07
    AtlasLootWorldEvents, vv5.11.07
    AtlasLootWrathoftheLichKing, vv5.11.07
    AtlasLootFu, vv5.11.07
    BonusScanner, v5.3.1
    DataStore, v4.0.001
    DataStoreAchievements, v4.0.001
    DataStoreAuctions, v4.0.001
    DataStoreCharacters, v4.0.001
    DataStoreContainers, v4.0.001
    DataStoreCrafts, v4.0.001
    DataStoreCurrencies, v4.0.001
    DataStoreInventory, v4.0.001
    DataStoreMails, v4.0.001
    DataStorePets, v4.0.001
    DataStoreQuests, v4.0.001
    DataStoreReputations, v4.0.001
    DataStoreSpells, v4.0.001
    DataStoreStats, v4.0.001
    DataStoreTalents, v4.0.001
    DBMCore, v
    FishingBuddy, v0.9.9a
    GearScore, v3.1.20 - Release
    Grid, v1.40000.1370
    HealBot, v4.0.1.1
    HunterFocusBar, v0.93beta
    MikScrollingBattleText, v5.5.83
    Omen, v3.0.11
    oUF, v1.3.24
    RazerNaga, v1.2.0
    RazerNagaCast, v
    RazerNagaConfig, v
    RazerNagaRoll, v
    RazerNagaTotems, v
    RazerNagaXP, v
    Recount, v
    SexyMap, v
    SlideBar, v3.1.15 ()
    SpamMeNot, v4.0
    SpellFlash, v5.24
    SpellFlashArgentTournamentMounts, v1.17.2
    SpellFlashCore, v1.21
    Stubby, v5.8.4723 (CreepyKangaroo)
    SunnArt, v3.47
    Titan, v4.3.9.40000 - Revision 386
    TitanBag, v4.3.9.40000
    TitanClock, v4.3.9.40000
    TitanCoords, v4.3.9.40000
    TitanGoldTracker, v4.3.9.40000
    TitanLootType, v4.3.9.40000
    TitanPerformance, v4.3.9.40000
    TitanRepair, v4.3.9.40000
    TitanVolume, v4.3.9.40000
    TitanXP, v4.3.9.40000
    Watcher, v2.12
    WhoFramedWatcherWabbit, v1.5
    XPerl, v3.1.0 Beta 4
    XPerlArcaneBar, v
    XPerlParty, v
    XPerlPartyPet, v
    XPerlPlayer, v
    XPerlPlayerBuffs, v
    XPerlPlayerPet, v
    XPerlRaidAdmin, v
    XPerlRaidFrames, v
    XPerlRaidHelper, v
    XPerlRaidMonitor, v
    XPerlRaidPets, v
    XPerlTarget, v
    XPerlTargetTarget, v
    BlizRuntimeLib_enUS v4.0.1.40000

  • #665
    I managed to work around by modifying the existing steady shot spell name to "Imp Steady Shot" and adding a new "Steady Shot" spell - it seems to work fine when creating a new watcher spell with the same name as a wow spell, just giving problems when the spell name isn't set when the new spell is added.
  • #666
    Found another minor bug. After renaming the old steady shot spell and adding a new one I got another crash when trying to alter my priorities. I managed to work around by setting the number of priorities to 1, reloading my UI and setting them up again. I guess there is a problem with the string compaisson with the ComboBox values, but I don't know enough about LUA or wow addons to be any more prescise. Crash dump is below, minus the addons, which haven't changed since the last post.
    Date: 2010-10-20 15:49:54
    ID: -2
    Error occured in: Global
    Count: 2
    Message: attempt to compare string with number
    (tail call): ?
    [C]: ?
    ...ic\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:592: SetList()
    ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1538: FeedGroup()
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[3]"]:9:
    [string "safecall Dispatcher[3]"]:5
    (tail call): ?
    ...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
    ...libs\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua:156: SelectTab()
    ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1574: FeedGroup()
    ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1814: Open()
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[2]"]:9:
    [string "safecall Dispatcher[2]"]:5
    (tail call): ?
    ...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
    [C]: Show()
    ..\FrameXML\InterfaceOptionsFrame.lua:28: InterfaceOptionsList_DisplayPanel()
    ..\FrameXML\InterfaceOptionsFrame.lua:46: InterfaceOptionsListButton_OnClick()
    [string "*:OnClick"]:2:
    [string "*:OnClick"]:1
  • #671
    Just a heads up. I think I might have fixed these errors for the next build. So should be working in v2.14
  • #660
    Hi prior to patch I was using watcher with my combat rogue and I used to love it... after patch though it isnt u intend tofix this so other classes can set it too??? regards maxi
  • #662
    Hi, just replied to your pm. Just to make this public. The addon shouldn't break for rogues anymore from v2.13 forwards.
  • #659
    Getting the error below on load with my warlock. Looked at warlock.lua and it seems different from all the other class lua files (perhaps it was part of a rewrite?). Calling functions like addicon, Apply, Debuff, etc. that I don't see in Core.lua

    1x Watcher-2.12\warlock.lua:42: attempt to call method 'Apply' (a nil value)
    Watcher-2.12\Core.lua:198: in function `SetDefaults'
    Watcher-2.12\Core.lua:211: in function
    (tail call): ?:
    : ?

    (tail call): ?:
    AceAddon-3.0-5:510: in function `InitializeAddon'
    AceAddon-3.0-5:622: in function

  • #661
    The warlock lua was provided by somebody else but I seem to have messed up on installation, I missed a function. Will be fixed in the next build.
  • #658
    The new version appears to be working just fine for my hunter. Aimed Shot w/Fire! including.
  • #655
    On my paladin, it's mostly working great! One small problem: on the priorities tab, every spell's raid-boss-only suppress checkbox reads "priority 1" for primary spec and "priority 2" for secondary spec. I tried checking the box anyway (to suppress AW except on raid bosses), and it still worked. (I didn't realize it at first, though, because I didn't realize heroic training dummies counted as raid bosses. Ha ha.)

    One question/suggestion: a way to better highlight abilities that become abruptly available (in this case, TV and insta-exo, for example). This may vanish when the latency compensation slider is put into play, but I find that with the new queue system, I'm missing these on the first available GCD because they are so much less obvious when they appear and only move the space of the GCD on the bar. Is there, or could there be, a way to make them pop up larger or more distinctively?
  • 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 »

Gamepedia Free-shirt Giveaway