85 lines
4.9 KiB
Markdown
85 lines
4.9 KiB
Markdown
# 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.
|