Skarif-ValheimPerformanceOverhaul icon

ValheimPerformanceOverhaul

Comprehensive performance optimization mod. Reduces CPU/GPU load via light culling, LOD system, AI throttling, distance culling, piece sleep management and more. Designed for large bases and busy servers.

CHANGELOG

Changelog


v2.7.1

Added

  • mini-update (smokePatch).

v2.7.0

Added

  • Light Flicker Optimization — Harmony Prefix on LightFlicker.CustomUpdate that fixes light intensity at its base value, eliminating per-frame Shadow Map recalculation for all fires and torches. Significant GPU gain on bases with many light sources.

  • Smoke Physics Optimization — Harmony Prefix on Smoke.CustomUpdate that replaces the vanilla complex aerodynamics (inter-particle collisions, volume simulation, roof accumulation) with a lightweight quadratic interpolation + single upward force. Dramatic CPU savings on large bases with many campfires. Lift force is configurable.

  • Engine Quality Settings — Forces low-level Unity QualitySettings at startup: softParticles = false, softVegetation = false, configurable particleRaycastBudget (default: 1024 vs vanilla 4096). Minor visual change on particle edges; measurable GPU and CPU gain in particle-heavy scenes.

  • Skip Intro — Skips Iron Gate and Coffee Stain logo screens on every game launch by patching SceneLoader.Start. Saves 5–10 seconds per startup.

  • Frame Budget Guard — Dynamic stutter protection system. Monitors a rolling 120-frame window, computes the 1% Low frametime, and lowers Time.maximumDeltaTime when heavy spikes are detected. Prevents Unity's physics Death Spiral (lag → engine over-simulates physics to catch up → more lag → freeze). Converts hard freezes into brief slow-motion. All thresholds are configurable. Automatically recovers when the game stabilises.

Changed

  • Version bumped to 2.7.0.
  • README updated with new module descriptions, expanded compatibility notes, and updated performance expectations table.
  • Config sections renumbered: new modules occupy sections 17–21.

Notes

  • All new modules are enabled by default and can be individually toggled in config.
  • Light Flicker and Smoke optimizations are Prefix patches with return false — they fully replace vanilla logic. If you experience unexpected visual issues with fires or smoke, disable the relevant module.
  • Private game fields are accessed via AccessTools.Field (cached) and Traverse — no direct decompiled references, compatible with future game updates.

v2.6.4

Added

  • Nothing (maintenance release).

v2.6.3

Added

  • Welcome screen on main menu launch.
    • Displays a feedback message on first launch.
    • Clickable link to Steam profile for bug reports and suggestions.
    • "Don't show anymore" checkbox to permanently hide the screen.

v2.6.0

Changed / Fixed

  • Removed NetworkManager (ZSteamSocket-only implementation, broke crossplay).
  • Removed ZDOOptimizer (potential desync risk on servers).
  • Fixed LightLODManager: removed duplicate ScanForLights() call on Start.
  • Fixed AdvancedLightManager: removed periodic FindObjectsByType scan every 5 s (caused micro-freezes).
  • DistanceCuller refactored: all cullers now managed by one central Update loop instead of one Update() per object.
  • PiecePatches: replaced ConcurrentDictionary with Dictionary (main thread only, 3–5× faster lookup).
  • AsyncWearInit: added early exit when queue is empty.

v2.5.1

  • Initial public release.