ValidateAura resolved remote aura timers from libdebuff's allBuffAuras and then from AllCasterAuraTracking via FindAllCasterAuraByName. Both existed for one reason: vanilla cannot report a timer for an aura on a unit other than the player. ClassicAPI's Aura::Source cache does, reconstructing duration and expirationTime for any unit from the observed SMSG_SPELL_GO -- caster-modified, so talent extensions and combo-point finisher scaling are already applied, and Carnage's roll-gated Rip/Rake refresh is handled in the DLL rather than mirrored in Lua. Replaced that ~70-line cascade with ResolveUnitAuraViaClassicAPI, a positional C_UnitAuras.UnitAura scan over the relevant range. Matching stays ours -- by spellID when the conditional supplied a number, else by lowercased name, since C_UnitAuras' own by-name lookup is case-sensitive and exact and would miss [debuff:thunder_clap]. It runs after the existing scans and overrides them, which is what "source of truth" means here. Also drops the libdebuff UnitBuff timeleft bug the old comments worked around (timeleft reporting ~1000s), since nothing reads it on this path any more. Presence and stacks from C_UnitAuras are reliable. Timing is best-effort by design: an aura cast before login, or one refreshed at max stacks, yields no expirationTime, and remaining is left nil so the caller keeps its found-and-0 default. A permanent aura (duration 0) reports -1, matching the existing convention. Still on the old machinery and not yet migrated: the non-player overflow-slot buff path (AllCasterAuraTracking, guarded by a debuff-slot check) and the player branches. AllCasterAuraTracking still has 56 references across 5 files, mostly OverflowBuffFrame and Conditionals.
SuperCleveRoid Macros
Enhanced macro addon for World of Warcraft 1.12.1 (Vanilla/Turtle WoW) with dynamic tooltips, conditional execution, and extended syntax.
Full Documentation on the Wiki
Requirements
| Mod | Required | Purpose |
|---|---|---|
| Nampower (v3.0.0+) | ✅ | Spell queueing, DBC data, auto-attack events |
| UnitXP_SP3 | ✅ | Distance checks, [multiscan] enemy scanning |
| ClassicAPI | ✅ | Modern C_* API: dispel-type conditionals ([magic], [curse], …), [moving] speed |
Installation
- Download and extract to
Interface/AddOns/SuperCleveRoidMacros - Recommended pfUI: Use brues-code/pfUI for full compatibility with macro spell scanning and action bar features
Quick Start
#showtooltip
/cast [mod:alt] Frostbolt; [mod:ctrl] Fire Blast; Blink
- Conditionals in
[]brackets, space or comma separated - Arguments use colon:
[mod:alt],[hp:>50] - Negation with
noprefix:[nobuff],[nomod:alt] - Target with
@:[@mouseover,help],[@party1,hp:<50] - Spell names with spaces:
"Mark of the Wild"orMark_of_the_Wild
Multi-value logic:
| Syntax | Logic | Example |
|---|---|---|
[buff:X/Y] |
OR | Has X or Y |
[buff:X&Y] |
AND | Has X and Y |
[nobuff:X/Y] |
NOR | Missing both |
[nobuff:X&Y] |
NAND | Missing at least one |
Comparisons: [hp:>50], [hp:>20&<50], [buff:"Name"<5] (time), [debuff:"Name">#3] (stacks)
Wiki
See the Wiki for complete documentation:
- Quick Start — Syntax, multi-value logic, comparisons, special prefixes
- Slash Commands — All 35+ commands, priority macros, UnitXP scanning
- Conditionals — 150+ conditionals (player & target), short aliases, extended unit tokens, multiscan
- Reference Tables — CC types, damage schools, stat types, swing types
- Features — Debuff timers, combo tracking, talent modifiers, TWoW mechanics
- Overflow Buff Frame — Hidden buff display for 32+ buffs
- Immunity Tracking — Auto-learned NPC immunities
- Settings — Configuration and console commands
- Supported Addons — Compatible addons and integrations
Known Issues
- Action-bar macros are identified by slot, so blank or duplicate macro names are fine. Only macros referenced by name (
{MacroName}nesting,/runmacro "Name") still need a unique name to disambiguate. - Reactive abilities must be on action bars for detection
- Debuff time-left conditionals only work on own debuffs unless pfUI libdebuff or Cursive has data
- Macro line length: 261 characters max (MacroLengthWarn extension prevents crashes)
Supported Addons
Unit Frames: pfUI, LunaUnitFrames, XPerl, Grid, CT_UnitFrames, agUnitFrames, and more
Action Bars: Blizzard, pfUI, Bongos, Discord Action Bars
Integrations: SP_SwingTimer, TWThreat, TimeToKill, QuickHeal, Cursive, ClassicFocus, SuperMacro
Note: For pfUI users, the brues-code/pfUI fork includes native SuperCleveRoidMacros integration for proper cooldown, icon, and tooltip display on conditional macros.
Credits
Based on CleverMacro and Roid-Macros.
MIT License