In progress
Software
DCS World
Template
Updated: Sep 2026

DCS Civil Mission
Template

Modular template for civil missions in DCS World: firefighting, mountain and sea search-and-rescue, MedEvac, battlefield CASEVAC, police (chases and SWAT) and cargo transport. All in pure native Lua, no MIST, MOOSE or CTLD.

What it is

The DCS Civil Mission Template is a modular scaffold for building civil missions in DCS World, the simulator’s other face next to combat. Instead of intercepts and strikes, crews fly civil-protection and public-service missions: putting out fires, recovering people lost in the mountains and castaways at sea, MedEvac and battlefield CASEVAC extractions, police chases and SWAT insertions, cargo transport at real weight, infrastructure recon and VIP shuttles.

It isn’t a single ready-made mission but a template: you load the scripts, place the trigger zones and unit templates in the Mission Editor, and the system generates civil events on its own on whatever map and theatre you choose.

Why it’s built this way

The founding choice is pure native Lua, with no MIST, MOOSE or CTLD. No external dependency means no version conflicts, no framework to keep updated and a script that loads with a single DO SCRIPT FILE action. It’s also a readability choice: the code shows how things are done with the DCS scripting API alone.

A few guiding principles run through every module:

  • Per-unit state, never global. Every counter (chase pressure, load, timer) lives per group, so several fires, rescues and chases run in parallel without polluting each other.
  • No spawning on random terrain. Events are born in pools of hand-curated points inside macro-regions drawn in the Mission Editor, with a minimum-distance check between active events. It avoids ending up in shallow water, inside a building or on a highway.
  • Variability decided once. An event’s parameters (rise and decay rates, timings) are randomized at start, not every tick, so each event has a recognizable “character” instead of noise that averages out to zero.
  • One shared hover engine. Hover detection (water pickup, mountain and sea SAR, MedEvac, SWAT fast-rope) is a single module that polls the player aircraft’s state, reused wherever you need to hold without a clean landing.

The modules

Module What it offers
Firefighting Fires with a live severity that grows and spreads, fire trucks rolling out of the nearest station, helicopter water pickup in a hover, retardant and spotter with the C-130, different fire kinds (forest, landfill, industrial, building)
Rescue Mountain and sea SAR, civilian MedEvac, battlefield CASEVAC, rescue vessels and hospital ships, all on one shared rescue engine
Police Chases with a pressure mechanic (two-vehicle convoy at high severity), SWAT objectives with fast-rope insertion and prisoner convoy escort
Transport Fixed mass-tier loads and supply airdrops to delivery zones
Aviation Infrastructure recon, VIP shuttle, media coverage with a ground-crew van, medical transfers, emergency supply drops, sightseeing tours, aerobatic airshow and the offers task board
Air traffic AI civil flights between the map’s airfields and intercepts for restricted-zone violations
Sea operations Merchant traffic on defined routes, coast guard inspections and rarity-weighted sea rescues (up to the sinking ship)
Command F10-marker command center, event direction by severity and rarity, periodic session recap

Light fixed-wing (Bronco, MB-339, L-39, C-101, Yak-52, Christen Eagle) have a dedicated job list: spotting works from any airplane, the recon corridor and the media ring suit them naturally, and on fires they fly the Air Attack role like the real lead planes, smoke-marking the fire from below instead of hauling retardant.

Task board and the leg rule

Aviation jobs aren’t pushed on the pilot. The director posts offers with severity, expected points and time left, and whoever is ready accepts one from the F10 menu: if you’re refuelling or already busy, nothing gets assigned to you. Offers flagged PRIORITY are worth 30% more, unclaimed ones expire quietly. GM commands bypass the board on purpose, and the medical transfer chain stays direct, because that patient already exists and his clock is ticking.

Every pad-to-pad job computes its leg at start, and that’s what decides the machine: up to 60 km either a helicopter or an airplane will do, beyond that the job becomes fixed-wing only and boarding politely refuses helicopters. The same patient is helicopter work if the hospital is across the island, and airplane work if it’s on another landmass.

The flying jobs

  • Medical transfer. It’s an event chain, not an isolated event: when a critical patient reaches a hospital, he may need to continue to a regional one. A transfer then starts with a criticality clock and a tighter comfort threshold than usual, because the passenger is on a stretcher.
  • Sightseeing tour. Mark the scenic spots with the dedicated zones and the tour operator opens for business: a party boards at a pad, wants to see two or three sites (each counts if you hold inside its zone between 100 and 1500 m for 75 seconds) and returns to the same pad. Here ride comfort is the score quality, because the passengers are there to enjoy it.
  • Emergency supply drop. A cut-off village or a team out of everything needs crates from the air, and who flies it matters: the C-130 is the only airplane rigged for a proper airdrop and resolves the emergency alone with a full load above 500 m, helicopters kick single crates out low (three good drops close it), and light planes are refused. The landing point is computed from the real mission wind (damped drift before the chutes open, full drift under canopy, no correction because the cargo doesn’t fly back), so the closer the crates land to the centre, the more the drop pays.
  • Aerobatic airshow. Mark a display box and pilots fly a freestyle routine inside it. A 5 Hz sampler reads the aircraft attitude and recognizes figures on its own, loop, roll, Immelmann, split-S, inverted, knife-edge, low pass, with live points feedback; the total sums the figures plus a variety bonus, and flying with the smoke on is worth an extra +25%. No enemies, no targets: it’s a community show.

Civil sea and sky

Two new modules populate the scenario even when there’s no emergency.

Sea traffic spawns merchants in dedicated zones, sails them along routes defined by waypoints and clears them in exit zones, so you control exactly where routes start, run and end. On top of that runs the coast guard task: fly alongside the reported merchant, low and slow, to check the manifest. A clean manifest pays partially; suspicious cargo triggers the escalation, the ship runs, you have to keep contact within 3 km and a patrol boat launches from the nearest harbour to board it.

Ambient air traffic keeps the sky alive with AI civil flights between the map’s airfields (types and liveries from optional templates). Every so often a flight strays into a restricted zone and loiters: the airspace alert opens and it’s up to the military to identify it and escort it out. The violation only arms if a player airplane is airborne to answer it, and if nobody intervenes in time ATC diverts the flight itself, closing the alert with no points.

What happens at sea isn’t rolled with the same odds every time: a single roll picks the event by rarity, with the coast guard inspection as the everyday job, the sea rescue less frequent and the sinking ship as the rare tier. That one sends a merchant down with 8-12 survivors on rafts scattered around the wreck, with the same intel fog as the other rescues (an approximate circle, a spotter reveals the exact area). Recovery is per raft, a brief ~15-second hover over each before the ship sinks, which is the deadline: every raft reached scores, the missed ones are lost.

Event direction

The automatic director doesn’t fire every callout independently, or the map would turn into a disaster fair. Three rules keep it believable: a severity budget sums the weight of the active serious events and scales all its chances down as the load climbs (a raging wildfire quiets the other callouts on its own, while light jobs like recon, VIP, tour and media don’t count and never crowd each other out); a fire-kind exclusion makes an industrial fire unlikely to break out while a forest is already burning; and spawn near players places region-based rescues where someone already is, so nobody crosses half the map for a random callout.

Structural fires

The smoke tells the story from afar: forest fires start small, grow and spread new columns across the zone, while landfill and industrial fires burn hard from the first minute but stay contained, piling smoke in nearly the same spot instead of spreading.

Building fires are a case apart, and never roll randomly: they only start on dedicated fire points (the zone name just has to contain Building) or by GM command. They play the opposite way to all the others: retardant has no effect and air attack doesn’t mark them, because the flames are a job for the ground brigade, whose suppression is tripled here. The air task is the casualty: a MedEvac opens automatically next to the building, with green smoke on the landing point, and the rescue helicopters carry the injured to hospital. The landing point can also be hand-picked with a dedicated zone, to stop a blind offset near buildings from landing on a rooftop.

Escort, firewatch and traffic watch

The prisoner convoy escort sends a police car, the bus with the detainees and a tail car from a departure point to a destination along the road network, with the helicopter shadowing them (escort coverage is the completion quality). Along the way an ambush may appear just off the road: flying low over the route you catch the nudge and report it via F10 before the convoy arrives, earning points and getting the site cleared by the police. Miss it and the convoy drives into the kill zone: mission failed, both groups despawn and the escorting pilot takes a penalty.

Two jobs reward flying when nothing is burning yet. Firewatch keeps a fire region with no active fires watched for 15 minutes: if a fire ignites in a watched region, it’s called in early, starts two severity points smaller and credits the patrolling pilot. Traffic watch puts an airplane in orbit over the fleeing car during a chase: while the watch holds, the helicopter’s pressure builds 50% faster and the watcher earns an assist when the arrest lands.

The severity scale

Every event rolls a severity from 1 to 10 at spawn, a single number all its parameters derive from and that’s announced in every report (“MedEvac severity 8”). Severity drives different things per event: a fire’s growth and spread, a rescue’s criticality deadline, a fleeing car’s speed and its escort, the number of operators a SWAT objective needs, a priority load’s time to live. The score multiplier is anchored at 0.7 + 0.06 × severity, so severity 5 is x1.0.

Command center

A player in a Game Master or Tactical Commander slot can act as the operations center by placing F10 map markers whose text starts with civil: the marker position is the target position, and the commands work from any slot.

civil director off        take the wheel: automatic generation pauses
civil fire 8              severity-8 wildfire under the marker
civil fire building 7     structural fire on that building (opens the MedEvac)
civil medevac 9           critical casualty at that point
civil transfer 8          medical transfer to a regional hospital
civil supply 7            emergency supply drop on the nearest drop zone
civil sinking 9           sinking ship with survivors on rafts
civil tour 6              sightseeing tour from the pad nearest the marker
civil swat 7              SWAT objective there (needs ~7 operators)
civil chase 9             fast two-car convoy from the nearest crossroad
civil cargo heavy 9       urgent heavy load (expires in ~45 min)
civil move alpha 12 road  send the "alpha" group there at 12 m/s along roads
civil director on         hand back to automatic generation

If the commander leaves the slot or stops issuing commands, the mission returns to automatic on its own after a configurable idle time (default 30 minutes): an unattended session never stays frozen.

How you set it up

Setting it up in the Mission Editor is all based on name-prefix matching. Any zone whose name starts with a prefix belongs to that pool (CIVIL Fire Point Alpha, CIVIL SAR Sea Point 3), zones can be circular or polygon, and modules whose zones are missing are simply skipped: you place only what you want to test.

Units work the same way with late-activated templates: you create a group, name it with the right prefix (CIVIL Boat, CIVIL Fugitive), tick late activation and place it anywhere, because the clone is re-centered on the event point keeping its layout, liveries and heading. Place several groups with the same prefix and each spawn picks one at random: three different CIVIL Boat groups and every sea rescue comes out with a different boat.

Status

The structure is complete and syntax-checked (Lua 5.1), smoke-tested against a mock of the DCS scripting API for both the modular and the single-file build, and the config is hardened against bad values. The repository now includes a Cyprus test mission with zones and script already wired, used for in-game validation. The items still needing confirmation inside DCS (cargo mass tiers, “On Road” behavior, rooftop spawns, official C-130 airdrop channels, deck landings, vehicle type names) are listed with their fallbacks in the repository docs.

License

Released under the PolyForm Noncommercial License 1.0.0: free for any noncommercial use (personal missions, hobby squadrons, free community servers, training and study). Use on paid servers, donation-gated slots or any for-profit hosting is not covered and requires the author’s written authorization.

Zone and template scanning, polygon area support and several utilities are adapted from the 527th CSAR System by {527th} ienatom and {104WW} Price.