AEGIS IADS v0.8.0 -- Quick Reference¶
Files¶
aegis-iads.lua-- main script- Your setup script (or use
test/setup-example.lua)
No MOOSE. No MIST. No desanitization.
ME Triggers¶
Trigger 1: ONCE -- TIME MORE (1) -- DO SCRIPT FILE -> aegis-iads.lua
Trigger 2: ONCE -- TIME MORE (2) -- DO SCRIPT FILE -> your-setup.lua
Naming Your Groups¶
Everything is auto-discovered by group name. Sector is extracted from the name -- SAM-SA10-NORTH-1 belongs to sector NORTH automatically.
EW-NORTH EW radar in sector NORTH
EW-NORTH-2 Second EW in NORTH (redundancy)
EW-NORTH-DET120 EW with 120 NM detection range cap
SAM-SA10-NORTH-1 SA-10 in sector NORTH (defaults)
SAM-SA6-SOUTH-1-NEZ SA-6 using No-Escape Zone
SAM-SA6-SOUTH-2-NEZ25 SA-6 with NEZ at 25 NM
SAM-SA2-SOUTH-3-WEZ15 SA-2 with WEZ at 15 NM
SAM-SA2-NORTH-1-ACT35 SA-2, activation at 35 NM
SAM-SA10-SOUTH-2-NEZ25-ACT50 SA-10, NEZ 25 NM, activate at 50 NM
PD-SA15-NORTH-1 Point defense, place within 5 NM of parent
PWR-SA5-SOUTH-1 Power for SAM-SA5-SOUTH-1 (by name match)
PWR-EW-NORTH Power for EW-NORTH (by name match)
The SECTOR name links everything. Same sector = same network. Suffixes are order-independent. NEZ-ACT30 = ACT30-NEZ.
Minimal Setup Script¶
local iads = AEGIS:New("red", { debug = true })
iads:Activate()
iads:AddF10Menu()
iads:StartMapDebug(15)
What Happens¶
| Situation | SAM Behavior |
|---|---|
| EW alive, no contacts | DARK -- invisible on RWR |
| EW sees contact, outside actRange | AWARE -- still dark |
| Contact enters actRange | ALERT -- weapons free, tracking |
| Contact leaves actRange | Back to AWARE (next poll) |
| EW loses all contacts + timeout | Back to DARK |
| EW destroyed | EMCON cycling -- intermittent radar |
| EMCON sweep, target in WEZ | EMCON ENGAGED -- weapons free |
| No EW placed at all | EMCON from mission start |
| Power source killed | Linked node permanently DARK |
| HARM fired at selfProtect SAM (SA-10) | STAY_HOT, engages ARM (30s window) |
| HARM fired at SAM with PD escort | LAST_DITCH: PD defends 8-12s, parent GO_DARK, PD stays hot through cooldown |
| HARM fired at SAM (no SP, no PD) | GO_DARK with jittered cooldown (45-90s), PDs activated if available |
| HARM fired at PD | Redirected to parent SAM — full HARM reaction tree |
| 2+ HARMs at same SAM within 15s | GO_DARK regardless of capability |
| PB HARM heading toward SAM (EW alive) | Network warns SAM (see below) |
| PB HARM heading toward SAM (no EW) | No warning -- autonomous SAM is on its own |
| TALD enters activation range | SAM treats it as real contact (goes ALERT) |
| Mk-82 / missiles in flight | Filtered out -- no SAM reaction |
HARM Reaction¶
TOO/SP HARMs (locked on a SAM)¶
SAMs detect HARMs via S_EVENT_SHOT. Reaction depends on SAM capability:
- Crew processing delay (8-12s randomized) — SAM continues emitting while crew processes
- Decision tree:
- selfProtect (SA-10, SA-11, PATRIOT, SA-15, TOR): STAY_HOT — engages ARM (30s window)
- Has live PD: LAST_DITCH — PD defends 8-12s, then parent goes dark
- Neither: GO_DARK — classic dodge with jittered cooldown (45-90s)
- Panic: 15% chance selfProtect crew goes dark anyway
- Multi-HARM saturation: 2+ HARMs within 15s forces GO_DARK regardless
PB HARMs (no lock, coordinates only)¶
S_EVENT_SHOT detects the launch, then 2s later AEGIS polls the weapon for position + velocity and projects the trajectory. SAMs in the path get warned only if their sector has a live EW (the network provides the warning).
| SAM State | Has PD? | Action |
|---|---|---|
| Emitting | -- | Full HARM reaction (same decision tree as TOO/SP) |
| Dark/EMCON | Yes | PD goes ALERT to defend, parent stays dark, EMCON suppressed |
| Dark/EMCON | No | EMCON suppressed for ETA + 30s (don't pop up while HARM is inbound) |
| Autonomous (no EW) | -- | No warning -- nobody watching the sky for this SAM |
Contact Filtering¶
Not everything the radar sees triggers SAM activation: - Aircraft and TALDs → valid contacts (SAMs go ALERT) - Bombs, HARMs, AAMs, SAM missiles → filtered out (ignored)
10 TALDs swarming a site is a valid SEAD tactic. Mk-82s falling through the area won't cause false activations.
Config Tuning¶
local iads = AEGIS:New("red", {
-- Core
ewPollInterval = 10,
alertTimeout = 60,
defaultZone = "WEZ",
-- EMCON timing
emconOnMin = 30,
emconOnMax = 120,
emconOffMin = 15,
emconOffMax = 45,
emconReengageMin = 10,
emconReengageMax = 30,
-- EMCON jitter
emconStartupJitter = 60,
emconDoubleSweepPct = 15,
emconEarlyTermPct = 20,
emconThreatScale = 0.5,
emconRelaxedScale = 1.5,
emconSpookEnabled = false,
-- HARM reaction policies
harmReactionDelayMin = 8, -- crew processing time min (s)
harmReactionDelayMax = 12, -- crew processing time max (s)
harmCooldownMin = 45, -- GO_DARK cooldown min (jittered)
harmCooldownMax = 90, -- GO_DARK cooldown max
harmStayHotDuration = 30, -- selfProtect engagement window (s)
harmLastDitchMin = 8, -- PD defense window min (s)
harmLastDitchMax = 12, -- PD defense window max (s)
harmPanicPct = 15, -- % chance selfProtect crew panics
harmMultiThreshold = 2, -- HARMs in window that force GO_DARK
harmMultiWindow = 15, -- seconds for multi-HARM count
harmBraveryPct = 5, -- % chance any crew stays hot (nat 20)
-- PB HARM network warning
pbHarmCheckDelay = 2, -- seconds after PB launch to check trajectory
pbHarmWarnRadius = 5, -- NM: SAMs within this of projected path get warned
pbHarmCooldownMargin = 30, -- extra seconds added to ETA for suppression timing
debug = true,
})
Debugging¶
- dcs.log: grep for
[AEGIS]-- all state transitions logged - F10 map:
iads:StartMapDebug(15)-- markers on every SAM/EW - F10 menu:
iads:AddF10Menu()-- status report on demand - HARM events logged with
[AEGIS!]prefix (always, even without debug)
Common Issues¶
| Problem | Fix |
|---|---|
| SAM radar on at mission start | Normal -- 12s init delay, goes dark after |
| SAM never goes ALERT | Outside actRange or altitude band |
| SAM goes ALERT but won't shoot | DCS AI needs 15-20s to acquire. Increase ACT range. |
| SAM won't dodge HARMs | Must be emitting (ALERT/EMCON_OFF/EMCON_ENGAGED) |
| SA-10 stays hot after HARM | selfProtect=true — it's engaging the ARM. Set harmPanicPct=100 to force GO_DARK |
| SAM ignores 2nd HARM | If already dark from 1st HARM, correct — dark SAM can't detect it |
| TALDs not fooling SAMs | They should -- check EW is alive or SAM is in EMCON sweep |
| PB HARM not warning SAMs | SAM's sector needs a live EW -- autonomous SAMs get no warning |
| PB HARM warning too sensitive | Increase pbHarmWarnRadius (default 5 NM) |
| PWR group not linking | Name must match: PWR-SA5-SOUTH-1 -> SAM-SA5-SOUTH-1 |