Skip to content

Configuration

All configuration is done in BUFF_config.lua. Every parameter is optional -- omit what you don't need. BUFF runs on sane defaults out of the box.

Full Parameter Reference

local buff = BUFF:New({

    -- Core
    enabled              = true,       -- master switch
    debug                = false,      -- verbose logging to DCS.log
    players_only         = false,      -- true = ignore AI-launched weapons
    refresh_rate         = 0.1,        -- tracking poll interval (seconds)
    idle_rate            = 0.5,        -- poll interval when nothing tracked

    -- Impact validation
    min_agl_threshold    = 50,         -- meters AGL; weapons disappearing above
                                       -- this altitude are treated as mid-air
                                       -- intercepts and skipped

    -- Blast mechanics
    power_scale          = 1.0,        -- global multiplier on all weapon power
    shaped_charge_scale  = 0.2,        -- blast reduction for HEAT warheads
    rocket_scale         = 1.3,        -- multiplier for rocket category

    -- Rockets
    rockets_enabled      = false,      -- supplement rocket blast damage

    -- Cascade (blast wave)
    cascade_enabled      = true,       -- secondary explosions on nearby units
    cascade_power_scale  = 2.0,        -- multiplier on cascade explosion power
    cascade_min_damage   = 0.1,        -- skip cascade if calculated damage below

    -- Damage model
    damage_model_enabled = true,       -- ROE HOLD / movement disable on damaged units
    disable_weapons_pct  = 40,         -- ROE HOLD below this health %
    disable_movement_pct = 30,         -- full stop below this health %
    infantry_weapons_pct = 60,         -- infantry ROE HOLD threshold

    -- Structure bonus
    static_damage_boost  = 2000,       -- intensity multiplier for buildings/structures

})
buff:Start()

Parameter Details

Core

Parameter Default Description
enabled true Master switch. Set to false to load the script without activating it.
debug false Enables verbose logging to DCS.log. Every weapon registration, impact, cascade decision, and damage model action is logged with full detail. Filter with grep BUFF dcs.log.
players_only false When true, only weapons launched by player-controlled aircraft are tracked. AI-launched weapons are ignored. Useful for reducing overhead in missions with heavy AI CAS.
refresh_rate 0.1 How often (in seconds) the tracking loop polls weapon positions. 0.1s (10Hz) is the standard for DCS weapon tracking scripts. Lower values increase position accuracy at impact but cost more CPU.
idle_rate 0.5 Poll interval when no weapons are being tracked. Reduces unnecessary timer overhead during quiet periods.

Impact Validation

Parameter Default Description
min_agl_threshold 50 Meters above ground level. When a tracked weapon disappears above this altitude, BUFF treats it as a mid-air intercept (SHORAD, CIWS, etc.) and skips all explosion processing. Prevents phantom ground explosions from weapons destroyed in flight.

Tuning the AGL threshold

50m is conservative. If you're seeing phantom explosions from weapons killed at low altitude (e.g., Tunguska engaging a bomb at 30m AGL), lower this value. If you're seeing legitimate steep-dive impacts being skipped, raise it.

Blast Mechanics

Parameter Default Description
power_scale 1.0 Global multiplier applied to every weapon's base power value. Set to 1.5 for more lethal explosions across the board, 0.5 for gentler.
shaped_charge_scale 0.2 Multiplier for weapons with shaped_charge = true in the weapon table (Mavericks, Hellfires, etc.). Shaped charges focus energy forward rather than radiating outward -- blast radius is much smaller than an equivalent-weight general purpose bomb.
rocket_scale 1.3 Multiplier for weapons with rocket = true. Only applied when rockets_enabled = true.

Rockets

Parameter Default Description
rockets_enabled false Whether to track and supplement rocket impacts. Off by default because DCS's native rocket damage isn't broken the same way bomb damage is, and rocket salvos (7-19 per pod) generate the highest tracking load. Enable if you want rockets to have more punch.

Cascade (Blast Wave)

Parameter Default Description
cascade_enabled true Enables secondary explosions on objects near the impact point. The blast wave is what kills units that weren't at ground zero.
cascade_power_scale 2.0 Multiplier on cascade explosion power. Higher values make the blast wave more lethal at range.
cascade_min_damage 0.1 Minimum calculated damage threshold. Objects that would receive less than this are skipped (not worth spawning an explosion for).

Damage Model

Parameter Default Description
damage_model_enabled true Enables post-explosion behavior changes on damaged ground units. Simulates partial kills.
disable_weapons_pct 40 Vehicles below this health percentage have their ROE set to WEAPON_HOLD (stop shooting).
disable_movement_pct 30 Vehicles below this health percentage are fully stopped and disabled.
infantry_weapons_pct 60 Infantry below this health percentage have ROE set to WEAPON_HOLD. Higher than vehicles because infantry are softer targets.

Structure Bonus

Parameter Default Description
static_damage_boost 2000 Intensity multiplier applied to STRUCTURE category objects (buildings, bunkers). DCS buildings are extremely tanky -- this boost makes cascade explosions actually damage them.

Example Configurations

Vanilla (Pure Defaults)

local buff = BUFF:New({})
buff:Start()

Debug / Testing

local buff = BUFF:New({
    debug = true,
})
buff:Start()

Players Only (Reduce Server Load)

local buff = BUFF:New({
    players_only = true,
})
buff:Start()

Extra Lethal (CAS-Heavy Missions)

local buff = BUFF:New({
    power_scale     = 1.5,
    rockets_enabled = true,
})
buff:Start()

Gentle (Training Missions)

local buff = BUFF:New({
    power_scale          = 0.5,
    cascade_enabled      = false,
    damage_model_enabled = false,
})
buff:Start()