Brues 63b484b1ea Replace WDB tooltip warmup with GET_ITEM_INFO_RECEIVED handler
ClassicAPI hooks the global GetItemInfo to auto-warm the item cache on a
miss and fires GET_ITEM_INFO_RECEIVED when the async fill lands, so the
tooltip-scan warmup is obsolete: IndexItems's own GetItemInfo calls
already trigger the same warmup, and owned items (bags + equipped) are
priority-prefetched by the engine. The old warmup also assumed the fill
was synchronous, which no longer holds.

Drop DoWDBWarmup and its login scheduling; instead listen for
GET_ITEM_INFO_RECEIVED and run a debounced re-index. IndexItems records
owned itemIDs it could not resolve into pendingItemInfo, and the handler
ignores any fill not in that set (quest DB scans, AH sweeps, chat-link
hovers, inspects) in O(1) so unrelated bursts do not cause reindex churn.
2026-08-21 21:02:59 -05:00
2026-06-21 03:38:50 -05:00
2025-08-18 16:15:25 -04: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 ✅ Modern C_* API: dispel-type conditionals ([magic], [curse], …), [moving] speed

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]
  • 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:

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%