
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.Русский
VBNetTweaks — это плагин для Valheim, который значительно улучшает сетевую производительность, синхронизацию объектов и стабильность многопользовательской игры. Мод оптимизирует отправку данных, настройки Steam-сокета, синхронизацию позиций, а также добавляет модуль плавного отображения игроков на карте.
Важно: Версия 0.4.0 получила полностью переработанную модульную архитектуру. Теперь каждую функцию можно гибко включать или отключать по отдельности, а настройки разделены на клиентские и серверные.
1. Плавные маркеры игроков на карте (MapPositionSync)
Совершенно новый модуль!
- Заменяет "дергающиеся" маркеры игроков на карте на плавно интерполированные.
- Использует историю позиций (до 30 снимков) для сглаживания движения.
- Поддерживает экстраполяцию — если данные о позиции не приходят, маркер продолжает движение по инерции, предотвращая рывки.
- Настраиваемые параметры:
SendInterval(0.5с) — интервал отправки позиций от сервера.InterpolationDelay(0.1с) — задержка интерполяции для плавности.MaxPredictionSpeed(40 м/с) — ограничение скорости предсказания.TeleportThreshold(50 м) — порог мгновенного телепорта маркера при большом смещении.
2. Оптимизация сетевой синхронизации (ZSyncTransformOptimization)
Теперь это отдельный модуль с расширенными настройками:
| Параметр | Vanilla | VBNetTweaks (по умолчанию) | Описание |
|---|---|---|---|
SmoothPosition |
0.20 | 0.10 | Скорость сглаживания позиции (ниже = плавнее) |
SmoothRotation |
0.50 | 0.30 | Скорость сглаживания поворота |
MicroThreshold |
0.001 | 0.002 | Фильтр микродрожания (уменьшает шум) |
ClientDistanceThreshold |
0.01 | 0.005 | Порог дистанции для клиентской синхронизации |
TeleportDistanceThreshold |
5м | 3м | Порог для мгновенного телепорта без сглаживания |
TeleportRotationThreshold |
45° | 35° | Порог для мгновенного поворота без сглаживания |
3. Синхронизация кораблей (ShipSync)
Полностью переписан в версии 0.4.0!
- Исправлена проблема с владением кораблём — теперь владелец корректно назначается при управлении.
- Улучшена синхронизация руля — данные отправляются чаще (каждые 0.05с вместо ванильных ~0.2с).
- Более точный расчет урона от удара о воду с логированием скорости.
- Оптимизирована обработка управления — теперь использует
PrefixвместоPostfixдля более корректной работы.
4. Оптимизации Steam сокета (SteamOptimizations)
Расширенный набор настроек в версии 0.4.0:
| Параметр | Vanilla | VBNetTweaks (по умолчанию) | Описание |
|---|---|---|---|
SendRateMax (клиент) |
150 KB/s | 2048 KB/s | Максимальная скорость отправки |
SendBufferSize (клиент) |
~260 KB | 2048 KB | Размер буфера отправки |
TimeoutConnected |
30000 мс | 120000 мс | Таймаут соединения |
TimeoutKeepalive |
30000 мс | 30000 мс | Интервал Keep-Alive |
RecvMaxMessageSize |
~1-2 MB | 8 MB | Максимальный размер принимаемого сообщения |
Для сервера также доступны отдельные настройки: MaxRateKB_S, SendBufferSizeKB_S (по умолчанию 4096 KB).
5. Оптимизированная отправка ZDO (ZDOOptimization)
Значительно улучшена в версии 0.4.0!
- Внедрена система приоритетов синхронизации (
SyncPriority):Player— наивысший приоритетShipCreaturePieceDefault
- Сервер сортирует объекты по приоритету, что гарантирует более важным сущностям (игрокам, кораблям) более частые обновления.
- Настраиваемые параметры для сервера:
SendInterval_S(0.02с) — интервал отправки данных.PeersPerUpdate_S(10) — количество пиров за один апдейт (vanilla: 1).ZDOQueueLimit_S(20480 байт) — размер буфера отправки.FlushThresholdPercent_S(0.2) — процент от буфера для активации принудительной отправки.
6. Дополнительные улучшения
- Расширение времени загрузочного экрана после телепортации на 5 секунд. Необходимо для устранения проваливания игроков в текстуры построек при телепорте — особенно актуально для серверов с большим количеством игроков.
- Автоматическая синхронизация конфигурации — все настройки сервера передаются клиентам при подключении и при изменении файла конфига.
- Поддержка двух языков интерфейса (Русский / English) с локализованными описаниями.
Основные настройки (MainConfig.cfg)
[00 - Master]
ModEnabled = true # Включить/выключить мод
[02 - Modules]
SteamOptimizations = true # Оптимизации Steam сокета
ZDOOptimization = true # Оптимизация ZDO отправок
ShipSync = true # Синхронизация кораблей
ZSyncTransformOptimization = true # Сглаживание движения
MapPositionSync = true # Плавные маркеры на карте
[03 - Client Steam Settings]
MaxRateKB = 2048 # Макс. скорость отправки (KB/s)
SendBufferSizeKB = 2048 # Буфер отправки (KB)
TimeoutConnected = 120000 # Таймаут (мс)
TimeoutKeepalive = 30000 # Keep-Alive (мс)
RecvMaxMessageSize = 8 # Макс. размер пакета (MB)
[04 - Client ZDO Settings]
ZDOQueueLimit = 10240 # Буфер ZDO (байт)
[05 - Transform Settings]
SmoothPosition = 0.10 # Сглаживание позиции
SmoothRotation = 0.30 # Сглаживание поворота
MicroThreshold = 0.002 # Фильтр микродрожания
ClientDistanceThreshold = 0.005 # Порог дистанции
TeleportDistanceThreshold = 3 # Порог телепорта (м)
TeleportRotationThreshold = 35 # Порог телепорта поворота (°)
[06 - Server Steam Settings]
MaxRateKB_S = 4096 # Серверная скорость (KB/s)
SendBufferSizeKB_S = 4096 # Серверный буфер (KB)
[07 - Server ZDO Settings]
SendInterval_S = 0.02 # Интервал отправки (сек)
PeersPerUpdate_S = 10 # Пиров за апдейт
ZDOQueueLimit_S = 20480 # Буфер ZDO сервера (байт)
FlushThresholdPercent_S = 0.2 # Порог принудительной отправки
[08 - Map Positions]
SendInterval = 0.5 # Интервал отправки позиций (сек)
InterpolationDelay = 0.1 # Задержка интерполяции (сек)
MaxPredictionSpeed = 40 # Макс. скорость предсказания (м/с)
MaxPredictionTime = 0.05 # Макс. время предсказания (сек)
TeleportThreshold = 50 # Порог телепорта маркера (м)
Установка
- Установите на клиент и на сервер.
Несовместимые моды:
CacoFFF.valheim.LeanNetredseiko.valheim.scenicSearica.Valheim.NetworkTweaksSearica.Valheim.OpenSesameorg.bepinex.plugins.networkCW_Jesse.BetterNetworkingcom.Fire.FiresGhettoNetworkModsighsorry.SkadiNetredseiko.valheim.returntosendercom.maxsch.valheim.TimeoutLimitdzk.warheimnetwork
Обратная связь
- Личные сообщения открыты в Discord
- Либо через пинг
@VitByrна серверах: Valheim Modding, Odin Plus, Valheim
English
VBNetTweaks is a Valheim plugin that significantly improves network performance, object synchronization, and multiplayer stability. The mod optimizes data transmission, Steam socket settings, position synchronization, and adds a completely new system for smooth player markers on the map.
Important: Version 0.4.0 features a fully redesigned modular architecture. Each function can now be flexibly enabled or disabled separately, and settings are split into client and server categories.
1. Smooth Player Markers on Map (MapPositionSync)
Brand new module!
- Replaces "jumpy" player markers on the map with smoothly interpolated ones.
- Uses position history (up to 30 snapshots) for smooth movement.
- Supports extrapolation — if position data doesn't arrive, the marker continues moving by inertia, preventing stuttering.
- Configurable parameters:
SendInterval(0.5s) — interval for sending positions from the server.InterpolationDelay(0.1s) — interpolation delay for smoothness.MaxPredictionSpeed(40 m/s) — prediction speed limit.TeleportThreshold(50m) — threshold for instant marker teleportation on large displacement.
2. Network Synchronization Optimization (ZSyncTransformOptimization)
Now a separate module with extended settings:
| Parameter | Vanilla | VBNetTweaks (default) | Description |
|---|---|---|---|
SmoothPosition |
0.20 | 0.10 | Position smoothing speed (lower = smoother) |
SmoothRotation |
0.50 | 0.30 | Rotation smoothing speed |
MicroThreshold |
0.001 | 0.002 | Micro-jitter filter (reduces noise) |
ClientDistanceThreshold |
0.01 | 0.005 | Distance threshold for client sync |
TeleportDistanceThreshold |
5m | 3m | Threshold for instant teleport without smoothing |
TeleportRotationThreshold |
45° | 35° | Threshold for instant rotation without smoothing |
3. Ship Synchronization (ShipSync)
Completely rewritten in version 0.4.0!
- Fixed ship ownership issues — owner is now correctly assigned when controlling.
- Improved rudder synchronization — data is sent more frequently (every 0.05s instead of vanilla ~0.2s).
- More accurate water impact damage calculation with speed logging.
- Optimized control handling — now uses
Prefixinstead ofPostfixfor more reliable operation.
4. Steam Socket Optimizations (SteamOptimizations)
Extended settings in version 0.4.0:
| Parameter | Vanilla | VBNetTweaks (default) | Description |
|---|---|---|---|
SendRateMax (client) |
150 KB/s | 2048 KB/s | Maximum send rate |
SendBufferSize (client) |
~260 KB | 2048 KB | Send buffer size |
TimeoutConnected |
30000 ms | 120000 ms | Connection timeout |
TimeoutKeepalive |
30000 ms | 30000 ms | Keep-Alive interval |
RecvMaxMessageSize |
~1-2 MB | 8 MB | Maximum receive message size |
Server also has separate settings: MaxRateKB_S, SendBufferSizeKB_S (default 4096 KB).
5. Optimized ZDO Transmission (ZDOOptimization)
Significantly improved in version 0.4.0!
- Introduced synchronization priority system (
SyncPriority):Player— highest priorityShipCreaturePieceDefault
- Server sorts objects by priority, ensuring more important entities (players, ships) get more frequent updates.
- Configurable server parameters:
SendInterval_S(0.02s) — data send interval.PeersPerUpdate_S(10) — peers per update (vanilla: 1).ZDOQueueLimit_S(20480 bytes) — send buffer size.FlushThresholdPercent_S(0.2) — percentage of buffer for forced flush.
6. Additional Improvements
- Extended loading screen after teleportation by 5 seconds. Necessary to prevent players from falling through building textures after teleport — especially relevant for large servers.
- Automatic configuration synchronization — all server settings are sent to clients on connection and when the config file changes.
- Two language support (Russian / English) with localized descriptions.
Main Configuration (MainConfig.cfg)
[00 - Master]
ModEnabled = true # Enable/disable mod
[02 - Modules]
SteamOptimizations = true # Steam socket optimizations
ZDOOptimization = true # ZDO transmission optimization
ShipSync = true # Ship synchronization
ZSyncTransformOptimization = true # Movement smoothing
MapPositionSync = true # Smooth map markers
[03 - Client Steam Settings]
MaxRateKB = 2048 # Max send rate (KB/s)
SendBufferSizeKB = 2048 # Send buffer (KB)
TimeoutConnected = 120000 # Timeout (ms)
TimeoutKeepalive = 30000 # Keep-Alive (ms)
RecvMaxMessageSize = 8 # Max packet size (MB)
[04 - Client ZDO Settings]
ZDOQueueLimit = 10240 # ZDO buffer (bytes)
[05 - Transform Settings]
SmoothPosition = 0.10 # Position smoothing
SmoothRotation = 0.30 # Rotation smoothing
MicroThreshold = 0.002 # Micro-jitter filter
ClientDistanceThreshold = 0.005 # Distance threshold
TeleportDistanceThreshold = 3 # Teleport threshold (m)
TeleportRotationThreshold = 35 # Rotation teleport threshold (°)
[06 - Server Steam Settings]
MaxRateKB_S = 4096 # Server send rate (KB/s)
SendBufferSizeKB_S = 4096 # Server buffer (KB)
[07 - Server ZDO Settings]
SendInterval_S = 0.02 # Send interval (sec)
PeersPerUpdate_S = 10 # Peers per update
ZDOQueueLimit_S = 20480 # Server ZDO buffer (bytes)
FlushThresholdPercent_S = 0.2 # Flush threshold
[08 - Map Positions]
SendInterval = 0.5 # Position send interval (sec)
InterpolationDelay = 0.1 # Interpolation delay (sec)
MaxPredictionSpeed = 40 # Max prediction speed (m/s)
MaxPredictionTime = 0.05 # Max prediction time (sec)
TeleportThreshold = 50 # Marker teleport threshold (m)
Installation
- Install on both client and server.
Incompatible mods:
CacoFFF.valheim.LeanNetredseiko.valheim.scenicSearica.Valheim.NetworkTweaksSearica.Valheim.OpenSesameorg.bepinex.plugins.networkCW_Jesse.BetterNetworkingcom.Fire.FiresGhettoNetworkModsighsorry.SkadiNetredseiko.valheim.returntosendercom.maxsch.valheim.TimeoutLimitdzk.warheimnetwork
Feedback
- Direct messages open on Discord
- Or via ping
@VitByron servers: Valheim Modding, Odin Plus, Valheim