SpongePEAKOptimized

v1.0.0·Updated 2026-09-01

Fixes and optimizations in one mod, each individually toggleable. Includes disconnected-player persistence and rejoin handling.

About this mod Author’s original text

SpongePEAKOptimized

Fixes and performance work for PEAK, bundled into one mod with a toggle for every feature.

Instead of installing eight single-purpose mods that each patch the game separately, this

is one plugin where overlapping behaviour is resolved once and deliberately.

Features

Every feature has its own setting in BepInEx/config/com.sponge.peakoptimized.cfg, so if

one misbehaves you can switch off just that one.

| Feature | Default | What it does |

|---|---|---|

| AdaptiveNetwork | on | Measures each player's connection and lowers the room's send rate when someone is struggling, so weak connections stop rubber-banding. Host decides, clients match. |

| AudioFix | on | Stops audio dropouts by parking silent looping sounds and prioritising voice and nearby audio. |

| CarryDisconnectedPlayers | on | Lets you pick up and carry teammates who disconnected while alive, and marks them (Disconnected). Ghosts cannot be carried. |

| DecorationCulling | on | Hides small decorative meshes beyond a distance, spreading the work across frames. |

| DistanceCulling | on | Skips dynamic-bone secondary motion beyond a distance from the camera, and caps its update rate. |

| GrassAllocations | on | Reuses one MaterialPropertyBlock for grass instead of allocating a new one every frame. |

| GrassFrustumCulling | on | Skips grass chunks outside the camera frustum. Grass casts no shadows, so this cannot change what you see. |

| KeepDisconnectedPlayersInWorld | on | Keeps a disconnected player's character alive and simulated until they rejoin, die, or the timeout expires. Room settings are applied when you host; every client tracks who is away. |

| LateJoinFix | on | Warps players who join mid-run to the party member furthest from the summit, then revives them. |

| LightSampleCache | on | Caches baked light volume samples, which cost a CPU 3D-texture readback per call. |

| LobbyJoinFix | on | Retired. PEAK now defers lobby invites until the session is connected, so this is no longer needed. |

| NullGuards | on | Stops two vanilla per-frame exceptions: pocket updates before a player exists, and particle culling with no observed character. |

| PerformanceLOD | on | Throttles physics updates for distant characters and avoids redundant rigidbody writes. |

| PhysicsThrottle | on | Caches wind shelter raycasts and removes the per-search scene scan from bot vision. |

| PlatformTuning | on | Applies the few engine settings that genuinely differ under Proton/Wine versus native Windows. Does nothing on Windows unless explicitly configured. |

| ProximityGating | on | Skips per-step updates for traps and ambient particle spawners with no player nearby. |

| ReconnectCatchup | on | Warps returning players to the party member furthest from the summit instead of the level start. |

| RejoinVoiceFix | on | Resets Photon Voice when leaving a game so voice chat works in the next lobby. |

| RestoreRejoinPosition | on | Returns a rejoining player to where they disconnected, if the gloom has not risen past it. |

| RopeShooterFix | on | Fixes the vanilla rope cannon refusing to fire: a single frame of lost footing or aim wobble cancelled the whole cast. Also stops spare cannons raycasting every frame. |

| SoftDependencyFix | on | Keeps partially-loaded assemblies usable, so a mod with a missing optional dependency does not hide unrelated console commands. |

| Telemetry | off | Shows frame time and what each optimization is doing, so the effect can be measured. |

| VineClimbFix | on | Stops rubber-banding when climbing vines and chains. |

| VisualQuality | on | Trades visual fidelity for frames: LOD bias, shadow bias and directional shadow tuning. |

| ZeroAllocHotPaths | on | Removes per-frame allocations from falling-rock physics and player proximity checks, reducing GC micro-stutter. |

Disconnected players

The headline feature. Normally a player who drops has their character deleted instantly, so

you cannot help them.

With this installed by the host, a disconnect

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack_PEAKSpongeMods-SpongePEAKCoreSpongeMods-SpongePEAKLib

File & checksum

Filename
SpongePEAKOptimized-1.0.0.zip
File size
64.3 KiB