Repository navigation
v0.9.2 The Gunplay & Kinetic Impacts Update
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 (supportspistol,rifle,shotgun,turret).shrapnel_guninfo all— Dumps allGunScriptfields 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
- Requires BepInEx 5.4.21+
installed in your game directory. - Place
ScavShrapnelMod.dllinto:
CasualtiesUnknownDemo/BepInEx/plugins/ - Launch the game — config updates automatically on first run.
Full technical breakdown in CHANGELOG.md.