Get an Epic Experience with Premium


PvP Login to Add Favorites
  • World of Warcraft
  • 8,685 Monthly Downloads
  • Supports: 6.2.3
  • 478,884 Total Downloads
  • Updated 02/06/2016
  • Created 05/26/2009
  • 521 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: Spy v3.2.8
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.

02 February 2016 - Spy v3.2.8

  • Returned the ability to enter your own reason to the KoS list.

27 June 2015 - Spy v3.2.7

  • Updated for Patch 6.2

09 June 2015 - Spy v3.2.6

  • Changed global references and localized UIFrameFlash code to eliminate the talent/glyph error.
  • Added the LibChatAnims Library

28 February 2015 - Spy v3.2.5

  • Updated for Patch 6.1

20 November 2014 - Spy v3.2.4

  • Disabled all StaticPopupDialogs to eliminate a possible problem when changing talents
  • Fixed an error with one of the sound files not working

13 November 2014 - Spy v3.2.3

  • Fixed MiniMap & WorldMap Icon placement functions

01 November 2014 - Spy v3.2.2

  • Minor update to ptBR localization - Thanks Kasth
  • Minor fix to eliminate the UI taint issues - Thanks Kunlong
  • Updated AceDB, AceGUI, AceTime and Astrolabe lib files
  • Disabled the MiniMap & WorldMap Icon placement functions as this is still not working

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 19 of 37 Next Last
  • #274

    Update please!

  • #273

    Please update this addon it is locking the UI. 

    Last edited by ognomad on 9/26/2012 11:15:23 AM
  • #272

    WTB update.

  • #271

    How can we change the textures of the bars and the window border?

  • #287

    a skinning addon.

  • #289

    Just for this? such as? - thanks

  • #270

    Someone make a fan update, this guy isn't going to update.. 

  • #269

    I would like to know if nynjamonkii or anyone else knows how to get it detecting monks error free though!

    For the most part it works. No errors when detecting a Pandaren player but there is an error when detecting a Monk.

    7x AceLocale-3.0-6: Spy: Missing entry for "MONK"
    Spy-1.1.nil\List.lua:32: in function "RefreshCurrentList"
    Spy-1.1.nil\List.lua:876: in function "AddDetected"
    Spy\Spy-1.1.nil.lua:1343: 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[1]":4: in function <string>:"safecall Dispatcher[1]":4
    <in C code>
    <string>:"safecall Dispatcher[1]":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>
    <in C code>
    FrameXML\ChatFrame.lua:1248: in function "?"
    FrameXML\ChatFrame.lua:4338: in function <FrameXML\ChatFrame.lua:4304>
    <in C code>
    FrameXML\ChatFrame.lua:4052: in function "ChatEdit_SendText"
    FrameXML\ChatFrame.lua:2727: in function <FrameXML\ChatFrame.lua:2720>
    <in C code>
    FrameXML\SecureTemplates.lua:379: in function "handler"
    FrameXML\SecureTemplates.lua:560: in function <FrameXML\SecureTemplates.lua:508>


  • #275

    I'm not the programmer for this, but I'd suggest taking a look at Spy.lua.  There are lots of entries in there for specific classes.  The line erroring is

    if L[class] and type(L[class]) == "string" then description = description..L[class] end

    I'm guessing the variable "L" is some sort of variable lookup and entering "class" tells it what class to get data for.  I havent a clue what after the then statement means...  intutively you can understand what data its getting but i havent a clue how its getting it.

    Take the grouping "Class" at line 852.    If "L" is refering to these values here it'd need an entry for MONK.. the values are the RGB values  and an alpha for the class's color.

    Also at line  990ish it may need a "MONK" entry

    Same goes for around line 1224.  It's stating a list of valid classes and races and neither MONK or Pandarian are listed.


    A trikier update would be around like 1498... It's trying to determine if a player it's scanned is an enemy or a friendly.  Pandas can be either, so the method returns to its caller.  It sounds like this would stop pandas from being put on your spy targets all together, but you said non-monk pandas show up fine.

    I just transfered to a PVP server and there are some horde I really need KOS'ed... If this error starts poping up for me and bothering me, I might end up fixing it (and sharing the updated version)..

    Last edited by migit129 on 10/2/2012 6:15:11 AM
  • #277

    fixed it.  going to post a new reply with all the stuff that needs changing

  • #267

    UPDATE please :D

  • #268

    You can update it by following what nynjamonkii wrote.  You will still get 1 error while entering/exiting combat in a raid or battleground (that i posted below) and this can be avoided by disabling Spy in the /spy config or control clicking the "circle with a line through it" icon on the main window that shows who has been detected.

  • #265

    Works great after changing the GetNumPartyMembers with GetNumSubgroupMembers as suggested by nynjamonkii except i am getting this error.

    4x [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-r1064\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-r1064\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:92: in function "Fire"
    Ace3-r1064\AceEvent-3.0\AceEvent-3.0-3.lua:120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>


    Last edited by boourns on 9/6/2012 12:17:29 AM
  • #264

    To get it working for 5.0.4 just open List.lua and replace all instances of GetNumPartyMembers with GetNumSubgroupMembers

  • #266

    Works perfectly! Bless you sir! Bless you!

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

Star Trek Online Wiki Editing Contest