Mirror Practice Speech Fix
Affected objects:
MirrorArt4in1.iff / 0x8FEF51A6 / Thales’ Art Collection
MirrorCrystalBall4in1.iff / 0xB2EF51AE / Thales’ Magick Mood Crystal
MirrorNeutral.iff / 0x1AEF51A6 / Thales’ Mood Mirror
MirrorObsidian.iff / 0xE0EF51A6 / Obsidian Scrying Mirror
These mirrors were decorative or partially patched, so Practice Speech appeared but did not behave like working charisma mirrors.
Root Cause
The mirrors needed the normal mirror Practice Speech behavior copied in, but their existing local BHAV IDs conflicted with the IDs used by working mirrors. The behavior was remapped into free local IDs, but one route instruction was patched incorrectly.
The bad route instruction caused the sim to fail or skip the proper interaction flow. A temporary runtime charisma fallback also caused the skill progress headline to appear immediately on click, before the sim actually started practicing speech.
Actual Fix
The runtime fallback was removed. Charisma is no longer granted from VMNetInteractionCmd or any click-time source.
The .iff object behavior was fixed instead:
Added/kept Practice Speech in TTAB 130.
Added the required local BHAVs for speech practice.
Set RatingSkillFlags to include Charisma, 0x0020.
Set NumAttributes to 11, matching the behavior’s attribute usage.
Fixed the route instruction in BHAV 4106.
The corrected route instruction is:
op=27 T=3 F=255 operand=00 00 00 FE 00 00 01 00
This matches working mirror behavior. The earlier broken version used the wrong failure pointer and route operand bytes.
Important Note
The patched Thales mirrors use remapped local BHAV IDs because their original files already used some IDs that working mirrors normally use. So seeing Practice Speech point to action 4106 and test 4108 is expected for these patched copies.
Visual Preservation
Do not rewrite the whole .iff with a normal full IffFile.Write() pass. That can drop unknown legacy visual chunks and make the object invisible. The safe approach is to preserve raw chunks and only replace the edited behavior chunks.
Verification
After the fix:
The mirrors remain visible.
Practice Speech appears in the pie menu.
The skill headline no longer appears immediately on click.
The sim routes into the interaction first.
Charisma gain comes from the mirror behavior, like other mirrors.
