ValheimPerformanceOverhaul
Fps mod for Valheim.
About this mod Author’s original text
⚡ Valheim Performance Overhaul (VPO)
Valheim Performance Overhaul (VPO) — an ultimate low-level Unity engine optimization suite for Valheim. The mod completely reworks the game's internal systems: memory, PhysX, garbage collection (GC), terrain mesh generation, base batching, AI calculations, GPU buffering, and hardware light culling.
Includes a built-in in-game settings menu (F6), static building batching (F7), one-click optimization profiles, and an automatic compatibility shield that disables conflicts with other mods on the fly.
🎮 Quick Start and Hotkeys
| Key | Function | Description |
|:-----------: |:---------------------- |:-------------------------------------------------------------------------------------------- |
| F6 | Settings Menu | Opens the mod's visual configuration window with instant application of changes (Hot-Reload). |
| F7 | Base Batching Point | Saves or toggles the automatic mesh merging anchor at the current world position. |
🚀 One-Click Optimization Profiles
Choose the appropriate preset directly from the menu (F6) without restarting the game:
- 🥔 Potato (Max FPS): For low-end PCs, laptops with integrated graphics, and handheld consoles (Steam Deck). Maximum AI tick compression, physical LOD for mobs, fire and smoke particle optimization, and strict frame budget control.
- ⚖️ Normal (Basic Balance): Recommended for most configurations. 25–45% FPS increase, elimination of micro-stutters, and smooth frame-time distribution without noticeable visual quality loss.
- 💎 High (Vanilla+): For powerful systems. Preserves original graphics quality while enabling asynchronous world saves, JIT warm-up, and memory leak protection.
🛠️ Detailed Mod Features Overview
⚡ Engine Core and Multithreading (Engine & I/O)
- Async GPU Upload: Expands the default texture and mesh upload buffer from 4 MB to 16–512 MB, increasing the time slice from 2–33 ms. Eliminates stuttering when moving quickly between biomes.
- Valheim.exe Process Priority: Automatically sets the process priority at the operating system level (High or Above Normal).
- Main Thread Priority: Raises the system priority of the main rendering thread to prevent micro-delays when background Windows programs are under load.
- Fine-Tuned PhysX: Optimizes solver iteration counts and rigidbody sleep thresholds (Sleep Threshold), reducing CPU load from the physics of falling debris and branches.
- Skip Intro Logos: Launches the game directly into the main menu without intro splash screens.
🧠 Memory, Smart Garbage Collection (GC), and Asynchronous Saves
- Async World Save: Completely eliminates game freezes during autosaves. Data is cloned in memory and written in a background thread to.vpotemp →.old → the target world file.
- Smart GC Low-Latency Mode: Switches the.NET garbage collector to GCLatencyMode.LowLatency while running, jumping, swimming, fighting, and teleporting. Full memory cleanup calls and Resources.UnloadUnusedAssets() are blocked until the player is safe.
- JIT (Just-In-Time) Warm-up: Compiles heavy combat, inventory, damage, and GUI methods in advance during startup, eliminating the first freeze when attacking or opening the map.
- Safe Periodic Cleanup: Runs gentle background unloading of unused assets and garbage collection every 10 minutes, preventing memory leaks during multi-hour sessions.
⏱️ Frame-Time Protection and Physics Stabilization
- Frame Budget Guard: Continuously measures rare frame-rate drops (1% Low). When a severe drop occurs, it dynamically clamps Time.maximumDeltaTime, preventing the physics engine from entering a "slow-motion effect" and triggering a chain reaction of lag.
- Independent Player Animations: Switches the character animation component to AnimatorUpdateMode.UnscaledTime — movement and character responsiveness remain smooth even when overall FPS drops.
- Task Queue Time-Slicing (ISliceableTask): Allows heavy mod modules to execute tasks in batches within a strictly defined millisecond-per-frame limit.
🌲
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. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: