promotional bannermobile promotional banner

Sentinel BuffMeThen

Support nearby players with buffs – including Paladins, Priests, Druids, and Mages.
Back to Files

SentinelBuffMeThen_v004.zip

File nameSentinelBuffMeThen_v004.zip
Uploader
RLDevDERLDevDE
Uploaded
Nov 9, 2026
Downloads
11
Size
2.1 MB
Flavors
MoP ClassicClassicTitan Reforged ClassicForeverRetail
File ID
9529509
Type
R
Release
Supported game versions
  • 12.1.7
  • 5.5.4
  • 4.4.2
  • 3.80.2
  • 3.4.5
  • 1.60.1
  • 1.15.9

What's new

Changelog

1.2.1

Added

  • logo.png is used everywhere: addon list icon (TOC), minimap button and the headers of the buff window, settings window and assignment matrix.
  • Option "Include myself": you appear in your own list and are buffed through the direct unit token.
  • Option "Auto-enable friendly nameplates": switches nameplateShowFriends on once at login and on zone change (out of combat), so strangers get a unit token. Mouseover is an additional stranger source next to target and focus.
  • Settings window: the General, Buffs, Window and About pages scroll (mouse wheel and a draggable scrollbar) and follow the content height. The window is more compact (560x520). The History tab keeps its fixed layout with its own list scroll.

Changed

  • Minimap button: registered as a LibDataBroker launcher through LibDBIcon (when any loaded addon provides the libraries), so it looks like the other addons' buttons and collectors (SentinelForeverUI button bars, MinimapButtonHide) can pick it up. Without the libraries a LibDBIcon-style fallback button LibDBIcon10_SentinelBuffMeThen is built on the Minimap.
  • Name macro restored for strangers and buffers: /target Name, /cast [help,nodead] Spell, /targetlasttarget. Buffers without a unit token are listed again so you can buff back without targeting them first; after a click they stay hidden for two minutes because their buff state cannot be read. Group members and yourself keep the direct unit path.
  • The buff window always anchors at its top-left corner (bottom-left with "Grow upwards") and re-anchors old saved positions, so new rows only extend it downward instead of growing in both directions.
  • Every unit name is read as the full character name ("First Last", via GetUnitName) instead of the first name returned by UnitName, so assignments, buffers, history, overrides, sync and the macro no longer mix up players who share a first name (WoW Forever surnames).
  • Initialize runs every step isolated and creates the minimap button first; an error in one step can no longer take the button or the event wiring down.

Fixed

  • 16001 was missing from the TOC Interface line, so the Forever client treated the addon as out of date and did not load it.
  • Strangers outside the group could not be buffed first because they only appear with a unit token (see friendly nameplates above).
  • Nearby players were not detected: nameplateShowAll is now enabled next to nameplateShowFriends (master switch — without it only the target has a plate and no nameplateN token resolves), and the check retries every few seconds so a combat-locked first attempt no longer disables it for the whole session.
  • Friendliness no longer relies on UnitIsFriend alone (unreliable on nameplate tokens): it falls back to UnitReaction and UnitCanAttack.
  • IsSpellInRange returning "out of range" on nameplate tokens no longer hides the row — CheckInteractDistance (~28 yd) cross-checks first, so a false negative cannot make nearby strangers invisible when "hide out-of-range rows" is on.
  • A missing UnitIsConnected API no longer marks every unit out of range.
  • Combat taint fixed: CheckInteractDistance/UnitInRange are protected calls on Forever during combat and threw ADDON_ACTION_BLOCKED. In combat only IsSpellInRange answers, falling back to the last known range per player+buff; the extra probes only run out of combat. Group members are friendly by definition and skip the friendly check entirely, so they can never vanish mid-combat if UnitIsFriend fails.
  • The resting filter no longer hides strangers in every rest area — villages and camps in the open world also report IsResting(). Strangers are only suppressed while resting when a real crowd is around (6+ friendly nameplates). A deliberately targeted/focused/hovered player is never suppressed, and "include strangers while resting" still disables the filter completely.
  • /sbmt debug prints the nameplate CVars, which nameplateN tokens resolve and their friendliness — use it to diagnose stranger detection on any client.
  • Forever has no usable combat log for addons: registering COMBAT_LOG_EVENT_UNFILTERED throws ADDON_ACTION_FORBIDDEN at load. Strangers on Forever are discovered through nameplate tokens instead — nameplateShowAll is enabled automatically (verified working: friendly players resolve with friend=true). The combat log remains active on the classic flavors (Era/TBC/Wrath/Cata/MoP).
  • The "recently clicked" memory for tokenless entries is now per buff, not per player: after casting Fortitude on a stranger, Spirit/Shadow Protection stay clickable instead of hiding the whole row for 2 minutes.
  • The list defaults to 5 rows ("Max rows" setting, 3-30). Rows that finish drop out and the next candidates slide in automatically, so the window stays a rolling queue instead of a wall of names.
  • Priest "spinnt" fixed: Fear Ward only lasts ~3 minutes — always under the warn threshold — so every unit wearing it sat permanently in "expiring" state: amber rows that never cleared, plus auto-buff re-casting it on a loop. Slots can now be flagged noWarn (missing/present only, never "expiring") and Fear Ward uses it. All four classes' spell ids verified against the Forever trainer data.
  • ADDON_ACTION_FORBIDDEN spam stopped: every optional API call now goes through B.Probe(name, fn, ...), which blacklists a function after its first failure so a protected API logs once and is never retried. Covered: GetPlayerInfoByGUID, UnitGUID, UnitReaction, UnitCanAttack, CheckInteractDistance, UnitInRange, UnitIsConnected, IsResting, Ambiguate, GetItemCount, PlaySound/PlaySoundFile, SendChatMessage, SendAddonMessage, RegisterAddonMessagePrefix and the nameplate CVar reads/writes. Unknown stranger classes fall back to the people DB. /sbmt debug names the blacklisted APIs and captures the Lua stack of the last forbidden/blocked call for diagnosis.
  • Strangers with a live unit token (nameplate/target/focus/mouseover) now cast through the token directly instead of the /target macro — the macro only remains for tokenless entries (combat-log strangers, buffers without a token).

1.2.0

Added

  • Multi-client support: Classic Era, TBC Anniversary, Wrath/Titan Reforged, Cataclysm, Mists of Pandaria Classic, WoW Forever (Camelot) and Retail including Midnight. The TOC lists every current interface number and no longer restricts loading to the Camelot client.
  • Client flavor detection (B.flavor): classic-style flavors keep ranks, group variants and reagents; modern flavors (Retail, MoP, Cata) use the single raid-wide spell, so the group spell is folded into the single slot and reagents are ignored.
  • Spell database extended with the TBC ranks (Fortitude, Spirit, Shadow Protection, Mark/Gift of the Wild, Thorns, Arcane Intellect/Brilliance, Dampen/Amplify Magic, all paladin blessings and greater blessings) and the extra paladin auras and seals of TBC and MoP. Spell ids that do not exist on the running client are skipped, so the highest known id always wins.
  • Who-buffed-me tracking falls back to the legacy UnitAura on clients without C_UnitAuras and additionally uses the combat log (SPELL_AURA_APPLIED) on Era/TBC/Wrath/Cata/MoP, which finds strangers without a unit token. Retail and Forever keep the aura-source path.

Changed

  • Spell-known lookup falls back through C_SpellBook, C_Spell, IsPlayerSpell and IsSpellKnown; addon messages and chat use C_ChatInfo or the legacy globals, and the instance channel where applicable.
  • Unit predicates and names are read through guarded wrappers so Midnight cannot raise "boolean test on a secret value".
  • Texture gradients work with either SetGradient or the legacy SetGradientAlpha; secure buttons force key-up so clicks behave the same regardless of the ActionButtonUseKeyDown setting.
  • Paladin on Retail has no raid blessings: the list stays empty there, the aura self-bar and the assignment matrix remain available.

1.1.1

Fixed

  • Class-token lookup for grouped players; paladin blessings resolve from the target's class instead of its localized class name.
  • Paladin self-bar aura scan error; tracked buffers survive entering the world and reloads.
  • Spell-info lookups are guarded against invalid ids and client API errors; the missing tooltip accent color is restored.
  • Secure buttons register release clicks only, avoiding duplicate casts.
  • An explicit "no blessing" assignment is kept instead of silently reverting to the automatic fallback.
  • Unsupported aura lookup APIs fall back to another reader; unreadable aura scans count as unknown, not missing, and failed reads during reload or combat no longer clear tracking state or replay chat announcements.
  • The player is counted in raid blessing buckets and expiring raid buffs are refreshed.
  • Range checks no longer return false positives from secret values and no cast is offered when the target is unknown or out of range.
  • Paladin assignment sync is stable on roster changes; the Clear button no longer wipes other paladins' assignments.
  • The History cast target stays stable in combat; the settings and assignment windows are large enough for their contents.

Changed

  • Nearby strangers and History casts use secure unit tokens; entries without a live unit token stay in History but are not castable.

1.1.0

Added

  • PallyPower-style paladin tools: blessing assignment matrix (paladins x classes plus an aura column, click or mouse wheel to cycle), player-level overrides, Auto-Assign, Report to raid/party chat, Clear, and addon-channel sync between SentinelBuffMeThen users (P button in the header).
  • Paladin self bar: aura, Righteous Fury and seal icons, red when missing, green with a timer when active; click to cast, right-click to cycle.
  • Auto-buff button in the header: casts the next needed buff and rotates through all actionable targets.
  • Remaining time on buff icons with an amber warning under a configurable threshold; the remembered expiry keeps timers ticking through combat-secret auras.
  • Sound and frame flash when a new buff lands on you.
  • Reagent strip along the bottom of the window: item icons and counts for the reagents your known group buffs need.
  • History tab in the settings window with search and filters (all / buffed / not buffed / can't buff); /sbmt history jumps straight to it.
  • Persistent people database and buff event log (who buffed you, when and how often), saved across sessions; "Clear history" button in the settings.
  • Raid mode: one row per raid subgroup (Priest/Druid/Mage) or per class (Paladin) with missing counts and click-through rotation.
  • Locales: deDE in full; frFR, esES/esMX, ptBR and ruRU for visible strings. Spell names come from the client's localized database.

Changed

  • Chat announcements dedupe per buff family and only fire on the absent-to-present transition.
  • Resting areas no longer flood the list with strangers (opt-in setting).

1.0.0

  • Initial release: buff-back list for Paladin, Priest, Druid and Mage.
  • Detects who buffs you via the aura sourceUnit and announces it in chat.
  • Rows for buffers, group members and friendly strangers (nameplates), with left-click single buff and right-click group buff.
  • Always casts the highest known rank; reagent tracking for group buffs.
  • Paladin blessings follow SentinelForeverBlessings assignments when installed.
  • Sentinel glass look, minimap button and settings window (/sbmt).

This mod has no additional files