Skip to content

v0.9.2 The Gunplay & Kinetic Impacts Update

Choose a tag to compare

@paralax034 paralax034 released this 22 Mar 03:38
· 1 commit to main since this release

This massive update (covering all changes since v0.8.4) completely overhauls how firearms interact with the world. Bullets no longer just create simple sparks — they now transfer kinetic momentum through the environment, kick up massive directional dust plumes, and leave lingering gunpowder smoke.

💨 Kinetic Energy Transfer (Bullet Impacts)

Bullets hitting surfaces now feature a realistic, three-phase kinetic impact system:

  • Directional Plumes: Dust now sprays backward from the impact point (toward the shooter), simulating material blowing out of the entry hole.
  • Material Conductivity: Metal blocks conduct kinetic energy further through their structure (1.5× scan radius), while soft materials (sand, dirt, flesh) absorb the energy, creating a smaller but much denser local dust cloud.
  • Conduction Sparks: Hitting metal now spawns bright "needle sparks" that travel perpendicular to the bullet's path, simulating energy conducted along the surface.
  • Safe Blast Direction: A new reflection algorithm ensures that dust and sparks never clip or spray into solid terrain, always ejecting out into the open air.

💥 Muzzle Blasts & Smoke

  • Concussive Muzzle Gas: Firing a gun now emits a concussive blast that disturbs loose material on nearby surfaces.
  • Column-Scan Algorithm: Replaced the old brute-force grid scan with a highly efficient "Column-Scan" algorithm that perfectly finds ground, ceilings, and walls. Because it's so fast, the blast radius has been increased to 12 blocks for guns and 18 blocks for turrets.
  • Gunpowder Smoke: Shots now leave 1-3 dark propellant gas wisps rising from the barrel, and lingering smoke at the bullet's impact point. (Uses Lit materials, so it correctly hides in shadows!).

🔄 Better Ricochets & Shrapnel Interactions

  • 360° Fragment Scatter: Bullet fragments no longer just fly straight off a wall. 60% of fragments fly in a hemisphere away from the wall, while 40% scatter randomly (including straight back at the shooter for realistic ricochets).
  • Fragment Balancing: Bullet fragments now have capped speeds (max 18 m/s) and reduced damage (0.4×). They will scratch and cause bleeding, but won't cross-map one-shot NPCs anymore.
  • Shrapnel-to-Block Debris: When a flying shrapnel shard hits a block, it now spawns material-appropriate debris (sparks for metal, dust/chunks for soft blocks) based on its impact speed.

🛠️ Critical Fixes

  • The "Zero Power" Bug Fixed: In previous versions, weapons with shotsPerFire = 0 (like single-shot rifles) accidentally multiplied their entire power formula by zero. This prevented physics fragments from spawning and made sparks nearly invisible. Power is now correctly calculated and clamped!
  • Double-Explosions on Clients Fixed: Turret deaths and bullet impacts were incorrectly triggering local visual explosions on clients, fighting with the server's authoritative sync. Clients now correctly wait for the server.
  • Unicode Crash Fixed: Removed unsupported characters (like ✓) from console logs that caused font fallback crashes.

⌨️ New Developer Tools

Added powerful new console commands to test the mod's pipeline:

  • shrapnel_shot rifle R -metal — Tests the full bullet effect pipeline anywhere on the screen (supports pistol, rifle, shotgun, turret).
  • shrapnel_guninfo all — Dumps all GunScript fields via reflection to diagnose weapon power calculations.
  • shrapnel_highlight 15 — Makes all physical shards glow bright orange through walls for 15 seconds (great for debugging clipping).
  • shrapnel_status full & shrapnel_net diag — Upgraded with deeper material and network sync diagnostics.

🛠️ Installation

  1. Requires BepInEx 5.4.21+
    installed in your game directory.
  2. Place ScavShrapnelMod.dll into:
    CasualtiesUnknownDemo/BepInEx/plugins/
  3. Launch the game — config updates automatically on first run.

Full technical breakdown in CHANGELOG.md.