TactiKot-TimelinePerformanceFix icon

TimelinePerformanceFix

Fixes FPS drops and stuttering caused by player-history compression and excessive snapshot updates in PEAK. Reduces timeline CPU overhead and preserves player history. No configuration required.

Last updated 2 days ago
Total downloads 895
Total rating 1 
Categories Mods Client Side Optimization
Dependency string TactiKot-TimelinePerformanceFix-0.1.0
Dependants 1 other package depends on this package

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301

README

Timeline Performance Fix

Fix FPS drops and stuttering caused by player-history processing

Timeline Performance Fix targets a specific source of FPS drops, stuttering, and performance degradation during PEAK runs: excessive player-state snapshot updates and faulty timeline compression.

It reduces unnecessary CPU work while keeping player histories usable for recovery and the end-of-run report. The underlying snapshot bug does not require a player to disconnect or rejoin.

What it fixes

  • Excessive snapshot updates. A reversed timer check can refresh a recent snapshot every frame. The mod restores the intended one-second interval for each character.
  • Repeated failed attempts. Invalid snapshots are also limited to one periodic attempt per second, so a failed capture cannot keep retrying every frame. Inventory and state-change updates remain immediate.
  • Faulty player-history compression. Points are selected across the full timeline, preserving events and state transitions within the available budget. Repeated compression no longer favors only the beginning of a run.
  • Shared history lists. Live history, saved snapshots, and restored history use independent lists, preventing later recording from changing an existing snapshot.
  • Incorrect player ID lookups. Recovery and quicksave import use the full UserId instead of its hash, so saved histories and achievement progress are looked up under the correct key.

Will this fix every FPS drop?

This mod addresses timeline-related CPU overhead. It does not change graphics settings, increase rendering distance, or fix unrelated GPU, network, or other mod issues. No fixed FPS increase is promised; the benefit depends on whether this bug is affecting your run.

Installation

Install with a Thunderstore-compatible mod manager and launch the modded profile. BepInExPack_PEAK is the only required dependency. No configuration is needed.

For manual installation, install BepInEx first, close the game, and extract this package into the PEAK folder. The plugin should be at:

BepInEx/plugins/TimelinePerformanceFix/TimelinePerformanceFix.dll

For the local performance fix to apply to everyone, each player should install it, including the host. The host needs the mod for the host's recovery lookup fix. Network data formats are unchanged, so the mod does not require matching installations to join a lobby.

Compatibility and limits

  • Built and tested against PEAK 2.4.b / BepInEx 5.4.23.3.
  • Player-history tests cover 4, 5, 12, and 20 players. These are isolated tests, not a live session with 20 players.
  • Works independently. It also coordinates overlapping patches with the current AlwaysJoin 0.1.0 build when installed.
  • The snapshot limit remains 512 points. If important events exceed that limit, some detail must be discarded; the mod spreads retained points across the history and limits repeated warnings.
  • It cannot recover points already discarded or uniquely reconstruct old UserIds stored only as hashes.
  • It does not redesign the end-of-run graph or fix its separate layout limitations for large groups.

Troubleshooting

Check BepInEx/LogOutput.log for Loading [Timeline Performance Fix 0.1.0], followed by Timeline startup checks passed and Enabled: event-preserving timeline selection.

If the log says Fix was not enabled, the mod rejected unsupported game code or a conflicting patch and removed its own patches. Keep that error when reporting the issue, together with your game version and mod list.

Validation

The release checks cover timeline selection, snapshot ownership, the full periodic-update control flow with test dependencies, and real patched methods in the game's Mono runtime. They also check both patch orders with AlwaysJoin and rollback after an injected conflict. These checks are not a live multiplayer FPS benchmark.