Immersive combat search and rescue missions for DCS World
Experience the tension of medevac operations with realistic casualty management, weather effects, and night operations.
- Features
- What's New in v6.0.0
- Installation
- Configuration
- Usage
- How It Works
- Credits
- Changelog
- Support
- License
- ๐ฅ Automatic Casualty Generation - Spawns wounded crew when ground vehicles are destroyed
- ๐ช Search & Rescue (SAR) - Rescue downed pilots from ejected aircraft
- โฑ๏ธ Dynamic Bleed Timer - Wounded personnel have limited time before they succumb to injuries
- ๐ Multiple MEDEVAC Units - Support for multiple rescue helicopters per coalition
- ๐ฅ MASH Support - Multiple Mobile Army Surgical Hospital locations per side
- Active MEDEVAC locations automatically marked on F10 map
- Color-coded markers by coalition
- Auto-updating markers that remove when casualties are rescued or KIA
- Signal Flares - Wounded fire periodic flares (every 3 minutes) to mark their position
- Illumination Bombs - Automatic area illumination during night operations
- Colored Smoke - Coalition-specific smoke markers (Blue/Red)
- Weather-Based Difficulty - Temperature affects bleed rates
- Freezing temps (< 0ยฐC): +30% survival time
- Cold temps (0-10ยฐC): +15% survival time
- Hot temps (25-35ยฐC): -8% survival time
- Extreme heat (> 35ยฐC): -15% survival time
- Time of Day Effects - Night missions provide additional challenges
- Different bleed rates based on vehicle type:
- Tank Crews: 20% faster bleed (severe injuries from armor penetration)
- IFV/APC Crews: 10% faster bleed (moderate injuries)
- Truck/Light Vehicle: 20% slower bleed (minor injuries)
- Real-time aircraft health monitoring
- Critical/Warning/Caution alerts based on damage level
- Helps pilots assess mission risk
- Lives saved counter
- Missions completed
- Pilots rescued vs crew rescued
- Total casualties
- Medics KIA
- Separate stats per coalition
- Radio menu command to view statistics
- Fixed 40+ "Parameter #self missed" errors
- Enhanced nil safety checks throughout
- Improved error handling with detailed logging
- Fixed all static vs instance method calls per DCS ScriptingLib
- Pre-populated unitโgroup cache to handle DCS API limitations
- Comprehensive debug logging system with 5 verbosity levels
Enhanced by HeavenDCS (2025-11-07)
This major update brings DCS MEDEVAC into the modern era with enhanced immersion, better visuals, and robust error handling:
- ๐บ๏ธ Map markers show active casualty locations
- ๐ Signal flares fired every 3 minutes from casualty positions
- ๐ก Automatic illumination of pickup zones at night
- ๐จ Coalition-specific smoke colors
- ๐ก๏ธ Weather affects survival time (cold preserves, heat accelerates bleeding)
- ๐ Night operations are more challenging with extended search times
- ๐ฏ Injury severity varies by vehicle type (tanks vs trucks)
- ๐ Helicopter damage warnings keep pilots informed
- ๐ Comprehensive statistics tracking
- ๐ง Eliminated all parameter errors
- ๐ Enhanced debug logging system
- โก Improved performance with better caching
- โ Fixed incorrect event ID check (was ENGINE_SHUTDOWN, now PLAYER_ENTER_UNIT)
- โ
Fixed all
string.formatnil argument errors - โ Fixed all static vs instance method calls
- โ Added comprehensive nil safety checks
- โ Protected all method chaining with proper checks
- DCS World 2.5.6 or newer
- MiST 3.2+ (Mission Scripting Tools)
-
Download MiST (if not already installed)
https://github.com/mrSkortch/MissionScriptingTools -
Add to Mission Editor
- Open your mission in DCS Mission Editor
- Go to Triggers โ New Trigger
- Set trigger to:
MISSION START/TIME MORE (1)/DO SCRIPT FILE - First, load MiST script file
- Then, load medevac.lua script file
โ ๏ธ Important: MiST MUST be loaded before MEDEVAC
-
Configure MEDEVAC Units
- Place helicopter units you want as MEDEVAC units
- Place ground units as MASH (Mobile Army Surgical Hospital)
- Edit the script configuration (see below)
-
Save and Test
- Save your mission
- Test to ensure script loads without errors
Open medevac.lua and edit the settings section at the top:
-- Define your MEDEVAC helicopter units (UNIT NAMES)
medevac.medevacunits = {"MEDEVAC #1", "MEDEVAC #2"}
-- Define your MASH units (UNIT NAMES)
medevac.bluemash = {"BlueMASH #1", "BlueMASH #2"}
medevac.redmash = {"RedMASH #1", "RedMASH #2"}
-- Smoke colors for each coalition
medevac.bluesmokecolor = trigger.smokeColor.Blue
medevac.redsmokecolor = trigger.smokeColor.Red-- Enable/Disable new features
medevac.useMapMarkers = true -- Show MEDEVAC on F10 map
medevac.useSignalFlares = true -- Fire signal flares from wounded
medevac.useIllumination = true -- Illuminate pickup zones at night
medevac.weatherEffects = true -- Weather affects bleed rates
medevac.timeOfDayEffects = true -- Night missions more challenging
medevac.unitTypeTriage = true -- Different bleed rates by vehicle
medevac.heliDamageWarnings = true -- Warn pilot of helicopter damage
medevac.trackStatistics = true -- Track missions/lives saved
-- Fine-tune feature behavior
medevac.flareInterval = 180 -- Seconds between flares (3 min)
medevac.illuminationPower = 1000000 -- Illumination bomb intensity
medevac.nightTimeStart = 19 -- Night begins at 19:00 (7 PM)
medevac.nightTimeEnd = 6 -- Night ends at 06:00 (6 AM)
medevac.mapMarkersReadOnly = true -- Can players edit markers?-- Casualty mechanics
medevac.requestdelay = 15 -- Seconds before casualty calls for help
medevac.bluecrewsurvivepercent = 100 -- % of blue crews that survive (0-100)
medevac.redcrewsurvivepercent = 100 -- % of red crews that survive (0-100)
medevac.showbleedtimer = false -- Show countdown timer?
medevac.sar_pilots = true -- Rescue downed pilots?
medevac.immortalcrew = true -- Wounded can't be killed?
medevac.invisiblecrew = true -- Wounded invisible to AI?
-- Time calculations
medevac.cruisespeed = 40 -- Cruise speed for time calc (m/s)
medevac.minbleedtime = 30 -- Minimum possible bleed time (sec)
medevac.maxbleedtimemultiplier = 1.2 -- Max bleed time multiplier-- Choose coordinate display format
medevac.coordtype = 3 -- Options:
-- 0 = Lat/Long DDM
-- 1 = Lat/Long DMS
-- 2 = MGRS
-- 3 = Bullseye Imperial (default)
-- 4 = Bullseye Metric-- Debug verbosity levels
medevac.debug_verbose = 0 -- 0=off, 1=errors, 2=warnings,
-- 3=info, 4=debug, 5=trace-
Setup MEDEVAC Units
- Create helicopter groups for rescue missions
- Add unit names to
medevac.medevacunitstable
-
Setup MASH Units
- Place ground units to serve as field hospitals
- Add unit names to
medevac.bluemashandmedevac.redmashtables
-
Configure Options
- Set survival percentages
- Enable/disable new features
- Adjust timing parameters
-
Start Mission
- Enter a MEDEVAC helicopter unit
- Check F10 Radio Menu for "MEDEVAC" submenu
-
Receive Casualties
- When ground units are destroyed, crew may survive
- After ~15 seconds, you'll receive a radio call with coordinates
- Location appears on F10 map (if enabled)
-
Locate Casualties
- Navigate to coordinates
- Look for:
- ๐ Signal flares (every 3 minutes)
- ๐จ Colored smoke (Blue/Red)
- ๐ก Illumination (at night)
- ๐บ๏ธ Map marker on F10
-
Pickup
- Land within 200m of casualties
- When speed < 1 m/s, casualties automatically board
- You'll see "Wounded picked up!" message
- Status updates on casualty condition during flight
-
Transport to MASH
- Fly to nearest friendly MASH
- Land within 200m with speed < 1 m/s
- Mission complete!
Press F10 in a MEDEVAC helicopter:
MEDEVAC
โโโ Active MEDEVAC/SAR - Shows all active casualty locations
โโโ View Statistics - Shows your rescue statistics
- Script monitors all unit destruction events
- When a ground vehicle is destroyed:
- Checks crew survival percentage
- Spawns infantry group at destruction location
- Applies immortal/invisible settings if configured
- Adds to wounded groups list
-
Request Phase (15s delay)
- Casualty group transmits coordinates
- Map marker created (if enabled)
- First signal flare fired (if enabled)
-
Search Phase (< 3km from casualties)
- Smoke deployed at casualty location
- Signal flares fire every 3 minutes
- Area illuminated if nighttime
-
Pickup Phase (< 600m)
- Casualties move toward helicopter
- Must land within 200m and reduce speed < 1 m/s
- Casualties automatically board
-
Transport Phase
- Bleed timer active
- Status messages based on severity
- Helicopter damage warnings (if enabled)
- Weather affects time available
-
Delivery Phase (at MASH)
- Must land within 200m and reduce speed < 1 m/s
- Mission complete
- Statistics updated
- Map marker removed
Base time calculated from:
Distance to MASH รท Cruise Speed = Base Time
Then modified by:
- Weather multiplier (0.85x to 1.3x)
- Unit type multiplier (0.8x to 1.2x)
- Random variation (1.0x to 1.2x)
- Minimum time constraint (30s minimum)
Example: Tank destroyed 40km from MASH in -5ยฐC weather
- Base: 40000m รท 40 m/s = 1000s
- Weather: 1000s ร 1.15 (cold) = 1150s
- Unit type: 1150s ร 0.8 (tank) = 920s
- Random: 920s to 1104s (ร1.0 to ร1.2)
- Result: 15-18 minute time window
RagnarDa, DragonShadow & Shagrat (2013-2014)
- Original MEDEVAC script concept and implementation
- Core rescue mechanics and gameplay systems
DragonShadow (v5 Beta)
- Injection of existing units as MEDEVAC groups
- Distance-based minimum bleed time calculations
- Direct flight distance calculations
- Closest MASH finding algorithm
- Rescue trigger function system
Shagrat (v5 Beta)
- Additional gameplay refinements
- Balancing improvements
alexej21 (v4.1)
- Immortal wounded crew option
- RPG soldier spawning option
HeavenDCS (2025-11-07)
- Complete code modernization and bug fixes
- F10 map marker integration
- Signal flares and illumination system
- Weather-based difficulty system
- Time of day effects
- Unit type triage system
- Helicopter damage warning system
- Statistics tracking system
- Enhanced error handling and logging
- Fixed 40+ parameter errors
- DCS ScriptingLib API compliance
- Comprehensive nil safety checks
New Features:
- โจ F10 Map Markers for active MEDEVAC locations
- โจ Signal Flares fired periodically from wounded positions
- โจ Illumination Bombs for night pickup zones
- โจ Weather-Based Difficulty (temperature affects bleed rate)
- โจ Time of Day Effects (night missions more challenging)
- โจ Unit Type Triage (different bleed rates by vehicle type)
- โจ Helicopter Damage Warnings for pilots
- โจ Statistics Tracking (lives saved, missions completed, etc.)
- โจ Enhanced messaging with context-aware information
- โจ Auto-refresh markers as situations change
- โจ Coalition-specific statistics
- โจ Critical wound alerts
Bug Fixes:
- ๐ Fixed all "Parameter #self missed" errors (40+ instances)
- ๐ Fixed
string.formatnil argument errors withtostring()wrappers - ๐ Added comprehensive nil safety checks throughout
- ๐ Fixed all static vs instance method calls per DCS ScriptingLib
- ๐ Protected all method chaining with proper nil checks
- ๐ Fixed incorrect event ID 19 check (ENGINE_SHUTDOWN โ PLAYER_ENTER_UNIT)
- ๐ Pre-populated unitโgroup cache to handle DCS API limitations
Code Quality:
- ๐ง Replaced hardcoded coalition numbers with enumerations
- ๐ง Replaced hardcoded smoke colors with enumerations
- ๐ง Namespaced global utility functions
- ๐ง Enhanced error handling with detailed messages and stack traces
- ๐ง Added input validation for all critical functions
- ๐ง Improved code documentation and comments
- ๐ง Added debug logging system with 5 verbosity levels
- ๐ง Modernized code to use current DCS API best practices
- Enhanced error handling
- Improved code documentation
- MiST 3.2+ compatibility verification
- Merged changes by DragonShadow and Shagrat
- Distance-based bleed time calculations
- Closest MASH finding
- Rescue trigger functions
- MiST 3.2+ compatibility verified
- Re-smoke on medevac crash
- Bug fixes
- Immortal wounded option (alexej21)
- RPG soldier spawn option (alexej21)
- Multiple MASH support
- Hideable bleed timer option
- MASH coalition validation
- Coalition-specific smoke colors
- Removed non-functional MiST messaging option
Script doesn't load:
- Ensure MiST is loaded BEFORE MEDEVAC script
- Check DCS.log for error messages
- Verify unit names match exactly (case-sensitive)
No casualties spawning:
- Check crew survival percentages (set to 100 for testing)
- Ensure ground vehicles are being destroyed
- Check
medevac.debug_verbosesetting (set to 3 for info logs)
Helicopter can't pick up casualties:
- Ensure you're within 200m
- Reduce speed to < 1 m/s
- Must be on the ground (not in air)
- Check coalition matches
Map markers not showing:
- Ensure
medevac.useMapMarkers = true - Check F10 map (not F11)
- Verify casualties are same coalition
Statistics not tracking:
- Ensure
medevac.trackStatistics = true - Use F10 Radio Menu โ MEDEVAC โ View Statistics
Enable detailed logging:
medevac.debug_verbose = 5 -- Maximum verbosityCheck DCS.log file in:
C:\Users\[YourName]\Saved Games\DCS\Logs\
When reporting issues, please provide:
- DCS version
- MiST version
- Relevant section of DCS.log
- Mission file (if possible)
- Steps to reproduce
This script is provided as-is for the DCS World community.
Original Authors: RagnarDa, DragonShadow, Shagrat
v6.0.0 Enhancement: HeavenDCS
Feel free to modify and redistribute with proper attribution.
If you find this script useful:
- โญ Star this repository
- ๐ Report bugs and issues
- ๐ก Suggest new features
- ๐ค Contribute improvements
- ๐ข Share with the DCS community
- MiST - Mission Scripting Tools
- MOOSE - Mission Object Oriented Scripting Environment
- DCS Lua Documentation
๐ Fly Safe, Save Lives ๐
For realistic combat search and rescue in DCS World