BossWatch

Replace Blizzard boss target frames with fully configurable frames - cast bars, auras, raid markers, custom textures and fonts.
Back to Files

v0.8.9

File nameBossWatch-v0.8.9.zip
Uploader
TimikanaTimikana
Uploaded
Aug 29, 2026
Downloads
475
Size
550.5 KB
Flavors
ClassicClassic TBCMoP ClassicRetail
File ID
8759248
Type
R
Release
Supported game versions
  • 12.1.0
  • 5.5.4
  • 2.5.5
  • 1.15.7

What's new

BossWatch

v0.8.9 (2026-08-29)

Full Changelog Previous Releases

  • Merge branch 'beta' for v0.8.9
  • bump 0.8.9: cut release
  • auraengine: re-push count/filters/layout after group creation
    /bossw acdebug reported buttons=10 on every container while
    aurasMaxCount defaults to 3 (hard-clamped to 8) — 10 is Blizzard's
    default pool, suggesting either GetAuraGroupFrameCount counts allocated
    pool frames rather than visible ones, or the maxFrameCount key in the
    AddAuraGroup opts didn't take on this build.
    Make the creation path symmetric with the update path: always push
    maxCount / candidateFilters / layout through the live setter APIs right
    after AddAuraGroup. Covers opts-key drift between builds either way.
  • auras: declarative AuraContainer engine for 12.1 Retail
    12.1 sealed Lua aura reads in combat — index/slot/instanceID reads
    hard-error while auras are secret and UNIT_AURA delivers a fully secret
    payload. The v0.8.8 pcall hardening stopped the error spam but left the
    legacy scan blind in combat: empty aura row during pulls.
    New Frames/AuraEngine.lua, adapted from TankWatch v1.5.1's live-combat-
    validated engine (pattern sources: DandersFrames AuraContainer.lua,
    BigWigs_Plugins/Auras.lua): the addon creates + styles the buttons,
    Blizzard's secure code fills + drives them, secrets included.
    • Query is declarative: group filter = db.aurasFilter (HARMFUL/HELPFUL,
      container rebuilt if flipped), candidateFilters map the source
      dropdown (MINE -> isFromPlayerOrPlayerPet=true, NOT_MINE -> =false,
      BOSS_ONLY -> isBossAura=true) — evaluated secure-side against real
      data, so these filters are EXACT on Retail again. The (!) limitation
      marker in the options dropdown is now gated behind engine support.
    • Geometry on an invisible shadow box (nothing may anchor to the
      container — forbidden aspects), flow layout mirrors LayoutAuras'
      anchor/grow settings; cell size via the group layout table.
    • Stacks: bare FontString via SetApplicationCount (NEVER a formatter —
      bricks the container). Timer: compact NumericRuleFormatter recipe
      with the 68914+ DurationTextBinding dance, C-evaluated, combat-safe.
    • Fonts: engine texts registered in f._acTexts, walked by ApplyFonts.
    • Test mode + Classic clients (probe: toc >= 120100 + AddAuraGroup)
      stay on the legacy painted path; UNIT_AURA repaint and UpdateFrame's
      UpdateAuras call are skipped while the engine owns a frame's row.
    • /bossw acdebug prints per-frame engine state.
      Wiring: AuraEngine.lua loads before Boss.lua in all four TOCs;
      ApplyLayout calls AE.Apply(f, db) and parks the legacy buttons when it
      returns true.