Add recon drones and body burial; stabilize spectator camera
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user