Skip to content

Border Zones and Posture

Border zones define the area an IADS considers its responsibility. Combined with posture, they control how Medusa identifies contacts and when it authorizes engagement.

Place a trigger zone or a drawing polygon in the DCS Mission Editor. Give it a name you’ll reference in the config. Any shape works: circles, polygons, or freehand drawings. Multiple zones can be listed for a single network.

MEDUSA_CONFIG = {
Networks = {
{
name = "SyADF",
coalition = "red",
prefix = "SyADF",
borderZones = { "BORDER_SYRIA" },
doctrine = {
Posture = "COLD_WAR",
},
},
},
}

Medusa discovers the zones at mission start by searching env.mission.triggers.zones and env.mission.drawings.layers for objects matching the listed names. Circle zones are converted to 32-vertex polygons. The discovered geometry appears on the tactical display as a dashed polygon colored by posture.

If no borderZones are configured, the identification system still works. Contacts advance through the ladder based on timers and criteria alone, without any geographic gating.

Every contact starts as UNKNOWN and progresses through four levels:

LevelMeaningCan be engaged?
UNKNOWNJust detected, not yet assessedNo
BOGEYConfirmed as a non-friendly contactNo
BANDITIdentified as an adversary (2 of 3 criteria met)Only under ROE FREE
HOSTILECleared to engage (trespass, hostile action, or hostile intent)Yes

Every new contact gets a randomized IFF confirmation timer representing the time operators need to confirm a new radar return as non-friendly. HOT_WAR: 3-8 seconds. WARM_WAR: 10-30 seconds. COLD_WAR: 30-60 seconds. If the contact enters the ADIZ ring in WARM_WAR or COLD_WAR, it is forced to BOGEY immediately regardless of the timer.

Requires 2 of these 3 criteria:

  1. Intel timer expires. A randomized per-contact timer simulating the time it takes intelligence to correlate the contact. HOT_WAR: 15-45 seconds. WARM_WAR: 45-120 seconds. COLD_WAR: 120-300 seconds.

  2. Radar illumination. The IADS is actively painting the contact with a sensor. In HOT_WAR this counts immediately. In WARM_WAR the contact must be illuminated for 30 continuous seconds. In COLD_WAR this does not count (peacetime radar contact is routine).

  3. VID timer expires. A second randomized timer simulating visual or non-cooperative identification. HOT_WAR: 30-60 seconds. WARM_WAR: 60-180 seconds. COLD_WAR: 180-600 seconds.

The randomization means two identical contacts entering at the same time will not be identified simultaneously. Each contact gets its own timer values drawn at random from the range.

Requires any 1 of these 3 conditions:

NFZ trespass. The contact is inside the border zone. In HOT_WAR this is instant. In WARM_WAR there is a 15-45 second delay. In COLD_WAR the delay is 30-120 seconds, with wide random variation. The contact must still be inside the border when the timer expires. If the aircraft leaves and re-enters, the timer resets. These delays simulate the time it takes commanders to authorize engagement after an airspace violation.

Hostile action. The contact launched an anti-radiation missile. When Medusa’s kinematic analysis confirms a detected missile as an ARM, it backtracks the missile’s trajectory to identify the launching aircraft. That aircraft is flagged with hostile action and instantly promoted to HOSTILE regardless of posture or position. This only applies to confirmed ARMs, not to other weapons (Medusa does not operate on bomb or air-to-air missile employments yet).

Hostile intent. The contact is heading directly toward a defended site (battery, C2 node, or airbase) at combat speed (above 150 m/s, within 30 degrees of the target bearing) for a sustained period. In HOT_WAR and WARM_WAR the sustained period is 60 seconds. In COLD_WAR it is 120 seconds.

When no border zones are configured and posture is HOT_WAR, contacts that reach BANDIT are promoted to HOSTILE after a 30-second dwell timer. This matches the behavior of most DCS IADS scripts and requires no geographic setup.

When ADIZEnabled is true (the default), Medusa projects an Air Defense Identification Zone outside the border polygon. The projection distance is ADIZBufferNm (default 12 nautical miles). The ADIZ shape is a convex hull of the expanded border, which means concave notches in the border are smoothed out. An aircraft in a border notch has nowhere to go but into your territory, so the ADIZ correctly encompasses it.

The ADIZ appears on the tactical display as a thinner dashed line outside the border polygon.

In WARM_WAR and COLD_WAR, the ADIZ affects behavior:

  • Contacts entering the ADIZ are forced to BOGEY (if still UNKNOWN)
  • Contacts outside the ADIZ in COLD_WAR are frozen at BOGEY and cannot advance
  • HOSTILE is permanent for the lifetime of the track. Once declared hostile, the classification is never reversed.

When GuiltByAssociation is true (the default), a contact that gets promoted to BANDIT or HOSTILE also promotes nearby contacts flying in formation. Formation is detected by proximity (within 11 km), heading match (within 15 degrees), and speed match (within 20%). If one aircraft in a flight is declared hostile, the whole flight is declared hostile on the same tick.

When Medusa’s kinematic analysis confirms a track as an anti-radiation missile, it checks the missile’s position history against all other tracks. It finds the track that was closest to the missile’s earliest known position at the same time. That track is flagged as having committed a hostile action, which triggers instant HOSTILE promotion. If guilt by association is enabled, the launching aircraft’s flight mates are promoted too.

Mission triggers can change posture mid-mission:

-- Escalate to wartime footing
Medusa.API.setPosture("SyADF", "HOT_WAR")
-- Check current posture
local posture = Medusa.API.getPosture("SyADF")

Posture changes take effect on the next identification cycle (within 1 second). All identification levels are permanent ratchets. A contact classified as HOSTILE stays HOSTILE regardless of posture changes or position.

When border zones are configured, the tactical display shows:

  • The border polygon as a dashed line colored by posture (red for HOT_WAR, amber for WARM_WAR, cyan for COLD_WAR)
  • The ADIZ projection as a thinner dashed line outside the border
  • The current posture in the status panel

Press Z to toggle border zone visibility. The toggle is in the settings panel alongside the existing display options.