Naming & Setup Guide¶
How AEGIS Works (30-Second Version)¶
Real-world IADS don't work like DCS's default behavior where every SAM has its radar on from mission start. In a real network, early warning radars scan the sky and feed threat data to SAM sites, which stay silent until they have something to shoot at. Kill the early warning radar and the SAMs lose their picture — they have to turn on their own radars intermittently, making them vulnerable.
AEGIS models this. Your EW radars provide the picture. Your SAMs start dark and invisible on RWR. When the EW detects a contact inside a SAM's activation range, that SAM lights up and engages. When the EW dies, the SAMs degrade to intermittent EMCON cycling — radar on briefly, then off, unpredictably.
The entire network is wired together by naming convention. You name your DCS groups following a pattern, and AEGIS discovers them, figures out who talks to whom, and runs the network. No configuration files, no linking scripts, no drag-and-drop — just names.
The Sector Model¶
SECTOR: NORTH
┌────────────────────────────────┐
│ │
│ EW-NORTH <── PWR-EW-NORTH │
│ │ │
│ │ radar contacts │
│ ├──────────┐ │
│ v v │
│ SAM-SA10 SAM-SA6 │
│ NORTH-1 NORTH-2 │
│ │ │
│ v │
│ PD-SA15-NORTH-1 │
│ (bodyguard for SA-10) │
│ │
└────────────────────────────────┘
The sector name in the group name IS the network connection. There is no other configuration.
Prefixes at a Glance¶
The prefix determines what the group does in the network:
| Prefix | Role | Example |
|---|---|---|
EW- |
Early warning radar — provides the picture | EW-NORTH |
SAM- |
SAM site — starts dark, activates on EW cue | SAM-SA10-NORTH-1 |
PD- |
Point defense — bodyguard, slaves to nearest parent | PD-SA15-NORTH-1 |
PWR- |
Power source — kill it, linked node goes permanently dark | PWR-EW-NORTH |
EA- |
Jammer aircraft — opposing coalition, suppresses IADS | EA-GROWLER-1 |
The prefix determines the role, not the system type. An SA-15 named SAM-SA15-... is a standalone SAM. The same SA-15 named PD-SA15-... is a bodyguard.
Sectors — Why They Matter¶
A sector is a named group of nodes that share an EW radar feed. The sector name is freeform — NORTH, SOUTH, ALPHA, COASTAL, DOWNTOWN, AIRBASE — anything you want.
- Same sector name = same network.
EW-NORTHfeedsSAM-SA10-NORTH-1andSAM-SA6-NORTH-2because they all containNORTH. - Different sectors are independent.
SAM-SA10-SOUTH-1gets nothing fromEW-NORTH. - Multiple EWs in one sector = redundancy. Kill
EW-NORTH, andEW-NORTH-2keeps feeding contacts to the sector's SAMs. - No EW in a sector = autonomous. SAMs start EMCON cycling from mission start — they have no eyes, so they cycle their own radar.
- The EW is the network organically — it's both the sensor and the C2 node.
Group Reference¶
EW Radars¶
Format: EW-{SECTOR}[-{ID}][-DET{range}]
| Example | What It Does |
|---|---|
EW-NORTH |
EW radar in sector NORTH, no detection limit |
EW-NORTH-2 |
Second EW in NORTH (redundancy) |
EW-NORTH-DET120 |
EW with 120 NM detection range cap |
EW-NORTH-2-DET80 |
EW #2 in NORTH, capped at 80 NM |
The DCS group should contain an EWR unit (1L13, 55G6, EWR P-37, etc.). Multiple EWs in a sector provide redundancy — the SEAD pilot has to kill them all to blind the sector.
The DET suffix limits how far the EW can see. This models degraded radars, terrain masking, or doctrinal placement — a hilltop 1L13 and a mobile P-19 don't have the same effective range. A global default can be set via ewDetectionRange in the config (0 = no limit).
EW placement matters
AEGIS uses DCS's getDetectedTargets() to get radar contacts, which means DCS handles line-of-sight, terrain masking, and altitude filtering. An EW placed in a valley behind a mountain ridge will have blind spots that AEGIS can't fix — it only sees what DCS says the radar sees. Place your EWs on high ground with good sightlines, just like the real thing.
Also keep in mind that SAMs outside the EW's detection radius won't get contacts. If your SA-10 is 200 NM from the nearest EW and the EW can only see 150 NM out, that SA-10 is never getting a cue — the crew is drinking coffee. The SAM won't fall back to EMCON either, because its EW is still alive — it's waiting for a cue that will never come. Either move the EW closer or add a second EW nearer to the SAM.
SAM Sites¶
Format: SAM-{TYPE}-{SECTOR}-{ID}[-suffixes]
| Example | What It Does |
|---|---|
SAM-SA10-NORTH-1 |
SA-10 in sector NORTH, default settings |
SAM-SA6-SOUTH-2 |
SA-6 in sector SOUTH |
SAM-SA6-SOUTH-2-NEZ |
SA-6 using No-Escape Zone (ambush mode) |
SAM-SA2-NORTH-1-ACT35 |
SA-2 with 35 NM activation range |
SAM-SA22-NORTH-1-MOB |
SA-22 Pantsir, mobile — position tracked periodically |
SAM-SA11-SOUTH-2-NEZ25-MOB |
SA-11 mobile with NEZ at 25 NM |
SAMs start dark and activate when the EW feeds a contact inside their activation range. If the EW dies, they degrade to EMCON cycling.
The prefix determines the role, not the system type
SAM-SA15-NORTH-1 is a standalone SAM that EMCON cycles independently. The same SA-15 named PD-SA15-NORTH-1 is a bodyguard that slaves to the nearest parent. Any SAM system can fill either role — you decide with the prefix.
TYPE must match a key in the supported types table. If it doesn't match, AEGIS falls back to UNKNOWN defaults (wez=15, nez=7, actRange=20).
Supported Types¶
| Type | WEZ (NM) | NEZ (NM) | Act Range (NM) | Self-Protect | Notes |
|---|---|---|---|---|---|
| SA2 | 24 | 10 | 30 | No | |
| SA3 | 10 | 5 | 14 | No | |
| SA5 | 125 | 60 | 150 | No | needsPower=true |
| SA6 | 14 | 5 | 18 | No | v0.8.4-beta: was 18/6/22 |
| SA8 | 7 | 3.5 | 9 | No | SHORAD |
| SA10 | 39 | 20 | 50 | Yes | |
| SA11 | 25 | 12 | 30 | Yes | v0.8.4-beta: was 18/8/22 |
| SA13 | 2.8 | 1.4 | 4 | No | |
| SA15 | 8 | 3 | 10 | Yes | Default PD type |
| SA19 | 4.4 | 2 | 6 | No | |
| HAWK | 25 | 12 | 30 | No | |
| PATRIOT | 80 | 35 | 95 | Yes | v0.8.4-beta: was 40/20/50 |
| NASAMS | 10 | 5 | 12 | No | |
| GEPARD | 2 | 1 | 3 | No | |
| SHILKA | 1.5 | 0.5 | 2 | No | |
| ROLAND | 4 | 2 | 5 | No | |
| RAPIER | 3 | 1.5 | 4 | No | |
| CurrentHill Mod | |||||
| SA15CH | 9 | 3 | 11 | Yes | TOR-M2 |
| SA22 | 11 | 5 | 14 | Yes | Pantsir-S1 (v0.8.4-beta) |
| High Digit SAMs Mod | WEZ/NEZ are real-world estimates | ||||
| SA10B | 40* | 25* | 50* | Yes | S-300PS variant |
| SA10C | 49* | 25* | 63* | Yes | S-300PS ext range |
| SA12 | 41* | 20* | 50* | Yes | S-300V Gladiator (v0.8.4-beta: was 54/25/64) |
| SA12G | 54* | 25* | 64* | Yes | S-300V Giant (v0.8.4-beta) |
| SA17 | 27* | 12* | 30* | Yes | Buk-M2 |
| SA20A | 81* | 40* | 95* | Yes | S-300PMU1 |
| SA20B | 109* | 50* | 120* | Yes | S-300PMU2 |
| SA21 | 105* | 50* | 130* | Yes | S-400 |
| SA23 | 54* | 25* | 64* | Yes | S-300VM Gladiator (v0.8.4-beta: was 108/65/130) |
| SA23G | 108* | 65* | 130* | Yes | S-300VM Giant (v0.8.4-beta) |
| SA23V4 | 81* | 40* | 95* | Yes | S-300V4 Gladiator (v0.8.4-beta) |
| SA23V4G | 205* | 100* | 220* | Yes | S-300V4 Giant (v0.8.4-beta) |
| SAMPT | 65* | 30* | 75* | Yes | SAMP/T Aster 30 (v0.8.4-beta) |
* HDS values are real-world estimates, not yet verified in-game. Expect these to change as testing continues. You can override any value with WEZ/NEZ/ACT suffixes in the group name.
Self-protect SAMs engage HARMs instead of going dark. See the How It Works page for the full HARM reaction tree.
Point Defense¶
Format: PD-{TYPE}-{SECTOR}-{ID}
| Example | What It Does |
|---|---|
PD-SA15-NORTH-1 |
SA-15 bodyguard, pairs to nearest parent |
PD-TOR-SOUTH-1 |
TOR bodyguard in SOUTH |
PD-SA11-NORTH-1 |
SA-11 on bodyguard duty |
Any SAM type works as PD. Common choices are SA-15 and SA-11 (short-to-medium range, self-protect capable). PD-SA11-NORTH-1 is an SA-11 assigned to bodyguard duty — it can engage inbound HARMs.
PD behavior:
- Auto-pairs to the nearest AREA SAM or EW within 5 NM (
pdAssociateRangeconfig). Place your PD group close to what it's protecting. - Slaves to parent — parent goes ALERT, PD goes ALERT. Parent goes DARK, PD goes DARK.
- HARM defense — when a HARM targets the parent, PD activates immediately to defend. PD stays hot through the full HARM cooldown, even after the parent goes dark.
- Orphan promotion — if the parent dies, the PD promotes to a standalone SAM and starts EMCON cycling in the parent's sector.
The mission maker decides what's a PD
AEGIS doesn't care about the system type — the prefix determines the role. An SA-15 named SAM-SA15-NORTH-1 is a standalone SAM. The same SA-15 named PD-SA15-NORTH-1 is a bodyguard. You pick based on your mission design intent.
Power Sources¶
Format: PWR-{target-group-name} (minus the SAM-/EW- prefix)
| Example | Links To |
|---|---|
PWR-EW-NORTH |
EW-NORTH |
PWR-SA5-SOUTH-1 |
SAM-SA5-SOUTH-1 |
PWR-SA10-NORTH-1 |
SAM-SA10-NORTH-1 |
Power is per-node, not per-sector. Killing a power source makes the linked node permanently dark — no EMCON cycling, no recovery. The power group can be a DCS group or a static object.
Every SAM is self-powered by default. You only need PWR groups for sites where you want a power dependency as a DEAD target. SA-5 has needsPower=true in the database, so it always needs power.
Static objects: set the unit name (v0.8.4-beta)
Static object scanning is only available in the beta release. For static objects, make sure the unit name follows the PWR- or CMD- naming convention. The group name can be anything. This is because coalition.getStaticObjects() returns unit objects and getName() returns the unit name — not the group name. The ME does not sync them automatically.
Name matching is exact
PWR-EW-NORTH links to EW-NORTH. PWR-NORTH doesn't match anything. The name after PWR- must contain the target's type and sector components. Do not include the SAM- prefix — PWR-SA10-NORTH-1 is correct, PWR-SAM-SA10-NORTH-1 will fail (the linker prepends SAM- automatically).
EA Aircraft¶
Format: EA-{TYPE}-{ANYTHING}[-{ID}]
| Example | What It Does |
|---|---|
EA-GROWLER-1 |
EA-18G Growler jammer |
EA-PROWLER-NORTH-1 |
EA-6B Prowler |
EA-SPARKVARK-1 |
Tornado ECR |
EA-GENERIC-ESCORT-1 |
Generic jammer type |
EA aircraft must be on the opposing coalition from the IADS they're jamming. A red IADS is jammed by blue EA aircraft.
| Type | Multiplier | Notes |
|---|---|---|
| GROWLER | 1.0 | Baseline — EA-18G |
| PROWLER | 0.8 | EA-6B, slightly less effective |
| SPARKVARK | 0.7 | Tornado ECR |
| GENERIC | 0.5 | Any unknown type |
AI EA aircraft are discovered at mission start. Player EA aircraft are discovered when they spawn in (S_EVENT_BIRTH). Players manage jammer modes, pod assignments, and passive ESM via F10 menu or the optional EA GUI overlay.
v0.8.4-beta Changes
v0.8.4-beta simplifies JAMMER_DB to GROWLER (mult 1.0) and HERC (mult 1.3, C-130 Compass Call). Use EA-HERC-NORTH-1 for Compass Call aircraft. PROWLER, SPARKVARK, and GENERIC are removed — names using old types fall back to UNKNOWN (mult 0.5).
EA is on by default. Set eaEnabled = false in your config to disable it. See Electronic Attack for full mechanics, burn-through physics, and pilot usage.
Suffixes — Advanced Options¶
Suffixes are optional, order-independent, and parsed once at mission load (zero runtime cost). NEZ-ACT30 is the same as ACT30-NEZ.
| Suffix | Applies To | Effect | Example |
|---|---|---|---|
NEZ |
SAM | Use No-Escape Zone (database default) | SAM-SA10-NORTH-1-NEZ |
NEZ25 |
SAM | NEZ at custom 25 NM | SAM-SA6-SOUTH-1-NEZ25 |
WEZ15 |
SAM | WEZ at custom 15 NM | SAM-SA2-SOUTH-3-WEZ15 |
ACT35 |
SAM | Activation range at 35 NM | SAM-SA2-NORTH-1-ACT35 |
MOB |
SAM | Mobile — position polled periodically | SAM-SA22-NORTH-1-MOB |
DET120 |
EW | Detection range cap at 120 NM | EW-NORTH-DET120 |
WEZ vs NEZ vs ACT:
- WEZ (Weapon Engagement Zone) — outer edge of what the SAM can shoot. SAM lights up early, engages at max range. Default for most systems.
- NEZ (No-Escape Zone) — roughly half the WEZ. SAM stays dark longer and fires at much higher Pk. Ambush mode — targets inside the NEZ can't outrun the missile.
- ACT (Activation Range) — when the SAM's radar turns on in integrated mode. Usually auto-derived from the zone + a system margin (DCS AI lead time). An explicit
ACTsuffix always overrides the auto value.
Zone overrides automatically adjust the activation range to preserve the system's built-in margin. For example, an SA-6 (wez=14, actRange=18, margin=4) with a NEZ override (nez=5) activates at 9 NM (5+4), not the default 18. See the Tuning Guide for full details on range parameters.
MOB (Mobile) — Opts a SAM into periodic position polling. AEGIS normally captures a SAM's position once at mission start and never updates it. Mobile SAMs with waypoints (SA-22 Pantsir, TOR, SA-8, SA-11 BUK on convoy escort, etc.) need position refresh so activation range checks, burn-through calculations, and F10 markers stay accurate. Position updates are tiered: idle SAMs (DARK, no contacts in sector) refresh every 60s, active SAMs (AWARE or above) refresh every 20s. Only SAMs with the MOB suffix are polled — static SAMs have zero overhead. Combinable with any other suffix: SAM-SA22-NORTH-1-NEZ-MOB-ACT20.
Example Mission Walkthrough¶
Here's a complete two-sector IADS setup:
Group Names¶
-- SECTOR NORTH: SA-10 with PD, plus an SA-6
EW-NORTH EW radar
SAM-SA10-NORTH-1 SA-10 (default WEZ)
PD-SA15-NORTH-1 SA-15 bodyguard for SA-10
SAM-SA6-NORTH-2 SA-6
-- SECTOR SOUTH: SA-2 ambush, SA-6, detection-capped EW
EW-SOUTH-DET120 EW radar (120 NM cap)
SAM-SA2-SOUTH-1-NEZ SA-2 in ambush mode
SAM-SA6-SOUTH-2 SA-6
-- MOBILE: SA-22 on convoy escort (give it waypoints in ME)
SAM-SA22-NORTH-3-MOB SA-22 Pantsir, position tracked
-- POWER (optional)
PWR-EW-NORTH Power for EW-NORTH
Setup Script¶
local iads = AEGIS:New("red", {
debug = true, -- verbose logging to dcs.log (disable for production)
})
iads:Activate()
iads:AddF10Menu() -- F10 menu for status reports
iads:StartMapDebug(15) -- F10 map markers, refreshed every 15s (debug only)
Debug mode
debug = true enables detailed logging and is great for testing. For a finished mission, remove it (or set false) and drop the StartMapDebug call — AddF10Menu is lightweight enough to keep.
What Happens When...¶
A strike package enters from the north:
EW-NORTHdetects the contacts and feeds them to NORTH sector.- Contacts enter the SA-10's activation range (50 NM).
SAM-SA10-NORTH-1goes ALERT — radar on, weapons free.PD-SA15-NORTH-1mirrors the SA-10 and goes ALERT. - Contacts push toward the SA-6. At 18 NM,
SAM-SA6-NORTH-2goes ALERT. - From the cockpit: clean RWR until you push inside 50 NM, then SA-10 spike. Push further and the SA-6 lights up.
SEAD flight kills EW-NORTH:
- Both NORTH SAMs lose their EW feed and drop to EMCON cycling — intermittent radar, unpredictable timing.
PD-SA15-NORTH-1follows its parent SA-10 into EMCON.- The SEAD pilot sees sporadic spikes instead of constant tracking — harder to target with HARMs.
HARM fired at SA-10 (TOO mode):
- AEGIS detects the HARM via
S_EVENT_SHOT. Crew begins processing (6-9s delay). - SA-10 has
selfProtect=true— it STAYS HOT and engages the HARM with its own missiles. PD-SA15-NORTH-1also activates to defend.- 15% chance the crew panics and goes dark instead.
SA-10 destroyed:
PD-SA15-NORTH-1loses its parent. It promotes to a standalone SAM in sector NORTH.- Starts EMCON cycling with its own SA-15 parameters (wez=8, actRange=10).
- If it detects a target in its WEZ during an EMCON sweep, it engages. SA-15 has
selfProtect=true, so it fights HARMs too.
SEAD pilot fires a PB HARM toward SOUTH sector:
- AEGIS detects the launch, polls the weapon at T+2s, and projects the trajectory.
EW-SOUTH-DET120is alive, so the network warns SAMs in the path.SAM-SA2-SOUTH-1-NEZis dark (NEZ ambush). It stays dark but suppresses EMCON cycling for the HARM's ETA + 30s margin.- If the SA-2 had been emitting, it would enter the full HARM reaction tree.
Common Mistakes¶
| Mistake | What Happens | Fix |
|---|---|---|
| SAM in sector NORTH, EW in sector SOUTH | SAM never gets contacts from that EW | Sector names must match exactly |
| PD placed 10 NM from parent SAM | PD doesn't pair (too far) | Place within 5 NM (pdAssociateRange) |
| No EW for a sector | SAMs EMCON cycle from mission start | Add EW-{SECTOR} or accept autonomous ops |
PWR-NORTH-1 (doesn't match a group) |
Power doesn't link to anything | Name must contain target: PWR-EW-NORTH |
| EA aircraft on same coalition as IADS | EA not discovered | EA must be opposing coalition |
Misspelled SAM type (SA10A vs SA10B) |
Falls back to UNKNOWN defaults | Check the supported types table above |
| Spaces in group name | Parser can't match | Use hyphens only, no spaces |
SAM-SA-10-NORTH-1 (extra hyphen) |
Type parsed as SA, not SA10 |
No hyphens within the type: SAM-SA10-NORTH-1 |
| EW placed in a valley | DCS radar has blind spots from terrain | Place EWs on high ground with clear sightlines |
| SAM 200 NM from nearest EW | EW can't see that far, SAM stays DARK forever | Move EW closer or add a nearer EW |
Dual Coalition¶
Untested
Dual coalition is supported by the architecture but has not been validated in a live DCS session. If you try it, let us know how it goes.
You can run IADS for both sides simultaneously:
local redIADS = AEGIS:New("red", { debug = true })
redIADS:Activate()
local blueIADS = AEGIS:New("blue", { debug = true })
blueIADS:Activate()
Same naming conventions on both sides. Each AEGIS instance only sees its own coalition's groups.
Quick Reference¶
All naming patterns in one place:
EW-{SECTOR}[-{ID}][-DET{range}] EW radar
SAM-{TYPE}-{SECTOR}-{ID}[-suffixes] SAM site (standalone)
PD-{TYPE}-{SECTOR}-{ID} Point defense (bodyguard)
PWR-{target-group-name} Power source
EA-{TYPE}-{ANYTHING}[-{ID}] Jammer (opposing coalition)
| Prefix | Starts As | Needs EW? | Key Behavior |
|---|---|---|---|
EW- |
Active | — | Scans, feeds contacts to sector SAMs |
SAM- |
DARK | Yes for cues | Activates on EW contact in actRange; EMCON if EW dies |
PD- |
DARK | Via parent | Mirrors parent state; defends against HARMs; promotes if parent dies |
PWR- |
— | — | Destroy to permanently kill linked node |
EA- |
— | — | Suppresses IADS with physics-based jamming |
| Suffix | Applies To | Effect |
|---|---|---|
NEZ |
SAM | Ambush mode (No-Escape Zone) |
NEZ25 |
SAM | NEZ at custom range |
WEZ15 |
SAM | WEZ at custom range |
ACT35 |
SAM | Activation range override |
MOB |
SAM | Mobile — position polled periodically |
DET120 |
EW | Detection range cap |
Next Steps¶
- Quick Start — cheat sheet with all naming patterns and config options at a glance
- How It Works — full state machine, HARM reaction tree, EMCON mechanics
- Electronic Attack — jamming mechanics, burn-through physics, pilot usage
- Tuning Guide — every parameter explained with recommended values