SpongePEAKOptimized
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
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- 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.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- 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.
Install these first, or the mod will not work: