Naming Conventions
Medusa uses Dot-Echelon notation to discover assets and infer command hierarchy from DCS group names. The system is derived from how internet domain names work - dot-separated segments read from left to right, where each segment places the group one level deeper into an organizational hierarchy.
The sole purpose of Dot-Echelon notation is to confer command hierarchy. You can use as many or as few echelon levels as you want - from zero (flat network) to as many as you can dream up (I’m sure at some point DCS will crash, but go off).
Format
Section titled “Format”{prefix}.{echelon}.{echelon}.{echelon}...Segments after the prefix read left-to-right, top-down - highest echelon first, unit last:
red.1div.1bde.1bn.sa10_battery| | | | +-- Unit (sa10_battery)| | | +-- Battalion| | +-- Brigade| +-- Division (highest echelon)+-- PrefixRead left to right, top down - just like a military mailing address. Division, brigade, battalion, unit. The opposite of how domain names work.
There is no limit to the number of echelon levels. These are all valid:
red.sa10 - No hierarchy (flat)red.north.sa10 - One echelonred.1bde.1bn.sa10 - Two echelonsred.southern_cmd.1div.1bde.1bn.sa10 - Four echelonsFlat naming
Section titled “Flat naming”If you don’t need hierarchy, just use the prefix and a label. If you’re migrating from another IADS script, you just need to add the prefix to your existing group names:
RED SA-10 Bandar --> red.SA-10 BandarRED SA-6 North --> red.SA-6 NorthRED EWR Bigbird --> red.EWR BigbirdRED Tor Point Defense --> red.Tor Point DefenseThis creates a flat network with no command hierarchy - every group reports directly to the network. You can migrate to Dot-Echelon hierarchy later by renaming groups.
Role tokens
Section titled “Role tokens”Special tokens anywhere in the group name identify non-battery roles:
| Token | Role | Entity Created |
|---|---|---|
ewr | Early Warning Radar | SensorUnit |
gci | Ground Controlled Intercept | SensorUnit |
awacs | Airborne Early Warning | SensorUnit (airborne) |
hq | Headquarters | C2Node |
| (none) | Attribute-classified group | Battery, SensorUnit, or MANPAD group |
AWACS groups must contain an aircraft with the DCS AWACS attribute (E-2, E-3, A-50, KJ-2000). Medusa validates this on discovery and rejects groups without it. Place each AWACS aircraft in its own group to avoid the DCS getSensors() bug that returns incorrect data for multi-unit groups. AWACS are exempt from EMCON policies and always emit.
Role tokens are case-insensitive and matched using word boundary rules - they match at the start of any segment (dot-separated or space-separated), either as the whole segment or followed by a non-alphanumeric character. This means EWR, ewr, Ewr all work, and both Dot-Echelon style and flat naming are recognized out of the box:
pvo.north.ewr.1div - "ewr" is the entire segmentopfor.EWR North - "ewr" at start of segment, followed by spacered.EWR-1.1div - "ewr" at start of segment, followed by hypheniads.newer_radar.1div - "newer" does not start with "ewr", no matchred.ewrything.1div - "ewr" followed by "y" (alphanumeric), rejectedWhen a role token is found, echelon parsing starts from the segment immediately right of the rightmost role token.
Examples
Section titled “Examples”Flat naming (no hierarchy):
pvo SA-10 Bandar - lowercase prefix, space separatedOPFOR SA-6 North - uppercase prefixRed EWR Bigbird - pascal prefixredFor EWR-1 - camelCase prefixRED IADS HQ Main - multi-word prefixred.SA-15 Point Defense - dot-separated prefixred.1div.EWR South - dot-echelon with hierarchyWith hierarchy:
pvo.1Div.EWR.North - EWR under 1DivOPFOR.1BDE.1BN.GCI.Cairo - GCI under 1BN under 1BDEredFor.1Div.HQ.CommandPost - HQ for 1DivRed.1Div.1BDE.1BN.SA10 - Battery under 1BN under 1BDE under 1DivEWR aliases
Section titled “EWR aliases”The following tokens are all recognized as EWR roles: ewr, radar, sensor. This means red.north.radar.1div and red.north.ewr.1div produce the same result.
MANPAD groups
Section titled “MANPAD groups”MANPAD groups need the normal network prefix but no role token. Medusa recognizes them automatically from their DCS unit attributes. See MANPAD Groups for behavior and configuration.
AAA groups
Section titled “AAA groups”AAA groups also need no role token. Medusa classifies mixed MANPAD, AAA, radar, and launcher groups from their DCS attributes. See AAA Groups for the precedence and count rules.
Auto-discovery of EWR groups
Section titled “Auto-discovery of EWR groups”Medusa also auto-discovers qualifying search-radar groups as sensors, even without an explicit role token. Launcher precedence and the MANPAD/AAA count rules apply first. This can be disabled via doctrine:
Medusa_MM_Doctrine = { AutoDiscoverEwrs = false,}Custom prefix and role tokens
Section titled “Custom prefix and role tokens”Override the defaults via MEDUSA_CONFIG:
MEDUSA_CONFIG = { Networks = { { name = "RED", coalition = "red", prefix = "red", }, }, Roles = { HQ = "command", -- Use .command. instead of .hq. GCI = "gci", EWR = "radar", -- Use .radar. instead of .ewr. },}