Files
EscapistsReintroduced/docs/validation.md
T

24 KiB
Raw Blame History

Validation evidence

2026-09-19, local development environment. This remains a development prototype, not a release-qualified successor.

Repository checks

python3 tools/check.py passes: five-addon isolation, acyclic dependencies, twenty source resource identities, exact successor/vanilla GUID references, production mission-rule boundaries, physical radio paths and failure handling, settings conversion, helicopter availability policy and mortar salvo policy. The latter two are helper tests, not operational support-controller evidence.

The reference guard verified all 533 original workspace source/resource files against the pre-test snapshot. Existing missions were not edited or saved. Native tests use a separate profile and only the successor projects plus vanilla dependencies. Earlier successful visible runs were measured on the right display. A later launch restored an oversized main Workbench window despite placement rules; those tests were stopped. Automated tests now run on an isolated headless display and create no physical-desktop windows.

Native development sessions

Workbench version: 1.8.0.13. The initial September 18 source snapshots remain in native-initial-snapshot.json and native-followup-snapshot.json. They established script compilation, native world loading and initial spawning only.

Durable logs, screenshot captures, source hashes and a machine-readable report for logs_2026-09-19_00-28-24 are in native-2026-09-19-002824. That run completed two scripted rounds across an automatic restart, with 38 passing assertions. It exercised native prisoner spawn, the authored lock action, two real cache documents recovered into inventory, intel-driven identification, radio range rejection, interrupted and continuous defence, physical helicopter seating and the victory boundary.

The diagnostic deliberately teleports the player and helicopter and makes the test player invulnerable. It does not establish manual escape/piloting, combat balance, multiplayer lifecycle or FPS improvement. Engine screenshots capture the rendered scene and do not prove the HUD/end-screen presentation.

The original prison prototype had an unsuitable slope and a gate-opening mismatch. Read-only terrain and model-clearance scans selected an open site at 6090/7160. The gate now spans the three-metre opening. Walls have explicit hierarchy ownership, and equipment is placed on tables above vegetation. Final physical gate-passage and defeat checks are recorded separately below.

Remaining native issues

The run is not a clean runtime pass. The report preserves errors rather than suppressing them:

  • During restart, vanilla US and USSR medical-kit catalog objects at world origin are destroyed without an initialized entity-catalog reference. Their inherited SCR_BaseItemSupportStationComponent.OnDelete path logs two catalog-manager errors. The diagnostic identifies the objects; it does not alter vanilla cleanup behavior.
  • Vanilla vehicle resources emit unsupported fields: Mi8 SlidingTrackMaterial, and catalog-loaded BRDM2/BTR70 Parent entries. Validate the installed game/Tools resource compatibility before release.
  • Vanilla UI slot/button warnings occur during end-screen setup, and inherited Everon initialization reports a radio-manager ordering warning. The successor creates its radio manager, but these warnings still need evaluation.

The shared-map destruction exception and unsupported runtime destructible-wall errors from earlier prototypes no longer occur in the archived repeated-round run.

No dedicated multiplayer, reconnect, spectator, twelve-player, operational support-controller, equivalent-workload performance or release-packaging acceptance has passed. The full acceptance ledger remains pending.

Final gate and victory regression

native-2026-09-19-003520 contains two completed rounds and 40 assertions, including BaseDoorComponent.CanCharacterPass(0.6) after unlocking. The actual result configuration returned "You escaped Everon" for the extracted player. The run had no script errors or virtual-machine exceptions. Seven inherited vehicle schema errors remain in the report, so its overall runtime result is deliberately nonzero. The source manifest matches the tested repository.

A Workbench-only diagnostic briefly replaced the reflected end-screen class and caused an unknown-class resource error in an intermediate run. That diagnostic override was removed; the archived final run resolves the class and the victory title successfully.

Extraction loss and defeat restart

native-2026-09-19-003902 completed two helicopter-loss rounds and recorded 45 passing assertions, including startup of a third round before the test process stopped. Removing the empty extraction helicopter during extraction caused DEFEAT through the normal server tick, then the mission restarted and completed the same test again. The defeat end-screen configuration resolved without missing-screen errors. This is not an all-players-dead, unconsciousness, reconnect or multiplayer test.

Four catalog-manager errors were recorded across the two restarts, alongside the inherited vehicle schema errors. The archive deliberately retains the failing overall native report. Both test processes were stopped; the user's pre-existing editor was left open.

Player death, identity roster and spectator restart

native-2026-09-19-011025 contains two completed death rounds with 20 passing assertions and no script/runtime exceptions. The fixture exercises native character death, transition into the local spectator camera, the all-dead grace interval, defeat and automatic restart. An isolated roster with a real living actor checks spent-life retention, disconnected survivor retention, duplicate identity rejection and reused connection IDs. It does not simulate an actual remote disconnect/reconnect. Seven inherited helicopter schema errors still fail the overall native report.

This test ran on headless Gamescope at 1280×720/30Hz using a cloned disposable Proton prefix. The physical desktop contained only the user's pre-existing editor. tools/headless_workbench.py provides a bounded version of this runner, stopping on failure, timeout or the requested number of completions and preserving engine errors in its exit status.

Physical radio equipment and routing

native-2026-09-19-011738 completed two bounded headless rounds with 30 assertions and no script/runtime exceptions. Each authored six-person patrol now includes one vanilla RTO with a physical manpack. The test runs production uplink and downlink routes, then removes a receiving carrier's actual radio during transmission and verifies delivery fails. It does not insert a synthetic contact into HQ. Strategic response to native visual perception remains a separate test. Seven inherited vehicle schema errors remain.

Both installed executable version resources report 1.8.0.13 (game Steam build 24903726; Tools build 24870687). The remaining schema errors are therefore not explained merely by different displayed version numbers.

Native sighting to HQ response

native-2026-09-19-012234 completed two headless rounds with 24 assertions. The real player was moved in front of a guard squad. Native perception generated a sighting; the production radio route delivered it to HQ; two different existing squads received downlinked orders and distinct search waypoints. The fixture did not inject HQ contacts or create response forces. Both rounds subsequently passed death, spectator and defeat. Two inherited catalog cleanup errors reappeared during restart; seven vehicle schema errors also remain. This is a scoped coordinator integration pass, not a clean native runtime pass.

Silent complete-loop regression

native-2026-09-19-013224 completed two headless escape rounds with 52 assertions and no script/runtime exceptions after the roster, spectator and radio-composition changes. Test audio was independently verified muted on the dedicated silent sink; other audio outputs were unchanged. Seven inherited vehicle schema errors remain. A preceding launch exited before gameplay with a host double free or corruption error; its raw diagnostics are retained in native-2026-09-19-012838-host-crash and are not counted as a successful run.

Physical mortar inventory checkpoint

native-2026-09-19-014052 completed two muted headless rounds with 30 assertions and no script/VM exceptions. Native inventories held exactly 27 HE shells across three crew plus a separate manpack operator. Deleting the shells did not replenish ammunition; deleting the gun and crew did not spawn replacements. Seven inherited vehicle schema errors remain. Firing, convoy rearming and multiplayer support acceptance are unverified. Further support migration is deferred while completing the base replacement.

Independent base escape

native-2026-09-19-015043 records two Core-only rounds and 26 assertions. The loaded-addon section contains engine core, vanilla Reforger and ERR_Core. Essential inventory-document recovery and discovered objective markers now belong to Core, with a separate base scenario identity. The scripted escape succeeds without AI, Intel, Chat or Map. Two catalog teardown errors and seven vehicle schema errors remain. This proves dependency separation and the exercised progression paths, not manual playability or multiplayer acceptance.

native-2026-09-19-015605 adds the native objective service: two Core-only rounds, 38 assertions, no script or VM exceptions. Tests verify prison task creation, previous-task completion, list-only search disclosure, changed instructions after radio discovery, countdown and reset after interrupted defence, physical extraction and restart. Seven inherited vehicle schema errors remain. These assertions inspect native task state; they do not establish the rendered UI quality or remote-client behavior.

native-2026-09-19-015947 checks the same Core changes with all companions loaded: one escape round, 26 assertions, no script/VM exceptions. Seven vehicle schema errors remain. The test retains physical document recovery, interrupted radio defence and actual helicopter occupancy while the core services own progression.

native-2026-09-19-020149 checks death/spectator/defeat with the new Core task lifecycle and companions loaded: one round, 10 assertions, no script/VM exceptions. Seven inherited vehicle schema errors remain.

Authored sites and finite scavenging

native-2026-09-19-022704 records two Core-only rounds with 62 assertions and no script/VM exceptions. The four configured sites prepare 52 physical stock entities; recursive inventory totals include native weapon attachments. The player transfers both targeted radio documents from the supply crate. Empty stock stays empty when preparation is queried again, and a destroyed crate remains absent. Radio progress, extraction and restart complete afterward. Both crate footprints pass bounded native model-clearance checks; the supply terrain sample spans 0.625 metres over six metres. Seven inherited vehicle schema errors remain.

Earlier failed iterations are retained with their source hashes: attribute/callback compilation errors, unregistered storage, insufficient crate capacity, and use of a character-only inventory manager on a world container. The final controller uses the generic manager with explicit storage registration and an appropriately bounded weapon crate. These failures were corrected before the successful run; they are not hidden from the evidence archive.

native-2026-09-19-023120 repeats the new site flow with all companions loaded: two complete rounds and 52 assertions, including physical inventory transfers, interrupted radio defence and extraction. Templates now obtain location IDs entirely from definitions. The inherited catalog teardown pair and seven vehicle schema errors remain in the report, so this is not a clean runtime acceptance.

native-2026-09-19-023514 verifies radio integration after site ownership moved into Core: one muted headless round and 15 assertions, with no script/VM exceptions. All four authored six-person squads carry physical manpacks. Uplink and downlink work, and removing a receiving radio interrupts delivery. Native death, local spectator and all-dead defeat also pass. Seven inherited vehicle schema errors remain.

Injected base catalog and administration

native-2026-09-19-025539 completed two Core-only muted headless rounds and 92 assertions without script/VM exceptions. The physical prisoner and guard group match the injected catalog. Separate catalog mutations reject identical and unknown faction keys and a missing prisoner entry. Core's command service rejects unauthorized, malformed and out-of-range setting changes; valid commands save/read/restore the test duration. Escape, stock losses, objectives and restart still pass. Seven inherited vehicle schema errors remain.

The command tests call the native server service directly. They do not prove remote RPC identity enforcement, command-panel usability or pre-spawn presentation. Earlier command extension ordering and compact conditional-return compilation failures are retained in native-2026-09-19-025246-compile-failure and native-2026-09-19-025341-compile-failure; both were corrected before this successful run.

native-2026-09-19-030156-expected-startup-failure contains four passing assertions for deliberately invalid faction setup. No players, sites or stock spawn; services stop; administrators can retrieve the cause; even an otherwise legal transition from preparation into prison is rejected. The fixture modifies only its in-memory catalog. The expected startup ERROR and seven inherited vehicle schema errors remain in the report. The preceding scoped run is retained in native-2026-09-19-025951-expected-startup-failure. This is failure-handling evidence, not clean runtime or remote UI acceptance.

native-2026-09-19-030347 completed two Core-only escape rounds and 102 assertions without script/VM exceptions. A native controller transition keeps the actual player unconscious at the radio for 35 seconds. The player still prevents all-dead defeat, cannot progress transmission, retains the same body and camera, and resumes defence from zero after consciousness is restored. The one-life rule remains spent. These checks repeat after restart alongside the catalog/administration checks. Seven inherited vehicle schema errors remain. This does not validate medical item use, treatment animation, bleeding or remote revive actions.

native-2026-09-19-030903 completed two companion-loaded rounds with 96 assertions and no script/VM exceptions. Existing HQ interval/squad/radius and Intel carrying/reveal aliases resolve through the Core command service; unauthorized journal access is rejected; HQ status is preserved. Both rounds also pass the catalog, base administration, physical intel, radio defence, helicopter escape and restart checks. Seven inherited vehicle schema errors remain.

native-2026-09-19-031256 records one companion-loaded death round and 32 assertions without script/VM exceptions. Native death retains the spent life, activates the local spectator camera and reaches all-dead defeat after the Core command initialization changes. Catalog and companion command checks also pass. Seven inherited vehicle schema errors remain; remote spectators and reconnects are still unverified.

Expanded scavenging route and spatial survey

The read-only surveys in 031928 and 032144 inspected candidate terrain and obstacles. The initial 12-by-12-metre clearance requirement found no suitable candidates; using the actual 2.6-metre cache footprint found 19 western, 23 medical and 23 outpost candidates. Three low-slope sites were selected. No existing vanilla scenery or original missions were modified.

The first expanded-route native compile failed on Enforce's unsupported compound assignment to an indexed vector value. 033036-failed retains that failure and its cascading compiler diagnostics. An explicit assignment fixed it.

033110 completed one Core-only cache-loss escape with 65 assertions and no script/VM exceptions. All seven sites and 117 authored stock items prepared successfully; deleting the southern crate before recovery left the western documents able to identify the radio and complete extraction. Named optional medical discovery rejected unconscious and distant players, then emitted one event after a conscious player approached. Both stock depletion and deleted containers stayed lost. Seven inherited vehicle schema errors remained. A later API check found two sandbag rotations used pitch instead of yaw; subsequent validation uses corrected upright barriers and actual collision traces.

033500-failed confirmed all three upright barriers had native collision, then failed the new blocked-discovery assertion. The fixture had placed the test wall by its end pivot, leaving the sight line at its edge. Existing native bounds showed the wall extends three metres from its origin; centering it across the sight line corrected the fixture. The failure is preserved rather than discarded.

033719 completed two Core-only cache-loss escape/restart rounds with 148 passing assertions. All 117 stock items prepared each round. The three corrected outpost barriers were upright and native traces hit their collision. A centered physical wall prevented medical-site discovery; removing it allowed the conscious nearby player to reveal the named stash and emit one event. The alternate radio documents completed both rounds after the primary cache had been removed. There were no VM exceptions or failed smoke assertions. Two inherited catalog-manager script errors occurred during restart, alongside seven inherited vehicle schema errors, so the overall native report remains failed. These scoped checks do not establish manual navigation, medical treatment or multiplayer behavior.

034344 completed one full-companion escape with 48 passing assertions and no script/VM exceptions. The expanded seven-site configuration prepares under HQ/Intel/Chat/Map; the southern cache's documents still complete the primary route with the existing command aliases, interrupted radio defence and physical extraction. Seven inherited vehicle schema errors remain.

034556 completed the expanded guard-radio regression and death/defeat sequence with 37 passing assertions and no script/VM exceptions. All six physical six-person squads had manpacks; the selected production uplink/downlink delivered and deleting the receiver's actual radio interrupted an in-flight HQ order. The fixture also checked native death, local spectator activation and all-dead defeat. This does not prove every multi-hop route. Seven inherited vehicle schema errors remain.

The final three archives (033719, 034344 and 034556) match all 99 current addon source/resource files. All test processes were stopped. Source/resource checks pass for five isolated addons and 22 unique resources; the 533-file original-workspace reference guard remains unchanged. Manual gameplay, medical treatment, multiplayer, performance and clean-runtime release gates remain open.

Independent extraction and mission clock

040125 passed 60 capacity/partial-result assertions with twelve actual vanilla characters seated in separate positions in the authored Mi-8. The helicopter exposes seventeen pilot/passenger positions. The isolated roster distinguishes a dead occupant, a disembarked survivor, unconscious and reserved disconnected passengers, and a different identity reusing a connection ID. It freezes one outcome and does not replace lost transport. This fixture uses synthetic identities and explicitly requests its own test reset.

040443 and 040657 each passed three negative-startup assertions. An unsuitable vanilla transport and an invalid extraction boundary respectively prevent gameplay, retain an admin-readable reason, withhold player spawns and remove the already-authored content. Both expected startup errors are preserved alongside inherited vehicle errors.

040928 passed 100 assertions with the integrated extraction, controller result and mission clock implementations. Real hidden vanilla result widgets update from the server-derived identity result and ignore stale winner IDs through isolated rebinding. The clock probe checks legacy settings migration without rewriting on load, explicit save/reload, invalid-value rejection, authorization, next-round-only changes and actual native clock advancement. No script/VM exceptions occurred; seven inherited vehicle schema errors remain.

041233 passed six assertions across two natural defeat/restart rounds. Removing the extraction helicopter during prison ends the mission while the actual prisoner remains alive and presents the specific loss reason. Two inherited catalog cleanup script errors and seven vehicle schema errors remain.

These hidden, muted local tests establish the exercised service and native-object paths only. Remote delayed result replication, actual reconnects, twelve network clients, manual casualty loading/piloting, dedicated-server behavior and equivalent-workload performance remain unverified.

041445 completed two Core-only escape/restart rounds with 194 assertions and no script/VM exceptions. Both rounds applied the seeded 06:15 / 4x settings and verified actual native clock advancement. Existing catalog/admin, stock, discovery, unconsciousness, radio and extraction checks still pass. The seeded input is archived as test-settings.json; all three private-profile settings files were restored byte-for-byte after the stopped run. Seven inherited vehicle schema errors remain.

042046 completed one companion-loaded escape with 48 assertions and no script/VM exceptions. Core, HQ, Intel, Chat and Map compile together; existing command aliases, physical documents, interrupted defence, extraction and the personal winner title still work. Seven inherited vehicle schema errors remain.

Archives 040928, 041233, 041445 and 042046 match all 105 addon source/resource files at this checkpoint. Tests ran on the private hidden display with muted test audio and were stopped afterward. The original workspace's 533 tracked reference source/resource files remain unchanged. Repository policy/resource checks pass; clean-runtime, manual-play, multiplayer and performance release requirements remain open.