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.
| Last updated | 10 hours ago |
| Total downloads | 150 |
| Total rating | 1 |
| Categories | Mods Misc Server-side Client-side Utility Ashlands Update Bog Witch Update |
| Dependency string | Skarif-ValheimPerformanceOverhaul-2.6.1 |
| Dependants | 1 other package depends on this package |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2202README
Valheim Performance Overhaul
A comprehensive performance optimization mod focused on reducing CPU and GPU load β especially on large bases, busy servers, and zones with many light sources.
Installation
Install via r2modman or Thunderstore Mod Manager (recommended) β everything is placed automatically.
Manual install:
- Install BepInExPack Valheim first.
- Copy
ValheimPerformanceOverhaul.dllintoBepInEx/plugins/. - Launch the game β a config file is generated automatically at
BepInEx/config/com.Skarif.ValheimPerformanceOverhaul.cfg.
What it does
π¦ Light Culling (biggest FPS impact)
- Limits active light sources to a configurable maximum (default: 15).
- Disables shadow casting beyond a set distance.
- Light LOD system: transitions lights through Full β No Shadows β Emissive β Billboard β Disabled as distance increases.
π€ Distance Culler
- Puts distant creatures and building pieces to "sleep" β pauses their Update logic.
- Physics culling for Rigidbodies beyond a set range.
- Configurable exclusions (e.g. portals, tombstones are never culled).
ποΈ Piece Optimization
WearNTear.GetSupport()results are cached with a configurable TTL.- Distant pieces skip their Update cycle entirely.
- Asynchronous WearNTear initialization β spreads load over multiple frames on scene load.
π€ AI Throttling
- Monsters beyond 60 m update AI only every 5 seconds instead of every frame.
- LOS (line-of-sight) checks are cached per-target with a 0.5 s timeout.
- Idle tamed animals inside player bases enter a low-power mode.
π¨ Graphics Settings
- Configurable shadow distance, resolution, and cascade count.
- Bloom and screen-space reflections toggle.
- Terrain quality multiplier.
πΏ Vegetation
- Grass render distance and density control.
- Detail object distance and density.
π΅ Audio Pooling
- Reuses AudioSource components instead of creating new ones per sound effect.
β»οΈ Object Pooling
- Reuses
ItemDropGameObjects to reduce instantiation overhead when loot spawns.
π§ GC Control
- Prevents Unity's garbage collection from firing during combat or movement.
β‘ JIT Warm-up
- Pre-compiles critical game methods on spawn to eliminate the first-use stutter.
πΊοΈ Minimap Optimization
- Configurable texture resolution and update frequency.
Configuration
All settings are available in BepInEx/config/com.Skarif.ValheimPerformanceOverhaul.cfg.
If you have BepInEx Configuration Manager installed, press F1 in-game to adjust all settings with a GUI in real time.
Key settings
| Setting | Default | Description |
|---|---|---|
| Max Active Lights | 15 | Max simultaneous light sources |
| Light Cull Distance | 60 m | Beyond this distance lights turn off |
| Creature Cull Distance | 80 m | Creatures sleep beyond this distance |
| Piece Cull Distance | 100 m | Building pieces sleep beyond this distance |
| Support Cache Duration | 5 s | How long structural support values are cached |
| Grass Density Multiplier | 0.7 | 1.0 = vanilla, lower = fewer grass |
| Shadow Distance | 50 m | Maximum shadow render distance |
Performance expectations
Results depend heavily on scene complexity. Typical gains:
| Scenario | Expected FPS gain |
|---|---|
| Open world, few structures | ~5β10% |
| Medium base (50β100 pieces) | ~10β20% |
| Large base (300+ pieces, 10+ light sources) | ~20β40% |
| Busy server with many players/mobs | ~15β30% |
Compatibility
- β Works standalone β no other mods required.
- β Compatible with most content mods (Epic Loot, Jotunn-based mods, etc.).
- β οΈ If Object Pooling conflicts with a loot mod, disable it in config (
4. Object Pooling β Enabled = false). - β οΈ The mod was created in collaboration with AI. Despite the fact that I conducted test runs in various situations, the mod is in BETA. Although the mod technically cannot break the world, it is advisable to make backups.
- β Does not support crossplay (Steam + Game Pass mixed sessions). Pure Steam servers are fine.
Changelog
2.6.0
- Removed NetworkManager (ZSteamSocket-only, broke crossplay)
- Removed ZDOOptimizer (potential desync risk on servers)
- Fixed LightLODManager: removed duplicate ScanForLights() on Start
- Fixed AdvancedLightManager: removed periodic FindObjectsByType scan every 5s (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β5x faster)
- AsyncWearInit: added early exit when queue is empty
2.5.1
- Initial public release