SilverDragon - Rare Scanner
SilverDragon
SilverDragon tracks rares in World of Warcraft. It will try everything possible to notice them and tell you about them.
How does it search?
Vignettes
Those little skull icons you see on the minimap. If one of them is a rare SilverDragon knows about, it'll yell at you.
Targets
If you mouse over or target a rare mob, SilverDragon will notice it.
Nameplates
If you have enemy nameplates turned on, SilverDragon will keep an eye on them to look for the names of known rares.
Macro
SilverDragon can also create a macro to target any rares that are known in the current zone. You can stick this on your actionbars as a button to spam while chasing after a rare, or bind it to a key. This is sort of a last resort.
Chat
Some rares yell in zone chat. If SilverDragon notices those yells, it'll alert you.
Dark Magic
This abuses detection of when Blizzard blocks attempts to call a protected function (TargetUnit
) to work out when you're in targetting range of a unit with a given name
This inherently causes in-game errors, so it is disabled by default. Enable in the addon config under Scanning / Dark Magic
.
By default it's less-aggressive, scanning through rares in the zone without known vignettes at a rate of 1/second. However, you can turn that rate way up if you'd like. You can also turn on an option to automatically hide the error messages it causes, but beware that this will potentially cause taint issues that'll leave you needing to /reload
eventually.
How will I know when a rare is seen?
Frame
When a rare appears, SilverDragon will pop up a frame that you can click on to target it.
Warning: If you're in combat, secure action restrictions mean that it won't show up until combat finishes.
Sounds
You can choose from assorted sounds to play when a rare is seen. The sound can loop for a while, to make sure you don't miss it.
There's special settings for rares that drop mounts and world boss rares which you might want to call up a group for. If you're sitting mostly-AFK on a Time-Lost Proto Drake spawn, you probably want the sound that plays to be utterly ridiculous and go on for a good long while, to make sure you don't miss that sucker.
Messages
A notice can be sent to a number of places:
- your scrolling combat text
- your chat frame
- a channel in your chat frame (announcing it to your party, for instance)
- a popup window
- etc
History
A log of seen rares will be shown in a window, so you can easily glance over spawn times.
Other useful things?
Custom mobs
In SilverDragon's options you'll find a "Mobs" section. In the "Always" section, you can add any mob you want to be scanned for. All you need to know is the mob id.
So, let's say you wanted to keep an eye out for Lil Timmy in Stormwind, to buy the kitten he sells. You would...
- Go to his wowhead page.
- Grab his id from the URL. It's
8666
. - Enter
8666
into the "add" field, and click "okay". - Play with your new kitten.
Yes, this example dates me.
Ignoring mobs
If there's some mob you don't want to hear about for whatever reason, just go to the "Ignore" section of the options. Again, enter the mob's id into the "add" box, then click okay. Bam! You will never again be told that Vern is up.
(Actually, Vern is ignored by default. But you get the idea.)
Syncs
SilverDragon will talk to itself. It can communicate with other copies of itself run by people in your party / guild, and tell you when they see a rare mob. (If there's a group of you camping all the Time-Lost Proto Drake spawns, say...)
You can turn this off completely, if you want to be private about it.
Tooltips
Some rares are part of an achievement. When you mouse over a rare mob, SilverDragon will add to the tooltip whether you've already killed it, so you know whether you need to rush for it.
Broker
SilverDragon includes a Broker plugin. It'll attach itself to the addon compartment and also your minimap, or a Broker container you have installed, and show you a list of the mobs it knows about in the current zone.
Other addons you may find useful
- AppearanceTooltip: integrates with the SilverDragon loot popups and shows transmog-known status.
- ServerRestartSound: plays a sound when the server's about to restart. If you're AFK-camping for a rare spawn, you probably want to know about this.
- ObjectScanner: A few rares are hidden away behind interacting with world-objects like the Edge of Reality. These have to be localized individually, so you need to work out what they're called in your language and set up a watch for tooltips mentioning them. This addon does that bit.
- ButtonBin: a broker display. SilverDragon's minimap icon will show up on it (or any other addon like it) instead of cluttering up your minimap, if you have it installed.
In reply to Hudspeth: My initial thought is that I don't think it's possible to do that any more. I will go dig into what RareScanner is actually doing, though.
In reply to Kemayo: Thanks for the replies. I got the time lost yesterday so i'm not super worried about it. I think this is just a problem with older rares right? Everything in newer content uses a different mechanism that y'all can use to look at I'm pretty sure. Correct me if I'm wrong though :)
In reply to Hudspeth: Yeah, it's for rares that're pre-vignettes, i.e. anything before Mists.
In reply to Hudspeth: Okay, so. I was sort of right about it not being possible, given my priors (weasel words from me!). It's not possible to do that... without causing errors in the game. RareScanner seems (on first glance) to be abusing the idea that using a protected function to target something is only going to actually get blocked if that thing exists, and so if it detects the *blocking* happening then it can assume the npc is present. This is pretty clever, and is definitely reminiscent of the abuse of cached tooltips that we all used to do before Blizzard fixed that! Albeit a little bit ickier because the way they're suppressing the error message is probably going to cause UI taint.
Anyway, I can probably do something similar now I'm aware of the method.
In reply to Hudspeth: Check out the currently-uploading alpha version. It's disabled by default, but if you open up the settings and go to "Scanning > Dark Magic" then you'll find a checkbox to turn it on. You can also tell it to hide error messages that (inherently) appear when a rare is found this way, but doing so increases the odds that you're going to taint your UI and eventually need to /reload. By default it waits a short while before trying to target each rare, which you might want to adjust downwards.
Is there a way to hide rares that marked with quest from which everything is collected? Because they reset every week...
In reply to nuttynatsu:
Oh, yeah, Blizzard completely removed the ability to do macro-extension with this patch. We're now 100% limited to macros that're under 255 characters long, without being able to do the "but the macro tells you to run another macro at the end!" hack. This has obvious sad implications for my macro-that-targets-every-rare-in-the-zone...
In reply to Kemayo: *shakes fist at blizzard*, ruining my hours of flying around old zones hitting 0 and finding rares.
Hopefully someone finds a workaround to the workaround.
Running mouse over some icons on the world map then moving the mouse OFF that icon then generates mouse errors as indicated below:
Its strange, only some maps do it, for example while in Shadowlands THE MAW zone map, it does it, almost everywhere else does not.
Message: Attempted to release inactive object 'nil'
Time: Fri Jul 26 10:08:41 2024
Count: 2
Stack: Attempted to release inactive object 'nil'
[string "@Interface/AddOns/Blizzard_SharedXMLBase/Pools.lua"]:79: in function <Interface/AddOns/Blizzard_SharedXMLBase/Pools.lua:68>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/SilverDragon/loot.lua"]:994: in function `Release'
[string "@Interface/AddOns/SilverDragon/loot.lua"]:697: in function <Interface/AddOns/SilverDragon/loot.lua:687>
Locals: self = <table> {
activeObjects = <table> {
}
proxy = <table> {
}
activeObjectCount = <table> {
}
capacity = Infinite
inactiveObjects = <table> {
}
}
object = nil
canFailToFindObject = nil
active = false
Message: Attempted to release inactive object 'nil'
Time: Wed Jul 24 21:44:41 2024
Count: 15
Stack: Attempted to release inactive object 'nil'
[string "@Interface/AddOns/Blizzard_SharedXMLBase/Pools.lua"]:79: in function <Interface/AddOns/Blizzard_SharedXMLBase/Pools.lua:68>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/SilverDragon/loot.lua"]:994: in function `Release'
[string "@Interface/AddOns/SilverDragon/loot.lua"]:697: in function <Interface/AddOns/SilverDragon/loot.lua:687>
Locals: self = <table> {
activeObjects = <table> {
}
proxy = <table> {
}
activeObjectCount = <table> {
}
capacity = Infinite
inactiveObjects = <table> {
}
}
object = nil
canFailToFindObject = nil
active = false
Related to the popout loot window on the world map. Disabled the option and the error disappears.
In reply to nuttynatsu:
I can't persuade that to happen myself, but I've put a guardrail against it into the alpha that's uploading right now. Could you let me know if that doesn't fix it for you?
In reply to Kemayo: Just noticed I never actually said what I was doing to get it to pop up, mousing over the world map rare icons when the gear shows under the tooltop (I wish I could add images to show this clearer). I need to stop sending Lua reports when I'm half asleep. The function isn't breaking as well, I can roll over the drops, the tooltip shows fine. Gotta love those errors and mystery issues.
Still happening with the most recent alpha with different line (I believe that's what it's means with the 998 and 701.
Message: Attempted to release inactive object 'nil'
Time: Thu Jul 25 09:27:30 2024
Count: 2
Stack: Attempted to release inactive object 'nil'
[string "@Interface/AddOns/Blizzard_SharedXMLBase/Pools.lua"]:79: in function <Interface/AddOns/Blizzard_SharedXMLBase/Pools.lua:68>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/SilverDragon/loot.lua"]:998: in function `Release'
[string "@Interface/AddOns/SilverDragon/loot.lua"]:701: in function <Interface/AddOns/SilverDragon/loot.lua:687>
Locals: self = <table> {
activeObjects = <table> {
}
proxy = <table> {
}
activeObjectCount = <table> {
}
capacity = Infinite
inactiveObjects = <table> {
}
}
object = nil
canFailToFindObject = nil
active = false
In reply to nuttynatsu:
Aha, thank you. I still can't actually get the error to happen to me, but I have another guess about what might be happening now. I've got another alpha uploading that might help.
In reply to Kemayo: And fixed. I noticed today that the macro button isn't targeting, couldn't find out via google if it's a blizzard side issue though, as they do love changing things up with macros.
Love this addon. Is there a way to temporarily disable it? Sometimes gets very spammy when flying in old zones on wrong alt.
Any chance for making simple switch show / hide all map pins? I always got problem find that option fast.
In reply to yolo_derp_:
If you click on the dragon icon that's on the world map it'll immediately toggle it. Shift-click for just the current zone.
Hi, Tuskarr tackle box used to pop when on sight n this help me to farm em but now they are not poping, ive already checked the vignettes ignore list n they are not there to unselect em, how can i get alerts for them back? tyvm in advanced for your help
Hello! Would it be possible to add shard tracking in SD, so we can tell what shard we're on, and if we've been moved? This would be handy for rare camping. I believe RareScanner has this but I've always preferred SD, so it would be great to see it added if possible. Thank you
Cataclysm: Duke Ragereaver is missing from just outside the gate of Stratholme in Eastern Plaguelands. 52.9 28.8. He moves around in front of the summon stone.