VitByr-VBNetTweaks icon

VBNetTweaks

VBNetTweaks is a comprehensive optimization mod for Valheim's multiplayer experience. Designed to improve performance on both servers and clients, reduce lag and stuttering, optimize network traffic, and enhance player synchronization.

Last updated a day ago
Total downloads 176
Total rating 1 
Categories Tweaks Ashlands Update
Dependency string VitByr-VBNetTweaks-0.1.51
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202

README

Русский

📋 Общая информация

VBNetTweaks — это комплексный мод для оптимизации сетевой игры в Valheim. Мод разработан для улучшения производительности как на сервере, так и на клиенте, уменьшения лагов и дерганий, оптимизации сетевого трафика и синхронизации игроков.

  • Обратная связь - связаться со мной можно через пинг меня "VitByr" в таких дискорд-серверах: Valheim Modding, Odin Plus, Valheim (официальный IronGate).

Версия: 0.1.5


🎯 Основные функции

1. Оптимизация сети и ZDO

  • Приоритизация ZDO объектов — игроки, корабли с игроками, мобы и важные объекты получают более высокий приоритет при отправке
  • Лимитирование ZDO — ограничение количества отправляемых ZDO за тик (до 350)
  • Троттлинг дальних ZDO — снижение частоты обновления объектов за пределами указанной дистанции
  • Кэширование расстояний — предотвращение повторных вычислений дистанции

2. Синхронизация игроков

  • Сглаживание движений — интерполяция позиций удаленных игроков для устранения рывков
  • Предикшен — прогнозирование движений игроков между сетевыми обновлениями для более плавного отображения
  • Приоритет обновлений — повышение частоты обновления позиций игроков на сервере

3. Синхронизация кораблей

  • Отслеживание игроков на кораблях — определение, какие игроки находятся на корабле
  • Коррекция позиций — сглаживание позиций игроков относительно движущегося корабля
  • Синхронизация прикрепления — корректная синхронизация игроков, сидящих на стульях или управляющих кораблем
  • Сглаживание движения кораблей — интерполяция движения кораблей для удаленных клиентов

4. Оптимизация AI

  • LOD для AI — снижение частоты обновления AI для существ, находящихся далеко от игроков
  • Экономия ресурсов сервера — уменьшение нагрузки на CPU за счет редкого обновления дальних мобов

5. Сетевые оптимизации

  • Адаптивный троттлинг — динамическое изменение интервала отправки данных на основе пинга клиентов
  • Батчинг RPC — объединение множества мелких RPC вызовов в один пакет
  • Оптимизация Steam — увеличение лимитов скорости отправки Steam (SendRate)
  • Сжатие данных — опциональное сжатие сетевых пакетов (Deflate/Zstd)

6. Оптимизация памяти

  • Пул объектов — переиспользование списков и ZPackage для уменьшения аллокаций
  • Кэш игроков — централизованное хранение данных об игроках для быстрого доступа

7. Управление событиями и спавном

  • Учет всех игроков — исправление механик, которые раньше учитывали только локального игрока (события, спавн монстров)

🔧 Что можно настроить

Настройки сети (сервер + клиент)

Настройка Описание По умолчанию
EnableCompression Включить сжатие сетевых пакетов true
CompressionAlgorithm Алгоритм сжатия: Deflate или Zstd Deflate
EnableSteamSendRateOverride Применять настройки скорости отправки Steam true
SteamSendRateMinKB Минимальная скорость отправки (КБ/с) 256
SteamSendRateMaxKB Максимальная скорость отправки (КБ/с) 1024
SteamSendBufferSize Размер буфера отправки Steam (байт) 100 000 000

Настройки сервера (только для сервера)

Настройка Описание По умолчанию
EnableNetSync Включить новую систему синхронизации true
SendInterval Интервал отправки данных (секунды) 0.05
PeersPerUpdate Количество пиров для обработки за апдейт 20
EnableZDOThrottling Снижать частоту обновления для дальних ZDO true
ZDOThrottleDistance Дистанция троттлинга ZDO (метры) 500
EnablePlayerPositionBoost Повысить приоритет обновления позиций игроков true
PositionUpdateMultiplier Множитель приоритета синхронизации игроков 2.5

Настройки AI (только для сервера)

Настройка Описание По умолчанию
EnableAILOD Уменьшать частоту обновления AI для дальних существ true
AILODNearDistance Дистанция полной скорости AI (метры) 100
AILODFarDistance Дистанция замедления AI (метры) 300
AILODThrottleFactor Коэффициент замедления для дальнего AI 0.5

Настройки клиента

Настройка Описание По умолчанию
EnableClientInterpolation Сглаживать движения других игроков true
EnableClientPrediction Прогнозировать движения игроков true

Отладка

Настройка Описание По умолчанию
DebugEnabled Включить отладочный вывод false
VerboseLogging Подробное логирование false

🛡️ С чем помогает бороться

На сервере:

  • Высокая нагрузка CPU — оптимизация AI и ZDO снижает нагрузку
  • Перегрузка сети — троттлинг дальних объектов и батчинг RPC уменьшают трафик
  • Задержки при большом количестве игроков — адаптивный троттлинг подстраивается под пинг

На клиенте:

  • Дерганья игроков — интерполяция и предикшен создают плавное движение
  • Дерганья на кораблях — специальная синхронизация для кораблей
  • Лаги при движении корабля — сглаживание позиций корабля
  • Проблемы с синхронизацией сидящих на стульях — RPC синхронизация прикрепления

Общие проблемы:

  • Потеря пакетов — адаптивный троттлинг и батчинг уменьшают влияние
  • Фризы при загрузке зон — оптимизированное удаление объектов
  • Утечки памяти — пулы объектов предотвращают лишние аллокации

📊 Производительность

  • Мониторинг времени выполнения — отслеживание медленных операций (>10ms)
  • Сбор статистики — усредненные показатели производительности
  • Очистка пулов при смене сцены для предотвращения утечек

🔌 Совместимость

  • Работает как на выделенном сервере, так и на клиенте
  • Серверные настройки автоматически синхронизируются с клиентами
  • Корректная работа с другими модами благодаря грамотным Harmony патчам

🚀 Рекомендации

Для оптимальной работы рекомендуется:

  • На сервере с большим количеством игроков включить EnableAILOD и EnableZDOThrottling
  • Для слабых интернет-соединений увеличить SteamSendRateMinKB
  • При проблемах с памятью убедиться, что EnableNetworkCompression включен
  • Для отладки включить DebugEnabled и проанализировать логи PerformanceMonitor'а

Мод значительно улучшает сетевой опыт в Valheim, делая игру более плавной и отзывчивой как на мощных серверах, так и на слабых клиентах!

English

📋 Overview

VBNetTweaks is a comprehensive optimization mod for Valheim's multiplayer experience. Designed to improve performance on both servers and clients, reduce lag and stuttering, optimize network traffic, and enhance player synchronization.

  • Feedback - you can contact me by pinging me "VitByr" in such discord servers: Valheim Modding, Odin Plus, Valheim (official IronGate).

Version: 0.1.5


🎯 Core Features

1. Network & ZDO Optimization

  • ZDO Object Prioritization — players, ships with players, mobs, and important objects receive higher send priority
  • ZDO Limiting — caps ZDOs sent per tick (up to 350)
  • Distant ZDO Throttling — reduces update frequency for objects beyond specified distance
  • Distance Caching — prevents redundant distance calculations

2. Player Synchronization

  • Movement Smoothing — interpolates remote player positions to eliminate stuttering
  • Prediction — extrapolates player movement between network updates for smoother visuals
  • Update Priority — increases player position update frequency on the server

3. Ship Synchronization

  • Player Tracking on Ships — detects which players are aboard ships
  • Position Correction — smooths player positions relative to moving ships
  • Attachment Sync — properly synchronizes players sitting on chairs or controlling ships
  • Ship Movement Smoothing — interpolates ship movement for remote clients

4. AI Optimization

  • AI LOD — reduces update frequency for creatures far from players
  • Server CPU Savings — lowers server load by throttling distant mobs

5. Network Optimizations

  • Adaptive Throttling — dynamically adjusts send intervals based on client ping
  • RPC Batching — combines multiple small RPC calls into single packets
  • Steam Optimization — increases Steam send rate limits
  • Data Compression — optional network packet compression (Deflate/Zstd)

6. Memory Optimization

  • Object Pooling — reuses lists and ZPackages to reduce allocations
  • Player Cache — centralized player data storage for fast access

7. Event & Spawn Management

  • Multi-Player Awareness — fixes mechanics that previously only considered the local player (events, monster spawning)

🔧 Configurable Options

Network Settings (Server + Client)

Setting Description Default
EnableCompression Enable network packet compression true
CompressionAlgorithm Compression algorithm: Deflate or Zstd Deflate
EnableSteamSendRateOverride Apply Steam send rate settings true
SteamSendRateMinKB Minimum send rate (KB/s) 256
SteamSendRateMaxKB Maximum send rate (KB/s) 1024
SteamSendBufferSize Steam send buffer size (bytes) 100,000,000

Server Settings (Server Only)

Setting Description Default
EnableNetSync Enable new synchronization system true
SendInterval Data send interval (seconds) 0.05
PeersPerUpdate Peers processed per update 20
EnableZDOThrottling Reduce update frequency for distant ZDOs true
ZDOThrottleDistance ZDO throttling distance (meters) 500
EnablePlayerPositionBoost Boost player position update priority true
PositionUpdateMultiplier Player sync priority multiplier 2.5

AI Settings (Server Only)

Setting Description Default
EnableAILOD Reduce AI update frequency for distant creatures true
AILODNearDistance Full-speed AI distance (meters) 100
AILODFarDistance AI throttling distance (meters) 300
AILODThrottleFactor Distant AI slowdown factor 0.5

Client Settings

Setting Description Default
EnableClientInterpolation Smooth other players' movement true
EnableClientPrediction Predict player movement true

Debug Settings

Setting Description Default
DebugEnabled Enable debug output false
VerboseLogging Detailed logging false

🛡️ Problems Solved

On the Server:

  • High CPU Load — AI and ZDO optimizations reduce server load
  • Network Congestion — distant object throttling and RPC batching decrease traffic
  • Lag with Many Players — adaptive throttling adjusts to ping

On the Client:

  • Player Stuttering — interpolation and prediction create smooth movement
  • Ship-Related Stuttering — specialized ship synchronization
  • Ship Movement Lag — smooths ship positions
  • Seated Player Sync Issues — RPC-based attachment synchronization

General Issues:

  • Packet Loss — adaptive throttling and batching minimize impact
  • Zone Loading Freezes — optimized object removal
  • Memory Leaks — object pools prevent excessive allocations

📊 Performance

  • Execution Time Monitoring — tracks slow operations (>10ms)
  • Statistics Collection — averages performance metrics
  • Pool Clearing — prevents memory leaks on scene changes

🔌 Compatibility

  • Works on both dedicated servers and clients
  • Server settings automatically sync with clients
  • Compatible with other mods thanks to proper Harmony patching

🚀 Recommendations

For optimal performance:

  • On servers with many players, enable EnableAILOD and EnableZDOThrottling
  • For poor internet connections, increase SteamSendRateMinKB
  • If experiencing memory issues, ensure EnableNetworkCompression is enabled
  • For debugging, enable DebugEnabled and analyze PerformanceMonitor logs

This mod significantly improves Valheim's multiplayer experience, making gameplay smoother and more responsive on both powerful servers and weaker clients!