Skip to content

BUFF

Blast Underpressure Fix Framework for DCS World | v0.3

Brought to you by VMFA-224 Skunkworks


v0.3 Released

  • Cascade health gate removed -- blast wave now hits all objects in radius regardless of health
  • Verbose debug logging -- every phase (registration, tracking, impact, cascade, damage model) logs detailed diagnostics when debug = true
  • First live-tested release -- GBU-12 and GBU-38 drops validated against armor targets

Download v0.3{ .md-button }


What Is BUFF

DCS World has a known problem: air-dropped weapons have absurdly steep blast damage falloff. A 500lb Mk-82 that lands 10 meters from a truck should destroy it. DCS disagrees. The community script "Splash Damage" has been fixing this for years -- BUFF is a lean rewrite of that same core mechanic.

One job: make DCS weapon explosions lethal at realistic radii. Everything else is out of scope.

  • Supplemental explosions. Intercepts S_EVENT_SHOT, tracks weapons in flight, spawns a properly-scaled trigger.action.explosion at the impact point. Stacks on top of DCS's native (anemic) damage.
  • Blast wave cascade. Secondary explosions on nearby units, scaled by inverse-square distance and bounding box surface area. Propagation delay simulates shockwave travel.
  • AGL intercept gate. Weapons destroyed mid-air (SHORAD, CIWS) no longer produce phantom ground explosions. The original Splash Damage script has this bug.
  • Damage model. Damaged ground units get ROE HOLD and movement disabled. Simulates partial kills on vehicles that survive the initial blast.
  • Zero in-flight sphere searches. The original script runs 320 world.searchObjects calls/sec with 16 weapons tracked. BUFF runs zero during flight. One search per weapon at impact, once.
  • Zero dependencies. Single Lua file, pure DCS scripting engine. No MOOSE, no MIST, no desanitization.

Quick Example

Two triggers in Mission Editor, done:

Trigger 1:  ONCE -- TIME MORE (1) -- DO SCRIPT FILE -> BUFF.lua
Trigger 2:  ONCE -- TIME MORE (2) -- DO SCRIPT FILE -> BUFF_config.lua
-- BUFF_config.lua
local buff = BUFF:New({
    debug = true,
})
buff:Start()

What It Covers

Air-delivered ordnance only -- the stuff DCS actually gets wrong:

  • Unguided bombs (Mk-81 through Mk-84, FABs, SAMPs, British GP/MC/SAP, SC/SD series)
  • Guided bombs (GBU-10/12/16/24, GBU-31/32/38/54, KABs, JSOW, LS-6)
  • AGMs (Maverick variants, AGM-123/130, Kh-series, Rb 05/75, HOT3, C-701)
  • ATGMs (Hellfire, Vikhr, Ataka, AKD-10)
  • ARMs (AGM-88, AGM-45, AGM-122, Kh-58/25MP/31P, LD-10)
  • Anti-ship (AGM-84D, Rb 15F, C-802AK, Kh-22/31A/35)
  • Cruise (AGM-84E/H, CM-802AKG, Kh-59M/65)
  • Rockets (Hydra, Zuni, SNEB, S-series, C-series) -- off by default, enable with rockets_enabled = true

151 weapons by default. 211 with rockets enabled.

What It Doesn't Cover (Deliberately)

MLRS, artillery shells, naval guns, ship-launched cruise missiles. DCS's blast damage bug is specifically in air-dropped ordnance. Ground and naval weapons aren't broken in the same way.

Performance

For a 4-ship dropping 4 Mk-82s each (16 weapons simultaneously):

Phase Splash Damage 3.4 BUFF
Sphere searches during flight ~320/sec 0/sec
Per-tick work while tracking sphere search + land.getIP + position reads position reads only
Sphere searches at impact 16 + N cascade 16 total (one per weapon)
Idle overhead 10Hz poll always 0.5s poll when nothing tracked

40 planes x 4 bombs = ~1 ms/sec sustained + ~15 ms blip during impact bursts.

Credits

  • Concept and Development: VMFA-224 Skunkworks + Claude
  • Original Splash Damage Script: FrozenDroid (original), spencershepard/GRIMM (extended), Stevey666 (3.4)
  • Weapon Table Data: Community-tuned values from Splash Damage 3.4 -- years of testing by the DCS community
  • Built for: VMFA-224 "Bengals" and the DCS community

License