Get an Epic Experience with Premium


Achievements Login to Add Favorites
  • World of Warcraft
  • 542,298 Monthly Downloads
  • Supports: 5.4.8
  • 20,685,153 Total Downloads
  • Updated 08/25/2014
  • Created 06/06/2009
  • 9,675 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File:
Support development! **

About _NPCScan

_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 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.

_NPCScan tracks seldom-seen rare mobs by proximity alone, making the old “/targetexact …” macros obsolete. It has the same range as those targeting macros, but you won't have to mash any buttons. Just go about your business and let _NPCScan alert you when it finds something.

V5.x Changes
  • Due to changes in how the addon stores data, some settings might get reset when updating.
  • The default alert is suppressed while on flight paths by default. If a mob is found, the whisper sound effect will play and the mob & location will be placed in the chat log. You can turn this off from the settings.
  • _NPCScan now includes all rare mobs in the game.
  • The "One of Many", "Timeless Champion" & "Champions of Lei Shen" Achievements have been added.
  • Rare Mobs and Tameable Mobs have their own tabs now.
  • Custom mobs have been added for the Ghostly Pandaren Fisherman & Craftsman.
  • Individual mobs can be removed from their tabs to stop tracking them.

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.



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. Once a mob is targeted, the target button will update to reflect the mob found.

Known Issues: Currently there is no way to detect what mob the vignette represents. Because of this there is no way to filter out and ignore individual mobs. The vignette tracking will ignore achievement mobs groups that have their tracking turned of via unchecking their tab. Also the targeting button might have some issues if there are more than one vignette mobs in target range and may not work 100% of the time.

The Cache

This addon doesn't use nameplates or mouseover units to find rares. Instead, it checks your creature cache for the moment a rare mob is found. There is one catch to this technique however: Once a mob is “found”, _NPCScan won't be able to find it again until your cache is clearedf you find a rare mob's corpse—Dirkee for example—you would have to clear your cache before _NPCScan would find Dirkee again. Thankfully, clearing your cache is a safe and simple matter.

Clearing Your Cache

To clear your cache, follow these straightforward steps:

  1. Exit World of Warcraft
  2. Delete the “Cache” sub-directory inside your World of Warcraft folder.  For example on a standard Windows XP installation, you would delete the folder “C:\Program Files\World of Warcraft\Cache”.
  • Advanced users can delete “C:\Program Files\World of Warcraft\Cache\WDB\enUS\creaturecache.wdb” specifically to improve log-in times, where enUS is your language code.

Note: Windows Vista and Windows 7 users see this info if your cache isn't in the location above.

That's it. Log in after you've done that and you'd be able to find Dirkee a second time. It's completely safe because WoW will recreate your Cache folder after you log in again.

Cache Warning

If a rare mob is already cached when you log in, _NPCScan will print a warning message with the names of those mobs. If you see this message but still want to find the listed NPCs again, it's time to clear your cache by following the above procedure; Otherwise, you can quit searching for those mobs using the Search options window detailed below. You can suppress this log-in message using the main options pane, as well.

“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.  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 Outlands and Northrend 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.  That page's URL will look like

32500 is Dirkee's NPC ID.


The only problem mobs for _NPCScan are tamable beasts & Battle Pets. Whenever you run across the tamed version, _NPCScan gets tricked into thinking that mob is nearby. In order to prevent those false positives, _NPCScan only shows alerts for tamable mobs in their original zones That is, if you spot Loque'nahak in Dalaran instead of Sholazar Basin where it usually patrols, _NPCScan would ignore it. When one of these tamable mob false-alarms happens, you'll see a message in your chat window explaining why it got ignored.

Since this makes tamable mobs are so difficult to track, I suggest you fly to the tamable mob's zone first, clear your cache, and then search for it.; Any time you pass through a populated area like Dalaran, you risk filling your cache with popular rare pets.

For Battle Pets there is no way for it to determine if a mob is a spawn or someone's pet. Many Battle Pet addons and just opening the Pet Journal will often cause Battle Pets to become cached.

James D. Callahan III <>
2014-08-25 19:12:48 -0500


James D. Callahan III:
    - Moved CacheWarnings option to global from per-character.
    - Cleanups
    - Removed commented-out code.


First Previous Page 58 of 150 Next Last
  • #1912

    And it sets the raid icon which you can see from far away.

  • #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?

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

Marriland Furious Fists Giveaway!