Preserve native chat during terrain takeover with fallback for missing chat
This commit is contained in:
@@ -240,8 +240,12 @@ account admission. Publication and live-server changes remain with the owner.
|
||||
- The private `Prefabs/ERR/TerrainTakeover.et` triggers client cleanup. It releases
|
||||
only the captured original singleton components, waits for the new factions
|
||||
before catalog/identity initialization, and receives the server's faction
|
||||
delegates. Chat is replicated to every client. The ordinary authored connector
|
||||
remains separate from this bootstrap.
|
||||
delegates. The terrain's native chat service is retained on both peers, detached
|
||||
from any removed entity/replication parent, and never replaced or attached to
|
||||
the new mode. The ordinary authored connector retains its own chat service.
|
||||
If the terrain has no chat service, `TerrainTakeoverWithChat.et` supplies a
|
||||
non-streaming replicated chat child instead. Selection depends on service
|
||||
presence, not terrain name; both variants share the same takeover mode.
|
||||
- Arsenal, group, support-station and task managers release the original mode's
|
||||
cached instances on both peers. Task, map-marker and respawn getters resolve
|
||||
the current takeover mode even if an old destructor clears a shared cache.
|
||||
@@ -260,6 +264,18 @@ account admission. Publication and live-server changes remain with the owner.
|
||||
a separate connected Windows client. The connected test recreates the player's
|
||||
controller and verifies the replacement managers in both rounds.
|
||||
|
||||
On 14 October, the original Everon client log showed delayed removal of the
|
||||
original `ScriptedChatEntity` after the replacement registered, followed by
|
||||
`Cannot send message - ChatEntity is missing.` This blocked native chat commands,
|
||||
including administrator login, before authentication. `test_terrain_chat_retention.py`
|
||||
checks shared-service retention, nested parent detachment and fallback selection.
|
||||
The revised scripts compiled in Workbench; the authored-world native restart
|
||||
smoke completed two rounds and 21 assertions with no script/runtime failures.
|
||||
That run still reported existing engine/dependency errors, and the full repository
|
||||
check stopped on the existing missing root ID in `ERRM_AtlasLeaf.et`.
|
||||
Live remote login and takeover of both chat variants remain separate verification
|
||||
steps; the authored-world smoke does not exercise those paths.
|
||||
|
||||
The earlier isolated prototype passed a Nogova Workbench prisoner-spawn test with
|
||||
16 generated sites and zero script errors. See
|
||||
[prototype evidence](evidence/scenario-takeover-2026-10-01/report.json). The current
|
||||
|
||||
Reference in New Issue
Block a user