Brues afc5e513ca Finish the C_UnitAuras swap in CheckImmunity
CheckImmunity asks "is this NPC immune to that school, and if the entry is
conditional, does it hold the buff that grants it" in two places. The
plain-school path was migrated to C_UnitAuras.GetAuraDataBySpellName -- one
by-name lookup across the unit's auras. The split-damage path was not, and was
still walking 32 buff slots calling C_Spell.GetSpellName on each to compare the
name back, twice over, once for the initial school and once for the DoT's.

Both copies were the same twenty lines with the variable names changed, so they
fold into a SchoolImmune(unitId, school, targetName) helper that the split path
calls twice. Same answer, same order of checks: a permanent entry is immune, a
table entry without a buff is immune, a table entry with one is immune only
while the aura is up.

The plain-school path keeps its own inline version -- it is not the same
predicate. It gates on the recorded spell name first for the "unknown" school,
and a table entry carrying neither buff nor spell falls through to false there
where the split path calls it immune. Unifying those is a behavior change, not a
refactor, so it is left alone.
2026-09-12 07:48:31 -05:00
2026-09-11 13:57:11 -05:00
2026-09-09 12:46:48 -05:00
2026-09-09 12:46:48 -05:00
2026-09-11 13:44:09 -05:00
2026-09-11 13:57:11 -05:00
2026-09-11 13:57:11 -05:00
2025-08-18 16:15:25 -04:00
2026-09-11 13:44:09 -05:00

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 (v1.15.0+) ✅ Modern C_* API: dispel-type conditionals ([magic], [curse], …), [moving] speed, unit-filtered events

Installation

  1. Download and extract to Interface/AddOns/SuperCleveRoidMacros
  2. 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 no prefix: [nobuff], [nomod:alt]
  • Target with @: [@mouseover,help], [@party1,hp:<50]
  • Fallback groups, Blizzard-style: [@mouseover,help][@focus,help][] Rejuvenation tries each [...] in order and the first that passes casts the shared spell; [] always passes. Mixes freely with ;
  • Spell names with spaces: "Mark of the Wild" or Mark_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

S
Description
Requires ClassicAPI
Readme MIT
8.9 MiB
Languages
Lua 100%