benilla loads `assets/ui/benilla.toc`, not the player's `Interface\FrameXML\FrameXML.toc`, so a row
the chain carries and the manifest omits is silently absent — no read attempt, no warning. Six went
in with the arena templates; this is the rest of the diff but one, each with a comment on what it
is for and in the chain's own order.
The six baked Octo extensions are the player-visible half. `/pvp` now asks before a War Mode
character spends its permanent, persisted opt-out. The exhaustion tooltip reads this realm's 175%
instead of 1.12's baked 150%, and `/rested` answers. A player's hover shows the realm's own two
challenges, Samurai and Together Forever: the server was already setting bits 10 and 11, and
`TargetFrame_UpdateChallenges` walks a list that stopped at 10. The one-shot War Mode offer on
arrival from the hardcore realm renders instead of being dropped. `/bug` and `/suggest` exist again
— Turtle's FrameXML dropped the BugReport frame, and this rebuilds the dialog over chunked `.bug`
SAY commands. And on C'Thun the Ghost debuff's tooltip carries the hardcore afterlife line, which
is why the realm reverted that string in Spell.dbc.
With them: `OctoToolReqTip`, the realm's own 40 KB recipe-to-tool table wrapping
`GetTradeSkillTools`, so a recipe whose tool OctoWoW changed names its real one; six `OctoLocale`
rows, each gated on `GetLocale()` and inert here; and the three Turtle windows the manifest said
needed verbs built first — arena (4 rows), barbershop, guild bank (2). They need exactly one,
`CameraZoomOut`, now built. All three publish their frames and open only on an exact gossip trigger
string, so answering nil for `GetGossipText` cannot hide ordinary gossip.
`StatsFrame.xml` is the row left out, and the manifest says so where it would sit: the debug-build
overlay whose OnUpdate is the only reader of `GetDebugStats`, a binding we do not have, so the row
would publish a `ToggleStats` that raises twice a second once pressed.
`UNLEARNED_SPELL` joins `UNPRODUCED` rather than getting a producer. It is the only entry there that
is not a 1.12 event at all: 5875's event-name pool carries `LEARNED_SPELL_IN_TAB` and
`SPELLS_CHANGED` and no unlearn sibling, so the reference ignores that registration exactly as we
do, and the War Mode re-scan rides PLAYER_LOGIN and LEARNED_SPELL_IN_TAB, which both fire.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn