Skip to content

Heritage

Lineage

BUFF stands on the shoulders of years of community work on the DCS splash damage problem.

FrozenDroid -- The Original

The original "Splash Damage" script was written by FrozenDroid. It established the core technique that every subsequent version uses: intercept S_EVENT_SHOT, track the weapon object, detect impact via isExist() going false, and spawn a supplemental trigger.action.explosion at the impact point.

This was the insight that made the whole thing work. DCS provides no "weapon impact" event, so tracking the weapon object and detecting its disappearance is the only way to know when and where a bomb hit.

spencershepard / GRIMM -- Extended

spencershepard (GRIMM) extended FrozenDroid's script with additional weapon types, the cascade/blast wave mechanic (secondary explosions on nearby units), and the damage model (ROE HOLD and movement disable on damaged vehicles).

The cascade mechanic was a significant addition -- it's what makes near-misses lethal, not just direct hits.

Stevey666 -- Splash Damage 3.4

Stevey666 produced the most widely-used version: Splash Damage 3.4. This is a comprehensive 7,700-line script that added:

  • Napalm persistence (fire effects and damage over time)
  • Cluster munition simulation (submunition dispersal patterns)
  • Trophy APS (active protection system simulation for ground vehicles)
  • Kill feed with player attribution (pre/post health scanning)
  • Cargo cook-offs (ammo trucks and fuel tankers with secondary explosions)
  • Vehicle IEDs (proximity-triggered detonation on named units)
  • Murder Mode, strobe markers, critical component RNG, and more

The weapon table -- the community-tuned mapping of DCS weapon type names to explosive power values -- is 3.4's most valuable contribution. Years of player testing went into those numbers. BUFF ports this table directly.

BUFF -- Lean Rewrite

BUFF extracts the core splash damage mechanic from 3.4 and rewrites it from scratch. The goal is not to replace 3.4 -- it's to provide a lighter-weight option for squadrons that only need the blast damage fix.

The features BUFF drops are all valid -- napalm, clusters, kill feed, Trophy APS are all useful in the right context. They're just not part of the core problem (bombs don't kill at realistic radii) and they add complexity, configuration surface area, and performance cost.

For squadrons that want those features, Splash Damage 3.4 remains available and actively maintained by the community.

What BUFF Keeps

From What Why
FrozenDroid S_EVENT_SHOT + isExist() tracking + supplemental explosion The core technique. It works.
GRIMM Cascade blast wave mechanic Near-misses need to kill.
GRIMM Damage model (ROE HOLD + movement disable) Partial kills feel right.
Stevey666 (3.4) Weapon table (151+ entries) Community-tuned power values. Years of testing.
Stevey666 (3.4) Inverse-square intensity with bounding box scaling The physics is approximate but the results are good.
Stevey666 (3.4) Structure damage boost DCS buildings need the extra help.

What BUFF Adds

Feature Description
AGL intercept gate Weapons destroyed mid-air don't produce phantom ground explosions. The original 3.4 has this bug -- the fix exists in its napalm handler but was never applied to the main pipeline.
Zero in-flight sphere searches No world.searchObjects calls during weapon flight. All spatial queries deferred to impact.
Adaptive poll rate 0.5s idle rate when nothing tracked, 0.1s when weapons in flight.
Pre-computed power All multipliers applied once at registration. No per-tick or per-impact recalculation.
Instance-based design BUFF:New() / :Start() / :Stop() pattern. Clean lifecycle, no global state pollution.

What BUFF Drops

Feature Approx Lines in 3.4 Reason
Kill feed / attribution ~400 Scripted explosions are anonymous in DCS (S_EVENT_KILL.initiator = nil). The workaround requires pre/post health scanning. Separate concern.
Napalm persistence ~400 Fire effects, static object spawning, scheduled damage. Separate module.
Cluster munition sim ~200 Submunition dispersal patterns. Separate module.
Trophy APS ~250 Active protection system simulation. Unrelated to splash damage.
Cargo cook-offs ~600 Ammo trucks / fuel tanker secondary explosions. Separate module.
Vehicle IEDs ~150 Named unit proximity detonation. Unrelated to splash damage.
Murder Mode ~100 A-10 bonus explosions. Unrelated to splash damage.
Strobe markers ~200 Periodic explosions as visual beacons. Unrelated.
Critical Component RNG ~80 Random instakill chance on any hit. Doesn't belong in core.
Ground Unit Explode on Death ~150 Cosmetic explosion on unit death. Separate module.
CBU bomblet hit spread ~200 Cluster module concern.
Tactical / Giant explosions ~400 MOAB-style / named-unit mega-detonations. Separate module.
Radio menu ~200 Runtime configuration. Can be added as optional module.
Advanced smoke/fire sequencing ~200 Cosmetic effects. Separate module.

Total: ~3,500+ lines of feature code removed. The remaining ~4,200 lines in 3.4 are the core mechanic (~300-400 lines of logic) plus config parsing, utility functions, and the weapon table.

Design Philosophy

BUFF follows the Unix philosophy: do one thing well. The blast damage fix is one job. Napalm is a different job. Kill feed is a different job. Each can be a separate script, loaded independently, sharing the DCS event system without knowing about each other.

This isn't a criticism of 3.4's approach -- monolithic scripts have real advantages (single file to manage, guaranteed feature interaction, unified configuration). BUFF just makes a different tradeoff: less capability, less complexity, less surface area for bugs and performance issues.