BuffHandler

BuffHandler is a three-in-one buff manager: clickable, self-learning bars for the buffs you're missing (one click reapplies them), live countdown bars for your active buffs, and a raid-recon module for group buff intel — fully multilingual in 10 languages.

File Details

BuffHandler

  • R
  • Jul 3, 2026
  • 6.35 MB
  • 0
  • 11.0.0.0000

File Name

BuffHandler(2).zip

Supported Versions

  • 11.0.0.0000

BuffHandler – Performance Update (2026-07-03)

This release is a pure performance pass based on profiler feedback from the CoA developers. No features were added or removed; all bars, alerts and lists behave exactly as before. Under raid load the addon's event-handler cost drops by roughly an order of magnitude.

The problem

UNIT_BUFF_CHANGED fires for every buff change of every unit (the event's unit argument is unreliable on this client, so it cannot be filtered). In a raid this means constant event bursts – and previously each single event synchronously triggered a full BuffKeeper update (buff scan + complete bar render), a redundant BuffTracker refresh and a BuffSpy scan. Profiling showed the BuffKeeper event frame alone at ~55% of total OnEvent time.

Changes

BuffKeeper – event coalescing. UNIT_BUFF_CHANGED, BAG_ITEM_UPDATE and inventory events no longer run the full update path per event. The handler now only sets a dirty flag; a single batched update runs at most every 0.1 s. N events in a burst → 1 update. Cheap invalidations (item caches) still happen immediately, the equipment rescan moved into the batch.

BuffTracker – removed redundant event work. The tracker no longer registers UNIT_BUFF_CHANGED at all. Its permanent 0.2 s refresh timer already redraws the bars; the per-event refresh was a synchronous duplicate of that work.

BuffSpy – batched scanning. Player-buff scan and BK observation are now coalesced as well (0.15 s window, deliberately offset behind the Keeper batch). Buff-history gain detection is unaffected – it simply runs less often.

Shared buff snapshot. All three modules read player buffs through one unified scanner. That scanner now keeps a short-lived raw snapshot per unit (0.1 s TTL, invalidated on every buff event), so Keeper, Tracker and Spy share a single engine read per burst instead of three separate ones. The TTL is intentionally shorter than the tracker interval, so countdown times stay accurate.

Native buff bar hiding. The re-hide check for the game's native buff bar now keeps state and is a no-op unless the bar actually reappeared or the setting was toggled (previously two protected calls per buff event, twice).

Behavioral notes

  • Bars may react to a buff change up to ~0.1–0.15 s later than before – below the tracker's own display granularity and not visible in practice.
  • Everything else (profiles, click-to-use, alerts, raid monitor, history, saved variables) is untouched.