Skip to content

v0.8.3 - The Stability & Desync Hotfix

Choose a tag to compare

@paralax034 paralax034 released this 20 Mar 14:05
· 11 commits to main since this release
dfa5549

🔥 What's Fixed (I hope)

  • Invisible Shrapnel Damage: Shards that had visually faded out could still
    deal damage or block physics through their active collider. The collider is now
    disabled before the shard becomes imperceptible, and the GameObject is destroyed
    the moment it's visually depleted. Affects both singleplayer and multiplayer.

  • Chain-Destruction Bug (80%+ Shards Lost): Flying shrapnel was triggering
    the break condition on grounded debris the instant it touched it, causing the
    majority of shards from any explosion to disappear within the first second.
    Shrapnel-on-shrapnel contacts are now fully filtered — only high-velocity
    impacts from terrain and entities can break debris.

  • Multiplayer: Wrong Shard Positions (Overflow Desync): Large world
    coordinates or extreme rotation values caused integer overflows in packed
    network fields, teleporting shards to completely wrong locations on the client.
    All packed fields are now clamped before packing.

  • Multiplayer: Shards Vanishing Mid-Flight on Client: Destroy messages from
    the server were causing instant pop-out of existence. Clients now play a smooth
    150ms shrink-and-fade effect (BeginFadeDestroy) regardless of flight state.

  • Multiplayer: Ghost Shards (Server Has, Client Doesn't): At-rest client
    mirrors were timing out after 90 seconds while server shards lived for up to
    5 minutes. Mirror lifetime now matches server debris lifetime exactly.

  • Multiplayer: Phantom Shards (Client Has, Server Doesn't): Flying mirrors
    orphaned by a lost destroy packet now fade out after 5 seconds without a
    server snapshot, down from the previous 30-second hard timeout.

  • Multiplayer: Wrong Rotation on Spawned Shards: At-rest shards always
    spawned at 0° on the client. The spawn message now carries the server's Z
    rotation (0.01° precision), applied immediately on mirror creation.

  • Zero Scale on Flying Fragments: Flying mirrors had _originalScale = (0,0,0)
    if they never transitioned to rest, making them fully invisible during decay
    and fade-out. Scale is now captured correctly for all mirror states at creation.

🛠️ 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.