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.)
Alternately, right-click the close button for the popup and that'll ignore it as well.
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 KonungrJoe: Yeah, that'd be it picking up that she's flagged in-game as a rare-elite, rather than being any sort of already-known-about mob.
For now you could ignore all the IDs listed here: https://www.wowhead.com/npcs/name:xal'atath/classification:4:2 -- I'll add them to the hide-by-default list, though.
In reply to KonungrJoe: Okay, the current alpha should just ignore her when she shows up. (Unless there's other copies of her that I didn't find.)
This happens often when I hide a Silverdragon entry on the world map.
Message: ...ns/Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua:177: attempt to index a nil value
Time: Sat Sep 21 17:39:39 2024
Count: 2
Stack: ...ns/Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua:177: attempt to index a nil value
[string "@Interface/AddOns/Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:177: in function `OnClick'
[string "@Interface/AddOns/Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:154: in function <...ace/AddOns/Blizzard_MapCanvas/Blizzard_MapCanvas.lua:151>
Locals: self = Frame {
Expand = Texture {
}
ScaleAnimation = AnimationGroup {
}
endScale = 1.200000
emphasis = Texture {
}
startScale = 1
normalizedY = 0.282000
scaleFactor = 1
normalizedX = 0.366000
DriverAnimation = AnimationGroup {
}
texture = Texture {
}
pinFrameLevelType = "PIN_FRAME_LEVEL_VIGNETTE"
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index a nil value"
In reply to luckyjoker: Having quickly tested this, it doesn't immediately seem to happen for me. Could you give me some more details about whether it's only happening for specific mobs / on specific maps? Are you hiding the rare via right-clicking the map pin and choosing "hide" from that context menu?
HEllo, Thank you for your addon ! Is it possible to filter in TWW rares not killed this week (for the reputation). I'm bit lost with all these skull colors.
In reply to Zazou: Not very well at the moment. I've got some plans to change how the loot filtering works, which will improve that, but that doesn't help right now.
"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."
That feels clunky. Can't we interact with the popup frame somehow to do it?
Thanks.
In reply to WuvWoo: Yup. Right-click the close button for the popup. (It's in the tooltip for it.)
In reply to Kemayo: Thanks :D
I was flying around Sholazar Basin and ran across King Krush. I use a little targetting macro and targetted it. I stopped and tamed it and the addon didn't trigger the whole time. Is there something I'm missing? I know it used to work.
Thanks
In reply to big_fish1: If you targeted it via your macro before anything else detected it, the popup wouldn't have appeared -- it only shows up (by default) for things that aren't your main target, on the logic that you very obviously know about anything that's your main target.
Thanks for a great addon. Seems the latest update changed the scan macro to just make a macro for that zone? Previously it seemed to work as a "Scan Now" wherever you are macro. Since the auto scan function never seemed to work for me I'm wondering what's going on - is the default scan every second still a viable way to find rares?
In reply to 75338: It was always just a macro for the current zone -- it's just that it could fit literally every mob in a zone inside the macro, and so it was quite powerful. With how Blizzard limited macro functionality this expansion, it's still pretty decent, but it has some limits.
The default scan-each-second is still viable, but what it finds is fairly limited -- specifically, it notices your own target/mouseover, group member targets, and nameplates. All of which requires that you be pretty close by and about to notice it anyway.
What you probably want is to turn on the disabled-by-default "Dark Magic" scanning method, and then turn its scan interval down to 0. This is about as effective as the old cache-scanning method, if you remember that. But it inherently causes UI errors and runs a chance of tainting your UI. (That said, I run around with it turned on and I'm generally fine. It's less tainty than the average thing that touches the map.)
In reply to Kemayo: HOLY HECK. I had completely misunderstood your "Scanning" function ...for 15 (?) years! I thought it was "run a targeting function in the background every second to see if the rares are within the game's drawn-active-mobs distance from your character." While in actuality, that's what pressing that macro did for me, and why it was consistently working so well to find rares.
Thanks for the education. I failed at understanding your in-game addon descriptions. For 15 years.
In reply to 75338: I mean, the scanning tries! It's just the routes available to it are limited, because Blizzard doesn't really want this to be easy. :D
There was a formative chunk of those 15 years in which it did work how you think -- Blizzard removed the previous powerful method, cache scanning, in 2014. It was similar to the Dark Magic method in that it basically tripped as soon as a scan ran when you were within targeting range of a mob, but it didn't cause game errors when you did so. You did have to delete some of your game cache files before it'd work again for the same mob, though, so in a bunch of ways the dark magic is better...
PSA: This addon completely blocks your ability to create/edit/select macros. Uninstall the addon until dev fix.
In reply to notanotherforumname: First I've heard of this, let me go look...
In reply to notanotherforumname: Okay, yeah, that happens. Turns out the blizzard macro editor resets its edit field any time a macro is edited. New release is going out right now which will pause the updating of the silverdragon macro whenever the default frame is open. (On the plus side, this should probably only have impacted people who actually had the macro set up in the first place, which isn't the default!)
Hi I am dealing with the below error. Also is there a discord channel for this addon ?
Appreciate your assistance and feedback
12x Usage: local itemID, itemType, itemSubType, itemEquipLoc, icon, classID, subClassID = C_Item.GetItemInfoInstant(itemInfo)
[string "=[C]"]: in function `GetItemInfoInstant'
[string "@SilverDragon/loot.lua"]:436: in function `SetItem'
[string "@SilverDragon/loot.lua"]:459: in function `resetterFunc'
[string "@Blizzard_SharedXML/Pools.lua"]:118: in function `Acquire'
[string "@SilverDragon/loot.lua"]:559: in function `AddItem'
[string "@SilverDragon/loot.lua"]:621: in function `AddLoot'
[string "@SilverDragon/loot.lua"]:718: in function `ShowForMob'
[string "@SilverDragon_Overlay/module.lua"]:229: in function `ShowTooltip'
[string "@SilverDragon_Overlay/pins.lua"]:83: in function <SilverDragon_Overlay/pins.lua:79>
Locals:
(*temporary) = "Usage: local itemID, itemType, itemSubType, itemEquipLoc, icon, classID, subClassID = C_Item.GetItemInfoInstant(itemInfo)"
In reply to pand235: Thanks for reporting that! You didn't say, but that looks like a classic-specific issue. I have just made a new release that should fix it.
There's no specific discord, beyond my being in the WowUIDev and WoW Addons discords.