Second tranche. Eight more verbs and six CVar rows, all from state this
client already owns.
The bag group — `FindPlayerItemSlot(idOrName)`, `GetBagItem(bag, slot)`,
`GetItemIdCooldown(itemId)`, `UseItemIdOrName(idOrName)` — shares one
lookup, deliberately: the three that search must agree about *which* of
two identical stacks they mean, and they answer the first, reading bags
and slots ascending, as the reference's own auto-store search walks
(`0x4f8030`) and as a player reads their bags. A name matches through the
item cache, case-insensitively, since a bag slot carries no name of its
own. `GetItemIdCooldown` answers the stock `0, 0, 1` for a cold or
uncarried item rather than nil, because the consumer does arithmetic on
the triple. `UseItemIdOrName` calls `UseContainerItem` itself rather than
reaching past it, so the cursor-clear and repair-mode rules the stock
verb applies still happen.
`CancelPlayerAuraSpellId(spellId, [ignoreMissing])` and
`CancelPlayerAuraSlot(auraSlot)`: the two keys into the `CMSG_CANCEL_AURA`
queue `CancelPlayerBuff` already fills, so the three cannot disagree. The
slot is the **raw 0-based** descriptor slot upstream documents and the
buff events report, not the Lua index. `ignoreMissing` is accepted and
changes nothing — it asks upstream not to complain, and nothing here
would have complained.
`CastSpellNoQueue(spellId, spellBook [, unit])` and
`CastSpellByNameNoQueue(name [, unit])`: the plain cast, which is the
honest mapping and not a stub — benilla has no spell queue to bypass, so
"cast this now, do not queue it" is exactly what happens. The point of
them is the first argument: a **spell id** where stock `CastSpell` takes
a book slot. `"mouseover"` routes to the queue SuperWoW's
`CastSpellByName(name, "CLICK")` already uses.
The six `NP_EnableUnitEventsX` switches are registered stored-only, one
step further back than the four `NP_Enable*` rows beside them: benilla
raises no GUID-keyed unit event at all, so there is no stream for a token
filter to narrow. Registering them stops the unknown-CVar warning and
lets `SuperCleveRoidMacros`'s writes persist; it claims nothing about the
events arriving, and `cvars.rs`'s own reader gate carries that reason.
All nine gates green.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn