Files
EscapistsReintroduced/docs/multiplayer-prefab-ids.md
jakub cab998fb64 Combine Workshop addon and fix prison startup
Merge owned systems into one addon while preserving resource identities. Gate player admission on the replicated prison scene, restore the original framed door, and hold enemy AI until escape. Correct scenario branding and author metadata, include publishing assets, and retain regression and native verification evidence.
2026-09-20 16:42:52 +02:00

49 lines
2.8 KiB
Markdown

# RKS #2 replication kick, 2026-09-20
The client connected to RKS #2 with Workshop version 0.0.1 and failed at
13:59:59 local time. Its log names Patrol, SupplySite, Radio and Extraction:
the server's root entity ID does not exist in the client's copy of the prefab.
The final kick is `REPLICATION / SYSTEM_FAILURE`.
SSH inspection of `RKSserver201` confirmed the game process remained running,
the mission was `{C1E20667DCE324ED}Missions/ERR_Everon.conf`, and the installed
mod was `2528466DE220D91C`. AMP recorded successful BattlEye RCON login after
the corrected mission started; its logs did not record the client-side kick.
Client and server SHA-256 hashes matched for `data.pak`, `addon.gproj` and
`resourceDatabase.rdb`. The old package's `data.pak` hash was
`fa63eb4214133b55dd24d527e8654f42a9dc8599a8f9369808804b2f52fb5f97`.
Nineteen authored prefabs lacked a serialized root `ID`. Each now has a fixed,
nonzero 64-bit ID in the prefab source. The shared field map already had one
and remains unchanged. Existing child IDs, component IDs and resource GUIDs
remain unchanged. `tools/check.py` now rejects missing or duplicate root IDs;
the regression also rejects child-only IDs, malformed IDs and zero IDs.
`python3 tools/check.py` passes all repository checks, including the new identity
regression. An initial `core/victory` Workbench attempt loaded the new prefabs
but hit the obsolete assertion that no companion HQ/support controller is loaded.
That isolation assumption no longer holds for the merged project. Its runner also
reported a transient process-classification failure during cleanup; a subsequent
prefix-idle check passed. This attempt is not counted as passing native evidence.
The subsequent combined `chat/hq-memory` fixture completed with 101 passed
assertions, no script/runtime failures, unchanged source and confirmed cleanup.
The [archived report](evidence/native-2026-09-20-prefab-ids/report.json) retains
the four existing RHS/WCS localization errors, so its strict overall native
verdict remains failed. This verifies local loading and scripted gameplay with
the new IDs, not a remote multiplayer join.
## Apply the update
1. Reopen `addons/core/addon.gproj` in Workbench to reload the changed resources.
2. Publish an update to the existing Workshop item `2528466DE220D91C`, using
version `0.0.2` and [the prepared changelog](../publishing/changelog-0.0.2.txt).
3. Stop RKS #2, update/download the Workshop mod, and start it again. Keep the
current mission ID and Workshop item ID.
4. Update the client mod and join again. Confirm both sides use the new version,
then check for the previous prefab-ID errors and test reconnect/late join.
Saving IDs in local source does not change the existing Workshop package.
A successful join with the updated package is still required to verify the
multiplayer fix.