Simdragosa

Companion to the Simdragosa desktop app (github.com/Xiantus/simdragosa-standalone). Shows Droptimizer DPS gains on item tooltips. Type /sdr export to capture your SimC profile and sync it with the app automatically. Type /sdr for all commands.

File Details

v1.4.0

  • R
  • Apr 16, 2026
  • 199.37 KB
  • 78
  • 12.0.1
  • Retail

File Name

Simdragosa-v1.4.0.zip

Supported Versions

  • 12.0.1

Simdragosa

v1.4.0 (2026-04-16)

Full Changelog

  • merge: resolve CLAUDE.md conflict, keep develop version
  • release: v1.4.0
  • fix: use C_Item.GetItemIconByID for item icons
    GetItemIconByID returns a numeric file ID directly from the client
    without requiring the item to be in cache. No string path prefix
    needed — SetTexture accepts file IDs natively. Same approach as
    KeystoneLoot. Eliminates the '?' icon problem for Midnight items.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • fix: derive tooltip ilvl from track, not entry.ilvl
    entry.ilvl is always the item's actual equipped ilvl (mythic cap 289),
    not the track's sim ilvl. Replace per-item ilvl lookup with TRACK_DISPLAY
    table that maps track → {canonical 6/6 ilvl, track bonus ID}, so heroic
    always shows at 276 and mythic at 289 regardless of what's in the DB.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • fix: use C_Item.GetDetailedItemLevelInfo (3rd return) for base ilvl
    GetItemInfo 4th return is the display/scaled level (44 for this item),
    not the base. C_Item.GetDetailedItemLevelInfo 3rd return gives the
    actual base ilvl (197), matching what KeystoneLoot uses.
    delta = simIlvl(289) - baseIlvl(197) = 92 → bonus 1564 → correct scaling.
    Also removes debug lines added in previous commit.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • debug: log base ilvl sources in tooltip to diagnose scaling
  • fix: correct track label and base ilvl in scaled tooltip links
    • Store track per list item and row (simTrack) so heroic vs mythic
      can be distinguished even when ilvls overlap
    • Switch base ilvl source from C_Item.GetDetailedItemLevelInfo to
      GetItemInfo 4th return — more reliable for uncached items
    • Add 2D TRACK_BONUS_IDS[track][ilvl] table so tooltip shows correct
      "Upgrade Level: Heroic 6/6" / "Mythic 6/6" label
    • Pass track into BuildScaledItemLink; include track bonus in link
      only when the (track, ilvl) pair is in the table
      Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • fix: drop track bonus ID from scaled item link
    ilvl alone can't distinguish heroic vs mythic (both share 272/276).
    Track bonus only affects the cosmetic "Upgrade Level: X" label, not
    stat values. Removing it prevents wrong track labels while keeping
    full stat scaling via the delta bonus.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • feat: proper scaled tooltips via delta bonus IDs (KeystoneLoot technique)
    Replace guessed Wowhead bonus IDs with the correct approach:
    • ILVL_DELTA_BONUS table maps ilvl delta to client DB2 bonus ID (1372-3229)
      that actually scales stats in the game client
    • TRACK_BONUS_IDS maps simmed ilvl to upgrade track tier bonus (12777-12806)
      for "Upgrade Level: Myth 6/6" display
    • C_Item.GetDetailedItemLevelInfo() provides base ilvl; delta = simIlvl - baseIlvl
    • Link format: item:ID:::::<>playerLevel:specIdnumBonusIds:b1:b2:...
    • SetHyperlink with this link renders fully scaled stats natively
      Credit: KeystoneLoot addon (Wolkenschutz) for the delta bonus ID table.
      Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • revert: drop bonus ID scaled link, use SetItemByID + simmed ilvl footer
    Wowhead bonus IDs 12785-12806 work in Wowhead's server-side renderer
    but don't exist in the game client's DB2 as ilvl-scaling bonuses.
    SetHyperlink with crafted links shows base stats regardless.
    Fall back to the honest approach: show item at base stats with a
    "Simmed at ilvl X" footer line so the user knows the context.
    ILVL_BONUS_IDS table and BuildScaledItemLink left in place — may be
    useful if correct client DB2 bonus IDs are found in future.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • debug: add tooltip path indicator to diagnose scaling
    Shows "[SDR] scaled link ilvl X" or "[SDR] fallback ilvl X" at bottom
    of hover tooltip so we can confirm which code path is taken.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • feat: complete Midnight S1 bonus ID table (233-289)
    Replace multi-ID combos with cleaner single-ID 12785-12806 series,
    confirmed by brute-force scanning Wowhead. Covers all ilvls from
    Veteran 1/6 (233) through Myth 6/6 (289). Only gap is Veteran 4/6
    (ilvl 243) whose bonus ID was not found.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • fix: move ILVL_BONUS_IDS and BuildScaledItemLink before RW_GetOrCreateRow
    Lua closures only capture locals declared in lexical scope before the
    function. Both helpers must be declared before RW_GetOrCreateRow or
    the OnEnter closure sees them as nil globals.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • feat: scaled item tooltips via Midnight S1 bonus ID table
    Build a proper |Hitem:...|h link with season bonus IDs so hovering an
    item in the results window shows stats at the simmed ilvl rather than
    the base item. Falls back to SetItemByID + 'Simmed at X' footer for
    ilvls not yet in the table (280+ Hero/Myth track pending in-game
    confirmation).
    ILVL_BONUS_IDS table is designed to be updated each season.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • revert: remove ilvl line override from hover tooltip
    Changing GameTooltipTextLeft2 showed the sim ilvl but left all stat
    values (intellect, stamina, etc.) at their base unscaled amounts,
    which was misleading. The "Simmed at X" footer line is sufficient
    to communicate the sim ilvl without lying about stats.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • fix: move SIMC_SPEC_IDS before RW_Open so closure can capture it
    SIMC_SPEC was declared at line 965, after RW_Open at line 685.
    Lua locals are only visible to functions defined after them, so
    SIMC_SPEC was nil inside RW_Open, causing the nil-index error.
    Renamed to SIMC_SPEC_IDS and moved above RW_Open.
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • docs: update workflow — junction to WoW AddOns, release on user go-ahead
    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com