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.
4.7 KiB
Single Workshop mod
All five owned modules are now one project: addons/core/addon.gproj, titled
Escapists Reintroduced, with the existing Core GUID 2528466DE220D91C.
There are no separate AI, Intel, Map or Chat project descriptors to publish.
The project ID ERR_Core is retained; it now identifies the complete mod.
The supplied Workshop banner is publishing/previewImage.png. Select it in Publish project → Preview Image before publishing; see preview setup for the Proton file-picker path.
For the post-publication RKS #2 join failure, see the prefab identity fix and update steps.
In Workbench, close the previous project, remove stale entries for the four removed
projects, and open the Core project again. Keep the installed RHS/WCS projects and
their dependencies registered. Launch Missions/ERR_Everon.conf. The old Base
mission header is retained for diagnostic scripts but hidden from the scenario
menu; it loads the same combined gameplay and dependencies.
Scripts live in Scripts/Game/ERR/{00_Core,10_AI,20_Intel,30_Map,40_Chat}.
GameLib and WorkbenchGame retain their native script-module directories. The
numeric prefixes preserve the ordering required by modded class extensions,
including the full-scenario probes that use Core and Intel members. Moving those
folders into alphabetical feature order breaks native compilation.
All 34 authored resource GUIDs and resource-relative paths are preserved. Non-script assets remain in their native Prefabs, Configs, Missions, Worlds, Materials and UI folders. RHS and WCS remain external dependencies, not copied assets. No Workshop publication or release qualification is part of this migration.
Source and package checks
python3 tools/check.py
python3 tools/source_bundle.py
The bundle contains one project. Native packaging builds only that project:
python3 tools/native_package.py --project core \
--session /tmp/erri-merged-package-NEW \
--compat /tmp/YOUR-IDLE-DISPOSABLE-TOOLS-PREFIX \
--external-addons /path/to/installed/workshop/addons \
--timeout 300
A successful packing attempt writes packages/core; inspect its PAK contents
before treating it as a playable artifact. Packaging does not publish anything.
Native verification
The existing Workbench --project core and --project chat arguments select
fixture families, not separate addon projects. Both load the same combined
.gproj and require --external-addons. For the integrated HQ fixture:
The historical core/victory fixture still asserts that companion HQ/support
controllers are absent and fails against the merged project. Use the combined
fixture below for this checkpoint; Core isolation results do not apply here.
python3 tools/headless_workbench.py \
--compat /tmp/YOUR-IDLE-DISPOSABLE-TOOLS-PREFIX \
--profile /tmp/erri-merged-workbench-NEW \
--external-addons /path/to/installed/workshop/addons \
--project chat --smoke hq-memory --rounds 1 --timeout 360
For ordinary packed startup, schema 4 validates one owned addon plus six external addons (nine engine/vanilla/mod/dependency mounts in total):
python3 tools/headless_game.py --project chat \
--packed-addons /tmp/erri-merged-package-NEW/packages \
--packed-session /tmp/erri-packed-chat-merged-NEW \
--compat /tmp/YOUR-IDLE-DISPOSABLE-TOOLS-PREFIX \
--external-addons /path/to/installed/workshop/addons \
--timeout 180 --failure-grace 120
Core v1 / Chat v2 packed validators remain frozen for historical artifacts and reject the merged dependency graph. Older five-addon external v3 records are historical; the current external runner uses schema 4. Native dedicated inputs must also supply the external dependency closure; this migration does not establish multiplayer acceptance.
Verified migration checkpoint
python3 tools/check.py passes all 191 regression programs. A comparison with the
pre-merge tree preserves all 187 scripts and all 34 resource metadata identities
and paths; the only changed script body is the ordinary full-scenario launcher's
addon GUID. The base diagnostic mission header is now hidden from the menu.
The merged native run compiles GameLib, Game and WorkbenchGame, loads Everon and completes the HQ-memory fixture with 101 passed assertions and no script/runtime failures. Its runner record confirms owned cleanup and unchanged authored/external inputs. The strict native verdict remains failed because of the four previously documented RHS/WCS localization resource errors, all retained in the raw log. This is local Workbench evidence, not a Workshop release or multiplayer qualification.