TotemBuddy (TotemDeck Fork)

A simple fork of TotemDeck: everything TotemDeck does, plus saveable totem sets you can bind and swap in combat and a one-click reactive utility bar.
Back to Files

v2.2.0-bcc

File nameTotemBuddy-v2.2.0-bcc.zip
Uploader
BandersongBandersong
Uploaded
Jun 28, 2026
Downloads
517
Size
78.7 KB
Flavors
Classic TBC
File ID
8332390
Type
R
Release
Supported game versions
  • 2.5.5

What's new

# Changelog

All notable changes to TotemBuddy. TotemBuddy is a fork of
[TotemDeck](https://github.com/iltGames/TotemDeck) (MIT); versions below cover
the fork's additions.

## [2.2.0] — Shield target tracking, Ancestral Healing tracker & bug fixes

### Added
- **Earth Shield target label.** The Earth Shield button now shows the name of
  whoever has your shield below the icon, class-colored. Scans focus → target →
  mouseover → party/raid so it finds the tank automatically.
- **Ancestral Healing tracker.** New icon in the cooldown cluster tracks the
  "Ancestral Strength" proc — the 25% physical damage reduction buff your target
  receives when you land a critical heal. Lights up green with a duration swipe
  while active. Controlled by the existing cooldown bar settings.

### Fixed
- **Shield charge count invisible.** Stack count on Earth/Lightning/Water Shield
  buttons wasn't rendering: `SetText` was receiving a raw Lua number (WoW needs a
  string), and `NumberFontNormal` has no outline so the text was invisible against
  the dark cooldown swipe. Fixed with `tostring()` and explicit outlined font.
- **Shield buttons only clickable in a narrow strip.** The overlay Frame covering
  each shield button was intercepting all mouse events. `overlay:EnableMouse(false)`
  plus a `GetChildren()` loop on the Cooldown frame to disable any internal child
  frames — same pattern as the working QuickBar buttons.
- **Healing Way stack count not showing.** Same `SetText(number)` and font-outline
  bugs as the shield buttons; both fixed in the cooldown tracker.
- **Cooldown bar immovable.** Tracker frames sit on top of the bar with mouse
  enabled for tooltips but had no drag handlers, so every drag attempt was silently
  dropped. Drag events on tracker icons now forward to the bar.
- **`GetInventoryItemCooldown` crash.** TBC Classic Anniversary requires
  `("player", slot)`; the bare `(slot)` call errored on load.
- **`UnitBuff` return values off by one.** TBC Classic Anniversary 2.5.x omits the
  `rank` field from `UnitBuff` returns. Both `ScanUnit` (Shields.lua) and
  `addon.ScanUnitAura` (Core.lua) had an extra placeholder that shifted every value
  one slot right — `count` was getting the debuff type string, causing a
  "attempt to compare number with string" crash on every shield and buff scan.

## [2.1.0] — Shields, cooldowns, dispels & the "hard to click" fix

### Added
- **Shield trinity trackers.** Earth Shield, Lightning Shield, and Water Shield,
  each a secure cast button *and* a live tracker showing your shield's charges +
  remaining duration (cooldown swipe + time text), dimmed red when missing.
  Earth Shield uses a smart `@mouseover → @target → @player` cast and scans your
  target/focus/group for *your* shield (aura filter `"PLAYER"`), so it finds the
  one on the tank. Per-shield keybinds; `/tb shields` settings window.
  (`UI/Shields.lua`)
- **Cooldown cluster** (display-only): Nature's Swiftness, Mana Tide Totem, your
  equipped trinkets (slots 13/14), and your **Healing Way** stacks on the tank —
  cooldown swipes + ready glow, plus a gold pulse on Nature's Swiftness while
  it's active. `/tb cooldowns`. (`UI/Cooldowns.lua`)
- **Dispel bar.** Cure Disease + Cure Poison as smart `@mouseover` secure cast
  buttons (cleanse the unit under your cursor without changing target), with
  keybinds. `/tb dispel`. (`UI/Dispel.lua`)
- **Mana Tide Totem** added to the quick-react bar (new installs and, via a
  one-time migration, existing ones).
- **Keybind conflict detection.** Binding a key that another TotemBuddy action
  already uses now prints a warning (override bindings are last-writer-wins, so a
  silent clash would otherwise kill the older button). (`Bindings.lua`)
- Quick-react bar gained a **lock toggle** and a **scale slider** in its config.

### Fixed
- **Buttons were hard to click.** The cooldown swipe frame added over each cast
  button was intercepting the mouse; clicks never reached the button. All
  cooldown frames over clickable buttons now call `EnableMouse(false)`.
- Cast buttons registered both `AnyDown` *and* `AnyUp`, firing the secure cast
  twice per click (and double-running right-click handlers), which felt like
  dropped clicks. Now `AnyDown` only — one responsive cast on press.
- The quick-react bar now moves with a plain drag when unlocked (the old
  Ctrl-only drag was easy to miss and made it feel stuck).

### Changed
- Active totem buttons gained a spell-cooldown swipe (Mana Tide, Fire Nova, the
  Elementals) — GCD-length cooldowns are filtered out so it doesn't flicker.
- All new bars defer their secure work out of combat and flush it on
  `PLAYER_REGEN_ENABLED`, and own their saved-variable tables per character.

### Deliberately deferred (documented, not shipped half-baked)
- **Downrank heal macro auto-swap** and **CC'd-without-Tremor flash alert** were
  scoped (GLM feature pass) but not shipped: the first is really a Healing-Wave
  feature with its own config surface, the second relies on locale-fragile combat
  log parsing. Both need more design before they're trustworthy in a raid.

## [2.0.0] — TotemBuddy fork

### Added
- **Named totem sets.** Save the current four active totems as a named set,
  then list / apply / rename / delete / reorder. UI lives in the new **Sets**
  tab of the config window; also driven from chat
  (`/tb saveset|sets|set|delset`). (`Sets.lua`, `UI/SetsTab.lua`)
- **Per-set keybindings for in-combat switching.** Each set can be bound to a
  key; the key casts the set's `/castsequence` (one totem per press), so you
  switch sets mid-fight by pressing a different bound key — within Blizzard's
  one-hardware-event-per-cast rule. (`Bindings.lua`)
- **Quick-react utility bar.** A movable bar of one-click secure cast buttons
  for reactive totems (Grounding, Tremor, Poison/Disease Cleansing, Earthbind by
  default), with its own config window: show/hide, add by name or spell ID,
  remove, and bind a key per totem. (`UI/QuickBar.lua`, `/tb quick`)
- Documentation: full `README.md`, `DESIGN.md` (architecture + the policy rules
  that shape the addon), and this changelog.

### Changed
- Forked and renamed from TotemDeck: addon identifiers, saved variable
  (`TotemBuddyDB`), slash command (`/tb`), and generated macro prefix (`TB*`,
  e.g. `TBAll`).
- All set/quick secure work (macrotext, override keybindings) is deferred out of
  combat and flushed on `PLAYER_REGEN_ENABLED`, mirroring the existing
  `pendingActiveUpdates` pattern.
- Saved-variable init gives each character its own copies of the quick-react
  tables instead of sharing the defaults reference.

### Removed
- The upstream CurseForge auto-release GitHub Action (would have published the
  fork under the wrong identity).

---

Inherited from TotemDeck: the 4-element totem bar, hover popups, totem timers
(bar/icon styles, expiry sounds), out-of-range dimming, weapon-buff buttons, and
the Reincarnation/Ankh tracker.

This mod has no additional files