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()
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()