Files
EscapistsReintroduced/docs/evidence/recovery-forecast-2026-10-31

Recovery forecast validation — 2026-10-31

Production policy is evaluated once per second by authority. A known forecast beyond 300 seconds uses the existing 30-second defeat grace. Usable self-injection, a conscious reserved rescuer, and evacuation preserve their respective safeguards. Unsupported/uncertain medical states use the previous recovery checks.

The snapshot simulator accounts for zone multipliers, thresholds, pending regen delays, bleeding/tourniquets, and finite medicine duration. Changing blood bands and post-treatment passive timing remain conservative: they can fall back to unknown rather than force a speculative defeat. This is not a universal precise ETA for arbitrary medical mods.

test_recovery_forecast.py executes the production model as C++: joint thresholds, exact 300-second boundary, delayed regeneration, medicine exhaustion, bleeding, self-rescue and unknown-state policy. Existing self-epinephrine, recovery-policy, player-medical, spectator-recovery, reconnect-recovery and rescue-recovery checks passed. Generated-menu and changelog checks also passed.

The disposable native fixture compiled and completed. A real protected patient received the ordinary finite epinephrine effect: predicted wake 19 seconds, observed wake 19.0837 seconds. Snapshot inspection left actual blood unchanged. The fixture injects the item effect at its native completion boundary; it does not claim human Space input, two connected clients, or a multiplayer defeat screen. The available dedicated runner is isolated with no clients, so dedicated-server multiplayer acceptance remains open.

Earlier iterations caught missing native hit-zone multipliers and over-counting passive resilience recovery during treatment. The final run has no script errors. The strict runner still exits 1 for the 13 existing localization/world diagnostics retained in native-checks.log; feature assertions completed, cleanup succeeded, and the tested sources remained unchanged. Validation preceded the Workshop upload and Git push.