Valheim
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
yesterday
Downloads
14K
Size
102KB
Dependency string
VitByr-VBNetTweaks-0.4.0
ADDatHost Valheim hosting
30% off!
Русский

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 Порог для мгновенного телепорта без сглаживания
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 — наивысший приоритет
    • Ship
    • Creature
    • Piece
    • Default
  • Сервер сортирует объекты по приоритету, что гарантирует более важным сущностям (игрокам, кораблям) более частые обновления.
  • Настраиваемые параметры для сервера:
    • 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.LeanNet
  • redseiko.valheim.scenic
  • Searica.Valheim.NetworkTweaks
  • Searica.Valheim.OpenSesame
  • org.bepinex.plugins.network
  • CW_Jesse.BetterNetworking
  • com.Fire.FiresGhettoNetworkMod
  • sighsorry.SkadiNet
  • redseiko.valheim.returntosender
  • com.maxsch.valheim.TimeoutLimit
  • dzk.warheimnetwork

Обратная связь


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 Prefix instead of Postfix for 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 priority
    • Ship
    • Creature
    • Piece
    • Default
  • 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.LeanNet
  • redseiko.valheim.scenic
  • Searica.Valheim.NetworkTweaks
  • Searica.Valheim.OpenSesame
  • org.bepinex.plugins.network
  • CW_Jesse.BetterNetworking
  • com.Fire.FiresGhettoNetworkMod
  • sighsorry.SkadiNet
  • redseiko.valheim.returntosender
  • com.maxsch.valheim.TimeoutLimit
  • dzk.warheimnetwork

Feedback


Thunderstore development is made possible with ads. Please consider making an exception to your adblock.