# Campaign CH — in-client user test script One connected session against local ACE, retail GUI (`ACDREAM_RETAIL_UI=1`). For the color checks, running the retail client side-by-side is ideal but optional — the hex values are byte-verified; what needs eyes is "does it FEEL right". ## 1. On-screen interface text (CH2 — the SpewBox) - Jump, and press jump again while airborne → **"You can't jump while in the air"** appears as transient text near the top of the viewport, NOT in the chat window. Chat gets no line at all. - Spam it 5+ times fast: the line refreshes in place (no stacking of identical text); distinct refusals stack newest-on-top, max 4 lines. - Try `@version` → its output goes to CHAT (green), not the SpewBox. - **Report presentation impressions**: position, color, and how long lines linger are placeholders pending measurement (register AP-177/AP-178) — say what looks wrong vs your retail memory. ## 2. Chat colors (CH1) Side-by-side vs retail if possible: - Say something → white. Emote (`:waves` works now) → grey. - Tell someone → your "You tell ..." line is DARK yellow (210,210,100); an incoming tell is BRIGHT yellow. - Magic self-cast lines → light blue. Combat: damage you take → salmon, damage you deal → dark red. - `@version` / `@loc` output → green (retail types command output 0x00). - Fellowship chat (if you form one) → bright yellow. ## 3. Side channels (CH3) - `/general hi` → round-trips (ACE echoes it back; blue-grey color). Same for `/trade`, `/lfg`. - Roleplay: with "Hear Roleplay Chat" OFF (the ACE default), sending to Roleplay → **"You are not listening to the Roleplay channel!"** and nothing is sent. Enable it in Settings → Chat → ACE reports entering the channel; sending now works. (`@join roleplay` / `@leave roleplay` also flip it, effective immediately.) - Legacy family single-print: `/f hi` (in a fellowship) shows ONE line, not two. Same for /v /p /m /cv if you have the allegiance structure. - `/a hi` without an allegiance → refusal, not a silent drop. ## 4. Commands (CH4) - `:waves` and `;waves` → emote. `@f, hi` (trailing comma) works. - `@t Two Word Name, hello` → comma splits the name (needs an alt with a multi-word name to fully verify). - `@g hi` → goes to FELLOWSHIP (not the global General room!). Without a fellowship expect a server-side error — the important thing is it does NOT broadcast globally. - `@allegiance boot Bob` → "Please see @help Allegiance for more information..." locally; nothing broadcast, nothing sent. - `@house abandon` → TWO confirmation dialogs. **Decline** (unless you really want to abandon a house). Declining either stage sends nothing. - `@mr` → help text only. `@clist general` → channel list from ACE. - An unknown verb like `@somenonsense` → passes through to ACE (server answers, client does not swallow it). ## Known-open, do not report as new - Ctrl+M mute chord (#358) — still broken, separate from this campaign. - SpewBox lifetime/position/color are registered placeholders (AP-177/AP-178) pending a retail measurement session. - Allegiance management subcommands print the help refusal instead of executing (#360); `@day`/`@log`/`@render` deferred (#361); four request commands send but responses aren't rendered yet (#362).