Files

85 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Optional enemy reconnaissance drones
The supported package is [**Realistic Combat Drones**](https://reforger.armaplatform.com/workshop/65AD60E204191D37-RealisticCombatDrones) by SalamiBoiDev,
Workshop ID `65AD60E204191D37`. Integration targets its **2.3.7** unarmed
`Prefabs/Drones/DJIBase/DJIBase.et` airframe. Install the official package
separately; Escape does not require it or include its assets. AI Use Drones,
Vampire, the MANW variant and the RHS arsenal extension are not required.
Open **Mods → Recommended mods → Recon drones**, or **HQ → Recon drones**.
| Setting | Default | Range | Command |
| --- | --- | --- | --- |
| Maximum active drones (`droneReconCount`) | 0 (disabled) | 0–3 | `/esc mission drones set N` |
| Launch cooldown (`droneCooldownSeconds`) | 300 seconds | 60–1800 | `/esc mission dronecooldown set N` |
Settings use the existing authenticated administration and saved mission
configuration, and apply next round. Older profiles receive the disabled default.
The page distinguishes installed/enabled settings from current-round readiness,
active count and failure reasons. Enabling a setting does not install an addon.
## Behaviour
After escape, HQ may dispatch an unarmed quadcopter from the squad responsible
for a delivered sighting no older than 60 seconds. The living squad leader must
carry a radio and be within 1.2 km of the reported location. The initial pad must
have overhead clearance, be on land and be at least 100 m from players. Launch
selection uses captured report coordinates, never the reported target's live
position. Replayed reports and the drone's own reports cannot trigger launches.
Nearby searches and squads already operating a drone are not duplicated.
A server autopilot drives the addon's stabilized flight controls. The addon
supplies the actual airframe, physics forces, damage, rotor animation/audio and
network updates. Flights climb before departure, travel towards the report and
search for up to two minutes after reaching its area. The drone returns after
searching or losing its operator/link. Flight time has a ten-minute upper bound;
obstructed takeoff, destruction and player takeover release automatic control.
Takeover preserves the player's aircraft. A returned drone stays at the launch
site and resumes the addon's normal cleanup behaviour.
The reconnaissance sensor samples at most one living player per drone per
second. It uses a 60-degree cone aimed at the reported search location, a 350 m
range and a physical world/entity trace. The first implementation reports
visible players on foot; it does not identify concealed vehicle occupants,
inventory or weapons. This is an explicit geometric sensor, not native infantry
perception or a thermal/smoke/weather simulation.
Observations require the original operator to remain conscious, within 1.8 km,
with a clear physical link. Registered RCD jammers in range deny that link.
The operator's squad must then have a usable HQ radio route: reports enter the
existing delayed radio queue and only normal delivery updates HQ memory.
Existing HQ response and mortar rules remain responsible for any response.
Drones themselves have no weapons or explosive payload.
## Bounds and optional API
- Zero to three concurrent flights; a shared minimum launch interval.
- Sixty-four allocations per round and a pause after three consecutive launch
or pre-flight failures. Successful takeoff clears the failure streak.
- Controls update at 20 Hz, add-on position packets at up to 10 Hz, and link/
camera checks at most once per second per drone. Jammer lookup is capped at
64 entries. No island-wide entity scan runs per frame.
- All flight callbacks stop with the mission. Launches stop on an empty server;
existing aircraft can finish their bounded flights.
- Foreign types occur only inside a fixed dynamically compiled adapter after
detecting the addon. Missing/incompatible APIs disable drones for that round.
- The dynamic compiler is supported on dedicated servers and Workbench. Normal
listen-server hosts skip this integration, matching the existing Cessna bridge.
- Only the mission-created drone's simulation/battery callbacks are temporarily
replaced; release restores them. Player drones and third-party files are not
modified.
## Verification
`python3 tests/test_drone_recon.py` executes the production scheduling, camera
cone and control rules with native boundaries substituted. It also checks the
optional dependency and HQ radio integration boundaries. Menu, settings migration
and resource checks run through `python3 tools/check.py`.
The [21 October native evidence](evidence/drone-recon-2026-10-21/README.md)
records powered takeoff/translation, injected takeover, unowned disarm and startup
without the optional addon: seven assertions with no script/runtime failures.
Engine resource/world/platform errors remain in both complete reports. Dedicated
multiplayer, automatic sighting-to-launch-to-report flow, and a full search/return
cycle remain mission-playtest requirements.