AEGIS IADS — Tuning Guide¶
This guide explains every configuration parameter in terms of what it does to IADS behavior — not just what the code variable is, but what changes in the cockpit when you adjust it.
All parameters are passed to AEGIS:New() in the config table. Every value has a sane default; you only need to set what you want to change.
Network Timing¶
These control how fast the IADS detects and reacts to aircraft entering the battlespace.
ewPollInterval¶
Default: 10s — How often each Early Warning radar checks for contacts.
This is the IADS heartbeat. Every ewPollInterval seconds, each EW calls getDetectedTargets() and feeds new contacts to its sector's SAMs.
| Value | Effect |
|---|---|
| 5s | Snappy — SAMs go ALERT within seconds of EW detection. Harder SEAD. |
| 10s | Default — realistic processing delay. SAMs react within one poll cycle. |
| 20-30s | Sluggish — noticeable gap between aircraft entering EW coverage and SAMs waking up. Simulates degraded C2 or overloaded operators. |
Cockpit feel: Lower values make the IADS feel "alive" — you barely cross the detection boundary and SAMs are already tracking. Higher values give you more time between the RWR chirp from the EW and the SAM spike.
Round-Robin Polling (v0.8.0+)
The poll interval is divided across sectors. A 10s interval with 7 sectors fires one sector every ~1.4s. Each sector is still polled once per ewPollInterval, but the work is spread across time. This reduces tick rate impact with 70+ aircraft. No config changes needed — the sub-interval is computed automatically.
alertTimeout¶
Default: 60s — How long a SAM stays in ALERT after the last contact disappears from its engagement zone.
This is not "how long the SAM stays alert after activation." It's a contact staleness timer. The EW poll keeps refreshing the SAM's last-seen timestamp as long as contacts are in range. Once the sky is clear (target left, shot down, or went cold), this timer starts counting. When it expires, the SAM goes DARK.
| Value | Effect |
|---|---|
| 30s | Short memory — SAMs go dark quickly after you egress or notch. Rewards hit-and-run tactics. |
| 60s | Default — SAM holds for a minute. Enough time that a brief notch won't save you. |
| 120-180s | Paranoid crews — SAMs stay hot for minutes after last contact. Punishes players who expect a quick return to dark. |
Cockpit feel: High values mean the RWR spike lingers long after you've turned cold. Low values reward aggressive maneuvering — duck behind terrain, wait 30 seconds, and the SAM goes back to sleep.
alertFrustrationMin / alertFrustrationMax¶
Default: 30-60s — How long a SAM stays ALERT with contacts in the activation range but nothing inside the WEZ before the crew gets antsy and powers down.
A recce aircraft orbiting at the edge of a SAM's activation range will trigger ALERT, but if it never enters the WEZ, the crew eventually decides it's not worth staying lit up.
| Values | Effect |
|---|---|
| 15-30s | Impatient crews — power down quickly if nothing's in the WEZ. |
| 30-60s | Default — realistic patience window. |
| 60-120s | Patient crews — willing to stay ALERT longer for edge-of-range contacts. |
Cockpit feel: You orbit just outside a SAM's WEZ. The spike appears, then after 30-60 seconds it vanishes — the crew powered down. Push closer to the WEZ and it comes right back. Pull away and it stays dark.
alertFrustrationStayPct¶
Default: 10% — Chance the crew stays hot despite no WEZ contacts, re-rolling the timeout.
Not every crew gives up on schedule. Some decide to hold a little longer, gambling that the target will push closer.
| Value | Effect |
|---|---|
| 0% | Crews always power down at timeout. Predictable. |
| 10% | Default — one in ten crews stays hot and re-rolls. |
| 25-30% | Stubborn crews — frequently stay lit despite no WEZ threat. |
ewDetectionRange¶
Default: 0 (no limit) — Maximum detection range in NM for EW radars. 0 means DCS handles detection range natively (no cap).
Limits how far each EW can "see." Contacts beyond this range are dropped before feeding to the sector's SAMs. Models degraded radars, terrain masking, or doctrinal placement without touching DCS unit properties.
Can be overridden per-EW via the DET{range} name suffix (e.g., EW-NORTH-DET120). The suffix always takes priority over the global config value.
| Value | Effect |
|---|---|
| 0 | Default — no limit. DCS radar model determines detection range. |
| 60-80 NM | Short-range EW — models a mobile P-19 or terrain-masked radar. Only sees close contacts. |
| 100-120 NM | Medium-range EW — typical 1L13 Nebo or 55G6 in good terrain. |
| 150+ NM | Long-range EW — hilltop radar with full horizon. Barely different from no limit in most missions. |
Cockpit feel: A capped EW creates a detection bubble. Fly outside it and the sector's SAMs stay dark — the EW can't see you even though DCS's radar model technically would. Useful for creating realistic detection coverage that varies by site placement.
Per-EW override examples:
EW-NORTH → uses global default (0 = no limit)
EW-NORTH-DET120 → 120 NM detection range
EW-NORTH-2-DET80 → EW #2 in NORTH, 80 NM cap
Engagement Zones¶
These determine how close an aircraft must be before a SAM activates.
defaultZone¶
Default: "WEZ" — Which engagement envelope SAMs use when no name-based override is present.
| Value | Meaning |
|---|---|
| "WEZ" | SAM activates at its maximum kinematic engagement range — the outer edge of what it can physically shoot at. Aggressive posture. |
| "NEZ" | SAM activates at roughly half WEZ — only engages targets well within its envelope. Ambush posture: stays dark longer, fires at higher Pk. |
Individual SAMs override this via name suffixes: SAM-SA10-NORTH-1-NEZ or SAM-SA6-SOUTH-1-WEZ10 (custom 10 NM WEZ).
Cockpit feel: WEZ means SAMs light up at max range — you get spiked early but the shots are at the edge of the envelope. NEZ means silence until you're deep inside, then the SAM has a high-Pk shot. NEZ is scarier for SEAD players.
autoAssociateRange¶
Default: 40 NM — Maximum distance for automatic EW-to-SAM sector association.
Only matters for SAMs added via API without a sector name in their group name. If your groups follow the naming convention (SAM-SA10-NORTH-1), this is never used — the sector comes from the name.
pdAssociateRange¶
Default: 5 NM — Maximum distance for automatic Point Defense to parent SAM pairing.
A PD unit (like PD-SA15-NORTH-1) automatically parents to the nearest SAM in the same sector within this radius. If your SA-15 is 3 NM from the SA-10, it pairs. If it's 8 NM away, it doesn't.
Mission design: Place PDs close to what they're defending. Real SA-15s sit inside the SA-10 battery footprint (~2-3 NM). If you want wider coverage, increase this value.
EMCON Cycling¶
When SAMs lose their EW network (radar destroyed, C2 killed), they enter EMCON — cycling their own radar on and off to search for targets while minimizing exposure to HARMs. These parameters control that cycle.
EMCON has two phases:
1. Silent phase (EMCON_ON) — radar off, SAM invisible. Duration set by emconOnMin/Max.
2. Sweep phase (EMCON_OFF) — radar on, SAM searching. Duration set by emconOffMin/Max.
emconOnMin / emconOnMax¶
Default: 30-120s — Duration range for the silent phase (radar OFF).
A random value between min and max is chosen each cycle, then modified by threat memory and relaxation scaling. This is how long the SAM hides between radar sweeps.
| Values | Effect |
|---|---|
| 10-30s | Nervous crews — short gaps, frequent sweeps. Easier to detect via RWR pattern analysis. |
| 30-120s | Default — unpredictable silence, hard to time a HARM shot. |
| 120-300s | Patient ambushers — very long silence, rare sweeps. Hard to find but also slow to detect threats. |
Cockpit feel: Short silent phases mean your RWR flickers constantly as SAMs sweep. Long silent phases mean eerie silence punctuated by sudden spikes — you never know when the next one comes.
emconOffMin / emconOffMax¶
Default: 15-45s — Duration range for the sweep phase (radar ON).
How long the radar stays on during each sweep. Longer sweeps = more time to build a track and fire. Shorter sweeps = less exposure to HARMs.
| Values | Effect |
|---|---|
| 5-15s | Quick peeks — barely enough time for DCS AI to get a firing solution. Limits SAM effectiveness but minimizes HARM vulnerability. |
| 15-45s | Default — enough time to acquire, track, and engage. |
| 45-90s | Aggressive — SAM stays on long enough to fire multiple missiles. Very exposed to HARMs. |
Cockpit feel: Short sweeps mean brief RWR spikes that vanish before you can react. Long sweeps give you time to lock a HARM and fire back.
emconDetectDelay¶
Default: 5s — Seconds after radar turns on before the SAM checks for targets.
Models the time for the radar to stabilize and the scope to populate. The radar is emitting during this delay (visible on RWR), but the SAM hasn't processed what it sees yet.
Usually leave this alone. Too low and you get false detections from radar startup artifacts. Too high and the SAM wastes sweep time not looking.
emconReengageMin / emconReengageMax¶
Default: 10-30s — How long an EMCON-engaged SAM (tracking a contact from its own sweep) waits with no contacts before cycling back to silent.
If a SAM sweeps, finds a target, and goes ALERT — but the target then leaves the WEZ — this timer determines how quickly the SAM gives up and goes back to EMCON silence.
| Values | Effect |
|---|---|
| 5-10s | Quick to give up — target moves out of WEZ, SAM goes silent fast. Good for hit-and-run attackers. |
| 10-30s | Default — holds for a bit hoping the target comes back. |
| 30-60s | Persistent — stays on for a while after losing track. Burns more HARM exposure time. |
emconStartupJitter¶
Default: 60s — Maximum random delay before a SAM's first EMCON cycle.
When multiple SAMs enter EMCON simultaneously (typically because their EW was just destroyed), this prevents them all from sweeping at the same time. Each SAM waits 0 to emconStartupJitter seconds before beginning its first cycle.
| Value | Effect |
|---|---|
| 0s | All SAMs in the sector sweep simultaneously after EW loss. Unrealistic synchronized pulse. |
| 60s | Default — sweeps spread across a 1-minute window. |
| 120-180s | Wide spread — some SAMs take 2-3 minutes to start their first sweep after losing the network. |
Cockpit feel: With low jitter, you'll see multiple RWR spikes appear together — obvious EMCON pattern. With high jitter, spikes feel random and independent.
EMCON Unpredictability¶
These add non-deterministic behavior to the EMCON cycle, making it harder for SEAD players to time their attacks.
emconDoubleSweepPct¶
Default: 15% — Chance the SAM immediately re-sweeps after detecting something outside its WEZ.
The SAM sees a contact on sweep, but it's outside engagement range. The crew thinks "wait, what was that?" and does a quick second look 5-10 seconds later. If the target moved closer, the second sweep might catch it in the WEZ.
| Value | Effect |
|---|---|
| 0% | Never double-sweeps. Predictable: one sweep, one silence. |
| 15% | Default — occasional double-take. |
| 30-50% | Paranoid crews — frequent double-sweeps when they see anything. More radar-on time. |
Cockpit feel: You see a brief RWR spike, it disappears, then 5-10 seconds later it comes back unexpectedly. Catches players who dash in right after a sweep ends.
emconEarlyTermPct¶
Default: 20% — Chance a sweep terminates early (3-6 second "quick peek" instead of full duration).
Sometimes the crew just does a fast check — radar on for a few seconds, glance at the scope, radar off. Not enough time for a quality track, but enough to see if anything's out there.
| Value | Effect |
|---|---|
| 0% | All sweeps run full duration. Predictable timing. |
| 20% | Default — one in five sweeps is a quick peek. |
| 40-50% | Highly erratic — half the sweeps are just quick flashes. Hard to get a HARM lock in time. |
Cockpit feel: Intermittent very short RWR spikes mixed with normal-length ones. Makes HARM timing frustrating — you start to lock, the spike vanishes.
emconThreatScale¶
Default: 0.5 — Multiplier on silent phase duration when the last sweep saw a contact.
After a sweep detects something, the crew is anxious and comes back sooner. The silent phase min/max are both multiplied by this value.
| Value | Effect |
|---|---|
| 0.25 | Very anxious — silent phase drops to 1/4 normal. Rapid cycling when threats are present. |
| 0.5 | Default — silent phase halved. 30-120s becomes 15-60s. |
| 1.0 | No threat memory. Silent phase is always the same regardless of what was seen. |
Cockpit feel: If you fly through a SAM's sweep, subsequent sweeps come faster — the crew is looking for you. If you leave the area, sweeps eventually slow back to normal (after emconRelaxedScale kicks in).
emconRelaxedScale¶
Default: 1.5 — Multiplier on silent phase duration after 3+ consecutive empty sweeps.
The crew hasn't seen anything in a while. They relax, take longer breaks. Silent phase min/max are both multiplied by this value.
| Value | Effect |
|---|---|
| 1.0 | No relaxation. Constant vigilance regardless of contact history. |
| 1.5 | Default — 50% longer silent phases after 3 empty sweeps. 30-120s becomes 45-180s. |
| 2.0-3.0 | Lazy crews — double or triple the silence after no contacts. Very long gaps between sweeps. |
Cockpit feel: If you've been avoiding a sector, those SAMs gradually sweep less often. But the moment one sweep catches you, emconThreatScale kicks in and the pace ramps back up.
emconSpookEnabled / emconSpookDuration¶
Default: false / 120s — When a nearby SAM (within 30 NM) is destroyed, surviving EMCON SAMs extend their silent phase.
The crew hears the explosion or gets the radio call — their neighbor just got hit. They stay dark longer out of self-preservation.
| Config | Effect |
|---|---|
| Disabled (default) | SAM deaths don't affect neighboring EMCON timing. |
| Enabled, 120s | After a nearby kill, silent phase extends to 120s for one cycle. |
| Enabled, 300s | Five minutes of radio silence after a neighbor dies. Very cautious crews. |
Cockpit feel: You kill an SA-6, and the SA-10 next door goes quiet for an unusually long time. Rewards systematic SEAD — each kill makes the survivors more scared.
HARM Reaction: Crew Behavior¶
These control what happens when an anti-radiation missile is detected targeting a SAM (TOO/SP mode — the HARM has a specific target lock).
harmReactionDelayMin / harmReactionDelayMax¶
Default: 8-12s — Full crew pipeline from HARM detection through classification to executing a response.
Models the complete timeline: tracking radar detects the fast-closing contact (2-4s), operators classify it as an ARM based on speed, trajectory, and closing rate (3-5s), then the crew decides and executes the reaction (2-4s). During this entire delay the SAM continues emitting normally. The HARM is getting closer.
| Values | Effect |
|---|---|
| 5-8s | Veteran crews — fast classification, drilled procedures. |
| 8-12s | Default — realistic detection + classification + action pipeline. |
| 10-15s | Green crews — slow to classify, hesitant to act. HARM gets extended guidance time. |
Cockpit feel: You fire a HARM and the RWR spike persists for a realistic 8-12 seconds before the SAM reacts. Enough time that a well-timed shot from close range can arrive before the crew goes dark. From standoff ranges, the crew has more time to react.
harmCooldownMin / harmCooldownMax¶
Default: 45-90s — How long a SAM stays dark after executing GO_DARK.
After dodging a HARM, the SAM hides for this duration. During cooldown, the EW poll cannot push the SAM back to ALERT — even if aircraft are overhead.
| Values | Effect |
|---|---|
| 20-40s | Short cooldown — SAM pops back up quickly. HARM forces a brief gap, not a window. |
| 45-90s | Default — realistic. Enough time for a strike package to exploit the gap. |
| 90-180s | Extended hiding — SAM is offline for minutes. One HARM creates a long window. |
Cockpit feel: This is the exploitation window for your strike. Fire HARM, SAM goes dark, you have harmCooldownMin to harmCooldownMax seconds to ingress, drop ordnance, and egress before the SAM comes back online.
harmStayHotDuration¶
Default: 30s — How long a self-protect SAM (SA-10, SA-11, PATRIOT) stays emitting to engage the HARM.
Self-protect SAMs don't run — they try to shoot the HARM down. This is how long the engagement window lasts. DCS AI decides whether to actually fire at the HARM.
| Value | Effect |
|---|---|
| 15s | Short window — SA-10 gets one or two shots at the HARM before resuming normal ops. |
| 30s | Default — covers realistic ARM flight time from standoff ranges. |
| 60s | Extended engagement — SA-10 has a long window to attempt intercept. Realistic for a Patriot battery. |
Cockpit feel: You fire a HARM at an SA-10 and the spike doesn't go away. Instead, you might see a SAM launch against your HARM. After the window expires, normal behavior resumes.
harmLastDitchMin / harmLastDitchMax¶
Default: 8-12s — How long the parent SAM stays hot while its Point Defense tries to engage the HARM.
For SAMs without self-protect but with a PD escort (e.g., SA-2 guarded by an SA-15): the PD is forced to ALERT immediately, and the parent stays emitting for this window. After it expires, the parent goes dark.
| Values | Effect |
|---|---|
| 4-6s | Quick handoff — PD gets a brief shot, parent goes dark fast. |
| 8-12s | Default — enough time for SA-15/TOR to detect and engage the HARM. |
| 12-20s | Extended defense — PD has a long window. Parent is exposed longer. |
Cockpit feel: You fire at the SA-2 and a second system lights up on RWR (the SA-15). The original spike persists for 8-12 seconds before vanishing, but the PD stays active.
harmPanicPct¶
Default: 15% — Chance a self-protect SAM crew panics and goes dark despite being capable of engaging the HARM.
Not every SA-10 crew is brave. Even if the system can theoretically shoot a HARM, sometimes the operator flinches and hits the kill switch.
| Value | Effect |
|---|---|
| 0% | Self-protect crews never panic. SA-10 always engages. |
| 15% | Default — roughly 1 in 7 SA-10 engagements, the crew bails. |
| 30-50% | Nervous crews — SA-10s go dark about half the time despite capability. |
Cockpit feel: Most times you shoot at an SA-10, it stays hot. But occasionally the spike vanishes — the crew panicked. Unpredictable, which makes SEAD planning harder.
harmMultiThreshold / harmMultiWindow¶
Default: 2 HARMs / 15s — HARM saturation attack: if this many HARMs arrive within the window, even self-protect SAMs go dark.
Models the tactical reality that even a confident SA-10 crew will shut down under a coordinated HARM salvo.
| Values | Effect |
|---|---|
| 2 / 15s | Default — two HARMs in 15 seconds forces GO_DARK. Standard SEAD tactic. |
| 3 / 20s | Tough crews — need 3 HARMs to overwhelm. Requires a full flight to saturate. |
| 2 / 30s | Wider window — even spaced-out HARMs count as saturation. Easier to trigger. |
Cockpit feel: Single HARMs bounce off the SA-10. But fire two in quick succession and the spike goes away — the crew decided discretion is the better part of valor.
harmBraveryPct¶
Default: 5% — Chance any SAM crew decides to fight back against a HARM regardless of system capability.
The "nat 20" roll. Before the normal selfProtect/PD/GO_DARK decision tree, every crew gets a chance to STAY_HOT. If the roll hits, the SAM stays ALERT and engages — crew is rolling the dice. Multi-HARM saturation still overrides (that check comes first).
| Value | Effect |
|---|---|
| 0% | Only selfProtect systems ever stay hot. SA-2 always goes dark. |
| 5% | Default — roughly 1 in 20 non-selfProtect SAMs fights back. Rare but memorable. |
| 15-20% | Courageous crews — significant chance any SAM engages the HARM. Very unpredictable SEAD. |
Cockpit feel: You fire a HARM at an SA-6 expecting it to go dark. Usually it does. But one time in twenty, the spike stays. The crew decided today's the day. F10 marker shows DEFIANT (crew fighting back!).
harmExtendInterval¶
Default: 15s — Seconds between weapon-alive checks during cooldown.
After a SAM goes dark, AEGIS periodically checks if the HARM that caused the reaction is still in flight (via weapon:isExist()). If it is, the cooldown extends by another interval. This prevents the SAM from popping up right into a slow-arriving HARM.
Usually leave this alone. Only matters for very long-range HARM shots (60+ NM) where the weapon may take 90-120+ seconds to arrive.
harmMaxCooldown¶
Default: 180s — Hard ceiling on total HARM reaction duration.
Safety net. No matter how many times the weapon-alive check extends the cooldown, the SAM will always resume within this many seconds. Prevents a DCS bug from keeping a weapon object alive forever and locking a SAM in permanent dark.
Usually leave this alone unless you're seeing SAMs stuck in HARM dodge state.
PB HARM Network Warning¶
Pre-briefed HARMs (no target lock — fired at coordinates) normally give no warning. But if the sector has a live EW, the network can detect the HARM in flight, project its trajectory, and warn SAMs in the path.
pbHarmCheckDelay¶
Default: 2s — Seconds after a PB HARM launch to wait before checking trajectory.
Weapon velocity data isn't available at launch time ({0,0,0}). It populates within ~0.5 seconds. The 2-second delay ensures stable velocity data for trajectory projection.
| Value | Effect |
|---|---|
| 1s | Earlier check — velocity is available but may not be fully stable. Slightly less accurate projection. |
| 2s | Default — reliable velocity data. Tested and validated. |
| 5s | Late check — more accurate trajectory but less warning time for the SAM. |
Usually leave this at 2. Tested extensively — it's the sweet spot between accuracy and warning time.
pbHarmWarnRadius¶
Default: 5 NM — How close the projected HARM trajectory must pass to a SAM to trigger a warning.
A 2D ray is projected from the HARM's position along its velocity vector. Any SAM within this radius of the ray gets warned.
| Value | Effect |
|---|---|
| 2-3 NM | Tight — only warns SAMs the HARM is almost certainly aimed at. Fewer false warnings. |
| 5 NM | Default — good balance. Catches most threats while filtering passersby. |
| 8-10 NM | Wide — warns SAMs even if the HARM is passing nearby. More false alarms, but safer. |
Cockpit feel: Wider radius means more SAMs react to each PB HARM (some going dark, PDs coming online). Tighter radius means only the directly targeted SAM reacts.
pbHarmCooldownMargin¶
Default: 30s — Extra seconds added to the HARM's estimated time of arrival for suppression timing.
When a dark SAM is warned about a PB HARM, its EMCON cycle is suppressed for ETA + margin. The margin ensures the SAM stays quiet even if the ETA estimate is slightly off.
| Value | Effect |
|---|---|
| 15s | Tight margin — SAM resumes shortly after projected impact. Risk of resuming too early if ETA was wrong. |
| 30s | Default — comfortable buffer. |
| 60s | Conservative — SAM stays quiet a full minute past projected impact. Longer suppression window. |
PB HARM Detection¶
These control the realism of PB HARM detection — how quickly the EW network spots a pre-briefed HARM in flight, and the fallback own-radar detection when a SAM emits while a HARM is inbound.
pbHarmInboundMargin¶
Default: 30s — Extra seconds added to HARM ETA for the harmInbound flag expiry.
When a PB HARM is detected in flight, every SAM in the trajectory gets a harmInbound flag set to ETA + margin. If the SAM emits while this flag is active (from any cause — EW feed, EMCON sweep, weasel bait), the SAM detects the HARM on its own radar and enters the HARM reaction tree.
| Value | Effect |
|---|---|
| 15s | Tight — flag expires soon after projected impact. SAM must emit near the impact window to trigger. |
| 30s | Default — comfortable buffer for ETA estimation error and HARM deceleration. |
| 60s | Conservative — long window. SAMs that emit well after projected impact still react. |
pbHarmEwReactionMin / pbHarmEwReactionMax¶
Default: 3-5s — Crew reaction time after receiving an EW network warning about a PB HARM.
Shorter than the TOO/SP reaction delay (8-12s) because the warning arrives pre-classified from the EW network — the crew doesn't need to classify the contact themselves.
pbHarmDetThreshold¶
Default: 3.0 — Cumulative detection score the EW must accumulate before issuing a warning.
Each EW radar sweep contributes a score based on range from the HARM to the EW. When the cumulative score reaches this threshold, the EW has a confident track. Higher values = slower detection.
pbHarmSweepPeriod¶
Default: 6s — Seconds per EW radar sweep (assumes 10 RPM).
pbHarmDetFloor¶
Default: 12s — Minimum detection delay regardless of score (two sweeps minimum for a track file).
Score Table¶
The score-per-sweep values are in PB_HARM_SCORE_TABLE. Key ranges:
| HARM-to-EW Range | Score/sweep | Sweeps to detect | Delay |
|---|---|---|---|
| 0-10 NM | 1.5 | 2 | 12s |
| 15-20 NM | 1.0-1.2 | 3 | 18s |
| 25-30 NM | 0.7-0.8 | 4-5 | 24-30s |
| 35-40 NM | 0.3-0.5 | 6-10 | 36-60s |
| 45-50 NM | 0.15-0.2 | 15-20 | 90-120s |
| 55-65 NM | 0.05-0.1 | 30-60 | 3-6 min |
| 70+ NM | 0.01 | 300 | effectively never |
Multi-EW example: Two EWs at 25 NM (score 0.8) and 35 NM (score 0.5) → combined 1.3/sweep → 3 sweeps → 18s delay, vs. 24s with the closer EW alone.
Physics: HARM RCS is ~0.1 m². Radar range equation scales with fourth root of RCS — an EW that detects a 10 m² fighter at 150 NM can theoretically detect a HARM at ~47 NM. Beyond that, detection drops off fast.
ECM Jammed EMCON¶
When an ECM jammer detects an emitting SAM, the crew recognizes the jamming and shuts down. They then cycle intermittently with different timing than normal EMCON — shorter on-cycles (brief peeks) and longer off-cycles (hiding from the jammer).
jamDetectionDelayMin / jamDetectionDelayMax¶
Default: 1-3s — Jammer ESM response time. This is the burn-through window.
After the SAM emits during a jammed EMCON on-cycle, the jammer needs this time to detect the emission and respond. During this window, the SAM's radar is unjammed — any target inside burn-through range is engageable.
| Values | Effect |
|---|---|
| 0-1s | Fast jammer — almost no burn-through window. Very effective ECM. |
| 1-3s | Default — brief but meaningful burn-through opportunity. |
| 3-5s | Slow jammer — longer burn-through window, closer targets more likely to be engaged. |
jamEmconOnMin / jamEmconOnMax¶
Default: 8-15s — Duration of jammed EMCON on-cycles (radar on, brief peek).
The crew turns the radar on for a brief look. After the jam detection delay, the jammer catches them and they shut down again.
| Values | Effect |
|---|---|
| 3-8s | Very brief peeks — barely enough for DCS AI to acquire a track. |
| 8-15s | Default — enough time for burn-through engagement if targets are close. |
| 15-30s | Extended peeks — more time for engagement but more exposure to HARMs. |
jamEmconOffMin / jamEmconOffMax¶
Default: 45-120s — Duration of jammed EMCON off-cycles (radar off, hiding).
The crew knows they're being jammed. They hide longer than normal EMCON crews because they know the jammer is actively watching for them.
| Values | Effect |
|---|---|
| 20-45s | Aggressive — crew doesn't hide long. Frequent peeks. |
| 45-120s | Default — long hiding periods. Jammer effectively suppresses the SAM. |
| 120-300s | Extremely cautious — SAM barely emits while jammed. Very effective suppression. |
Cockpit feel: A jammed SAM produces very brief, widely-spaced RWR spikes. Much harder to time a HARM shot against than a normal EMCON cycle. Kill the jammer and the SAM returns to normal operations on the next poll cycle.
Debug¶
debug¶
Default: false — Enables verbose logging and F10 map markers.
When true:
- Prints full network topology at startup (including SAM DCS coordinates @(x, z) for cross-mission comparison)
- F10 map markers show SAM state, timers, HARM reactions
- Screen messages for state transitions and HARM events
- Activation range diagnostics: logs nearest contact distance and effective actRange when a SAM has contacts outside its activation range (e.g., SA6-WEST-3: nearest contact 27.3 NM (actRange 22 NM))
- dcs.log entries with [AEGIS] (normal) and [AEGIS!] (warnings)
Always set true during mission development. Set false for published missions to avoid log spam and screen clutter.
SAM Coordinates (v0.8.0+)
SAM positions (@(x, z)) in the topology dump are always logged regardless of debug mode. This enables diffing SAM positions between mission files without loading DCS.
Tuning Presets¶
These are starting points. Mix and match to taste.
"Veteran Air Defense Regiment"¶
Experienced crews, fast reactions, aggressive engagement. Hard SEAD environment.
AEGIS:New("red", {
ewPollInterval = 7,
alertTimeout = 90,
emconOnMin = 20,
emconOnMax = 60,
emconThreatScale = 0.3,
emconDoubleSweepPct = 25,
harmReactionDelayMin = 5,
harmReactionDelayMax = 8,
harmPanicPct = 5,
harmMultiThreshold = 3,
})
"Conscript Garrison"¶
Green crews, slow reactions, sloppy EMCON. Easier SEAD for newer players.
AEGIS:New("red", {
ewPollInterval = 15,
alertTimeout = 45,
emconOnMin = 60,
emconOnMax = 180,
emconOffMin = 30,
emconOffMax = 90,
emconThreatScale = 0.8,
emconRelaxedScale = 2.0,
harmReactionDelayMin = 10,
harmReactionDelayMax = 15,
harmPanicPct = 35,
harmMultiThreshold = 2,
})
"Ambush Network"¶
SAMs stay dark until targets are deep inside the engagement zone. Deadly but brittle once found.
AEGIS:New("red", {
defaultZone = "NEZ",
alertTimeout = 120,
emconOnMin = 60,
emconOnMax = 240,
emconOffMin = 10,
emconOffMax = 20,
emconEarlyTermPct = 40,
emconSpookEnabled = true,
emconSpookDuration = 180,
})
"Paranoid Defenders"¶
Long alert times, frequent sweeps, wide PB HARM warning radius. Hard to sneak through.