Get an Epic Experience with Premium


PvP Login to Add Favorites
  • World of Warcraft
  • 24,767 Monthly Downloads
  • Supports: 6.0.2
  • 361,702 Total Downloads
  • Updated 10/23/2014
  • Created 05/26/2009
  • 456 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: Spy v3.2.1
Support development! **

About Spy

The Spy addon scans for enemy players and announces their presence when they are detected. By warning you about nearby enemy players you can prepare for possible PvP combat.

About Spy

The addon scans the combat log for actions performed by enemy players. If an enemy player is detected the addon will attempt to determine their class, race and level based on the ability that was used. The addon will then sound an alert and add the enemy player to its list.

Spy can be configured to announce enemy player encounters to a chat channel and can also be configured to share data with other Spy users in your party, raid or guild. This allows a group of players to share information and determine the location of enemy players over a vast area.


Spy should work as soon as it has been enabled through the Addons window on your character select screen.

The Spy window

The Spy window will initially appear under your character portrait, but can be moved by dragging the title bar. The title bar contains the following buttons:

  • Target: Sends the total count of players recently detected to chat. Accuracy is dependent on detection ability and Nearby List settings.
  • Clear: Manually clears all enemy players that have currently been detected. Holding the Control key down while clicking this button will enable/disable Spy while leaving it displayed.
  • Left/Right: Navigates between the Nearby, Last Hour, Ignore and Kill On Sight lists. Spy is configured by default to switch back to the Nearby list when the next enemy player is detected.
  • Close: Hides the Spy window. Spy is configured by default to show itself again when the next enemy player is detected. Alternatively you can type /spy show to manually show the addon.

The Nearby list

As enemy players are detected they will be added to the Nearby list. Clicking buttons in the list will target the enemy player (this only works when you are out of combat). Hovering over entries in the list will display a tooltip with the enemy player's details, including the last seen time and location. Right-clicking buttons displays a drop down menu which will allow you to manually:

  • Remove the enemy player from the Nearby list.
  • Add/remove the enemy player to/from your Ignore and Kill On Sight lists.
  • Announce the enemy player's details to a chat channel of your choice.
  • Set multiple Kill On Sight reasons, if the player is on your Kill On Sight list.

If enemy players remain undetected they will be removed from the Nearby list after a configurable amount of time. The Nearby list will always sort by the time each enemy player was initially detected, with those enemy players who are Kill On Sight or actively performing actions being placed at the top of the list.

The Last Hour list

The Last Hour list displays enemy players that have been detected in the last hour. It will always be sorted by the time each enemy player was initially detected, with those most recently detected appearing at the top of the list.

The Ignore list

The Ignore list is where you can place enemy players you have deemed harmless. Spy will not generate any alerts for enemy players on your Ignore list. You can use the drop down menu to add/remove enemy players to/from the Ignore list, or alternatively hold the Control key down while clicking a button in the list to add/remove enemy players.

The Kill On Sight list

The Kill On Sight list is where you place enemy players you especially want to know about. When enemy players on your Kill On Sight list are detected a warning will be displayed and an alarm will sound. You can use the drop down menu to add/remove enemy players to/from the Kill On Sight list, or alternatively hold the Shift key down while clicking a button in the list to add/remove enemy players.

Minimap detection

If you can track humanoids then you will be able to detect known enemies by hovering over their position on the minimap. This does not work in battlegrounds and arenas. The level and class of known enemy players is displayed in the minimap's tooltip.

Players who can track humanoids include:

Slash command list

/spy : shows the list of slash commands.

/spy enable : enables and displays the Spy window.

/spy reset : resets the Spy window to the default position below the character portrait.

/spy config : opens the Interface Addons window where the Spy configuration options are located.

How can Spy help you?

Not wanting to be ganked

Because Spy will alert you whenever an enemy player is detected, it will be extremely difficult for them to attack you by surprise. It will give you the time to determine whether you should prepare to fight or run away.

Wanting to be the one to do the ganking

If enemy players are not using the Spy addon themselves then it is likely that you will know about them before they know about you. This will let you prepare for attacking them by surprise.

Know when your enemies are nearby

Spy will sound an alarm when a Kill On Sight enemy player is detected. Usually you would add an enemy player to your Kill On Sight list when you are certain they will attack you. Spy will remember who your enemies are and will make sure you know when they are around.

Know when enemy players become stealthed

Spy will warn and sound a specific alert when it detects that an enemy player stealths. You should no longer be surprised by rogues or druids attacking you out of the blue.

Looking for enemy players

Because enemy players will automatically be added to the Nearby list whenever they attempt any action you can use the addon to locate enemy players as you move around a zone. You can also attempt to locate enemy players you have recently encountered by continually clicking their button in the Last Hour list while you move around a zone. The enemy player will be targeted as soon as you move within range. In addition, because you can use the data collected by other Spy users in your party, raid and guild, you stand a greater chance of locating the enemy player you are looking for if you have friends also using Spy.

Getting help when you encounter enemy players

Spy can be configured to announce encounters to a variety of channels, including your party, raid, guild and local defense channels. In addition, other Spy users in your party, raid or guild who are also in the same zone will have your encounters added to their Nearby lists. This is a great way for a guild to track down their enemies.

Getting revenge on an enemy player's guild

Spy is also capable of displaying a warning when a player in the same guild as someone on your Kill On Sight list is detected. This option can be enabled or disabled vis the Interface Addons window.

Knowing how many times you've won/lost against an enemy player

Spy will record when you make a killing blow against an enemy player. Likewise, it will also record when an enemy player makes a killing blow against you. These statistics can be seen in the tooltip that appears when you hover over the enemy player's entry in the list.


Why doesn't Spy work while I am in combat?

The game has security restrictions on what addons can do during combat. Clicking buttons to target enemy players will not work during combat. At the moment, Spy does not display newly detected players in combat either, although this will be corrected in a future release. Spy will still give visual and audio alerts both in and out of combat.

Why does Spy only show a maximum of ten enemy players?

While the ten enemy player limit at any one time could easily be changed, I believe that displaying any more than ten enemy players will make it more difficult for the user to use the information Spy reports. Long lists of enemy players will either take up too much real-estate on screen, or require the introduction of list paging functionality which I believe would make the addon more cumbersome. The limit may be an issue for some users, but it is alleviated by the fact those enemy players who are actively performing actions or who are on your Kill On Sight list will always appear first.

I was just attacked by an enemy player who was stealthed. Why didn't Spy warn me?

If an enemy player doesn't perform any actions reportable in your combat log then Spy will not know they are there. In this case, the enemy player may have gone into stealth far enough away from you that it isn't reported in your combat log. Or the enemy player could have already been stealthed before you arrived in the area you were attacked.

Why can't I target an enemy player Spy has just reported?

The most likely explanation for this - if you aren't in combat - is that a buff has been applied or removed from one enemy player that was granted to them by another enemy player. This may happen, for example, when an enemy player gains the Leader of the Pack buff from a stealthed druid in their party. Spy will alert you to the possible presence of the enemy druid even though that druid did not perform any active action. This may also happen when a buff expires from an enemy player, in which case the other enemy player that granted the buff may not be in the vicinity at all.

Why doesn't Spy work in sanctuaries?

Spy doesn't work in sanctuaries such as Dalaran or Shattrath City because in those places there is no possibility of PvP combat. Any information reported by Spy will be of no use. Unless you like to try to emote your enemies to death...

How can I turn off Spy temporarily?

This can quickly be done by holding the Control key while clicking the Clear button in the title bar, or alternatively by enabling/disabling Spy via the Interface Addons window. You may want to do this when there are a lot of players around and you don't want the list to fill up or to continuously alert you.

I don't want a warning to be displayed or any alerts to sound. How can I turn them off?

Go to Spy's options in the Interface Addons window and open the Alerts section. Both visual warnings and audio alerts can be turned on or off.


Currently enUS and ptBR. Please contact me on this site if you are able to provide translations for other languages. I will introduce other languages in a future release.


Written by Immolation from Cho'gall (US).

Updated by Slipjack.

22 October 2014 - Spy v3.2.1

  • Updated localization for enUS and ptBR
  • Fixed an error that cause Spy to remain enabled when not flagged for PvP if the option was checked - Thanks Zaphon

14 October 2014 - Spy v3.2.0

  • Updated for patch 6.0.2
  • Known issues - MiniMap Icon placement not working - Astrolabe needs an update. Enable check box does not disable the addon when the game is restarted/reloaded.

29 August 2014 - Spy v3.1.6

  • Updated AceDB-3.0 to prepare for WoD
  • Made changes to facilitate more translations

25 July 2014 - Spy v3.1.5

  • More fixes to eliminate the UI taint issues
  • Reduced the number of drop down menus for the Kill on Sight reasons which may also cause conflicts with the UI.

10 March 2014 - Spy v3.1.4

  • Fixed a problem caused by a UI taint that would prevent talent or glyph changes
  • Fixed a problem associated with accounts upgraded to the next expansion

22 February 2014 - Spy v3.1.3

  • Fixed a problem that was causing a stack overflow (system lockup in some cases) during the load screen when changing zones
  • Updated library files for Astrolabe

27 January 2014 - Spy v3.1.2

  • Minor coding error - updated

22 January 2014 - Spy v3.1.1

  • Added the localization for ptBR. Thanks to Kasth
  • Updated the ability lists for correct level and class detection
  • Updated code for hunter minimap tracking and detection of known enemies to resolve an issue caused by the up/down arrows.

29 October 2013 - Spy v3.1.0

  • Updated for Patch 5.4.1
  • Added the ability to send the total count in the nearby list to chat.

10 September 2013 - Spy v3.0.9

  • Updated for Patch 5.4
  • Updated library files

14 August 2013 - Spy v3.0.8

  • Added ability to lock Spy
  • Updated library files for Astrolabe and CallbackHandler

19 July 2013 - Spy v3.0.7

  • Updated Monk abilities
  • Added abilities created with glyphs

22 May 2013 - Spy v3.0.6

  • Updated for patch 5.3

7 March 2013 - Spy v3.0.5

  • Updated for patch 5.2.
  • Fixed errors that occur when trying to change talents and glyphs.

4 January 2013 - Spy v3.0.4

  • Updated to ensure correct file/version was uploaded.

25 December 2012 - Spy v3.0.3

  • Corrected an error when moving the Spy window in combat.
  • Added a few new items to the KoS reasons.

5 December 2012 - Spy v3.0.2

  • Corrected the url of the download location when an older version is detected.

4 December 2012 - Spy v3.0.1

  • Updated for patch 5.1
  • Updated the abilities list used to detect enemies
  • Added code for the Monk class and Pandaren race

3 July 2011 - Spy v2.0.2

  • Corrected combat detection so it works after patch 4.2

30 April 2011 - Spy v2.0.1

  • Corrected combat detection so it works after patch 4.1
  • Corrected some taint errors caused when Spy attempts to update during combat
  • Updated spell and ability list used to detect enemies
  • Updated Astrolabe embedded library to fix some map errors

19 October 2010 - Spy v1.3

  • Fixed for patch 4.0.1.

2 August 2010 - Spy v1.2

To see what has changed in this release have your friends download Spy. If anyone in your guild, party or raid encounters a member of the opposing faction you will know who and where it is, especially if it is anyone on your Kill On Sight list!

Change list includes:

  • Added option to display enemy locations on the world map and minimap
  • Added option for PvE servers that disables Spy when no longer flagged for PvP combat
  • Corrected bugs that stopped enemy locations being reported by members of party, raid and guild
  • Corrected automatic announcements to the local defense channel

20 Jan 2010 - Spy v1.1

  • Added option to disable Spy in Wintergrasp
  • Added option to display alerts in a graphical popup rather than using the errors frame
  • Added option to share Kill On Sight players between all characters in the same faction and realm
  • Corrected bugs that occurred when multiple players in the same party, raid or guild are using Spy
  • Corrected issue that displayed "not in a party/raid" messages when using Spy in battlegrounds

26 Jul 2009 - Spy v1.0

  • Added win/loss statistics. The win counter displayed in the player's tooltip will increase when you land the killing blow against a player. Likewise, if the player lands a killing blow on you then the loss counter will increase.
  • Kill On Sight reasons can be set. By right-clicking a player's button on the Kill On Sight list you can set multiple reasons why you added them to the list.
  • New alert for players in the same guild as someone on your Kill On Sight list.
  • Minimap functions can now be enabled/disabled through the Interface Addons window.
  • Details displayed in the player's tooltip can be shown/hidden through the Interface Addons window.
  • Corrected bugs that stopped Spy from detecting enemies for some users.

14 Jun 2009 - Spy v0.3

Minimap detection is now enabled for players who can track humanoids. This includes hunters, druids in cat form, or those who have eaten a Blackened Worg Steak. The level and class of enemy players will be displayed in the minimap's tooltip.

  • Ability to disable in battlegrounds and arenas
  • Ability to manually announce to the local defense channel
  • Fixed bug involving the Nearby list sometimes freezing after combat
  • Guild information is now recorded for enemy players

1 Jun 2009

Fixed defects:

  • Defect 2: Include class/race/level in announcements
  • Defect 3: Stop detection on immediate entry to a sanctuary
  • Defect 4: Not detecting enemy players on all realms


First Previous Page 13 of 32 Next Last
  • #308

    That protected function hide error is due to using secure frames. If the security was removed you would no longer would see the errors. However since the author probably wants to keep it secure he need to protect the hide function on line 1320.

  • #307

    Omg, thanks for updating this really awesome AddOn. Been using it even though it was outdated (even had several crashes, but it's just a too valuable and must-have addon in my WoW gameplay). It gives an awesome niche to full PvP servers with lots of enemies looking for you. You can use it both defensively and offensively. THANK YOU!

  • #306

    Started using this again since the update.

    However in raids i still get spammed with the same lua error:

    1781x [ADDON_ACTION_BLOCKED] AddOn "Spy" tried to call the protected function "Spy_MainWindow:Hide()".
    !BugGrabber-r188\BugGrabber.lua:587: in function <!BugGrabber\BugGrabber.lua:587>
    <in C code>
    Spy\Spy-1.1.nil.lua:1312: in function "?"
    Ace3-Release-r1061\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:147: in function <Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
    <string>:"safecall Dispatcher[2]":4: in function <string>:"safecall Dispatcher[2]":4
    <in C code>
    <string>:"safecall Dispatcher[2]":13: in function "?"
    Ace3-Release-r1061\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:92: in function "Fire"
    Ace3-Release-r1061\AceEvent-3.0\AceEvent-3.0-3.lua:120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>


  • #304

    You can make enemy detection work again by replacing all instances of "GetNumPartyMembers()" in Spy/List.lua with "GetNumGroupMembers()".  GetNumPartyMembers() was removed in 5.0.4.

  • #303

    So has this one stopped showing the interface for anyone else since today's update?

  • #305

    What version are you using?

  • #301

    finally update!!!!! i love this addon <3

  • #299

    Would it be possible to have an option to lock it in place?

  • #302

    I will see what I can do. Right now just focusing on making sure everything works. 

  • #296

    Hi everyone. I'll be handing this project over to new authors soon, so expect offical updates from this page.

    I appreciate the comments over the years thanking me for developing the addon. I can't take complete credit though - it was based on a previous addon called "Personal Sentry" (which was based on another...)

    Just keep improving, and push it forward x

    Last edited by immolation on 12/3/2012 10:27:25 PM
  • #311

    Immolation! Hey buddy, Appreciate your work. You're a good man. Ive been playing wow still. just wondering if you are too? Miss them good ole times in our guild! Hit me up bro! :) Let me know how I can get a hold of ya.

  • #300

    Thankyou for update.


  • #298

    Thank you for taking the time to reply and pass down the project. Good luck on the future!

  • #297


  • #294

    Getting same message as LozzieUK


    Message: Spy-1.1.nil\List.lua:493: attempt to call global "GetNumPartyMembers" (a nil value)
    Time: 11/21/12 22:28:05
    Count: 1
    Stack: Interface\AddOns\Spy\List.lua:40: in function `RefreshCurrentList'
    Interface\AddOns\Spy\List.lua:838: in function `AddDetected'
    Interface\AddOns\Spy\Spy.lua:1368: in function `?'
    ...der\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...der\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 `?'
    ...der\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
    ...\AddOns\Decursive\Libs\AceEvent-3.0\AceEvent-3.0.lua:120: in function <...\AddOns\Decursive\Libs\AceEvent-3.0\AceEvent-3.0.lua:119>

    Locals: <none>

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

VIP trip to SMITE World Championship