v2026.22-12-gf9e3f90

Details

  • Filename
    SilverDragon-v2026.22-12-gf9e3f90.zip
  • Uploaded by
  • Uploaded
    Jul 25, 2026
  • Size
    532.26 KB
  • Downloads
    273
  • MD5
    55e897b7b7a2176b42743fd715e12788

Supported WoW Retail Versions

  • 12.0.7

Supported WoW Mists of Pandaria Classic Versions

  • 5.5.4

Supported WoW Wrath of the Lich King Classic Versions

  • 3.4.5

Supported WoW Classic Versions

  • 1.15.8

Supported WoW Burning Crusade Classic Versions

  • 2.5.6

Changelog

SilverDragon

v2026.22-12-gf9e3f90 (2026-07-26)

Full Changelog Previous Releases

  • Systems update: unknowable appearances, NotMajorFaction, tooltip tidying
    The one that matters is HasAppearance, which cached "the API has no
    appearance for this item" as false and then handed that false back on every
    later call. An item that should read as unknowable started reading as
    known-and-not-collected instead, which is the same vibe as 3841235: it
    stops being hidden from the only-knowable loot lists and tooltips.
  • Custom mob list rebuilt itself on every change
    CustomChanged looked for the zone group under custom.args rather than
    custom.args.zones.args, so it never found one and always fell through to
    a full BuildCustomList.
    Side benefit: the unchecked toggle left behind by removing a mob now
    sticks around reliably, instead of being purged the next time a rebuild
    happened to run. It's there so you can re-add a mob you removed by
    mistake.
  • History: clearing the window left the broker list alone
    self.rares was accumulated in parallel with self.data and never consulted
    self.removed, so neither Clear All nor dismissing a single line took
    anything out of the broker's "seen this session" list. It held the same
    tables as self.data anyway, so derive it instead of keeping both.
  • Quest-gated rewards were hidden from only-knowable loot lists
    The rewards system reads a handful of *_notable keys that SilverDragon
    has no config for, so they came back nil. That matters for quest_notable:
    without it Reward:Obtained() returns nil rather than false for a quest
    reward you haven't earned, and nil reads as "unknowable" downstream, so
    those rewards vanished from tooltips and loot windows with regular loot
    turned off.
    Give the shim fallbacks for the keys we don't configure. The rest only
    feed Notable(), which is gated on show_npcs_emphasizeNotable and so does
    nothing today; that one stays off.
  • Achievement criteria could be half-loaded and then never revisited
    achievements_loaded was set inside the innermost criteria loop, so it
    meant "we read at least one criterion off at least one achievement"
    rather than "we finished a pass". If the client wasn't handing over
    achievement data yet, whichever achievements happened to come back empty
    were skipped, and the flag then stopped LoadAllAchievementMobs from ever
    looking again -- so those mobs had no achievement status for the rest of
    the session, varying run to run with pairs() order.
    Set the flag after the full pass instead, and record each achievement in
    achievements_scanned only once it has actually yielded criteria, so
    anything that wasn't ready is left for later. RECEIVED_ACHIEVEMENT_LIST
    clears the flag to trigger that later pass.
    Deliberately not "only set the flag once every achievement has criteria":
    the table carries achievements that legitimately don't exist on older
    clients, so that would rescan forever. AchievementMobStatus is called
    per-mob while drawing tooltips and overlay pins, which makes an
    event-driven retry a lot safer than a polled one -- and the
    achievements_scanned check keeps the retry to a table walk plus one cheap
    call per achievement still missing.
  • Overlay: in Classic minimap zoom cache went stale, or was never filled
    Retail has C_Minimap.GetViewRadius and so is unaffected.
    MINIMAP_UPDATE_ZOOM and CVAR_UPDATE called RefreshAllData directly,
    skipping UpdateMinimapIcons -- the only thing that caches indoors/zoom
    for GetMinimapViewDiameter.
  • Loot detail tooltips could lose the treasure/shared flags
    Preventative. Only caller was in outputs/ldb.lua and didn't pass any of
    the varargs.
  • ClickTarget: do not push an unshowable popup onto the stack
    ShowFrame could return nil, so check that. If it did fail it'd make the
    length check and ipairs iteration disagree.
  • Vignettes: cope with vignettes that have no id or atlas
    Keep firing the maybe-nil raw vignetteID because event consumers expect
    it.
  • Announcement flash would only check mounts for mobs
  • Announcement flash would be stuck with loot/not-loot settings from first flash
    Follow-up to af8c4fe572a4c03b7379b44089b340fd31b85398
  • History: fix disabling, clearing, and vignette positions
    • OnDisable unregistered against self, but the callbacks are
      registered against the "History" string, so disabling never actually
      stopped them -- the window would pop back open the next time a rare
      was seen. ShardChanged wasn't being unregistered at all.
    • The Seen callback stopped one argument short and dropped the
      vignetteGUID, and GetPositionFromData checked a mistyped data.GUID,
      so vignette and point-of-interest entries never refreshed their
      position from the live vignette. Pass it through and store it the way
      ClickTarget does, and use it for the tooltip's Vignette ID line
      too. (This only became available recently with 381981fd4.)
    • "Clear all" in the context menu only flushed the data provider without
      marking entries removed, so any later refresh (including a shard
      change) brought them all back. Both clear paths now share one method.