Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
192 lines
10 KiB
Plaintext
192 lines
10 KiB
Plaintext
# Combined-addon development playtest build
|
|
|
|
The current project is **Co10 Escape Reintroduced**, `ERR_Core`, GUID
|
|
`2528466DE220D91C`, in `addons/core/addon.gproj`. Mission, AI, Intel, Map and Chat
|
|
are included in this one addon. There are no separate companion projects to
|
|
build or enable. See [the combined layout](single-mod.md).
|
|
|
|
The latest retained, hash-verified handoff is
|
|
[2 October — objective map UI](../.build/playtest-2026-10-02-objective-map/README.md),
|
|
at `.build/playtest-2026-10-02-objective-map`. It contains matching editable source
|
|
and one packaged addon: **407 authored files and 349 exact PAK payloads**.
|
|
It includes the previous controller ownership and logistics/HQ changes plus the
|
|
new authored discovery/mine-warning map presentation and lifecycle cleanup.
|
|
|
|
This is an **unqualified development candidate**. Its exact source passes all 283
|
|
registered regression programs, 101 map-fixture assertions and 63 scripted
|
|
normal-route assertions. Fresh ordinary startup of the exact package verifies
|
|
the mission and local prisoner. The map/route/packed checks retain 16/13/17 engine
|
|
errors, and strict packaging/startup verdicts remain failed. Physical held-map
|
|
capture, manual play, real multiplayer, physical logistics, comparative FPS and
|
|
clean release still require qualification. Optional terrain integration remains
|
|
experimental.
|
|
|
|
See [current status](current-status.md). Later edits are not automatically present;
|
|
the owner-fixes and all earlier candidates remain unchanged.
|
|
|
|
## Identities and required dependencies
|
|
|
|
| Role | Project or dependency | GUID |
|
|
| --- | --- | --- |
|
|
| Single successor addon | ERR_Core / Co10 Escape Reintroduced | `2528466DE220D91C` |
|
|
| Direct base dependency | Arma Reforger | `58D0FB3206B6F859` |
|
|
| Direct external dependency | RHS: Status Quo | `595F2BF2F44836FB` |
|
|
| Direct external dependency | WCS Armaments | `629B2BA37EFFD577` |
|
|
| Direct external dependency | WCS BMP-1 | `5E524E4FEECCA92B` |
|
|
| Direct external dependency | Parachute Framework | `65930CB4CD0237B2` |
|
|
| Transitive external dependency | RHS Content Pack 01 | `1337C0DE5DABBEEF` |
|
|
| Transitive external dependency | RHS Content Pack 02 | `BADC0DEDABBEDA5E` |
|
|
| Transitive external dependency | WCS SpaceCore | `5E389BB9F58B79A6` |
|
|
|
|
Install the seven external addons separately. The audited versions, descriptor
|
|
hashes and dependency graph are in [external-addons.json](external-addons.json);
|
|
a source bundle includes this as `EXTERNAL-ADDONS.json`. The private runners
|
|
expose only that audited closure. Original Escapists and its extensions are not
|
|
part of the successor's dependency graph. Third-party assets are not bundled.
|
|
|
|
The normal scenario is `{C1E20667DCE324ED}Missions/ERR_Everon.conf`
|
|
(“Co10 Escape Reintroduced — Everon”). The Base header
|
|
`{AD62322D5213C440}Missions/ERR_Everon_Base.conf` is a hidden diagnostic entry;
|
|
it also loads the combined addon and its dependencies.
|
|
|
|
## Build from frozen source
|
|
|
|
Run from `/home/jakub/devel/escapistsrereintroduced`. Replace the example prefix
|
|
and installed-addon paths below, and use fresh names for every private session,
|
|
profile and output ZIP. The compatibility directory must be an existing idle,
|
|
disposable Tools prefix under `/tmp`, not the installed Steam prefix.
|
|
|
|
```sh
|
|
ERRI_COMPAT=/tmp/YOUR-IDLE-DISPOSABLE-TOOLS-PREFIX
|
|
ERRI_EXTERNAL=/path/to/installed/workshop/addons
|
|
|
|
python3 tools/headless_game.py --compat "$ERRI_COMPAT" --inspect-processes
|
|
python3 tools/check.py
|
|
```
|
|
|
|
The inspection is read-only. If a game, Tools session or another native runner is
|
|
active, leave it untouched and wait before building. The existing runners manage
|
|
their own hidden display, muted audio, isolated source/profile, prefix lock and
|
|
cleanup. Do not bypass their refusal or cleanup checks or launch another native
|
|
job concurrently. They do not require opening windows on either physical monitor.
|
|
|
|
With source frozen, package the one project:
|
|
|
|
```sh
|
|
python3 tools/native_package.py --project core \
|
|
--session /tmp/erri-playtest-package-NEW \
|
|
--compat "$ERRI_COMPAT" --external-addons "$ERRI_EXTERNAL" \
|
|
--timeout 300
|
|
|
|
python3 tools/source_bundle.py --mode development \
|
|
--output /tmp/erri-playtest-source-NEW.zip
|
|
```
|
|
|
|
The packager accepts `--project core`; the removed `--project chat` packaging
|
|
recipe does not apply. Output is exactly
|
|
`packages/core/{addon.gproj,data.pak,resourceDatabase.rdb}`. The ZIP is editable
|
|
source only and must be written outside the checkout. Compare its
|
|
`BUNDLE-MANIFEST.json` authored hashes against the packager's frozen source
|
|
snapshot before describing it as matching source.
|
|
|
|
`--silent-workbench` and `--exit-after-init` are optional, mutually exclusive
|
|
packager lifecycle experiments. `--continue-on-failure` is diagnostic only; it
|
|
does not turn a failed build into a pass. Keep resource/localization, shutdown
|
|
and cleanup failures in the retained reports. Native exit code 0 alone is not
|
|
build qualification. See [packaging control evidence](native-packaging-control.md).
|
|
|
|
## Check the normal route and exact packaged bytes
|
|
|
|
These commands launch **hidden, muted, bounded diagnostics**, then close their
|
|
own processes. They are not human play launchers. Run them sequentially while
|
|
the frozen source and private runtime remain idle between jobs.
|
|
|
|
```sh
|
|
python3 tools/headless_workbench.py \
|
|
--compat "$ERRI_COMPAT" \
|
|
--profile /tmp/erri-playtest-route-NEW \
|
|
--external-addons "$ERRI_EXTERNAL" \
|
|
--project chat --smoke normal-escape-route --rounds 1 --timeout 360
|
|
|
|
python3 tools/headless_game.py --project chat \
|
|
--packed-addons /tmp/erri-playtest-package-NEW/packages \
|
|
--packed-session /tmp/erri-packed-chat-playtest-NEW \
|
|
--compat "$ERRI_COMPAT" --external-addons "$ERRI_EXTERNAL" \
|
|
--timeout 180 --failure-grace 120
|
|
```
|
|
|
|
Workbench `core` and `chat` select diagnostic fixture families, not different
|
|
addon projects. Both need the external dependencies. `normal-escape-route`
|
|
checks the normal generated Everon catalog; the older `escape-route` uses its
|
|
fixture catalog. Scripted movement/actions do not establish human walking,
|
|
interaction, combat or piloting.
|
|
|
|
The ordinary packed command uses schema 4: one successor addon plus seven
|
|
external addons, ten engine/vanilla/mod/dependency mounts altogether. Keep its
|
|
default fifteen-second readiness interval. `--failure-grace 120` only retains a
|
|
failed run for additional logs within the original timeout; it does not waive a
|
|
failure. Historical `--packed-core`, vanilla Chat v2 and five-addon external v3
|
|
results do not validate this combined dependency graph.
|
|
|
|
After reviewing both results, retain a new handoff with only the three runtime
|
|
files inside `packages/core/`. Keep matching `source.zip`, extracted `source/`,
|
|
raw reports/logs, provenance, cleanup results and SHA-256 hashes in separate
|
|
sibling paths. Verify all three runtime hashes after copying. Never overwrite a
|
|
previous candidate or mix newer loose source with an older PAK. Packed startup
|
|
proves loading, normal mission readiness and local admission; it does not prove
|
|
remote multiplayer or a full human escape.
|
|
|
|
## Human playtest
|
|
|
|
Use the matching handoff's `source/addons/core/addon.gproj` for editable Tools
|
|
work, with its installed external dependencies registered. Select
|
|
`Missions/ERR_Everon.conf`. For packaged play, enable the single successor addon
|
|
and its required dependencies in a separate playtest profile, then select that
|
|
normal scenario. Use the mission header/scenario workflow, not a bare world
|
|
load. The old five-addon launch scripts and Chat GUID `FA804F411BDDF2C6` are
|
|
historical and must not be used for the current combined package.
|
|
|
|
A visible human session is separate from the hidden commands above. Keep it on
|
|
the user's chosen right monitor and muted, and quit normally before another
|
|
native build or test. Do not enable smoke plugins, `errSmoke`/`errBaseSmoke`,
|
|
input exercises or aircraft-fixture flags for ordinary play. This guide does not
|
|
supply a new visible launcher or multiplayer server configuration.
|
|
|
|
Follow [the current player route](player-route.md): prison → scavenging/clues →
|
|
radio defence → helicopter → result/restart. `/esc menu`, Intel commands and the
|
|
HQ journal are included in the combined addon. Restore settings changed during
|
|
admin checks. Record the exact candidate, scenario, point of failure and profile
|
|
log session. Remote joins/reconnects, partial escape, twelve connected players,
|
|
full human completion and comparative FPS still need their own evidence.
|
|
|
|
## Retained candidate evidence
|
|
|
|
The 30 September installed-slot candidate contains 376 matching authored addon
|
|
files, 321 matching PAK payloads and three verified runtime files. Its normal
|
|
route completes 55 scripted assertions through extraction/results, with zero
|
|
script/runtime failures and thirteen installed-resource errors. Its
|
|
[ordinary packed startup](evidence/packed-2026-09-30-installed-slot/packed-startup-report.json)
|
|
verifies normal mission readiness and a local prisoner, with zero script/runtime
|
|
failures and seventeen installed-resource errors. Both strict verdicts remain
|
|
failed. [Packaging](evidence/package-2026-09-30-installed-slot/package-report.json)
|
|
emitted matching files and exited 0 but retained localization and shutdown
|
|
resource-leak errors. Consult the handoff README and hashes for its exact scope;
|
|
later alarm/memory and mounted-ammunition source evidence does not update these
|
|
packaged bytes.
|
|
|
|
## Historical five-addon handoffs
|
|
|
|
The vanilla-only `.build/playtest-2026-09-20` candidate was frozen at `5e74269`:
|
|
216 authored files, five matching PAKs and fifteen verified runtime files. Its
|
|
[build record](evidence/playtest-2026-09-20/build.json),
|
|
[packed Core startup](evidence/packed-core-2026-09-20-playtest/report.json) and
|
|
[packed full startup](evidence/packed-chat-2026-09-20-playtest/report.json) retain
|
|
that snapshot's zero-error startup evidence. Native packaging/shutdown failures
|
|
remained separate; human play, multiplayer and FPS were not qualified.
|
|
|
|
The later [road-interception handoff](../.build/playtest-2026-09-20-road-interception/README.md)
|
|
and [five-addon external workflow](packed-external-development.md) also describe
|
|
an older layout. Their companion GUIDs, five-project build order, vanilla-only
|
|
profile links and launch commands are not current instructions. Existing
|
|
historical handoffs, source and failure records remain unchanged.
|