Third of four Opus research lanes for the retail Options panel campaign:
- Gameplay Options tab (gmGameplayOptionsUI::ListenToElementMessage
@0x0049E110): five of seven buttons have code handlers. Exit to Char
Selection -> local EndCharacterSession notice -> confirm dialog ->
airborne refusal (byte-verified) -> 0xF653 logoff; Exit Game -> the
epilogue path, no confirmation; Urgent Assistance / Report Abuse are
WEB LINKS in the EoR build (same support-site URL, byte-verified) —
the legacy wire paths still exist (0x0140 AbuseLogRequest: ACE names
it but has NO handler; Help channel 0x400 broadcast: ACE handles it);
Use Mouse Turning Settings is a 6-option macro (SetMouseTurningDefaults
@0x0049E8F0), not a screen — five client-local prefs + one server bit
(PlayerOption 0x31); Configure Keyboard / In-Game Help have no element
handler in the class (help = external ACHelpPlugin.dll via keystone).
- Configure Keyboard (gmKeyboardUI): six ActionClass list boxes, rows
from DAT ActionMaps (DBO 0x27), all 19 ID_InputMap_* strings
byte-verified; N-way cross-map conflict handling; storage is a LOCAL
.keymap file named in UserPreferences.ini, never wire-synced; Reset
reloads the DAT master maps (DIDs 0x14000000/0x14000002, which
tools/dump-keymap already extracts). retail-default.keymap.txt is a
user-saved keymap, not the DAT default.
- LOAD-BEARING CORRECTION (verified at the seams): the F11 SettingsPanel
is NOT rendered anywhere post-V11 — ToggleSettingsPanel() is an empty
no-op, the only IPanelRenderer implementation is the test fake, and
SettingsDevToolsComposition documents the keybinds.json fallback. The
retail Options panel is therefore acdream's FIRST shipping in-client
settings surface, and Configure Keyboard is the ONLY rebind screen —
it also clears Campaign V's carried panel debt (#258 adjacent).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>