
ValheimPerformanceOverhaul
Fps mod for Valheim.⚡ 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.LowLatencywhile running, jumping, swimming, fighting, and teleporting. Full memory cleanup calls andResources.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.
🌲 Vegetation and Terrain RAM Cache
- LRU Terrain Mesh Cache (RAM): Stores generated height meshes, ocean depth maps, biome data, and ground paint masks in RAM (configurable size: 8–256 MB). Re-entering an area is instant, without repeated mathematical calculations.
- Dynamic Invalidation: Fully compatible with pickaxes, cultivators, and terrain modification mods (
TerrainComp). Modified sectors are automatically recalculated and updated. - Smooth Vegetation Spawning (Vegetation Slicing): Spawning trees, stumps, and bushes no longer freezes the game when entering a new sector — it is distributed across small batches per frame while preserving the deterministic world seed.
- Clutter Optimization: Optimizes the rendering distance and density of procedural grass and rocks.
🏰 Static Batching of Bases and Mega-Builds
- Sector-Based Geometry Merging: Merges static base building elements into unified optimized Unity meshes (
StaticBatchingUtility) within 64x64 m zones. Reduces Draw Calls on large bases from several thousand to just a few dozen. - Base and Bed Anchors (F7): Automatically detects sleeping places or saves positions when pressing F7. When returning home, it starts merging after a stabilization delay following construction.
- Intelligent Blacklist: Never merges chests, doors, workbenches, portals, beds, campfires, signs, boats, or carts.
- Building Load Throttling: Reduces the frequency of continuous
WearNTearsupport checks for completed static buildings.
🎨 Graphics, Textures, and Background LOD Models
- Background LOD Generation: A multithreaded level-of-detail generator (QEM Decimation) analyzes heavy models without original LODs and creates lightweight LOD1 and LOD2 variants directly during gameplay.
- Disk Model Caching: Completed LOD meshes are saved to
BepInEx/cache/VPO/, so each object's calculations are performed only once. - Native GPU Instancing: Forces the Instancing flag on compatible world materials for batch rendering objects in a single GPU pass.
- Hardware Light Culling (CullingGroup): Uses Unity's hardware visibility sphere API to completely disable light sources hidden behind walls or outside the screen, as well as torch flickering scripts.
- Texture Mipmap Streaming: Dynamically manages texture mip levels based on camera distance and allocated VRAM budget. A manual downscaling multiplier is provided for low-end graphics cards.
- Optimized Camera Cache: Caches the reference to
Camera.mainand the frustum planes (Frustum Planes) once per frame, eliminating thousands of slow internal engine calls.
🐺 Creature AI, Physics LOD, and Pet Sleep
- Distant AI Throttling: Reduces the update frequency of target-search and orientation logic for creatures outside the player's active combat area.
- Pathfinding Scheduler: Limits simultaneous navigation mesh calculations to a specified per-frame budget, eliminating lag caused by crowds of mobs.
- Character Physics LOD: Distant creatures skip
FixedUpdateticks, slope calculations on uneven terrain, and water-depth checks when standing still. - Energy-Saving Pet Sleep: Tamed animals (boars, wolves, loxes) inside a protected base perimeter enter deep sleep mode: AI ticks, animators, physics bodies, and collisions are disabled. Animals wake up instantly when the player approaches or they take any damage.
💨 Particle, Torch, and Smoke Optimization
- Lightweight Smoke Aerodynamics: Completely reworks the physics of campfire smoke plumes: reduces mass, adjusts air resistance, removes heavy smoke-to-smoke collision calculations, and sets a global particle limit.
- Fire and Torch Optimization: Disables excess sparks, embers, and glowing points from wall torches, chandeliers, and braziers, reducing flame lifetime to lower GPU load.
- Object Pooling: Arrow hit effects (
vfx_arrowhit), impact effects, and sparks are no longer created and destroyed through expensiveInstantiate/Destroycalls, but are instantly reused from a memory pool. - Distance Emitter Culling: Automatically reduces emission or disables distant particles, with reliable protection for portals and key story objects.
🌐 Networking, Minimap, and World Pre-Generator (Chunky)
- Increased Bandwidth: Raises the
ZSteamSocketsocket send limit to 512 KB/s, eliminating desynchronization on populated servers. - Smart ZDO Packet Prioritization: Network packets for players, ships, and active portals are always sent first.
- Map Marker Throttling: Optimizes the update frequency of dynamic minimap pins (once every 4 frames).
- Chunky Background World Pre-Generator: A console tool for smooth, advance world generation around the player in a spiral pattern.
⌨️ Chunky Console Commands (Console F5):
vpo_chunky_start <radius> - Start spiral world pre-generation (e.g. vpo_chunky_start 10, max. 40)
vpo_chunky_stop - Force-stop the current pre-generation
vpo_chunky_status - Show status, current zone, progress, and average FPS
Note: Chunky automatically pauses if the current FPS drops below your configured threshold.
🛡️ Dynamic Compatibility Shield (Mod Conflict Guard)
VPO is designed for stable operation in modpacks containing hundreds of mods. The compatibility guard operates on two levels:
-
Deep Dynamic Harmony Audit: Directly queries the game's runtime registry. If a third-party mod intercepts a method through a Prefix or Transpiler (for example, completely replacing AI or terrain systems), VPO automatically isolates and disables the corresponding submodule, preventing logic breakage or crashes.
-
Built-in Rules Database:
- Expand World: Automatically disables VPO's terrain cache and vegetation spawn optimization, giving full control to Expand World.
- Creature Level and Loot Control (CLLC): Hands over spawning, abilities, and attack logic to CLLC modules.
- ValheimRAFT: Disables static mesh merging and physics LOD near floating bases.
- PlanBuild: Disables batching of blueprints and semi-transparent ghost buildings.
📥 Installation
Through a Mod Manager (Recommended)
- Install r2modman or Thunderstore Mod Manager.
- Search for Valheim Performance Overhaul by author Skarif.
- Click Download with Dependencies and launch the game.
Manual
- Make sure BepInExPack Valheim is installed.
- Download the mod archive and extract its contents into:
Valheim/BepInEx/plugins/. - Launch the game and press F6 to verify it works!
⚙️ Configuration
The configuration file is automatically created at:
Valheim/BepInEx/config/com.Skarif.ValheimPerformanceOverhaul_WATER.cfg
Any parameters can be changed on the fly directly in-game through the F6 menu without restarting the client.
💬 Developer Contact and Support
Discord: skarif_q
Steam: Skarif_W
⚡ Valheim Performance Overhaul (VPO)
Valheim Performance Overhaul (VPO) — ультимативный комплекс низкоуровневой оптимизации движка Unity для Valheim. Мод полностью перерабатывает внутренние узлы игры: память, PhysX, сборщик мусора (GC), генерацию мешей ландшафта, батчинг баз, расчеты ИИ, буферизацию GPU и аппаратное отсечение света.
Включает встроенное внутриигровое меню настроек (F6), статическое объединение построек (F7), профили оптимизации в один клик и автоматический щит совместимости, отключающий конфликты с другими модами на лету.
🎮 Быстрый старт и горячие клавиши
| Клавиша | Функция | Описание |
|---|---|---|
| F6 | Меню настроек | Открывает визуальное окно конфигурации мода с мгновенным применением изменений (Hot-Reload). |
| F7 | Точка батчинга базы | Сохраняет или переключает якорь автоматического объединения мешей в текущей точке мира. |
🚀 Профили оптимизации в один клик
Выбирайте подходящий шаблон прямо в меню (F6) без перезапуска игры:
- 🥔 Potato (Макс. FPS): Для слабых ПК, ноутбуков со встроенной графикой и портативных консолей (Steam Deck). Максимальное сжатие тиков ИИ, физический LOD мобов, оптимизация частиц огня и дыма, жесткий контроль бюджета кадров.
- ⚖️ Normal (Базовый баланс): Рекомендуется для большинства конфигураций. Прирост 25–45% FPS, устранение микрофризов и плавное распределение времени кадра без заметных глазу визуальных потерь.
- 💎 High (Vanilla+): Для мощных систем. Сохраняет оригинальное качество графики, подключая асинхронные сохранения мира, прогрев JIT и защиту от утечек памяти.
🛠️ Подробный обзор возможностей мода
⚡ Ядро движка и многопоточность (Engine & I/O)
- Асинхронный буфер GPU (Async Upload): Расширяет базовый буфер передачи текстур и мешей в видеопамять с дефолтных 4 МБ до 16–512 МБ, увеличивая тайм-срез до 2–33 мс. Устраняет заикания при быстром перемещении между биомами.
- Приоритет процесса Valheim.exe: Автоматически выставляет приоритет процесса на уровне операционной системы (High или Above Normal).
- Приоритет главного потока: Повышает системный приоритет основного потока рендеринга для предотвращения микро-задержек при нагрузке фоновыми программами Windows.
- Тонкая настройка PhysX: Оптимизирует число итераций солвера и пороги засыпания твердых тел (Sleep Threshold), разгружая процессор от физики падающего мусора и веток.
- Пропуск вступительных логотипов: Мгновенный запуск игры прямо в главное меню без вступительных заставок.
🧠 Память, умный сборщик мусора (GC) и асинхронные сохранения
- Асинхронные сохранения мира (Async World Save): Полностью убирает зависание игры во время автосохранений. Данные клонируются в памяти и записываются в фоновом потоке в файлы
.vpotemp→.old→ целевой файл мира. - Умный режим низкой задержки GC: Переключает сборщик мусора .NET в
GCLatencyMode.LowLatencyво время бега, прыжков, плавания, боя и телепортации. Вызовы полной очистки памяти иResources.UnloadUnusedAssets()блокируются до момента, пока игрок не окажется в безопасности. - Прогрев JIT (Just-In-Time Warm-up): Компилирует тяжелые методы боя, инвентаря, урона и GUI заранее во время запуска, исключая первый фриз при нанесении удара или открытии карты.
- Безопасная периодическая очистка: Запускает бережную фоновую выгрузку неиспользуемых ассетов и сборку мусора раз в 10 минут, предотвращая утечки памяти при многочасовой игре.
⏱️ Защита времени кадра и стабилизация физики
- Frame Budget Guard: Непрерывно замеряет редкие события падения частоты (1% Low). При возникновении тяжелой просадки динамически сжимает
Time.maximumDeltaTime, не позволяя физическому движку уйти в «эффект замедленной съемки» и вызывая цепную волну лагов. - Независимые анимации игрока: Переводит компонент анимаций персонажа в
AnimatorUpdateMode.UnscaledTime— движения и отклик персонажа остаются плавными даже при падении общего FPS. - Тайм-слайсинг очередей (ISliceableTask): Позволяет тяжелым модулям мода выполнять задачи порциями в рамках строго заданного лимита миллисекунд за кадр.
🌲 Растительность и оперативный кэш ландшафта
- LRU-кэш мешей ландшафта (RAM): Сохраняет сгенерированные меши высот, карту глубин океана, данные биомов и маски покраски земли в оперативной памяти (размер настраивается: 8–256 МБ). Повторный вход в зону происходит мгновенно без повторных математических расчетов.
- Динамическая инвалидация: Кэш полностью совместим с кирками, мотыгами и модами на терраформинг (
TerrainComp). Измененные секторы автоматически пересчитываются и обновляются. - Плавный спавн флоры (Vegetation Slicing): Спавн деревьев, пней и кустов больше не вешает игру при входе в новый сектор — он распределяется небольшими порциями по кадрам с сохранением детерминированного сида мира.
- Оптимизация Clutter: Оптимизирует дистанцию и плотность отрисовки процедурной травы и камней.
🏰 Статический батчинг баз и мега-построек
- Объединение геометрии по секторам: Объединяет статичные элементы построек базы в единые оптимизированные сетки Unity (
StaticBatchingUtility) внутри зон 64x64 м. Снижает количество Draw Calls на крупных базах с нескольких тысяч до считанных десятков. - Якоря баз и кроватей (F7): Автоматически определяет спальные места или сохраняет позиции по нажатию F7. При возвращении домой запускает объединение с задержкой стабилизации после стройки.
- Интеллектуальный черный список: Никогда не объединяет сундуки, двери, верстаки, порталы, кровати, костры, вывески, лодки и повозки.
- Троттлинг нагрузки построек: Снижает частоту постоянных проверок опоры
WearNTearдля статичных завершенных зданий.
🎨 Графика, текстуры и фоновые LOD-модели
- Фоновая генерация LOD: Многопоточный генератор уровней детализации (QEM Decimation) анализирует тяжелые модели без оригинальных LOD-ов и создает легковесные варианты LOD1 и LOD2 прямо во время игры.
- Кэширование моделей на диске: Готовые LOD-меши сохраняются в папку
BepInEx/cache/VPO/, благодаря чему расчет для каждого объекта происходит только один раз. - Нативный GPU Instancing: Принудительно включает флаг Instancing на совместимых материалах мира для пакетного рендеринга объектов в один проход видеокарты.
- Аппаратный куллинг света (CullingGroup): Использует аппаратный API сфер видимости движка Unity для полного отключения скрытых за стенами или находящихся вне экрана источников света и скриптов мерцания факелов.
- Mipmap Streaming текстур: Динамически управляет мип-уровнями текстур в зависимости от дистанции до камеры и выделенного бюджета VRAM. Предусмотрен ручной множитель даунскейла для слабых видеокарт.
- Оптимизированный кэш камеры: Запоминает ссылку на
Camera.mainи плоскости усечения (Frustum Planes) один раз за кадр, исключая тысячи медленных внутренних вызовов движка.
🐺 ИИ существ, физический LOD и сон питомцев
- Замедление далекого ИИ: Снижает частоту обновления логики поиска целей и ориентации для существ, находящихся вне зоны активного боя с игроком.
- Планировщик поиска путей (Pathfinding Scheduler): Ограничивает одновременные расчеты навигационной сетки до заданного лимита за кадр, устраняя лаги от толп мобов.
- LOD физики персонажей: Далекие существа пропускают тики
FixedUpdate, расчеты наклона на неровностях и проверку глубины воды, если стоят на месте. - Энергосберегающий сон питомцев: Прирученные животные (кабаны, волки, локсы) внутри защищенного периметра базы переходят в режим глубокого покоя: у них отключаются тики ИИ, аниматоры, физические тела и коллизии. Животные мгновенно просыпаются при приближении игрока или получении любого урона.
💨 Оптимизация частиц, факелов и дыма
- Легкая аэродинамика дыма: Полностью переработана физика дымовых клубов костров: уменьшена масса, скорректировано сопротивление воздуха, убраны тяжелые просчеты столкновения дыма с дымом и установлен глобальный лимит частиц.
- Оптимизация огня и факелов: Отключает вылет лишних искр, углей и светящихся точек у настенных факелов, люстр и жаровен, сокращая время жизни пламени для разгрузки видеокарты.
- Пул объектов (Object Pooling): Эффекты попадания стрел (
vfx_arrowhit), ударов и искр больше не создаются и не уничтожаются через тяжелыеInstantiate/Destroy, а мгновенно переиспользуются из пула памяти. - Дистанционный куллинг эмиттеров: Автоматически снижает эмиссию или отключает далекие партиклы (с надежной защитой телепортов и ключевых сюжетных объектов).
🌐 Сеть, миникарта и предгенератор мира (Chunky)
- Повышенная пропускная способность: Расширяет лимит отправки сокетов
ZSteamSocketдо 512 КБ/с, устраняя рассинхронизацию на заселенных серверах. - Умная приоритезация пакетов ZDO: Сетевые пакеты игроков, кораблей и активных порталов всегда отсылаются в первую очередь.
- Троттлинг меток карты: Оптимизирует частоту обновления динамических пинов миникарты (раз в 4 кадра).
- Фоновый предгенератор мира Chunky: Консольный инструмент для заблаговременной плавной генерации мира вокруг игрока по спирали.
⌨️ Команды консоли Chunky (Консоль F5):
vpo_chunky_start <радиус> - Начать предгенерацию мира по спирали (например: vpo_chunky_start 10, макс. 40)
vpo_chunky_stop - Принудительно остановить текущую предгенерацию
vpo_chunky_status - Показать статус, текущую зону, прогресс и средний FPS
Примечание: Chunky автоматически становится на паузу, если текущий FPS падает ниже установленного вами порога.
🛡️ Динамический щит совместимости (Mod Conflict Guard)
VPO разработан с прицелом на стабильную работу в сборках из сотен модов. Защитник совместимости работает на двух уровнях:
- Глубокий динамический аудит Harmony: Напрямую опрашивает рантайм-реестр игры. Если сторонний мод перехватывает метод через Prefix или Transpiler (например, полностью подменяя ИИ или ландшафт), VPO автоматически изолирует и отключает соответствующий подмодуль, предотвращая поломку логики или краш.
- База встроенных правил:
- Expand World: Автоматически отключает кэш ландшафта и оптимизацию спавна растений VPO, передавая полный контроль Expand World.
- Creature Level and Loot Control (CLLC): Передает управление спавном, способностями и логикой атак модулям CLLC.
- ValheimRAFT: Отключает объединение статических сеток и физический LOD рядом с плавучими базами.
- PlanBuild: Отключает батчинг чертежей и полупрозрачных призрачных построек.
📥 Установка
Через менеджер модов (Рекомендуется)
- Установите r2modman или Thunderstore Mod Manager.
- Найдите в поиске Valheim Performance Overhaul от автора Skarif.
- Нажмите Download with Dependencies и запускайте игру.
Вручную
- Убедитесь, что у вас установлен BepInExPack Valheim.
- Скачайте архив мода и распакуйте содержимое в папку: Valheim/BepInEx/plugins/.
- Запустите игру и нажмите F6 для проверки работы!
⚙️ Конфигурация
Файл настроек создается автоматически по пути: Valheim/BepInEx/config/com.Skarif.ValheimPerformanceOverhaul_WATER.cfg
Любые параметры можно менять на лету прямо в игре через меню на клавишу F6 без перезапуска клиента.
💬 Контакты и поддержка разработчика
Discord: skarif_q
Steam: Skarif_W

