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.
Can you adjust the font on the broker/minimap icon dropdown list?
If you got a problem for the version 2024.5 (game version 10.2.7), do this will fix the issue..
in the files targets/popup.lua AND targets/module.lua, replace ALL that :
SetJustifyH("MIDDLE") => SetJustifyH("CENTER")
Missing The Razza, 84.6, 49.6 Feralas
Some kind of dragon thing hovering over a scene of devastation. It was level 40/41
Forgot to mention: Cataclysm.
In reply to Vreejack1: Wouldn't let me edit my comment, but the version was Cataclysm. Forgot to mention.
Hi!
I've got the following Lua error: https://preview.redd.it/silverdragon-lua-error-v0-lm2rjk6qofad1.png?width=1085&format=png&auto=webp&s=930a1c889c9cd9fe7f9e74904af6425354c21426
I asked people on reddit but they said better to ask you.
So it throws this Lua error to me almost always, when the game loaded, when rares appear etc.
The interesting thing on another account with the same client it does not throw any error. That was a bit strange for me, then I thought I'll delete the silverdragon saved variables on my account, but it did not change anything.
Do you have any idea related to this?
In reply to zsolti15a:
You (probably) have an old version of the addon -- this was an error that cropped up with some wow changes back at the start of May, and was fixed in v2024.2 of SilverDragon. It only happens when certain things are drawn in the popups, so whether you get it on any given profile would depend on exactly how you have them configured.
In reply to Kemayo: Yea, then I checked. Somehow it disappeared of my curseforge library so it did not update it :(
Thank you so much!
After installing this mod, I turned off all the tooltip options as I want my achievement mod to keep handling tooltips. However, my achievement mod tooltips are now gone, even when I disable SilverDragon. Not sure if the issue is here or with the achievement mod - Krowi's Achievement Filters
why is Silver Dragon blocked by "AddonSkins" addon?
Hello! Thanks for your hard work. I wondering if there is any way to mark the mobs for the last time you kill them .. to keep track of the rares kill after the reset .. in Pandaria remix
I'm struggling to get this to work in Zaralek Caverns for hunting rares. I turned on the latest setting for Infinite Distance Vignettes, but it only appears to scan for them on zone entry or on world entry. New vignettes for rares won't generate an alert as they spawn. None of the mobs are being ignored and the correct rares (when alive) are properly generating alerts when I go out of my way to /reload
Hi! Thanks for your awesome work.
I started getting a little "Announce" button center screen since Tuesday. Does that happen to belong to you and if so, how do I turn it off? Thanks!
Latest release is spamming errors on Cata Pre-patch
In reply to RorthronTheWise:
Yeah, there was a bug in ChatThrottleLib -- I'm doing a rerelease to pick up the new version.
In reply to Kemayo: thank you! had to rollback to last patch which worked fine, tried to paste bug, but bugsack wouldn't let me copy for some reason =/
53102x ...SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:428: attempt to call method 'Link' (a nil value)
[string "@SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua"]:428: in function <...SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:409>
Locals:
this = Frame {
0 = <userdata>
}
delay = 0.019000
self = <table> {
Hook_SendAddonMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:269
Hook_SendChatMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:260
avail = 6.480000
SendAddonMessageLogged = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:608
MSG_OVERHEAD = 40
bChoking = true
Enqueue = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:487
securelyHookedLogged = true
MIN_FPS = 20
BURST = 4000
Hook_SendAddonMessageLogged = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:279
BlockedQueuesDelay = 0.425000
OnUpdate = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:409
Despool = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:359
bQueueing = true
securelyHooked = true
MAX_CPS = 800
LastAvailUpdate = 2036662.521000
OnUpdateDelay = 0
UpdateAvail = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:289
nBypass = 99
OnEvent = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:399
Init = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:186
Prio = <table> {
}
version = 26
SendChatMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:503
SendAddonMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:594
nTotalSent = 0
Frame = Frame {
}
HardThrottlingBeginTime = 2036660.897000
}
(for generator) = <function> defined =[C]:-1
(for state) = <table> {
BULK = <table> {
}
NORMAL = <table> {
}
ALERT = <table> {
}
}
(for control) = "BULK"
_ = "BULK"
Prio = <table> {
ByName = <table> {
}
avail = 0
nTotalSent = 0
Ring = <table> {
}
Blocked = <table> {
}
}
(*temporary) = nil
(*temporary) = <table> {
}
(*temporary) = <table> {
}
(*temporary) = "attempt to call method 'Link' (a nil value)"
ChatThrottleLib = <table> {
Hook_SendAddonMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:269
Hook_SendChatMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:260
avail = 6.480000
SendAddonMessageLogged = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:608
MSG_OVERHEAD = 40
bChoking = true
Enqueue = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:487
securelyHookedLogged = true
MIN_FPS = 20
BURST = 4000
Hook_SendAddonMessageLogged = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:279
BlockedQueuesDelay = 0.425000
OnUpdate = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:409
Despool = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:359
bQueueing = true
securelyHooked = true
MAX_CPS = 800
LastAvailUpdate = 2036662.521000
OnUpdateDelay = 0
UpdateAvail = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:289
nBypass = 99
OnEvent = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:399
Init = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:186
Prio = <table> {
}
version = 26
SendChatMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:503
SendAddonMessage = <function> defined @SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:594
nTotalSent = 0
Frame = Frame {
}
HardThrottlingBeginTime = 2036660.897000
}
pairs = <function> defined =[C]:-1
math_min = <function> defined =[C]:-1
Same here :/
In reply to determined_khorana59:
Yeah, there was a bug in ChatThrottleLib -- I'm doing a rerelease to pick up the new version.
I updated my addon today and after that i get this error all time even after an reload:
Message: ...SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:428: attempt to call method 'Link' (a nil value)
Time: Mon May 6 10:44:13 2024
Count: 77
Stack: ...SilverDragon/lib/ChatThrottleLib/ChatThrottleLib.lua:428: attempt to call method 'Link' (a nil value)
Locals:
In reply to IngemarA:
Yeah, there was a bug in ChatThrottleLib -- I'm doing a rerelease to pick up the new version.