# Campaign CH — round-4 in-client test script (2026-08-10 goal window) One connected session, retail GUI. Covers everything changed since round 3. Launch as usual (`ACDREAM_RETAIL_UI=1`); no probe flags needed. ## 1. Jump-in-air — THE fix (root-caused this window) - Jump, press jump again mid-air → **"You can't jump while in the air"** flush at the very top of the viewport, small font, tell-yellow. This was three rounds of silence: the refusal always fired; the production controller-install path never wired the text callback (`a5a7eb4f`). - Jump while badly overloaded (if testable) → "You're too loaded down to jump" the same way. ## 2. On-screen text presentation (round-3 changes) - Text sits flush to the top (no 60px gap) in the 11px retail DAT font — visibly smaller than round 2. Color = incoming-tell yellow. - Recall: "In Portal Space - Please Wait..." now appears there too (small, top), NOT as big centered text — every rotation segment of the tunnel. - Report: position/font are best-available approximations (AP-178) — say what still differs from retail memory. ## 3. /help (round-3 rewrite) - `/help` → exactly TWO chat entries: the "Note: You may substitute a forward slash (/) for the at symbol (@)." line, then the 13-topic listing with retail's real one-liners. - `/help death` → the Note line, then "For more information, type @help ." running straight into the 8-line death/corpse listing. - `/help somenonsenseverb` → "Unknown command" (currently in chat, not the SpewBox — known gap #367, don't re-report). ## 4. Chat window shell (CH6a — includes the border restoration) - The main chat window is the authored retail layout: correct chrome, no artifacts, **all four edges + all four corners draw their border art** and resize (diagonal cursors on corners; the flat TOP edge is a MOVE handle in retail — the top corners resize). - Grow AND shrink from every corner, both axes (min 300×100, max 2000×2000). - **Also eyeball the COMBAT, EXAMINE, POWERBAR (jump bar) and VITALS window borders** — their Type-9 border art was silently blanked by the first CH6a landing and restored in the rework. ## 5. Floating chat windows (CH6b) - **Alt+1 .. Alt+4** toggle the four floating chat windows (retail's default binding — NOT plain 1-4; rebindable in Settings). - Defaults: window 1 = speech/tells/emotes; 2 = allegiance-family (patron/vassal etc.); 3 = fellowship; 4 = the Turbine rooms (General/Trade/LFG/Roleplay). - The main window's 1/2/3/4 buttons LIGHT UP to mirror which floaties are open — clicking them does nothing (retail-faithful: they are pure indicators). - Each floaty: resizes from every edge/corner, moves by its title bar, has its own input line (sends as Say — #369 tracks the channel-share question), closes with its X, reopens with Alt+N, and its position/ visibility/filters survive a client restart. - A closed floaty accumulates lines while closed (open it after some fellowship chat and the lines are there). ## 6. Window opacity (CH6c) + the transparency setting - OUT OF THE BOX everything is fully opaque (retail-identical). - Settings → Chat: two linked sliders — "window opacity" (unfocused) and "active opacity" (focused). Lowering the first makes unfocused retail windows translucent; clicking into a window snaps it to the active value. Retail EASES this transition (~1s fade) — ours SNAPS for now (registered AP-190); note how it feels. - The sliders drag each other (raising unfocused above active pulls active up; lowering active pulls unfocused down) — retail's linking. - Apply on Save; persists across restart. ## 7. Ctrl+M (#358 — finally) - Ctrl+M mutes all audio; Ctrl+M again unmutes. (The binding had been added to a dead preset table; production never loaded it.) ## Known-open, do not report as new - #367 unknown-command line in chat instead of SpewBox; #364 three /help group topics partial; #366 unseen-text chat indicator; #369 floaty send channel; #360-#362 command tails; AP-177 SpewBox line lifetime; AP-190 snap-not-ease opacity transition. - #368 headless collision thread-affinity (bot-host only, follow-up task exists). Headless bots hydrate and move again (#365 fixed) up to that defect.