Get an Epic Experience with Premium


Achievements Login to Add Favorites
  • World of Warcraft
  • 319,089 Monthly Downloads
  • Supports: 6.2.3
  • 33,787,320 Total Downloads
  • Updated 02/08/2016
  • Created 06/06/2009
  • 11,475 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File:
Support development! **

About _NPCScan

_NPCScan helps you find rare mobs through the use of dynamic target macros, mouse over alerts and for Vignette mobs proximity. Once a mob is found by one of these methods an on screen alert is displayed, in addition to an audio alert.

_NPCScan & Warlords

Due to changes in how the game caches mobs in WoD, it is looking like _NPCScan will no longer be able to auto detect non-Vignette mobs. Due to this the only way to find pre-MoP rares via _NPCScan will be via mouse over, nameplate, or the new dynamic target macro keybind being added. The new keybind will trigger a /targetexact …” macro that updates with tracked mobs based on the zone you are currently in. Vignette mobs will still automatically trigger an alert when the mob gets in range, and should work more reliably due to updates to the Vignette API.

V6.x Changes
  • Cache Scanning Removed - Due to changes in the way WoW cache mobs, NPCScan can no longer auto alert when mobs are nearby like it use to.
  • Dynamic TargetExact Macro Keybind - NPCScan now has a keybind you can set that will try to /exacttarget tracked mobs. This macro will dynamically update based on the zone you are in and which mobs are being tracked.
  • Updated Vignette Alerts - Vignette Alerts are now more reliable and show the actual mob when detected the majority of time.

If you have a question check the FAQ, or a problem create a ticket

If you have a question/comment about _NPCScan.Overlay please post it in it's comment section.


Dynamic Target Keybind

NPCScan now includes a keybinding that will trigger a stored dynamic target macro. Each time it is pressed, the keybind will trigger a /targetexact <mob name> for every tracked mobs in the current zone you are in, in addition to any custom added mobs. This macro will be auto updated based on the zone you are currently in. To access this feature, just set a keybind under the Key Bindings->Addons->_NPCScan->Dynamic Target Macro section. Note: To search via the keybind, you will need to continuously push the bind. Pushing it once will only trigger it once, it does not auto scan like it did Pre WoD.


NPCScan now tracks "vignettes". These are the little skulls appear on the minimap, that denote rare mobs. This is a beta feature and is disabled by default. Enabling this feature will alert you to a rare that's within minimap range, without any worries about having to clear your cache. When you get an alert you will be shown a target button similar to the standard mob alert, letting you know that a vignette mob was detected. Clicking on the target button will try and target the mob.


If you have nameplates turned on, NPCScan now has the ability to trigger alerts off them. This method is not completely reliable as it has to rely on name comparison, so if mob name that NPCScan has does not match it will not trigger an alert. Also the range is limited as you need to get close enough to a mob to have the game display its name plate.

Addons that modify nameplates may interfere with this.

“Found” Alert

When a rare mob is found, _NPCScan alerts you by playing a loud and distinctive sound, making your screen pulse red, and displaying an animated Targeting Button. To get a feel for what this alert looks and sounds like, try the “Test Found Alert” button in the addon's main Interface Options panel. (See the Options section below.)

Targeting Button

When clicked, the targeting button tries to target the most-recently-found mob.&nbsp; You can also bind a key to hit this button. If the default button position isn't to your liking, you can move it while holding your CTRL key.

Note: The button cannot be shown during combat. In the unlikely case that you do find a rare while fighting, the button will appear after you leave combat. You will still hear the alert however, and the name of the mob will appear in your chat log.


_NPCScan's main options window can be accessed from the Interface Options menu. This panel includes a “Test Found Alert” button, various ways to customize the alert sound, and an option to suppress cache warning messages on log-in. New sounds can be added to the alert sound dropdown menu by installing SharedMedia-type addons.

Search List

The list of mobs that _NPCScan searches for can be modified easily through the Interface Options panel, however it comes pre-configured with most rare mobs.; To access the mob list, type “/npcscan”. Grayed out NPCs in a list aren't being searched for, either because they're cached or not needed for their achievement.

The first tab available lists Custom NPCs that you can enter or remove manually. NPCs that are already cached show a red “X” in the first column. You can add or remove Custom NPCs with the [+] and [-] buttons at the bottom right.

All other tabs control achievements like Bloody Rareand Frostbitten. These tabs show an additional column on the right with green check marks for completed achievement mobs. You may enable or disable tracking each achievement with its tab's checkbox.

To remove non custom mobs from a tab, click on the mob that you want to remove and then click on the "Remove" button. This will remove the selected mob from the current tab and add it to the Ignore List Tab. If you ever want to restore a Ignored Mob, select it from the "Ignore List" tab, click the "Remove" button and it should be added back to its original tab.

The “Search for completed Achievement NPCs” checkbox at the top left of the pane allows you to keep looking for mobs you no longer need for achievements.

Finding NPC IDs

A mob's NPC ID is its unique identification number, and it can be found on sites like WowHead or WowDB For example, search for the mob “Dirkee” on WowHead and go to the mob's page.&nbsp; That page's URL will look like

32500 is Dirkee's NPC ID.

James D. Callahan III <>
2016-02-08 04:43:44 -0600

Localization updates.


No changelog


First Previous Page 90 of 182 Next Last
  • #1906

    Ah! I had target tracking disabled... so dumb,,,

    Last edited by az1muth on 10/17/2012 12:28:06 PM
  • #1899

    Uhmm this add work only for Pandaria?Other rare mobs don't work?i'm happy if work for all wow rare mobs...

  • #1902

    It should work for all rare, npcscan was here before pandaria^^

  • #1913

    Not all rares are in npcscan, like missing King Spineclaw. We had npcscan for years and still difficult to get an updated library with the missing rares. People like Pastey tried but he is no longer here.

  • #1909

    It's not working for 'all' rares. There's alot that aren't triggering, including a large list of pre-pandaria.

  • #1898

    thank you very much saiket. came to the computer tonight and there was an update for curse. went into wow and there were rare overlays showing on theworld map with names colors and routes. awesome dude!  only problem i have now is that it doesnt show the rares and the routes for the rare hunter pets for example patrannache, the pink crane. please please please can you do the rare hunter pets? i know it will be harder because they just have tracks but maybe you can have it go off for the tracks. i dont know if each has its own special looking tracks or not. i hope they do that would make it easier for sure. i know patrannache has "barely visible tracks"

    anyways crossing my fingers for pandaren rare hunter pets to be added soon.

  • #1897

    Date: 2012-10-13 14:09:27
    ID: -1
    Error occured in: AddOn: _NPCScan
    Count: 9 Message: Note: AddOn _NPCScan attempted to call a protected function (CompactRaidGroup7Member4:Show()) during combat lockdown.
       [C]: Show()
       ..\FrameXML\CompactUnitFrame.lua:276: CompactUnitFrame_UpdateVisible()
       ..\FrameXML\CompactUnitFrame.lua:234: CompactUnitFrame_UpdateAll()
       ..\FrameXML\CompactUnitFrame.lua:127: CompactUnitFrame_SetUnit()
       ..\FrameXML\CompactRaidGroup.lua:57: CompactRaidGroup_UpdateUnits()
       ..\FrameXML\CompactRaidGroup.lua:10: CompactRaidGroup_OnEvent()
       [string "*:OnEvent"]:1:
          [string "*:OnEvent"]:1


    Date: 2012-10-13 14:09:27
    ID: -2
    Error occured in: AddOn: _NPCScan
    Count: 1
    Message: Note: AddOn _NPCScan attempted to call a protected function (CompactRaidGroup7Member4:SetAttribute()) during combat lockdown.
       [C]: SetAttribute()
       ..\FrameXML\CompactUnitFrame.lua:121: CompactUnitFrame_SetUnit()
       ..\FrameXML\CompactRaidGroup.lua:57: CompactRaidGroup_UpdateUnits()
       ..\FrameXML\CompactRaidGroup.lua:10: CompactRaidGroup_OnEvent()
       [string "*:OnEvent"]:1:
          [string "*:OnEvent"]:1


    Date: 2012-10-13 14:09:10
    ID: -3
    Error occured in: AddOn: _NPCScan
    Count: 8
    Message: Note: AddOn _NPCScan attempted to call a protected function (CompactRaidGroup7Member2:Show()) during combat lockdown.
       [C]: Show()
       ..\FrameXML\CompactUnitFrame.lua:276: CompactUnitFrame_UpdateVisible()
       ..\FrameXML\CompactUnitFrame.lua:234: CompactUnitFrame_UpdateAll()


    Date: 2012-10-13 14:09:10
    ID: -4
    Error occured in: AddOn: _NPCScan
    Count: 9
    Message: Note: AddOn _NPCScan attempted to call a protected function (CompactRaidGroup7Member3:Show()) during combat lockdown.
       [C]: Show()
       ..\FrameXML\CompactUnitFrame.lua:276: CompactUnitFrame_UpdateVisible()
       ..\FrameXML\CompactUnitFrame.lua:234: CompactUnitFrame_UpdateAll()
       ..\FrameXML\CompactUnitFrame.lua:127: CompactUnitFrame_SetUnit()
       ..\FrameXML\CompactRaidGroup.lua:57: CompactRaidGroup_UpdateUnits()
       ..\FrameXML\CompactRaidGroup.lua:10: CompactRaidGroup_OnEvent()
       [string "*:OnEvent"]:1:
          [string "*:OnEvent"]:1

    Last edited by Knakriktsur on 10/14/2012 4:51:39 AM
  • #1896

    Isn't there some way to check the mob to see if it's already dead? I hate having to clear my cache all the time to get alerts back on mobs that were dead when it went off in the first place. 

  • #1914

    Cache does not make a difference between live or dead. All the cache knows is you can target it, and no more warnings.

    Last edited by jtbalogh on 10/20/2012 4:52:28 PM
  • #1895

    The latest Overlay drops errors when logging into the game:

    Date: 2012-10-14 07:51:13
    ID: 1

    Error occured in: Global
    Count: 1

    Message: ...erface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua line 66:
       attempt to index upvalue 'CarboniteMap' (a nil value)
       ...erface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua:66: ?()
       ...erface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua:97: OnLoad()
       ...erface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua:109: in main chunk
    self = WorldMapFrame {
     0 = <userdata>
     numQuests = 0 }
    (*temporary) = nil
    (*temporary) = <unnamed> {
     Normal = <unnamed> {
     Disabled = <unnamed> {
     0 = <userdata>
     Text = <unnamed> {
     Border = <unnamed> {
     SetChecked = <function> defined =[C]:-1
    (*temporary) = <userdata>
    (*temporary) = nil
    (*temporary) = nil (*temporary) = "attempt to index upvalue 'CarboniteMap' (a nil value)"
    WorldMap = <unnamed> {
     0 = <userdata>
     OnSynchronize = <function> defined
     Loaded = true
     KeyParent = <unnamed> {
     AchievementNPCNames = <table> {
     RangeRingTargetOnHide = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:101
     KeyParentOnSizeChanged = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:81
     Paint = <function> defined  @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:163
     OnShow = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMapTemplate.lua:65
     KeyPaint = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:54
     ToggleOnEnter = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:115
     OnUnregister = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMapTemplate.lua:111
     ToggleSetChecked = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:130
     RangeRingSetEnabled = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:327
     Registered = true  WORLD_MAP_UPDATE = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMapTemplate.lua:61
     RangeRingSetTarget = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:91
     KeyValidateSize = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:71
     RangeRingPaint = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:106
     RangeRingTargetOnShow = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:97
     KeyOnSizeChanged = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:86 super = <table> {
     Toggle = <unnamed> {
     OnDisable = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:179
     ToggleOnLeave = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:120
     RangeRing = <unnamed> { }
     OnMapUpdate = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMapTemplate.lua:74
     KeyMinScale = 0.5
     OnEnable = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:174
     Name = "WorldMap"
     Config = _NPCScanOverlayModuleWorldMap {
     KeyOnEnter = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:21
     ToggleOnClick = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:124
     KeyMaxSize = 0.33333333333333
     OnUnload = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\WorldMap.lua:309
    NS = <unnamed> {
     0 = <userdata>
     WorldMapFrameOnHide = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua:61
     OnUpdate = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua:29
     WorldMapFrameOnShow = <function> defined @Interface\AddOns\_NPCScan.Overlay\Modules\Carbonite.lua:39
    CarboniteMap = nil


    HTH ;-)

  • #1893

    Could you maybe insert an option to give still a signal on already cached mobs (I mean not only rare mobs, but all mobs)?

  • #1915

    If already cached, then it is too late. The only reason we got the signal in the first place was when the addon noticed the rare was not cached and then just switched to be cached. Impossible to get another signal on something that is already cached and you are checking if it is cached.

    The silverdragon addon is an alternative if you want rares on target mouseover for repeated warnings. But you still miss a lot flying over them because your mouse is in the wrong place.

  • #1892

    im having an issue with npc scan rare mob routes not showing up on my map anymore since mop hit. not sure if its npc scan or npc scan overlay so thought id post here first.

  • #1885
    Re: _NPCScan issue

    For some reason NPC scan isnt working at all, even after clearing the cache. I had a rare spawn right in front of me and the NPC scan didnt do anything. Is anyone else having this issue?

  • #1888

    I got the same problem as Angelus, NPC-scan not working for me now, I've cleared cache. Can stand infront of rares without anything happening.

  • 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