Temporary visual entity mutations

Battle vehicle entities expose visual state that can diverge from arena roster data and server truth. A diagnostic or local preview may temporarily change client-visible health, crew state, appearance, transforms, or model nodes, but it owns the restore path. The arena and server remain authoritative for gameplay state.

  • Snapshot the original values before the first mutation and restore those values on battle space leave, feature shutdown, and per-entity reset.
  • Marshal mutations from worker threads or localhost tools back to the BigWorld callback thread before touching entities or appearances.
  • Refresh appearance through the current appearance owner when a damaged model must become intact again; a property assignment alone may not reload visual resources.
  • When animating hangar models, cache node-local base transforms for the current model and restore them when the selected model changes or the loop stops.
  • Do not use a local visual mutation as evidence that roster, result, inventory, or server state changed.

Diagnostics

Symptom Likely cause Check
Overlay clamps too early after changing scale Native surface size and authored CSS size diverged. Compare CSS width, Gameface resize, Wulf size, and interface scale.
Visual feature appears before textures are ready Space-load state was treated as final visual readiness. Check the loading owner and virtual-texture completion path.
Client keeps a low-quality graphics state A temporary override was not restored. Log snapshot/apply/revert ownership and exception paths.
Hidden space objects stay hidden in the next context Visibility mask bits were not restored or unrelated bits were cleared. Track owned mask bits and preserve server-owned flags.
Returning to the hangar leaves wrong lighting or camera state A borrowed native scene group was retained, released too late, or adjusted before the next route settled. Trace route ownership, group activation/deactivation, pending callbacks, and native camera setup.
Custom map garage loads, then snaps back to the native hangar Only one default-space owner was patched, so another hangar owner restored the normal default during vehicle loading. Compare event hangar paths, switch-controller defaults, selected space path, and the first account-GUI garage resolve.
Armor, vehicle hub, or mission route opens blank or bounces back The route initialized while the replacement map space still lacked required native hangar systems. Trace route-post timing, native-space readiness, IHangarSpace.space, and the route's required CGF systems.
Vehicle looks alive or destroyed only on this client A local visual mutation changed entity or appearance state without changing arena truth. Compare arena roster data, entity health/crew state, appearance damage state, and the restore snapshot.
Hangar vehicle keeps a temporary rotation after a route change Model-node base transforms were not restored when the selected model was replaced. Track the current model object, cached node transforms, callback ID, and stop path.
Large scan causes frame stutter Work ran in one tick during rendering pressure. Split work through callbacks or the current asynchronous tick-distribution helper.

How to verify display behavior

Find the settings or loading code that calls the native helper, then record the surrounding validation, preview, apply, rollback, and teardown behavior. The helper name alone usually tells you the mechanism, not the owner.