Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
7.0 KiB
Optional reconnaissance plane
A dedicated server which loads Cessna 172 (69BAEE0D439966FE) and its
Propeller Flight Core dependency (69A8A34027DA65C5) can operate one enemy
reconnaissance plane. Neither addon is an Escape project dependency. Without both
loaded, Escape does not search for a plane prefab, survey its departure corridor
or spawn its crew.
Open HQ → Configure Cessna for the saved Enabled / Disabled choice
(planeReconEnabled, default 1) and patrol settings. Each numeric field has
its own Apply button and saved value. All changes apply next round, including
replacement flights; editing a field alone does not save it. The same authenticated
command is /esc mission plane set 0|1. Enabling the setting does not install an
addon or promise that the current terrain has a usable airport.
| Setting | Default | Allowed range | Admin command option |
|---|---|---|---|
Patrol altitude (planeAltitudeMetres) |
250 m | 150–500 m | planealtitude |
Replacement delay (planeReplacementSeconds) |
60 s | 30–1800 s | planereplacement |
New patrol area (planeSectorSeconds) |
120 s | 30–600 s | planesector |
Use /esc mission <option> set <value> with these options. Older saved profiles
receive the defaults automatically. Altitude is clearance above sampled terrain
ahead, not a guaranteed height at every instant. The plane selects a new area
when the interval expires or it reaches the current destination; departure still
uses its dedicated takeoff leg. These controls do not change the number of planes
or bypass the crew's native perception and radio reporting.
Operation
- Airport discovery and departure clearance run in bounded background batches after the mission becomes active. They do not block prisoner admission.
- A clear, gently graded airport departure corridor and separation from players are required. No airport or no safe corridor means no plane on that terrain.
- The original Cessna prefab receives a pilot and observer from Escape's existing radio-equipped aircrew prefabs, assigned to the selected enemy faction.
- Each original crew agent is activated at permanent LOD 0 before boarding. Preparation verifies the exact assigned seat and its occupant, rather than treating an accepted boarding request as success. An unseated, conscious crew member can make at most three native seating requests, at least five seconds apart, within the original 45-second preparation deadline. Requests wait for existing entry/exit transitions and refuse occupied, inaccessible, locked or externally reserved seats. They never replace crew or remove other occupants.
- A server autopilot drives the addon's controls. PFC remains responsible for flight forces, collision, fuel, damage and replication. The patrol does not teleport the aircraft or write its velocity/transform during flight.
- Destinations are sampled on land, independently of player positions. Altitude control samples terrain ahead; bank and throttle control follow the patrol.
- The crew is registered with VirtualHQ as a reserved support group. Its native perception supplies sightings to the existing reporting/radio network. It does not reveal hidden players or inject positions straight into HQ memory. Normal reporting begins after the prison phase; reporting intervals, radio availability and travel time still apply.
- Destruction, a lost pilot or a disabled aircraft schedules a replacement after the configured minimum delay (one minute by default). Departure may take longer if the area is occupied or a new corridor must be found. Partial, unregistered allocations are rolled back.
- Three consecutive allocation or pre-service preparation failures pause the patrol for the remainder of the round, avoiding repeated failing aircraft allocations. Successfully entering service resets this streak when that aircraft is retired. Destruction of an operational plane still gets its normal replacement. Preparation failures now identify the blocked crew/seating/radio or engine gate.
PLANE CREWjournal entries record request acceptance/refusal, observed seating state changes and the final timeout snapshot for both crew members. They include actor/seat/occupant identity, ownership, consciousness, entry/exit state, seat availability, AI activation and LOD. Routine state changes are limited to one entry per crew member every five seconds; requests and final timeouts are always recorded. Both crew members are checked even when the first is still boarding.- A player entering the plane or a faction/crew takeover releases the autopilot and restores the original input rates. The captured vehicle is retained.
- Round termination stops all autopilot callbacks. Existing force capacity and a 64-departure round cap bound retained aircraft/crew bookkeeping.
Optional API boundary
Verified addon versions: Cessna 172 1.0.0, Propeller Flight Core 1.0.18.
The aircraft exposes engine start publicly but its input receiver is protected.
A small, fixed ScriptModule.CompileScript adapter derives from the loaded PFC
controller and calls that receiver. It is compiled only on the authoritative
headless server (or Workbench). No third-party source files, project dependencies
or player input handlers are modified. Standard listen-server clients do not
provide this dynamic compiler and skip the patrol.
The adapter also temporarily holds the AI aircraft's input slew rates at zero, so PFC's absence-of-human-input handling does not erase its autopilot commands between simulation ticks. The original rates are restored when control ends. An incompatible future addon API prevents startup and records the reason in the HQ journal. The rest of the mission continues.
Native checks use an isolated Reforger 1.8.0.13 dedicated server and private addon copies. See native evidence for the tested scenarios and their limits.
The 12 October played round failed all three departures with crew 0 not seated;
the scheduler then paused aircraft for that round. The boarding changes above
address a missing pre-boarding member-activation step and make incomplete native
entry observable and recoverable within fixed limits. That log alone does not
establish whether the pilot never entered or left afterward.
The 13 October boarding check
compiled the revised controller and passed 19 native assertions on isolated
Everon: US/West crew boarded and took off after the arranged prison escape;
forced dismounts exhausted the three attempts and original timeout; preparation
takeover preserved the aircraft; and a dead pilot caused normal failure and
cleanup. Focused executable regressions also cover rejected requests, pending
player control, wrong seats and blocked/reserved compartments. This does not
reproduce the original Chernarus multiplayer session. The full native report
retains unrelated engine/resource errors, and the repository-wide check stops
at the existing ERRM_AtlasLeaf.et saved-root-ID error. No live deployment was
performed by this repair.