Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
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.
| Date uploaded | a day ago |
| Version | 0.4.0 |
| Download link | VitByr-VBNetTweaks-0.4.0.zip |
| Downloads | 215 |
| Dependency string | VitByr-VBNetTweaks-0.4.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2333ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.26.1README
Русский
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
CHANGELOG
0.4.0
- The RPC filter was removed because it created problems
- Added ZSyncTransform settings to the configuration
- Several settings have been divided into client settings (synchronized from the server to all clients) and server settings (applied only on the server and not sent to clients)
- The VBMapPingSmooth mod has been completely redesigned and integrated here (if there is one in the build, then you need to remove it)
- Added the ability to change the configuration description language (VitByr.VBNetTweaks.cfg) to English (Russian is still the default)
- ZDO optimization has been updated and now "players, mobs, ships" are sent first
- The Steam patch has been completely rewritten (it should now work on Linux)
- The config with the settings has been renamed, as well as the default values have been revised
0.3.8
- RPC filter by hotspot radius. It is necessary to disable ZenLib in the configuration, because it has a similar function. My filter contains specific RPCs that are not needed by players who are in other active areas.
- A fix has been added to reduce the false triggering of damage to the ship on the waves when moving.
- ZDO optimization. It is necessary to disable ZenLib in the configuration, because it has a similar function. Fixed a bug with dummy effects hanging in the air (drops in the air from mobs, etc.)
- Code optimization
0.3.0
- The compression was completely cut out (either it didn't work or it made it worse)
- Updated patch for Steam
- Fixed the module for synchronization on ships (it should get better at least in half of the cases)
- The description has been corrected for the current version of the mod
0.2.9
- The patch crutch for dummy effects has been removed
- Deleting objects no longer intercepts the vanilla system
- Compression is controlled by a single config, i.e. either to the server +client, or nowhere else.
0.2.8
- The compressor has been redesigned. Now there's only one type. It should work more stably and stop visual dummies appearing.
- The patch for Steam has also been simplified - the error on the Linux servers should be fixed.
0.2.7
- Fixed compressor type synchronization
0.2.6
- The RPCBatcer, ZDOTrotling, and ZoneOwner modules have been removed (essentially useless)
- Steam patches are now being applied correctly
- The configuration is syncing correctly with the server
- ZSTD compression has been removed, as it is poorly compatible with Valheim, especially with mods
- Added Vanilla compression - uses game compression, which is disabled by default
- Added a patch to increase the ZDO buffer
- Added a patch for ZSyncTransform for smoother interpolation (not included in the configuration)
- The configuration settings are selected for the smoothest possible operation, as well as the vanilla values of the game.
0.2.4
- Deleted AILod, MonsterAIPatch, and SupportManager because they are not related to the network component
- Compression has been fixed - now it works both ways on the client and server
0.2.2
- Half of the code has been redesigned
- Almost all checks on the server/client have been removed
- Some default settings have been changed for servers with online 40+
0.2.0
- Split the compression switch. Now the server does compression by default, but the client does not do it by default, because it found that there is a problem with compression on the client (visual effects from status effects remain in the empty place where the mob was. For example, drops of water)
- Added configuration synchronization. The main configuration is client-side. The synced config is located at "BepInEx\config\VitByr\VBNetTweaks"
- The problem for Ubuntu servers should be fixed (from the previous version)
0.1.95
- Adjusting configurations
- Added the ability to disable modules - up to the entire mod. I need to restart the server and client, because I haven't done any synchronization yet.
- A small fix for Spawn and AILod
0.1.9
- cleaned the code from unnecessary comments and put it in order.
- made the compression configuration more convenient for the ConfigurationManager (now you don't need to write in text - there will be a list)
- added several additional checks for more stable operation
0.1.8
- A small patch fix
- Added Owner switching. If the Owner of an area with a bad ping and there is a player with a better ping in that area, then Ownership passes to that player. (Experimental)
- The raid system has been changed. Now several raids are possible at the same time and they are not paused. (Experimental)
- Added a config for setting the compression level
0.1.7
- Add Incompatibility LeanNet
- Add Incompatibility Scenic
- Add Incompatibility NetworkTweaks
- Add Incompatibility OpenSesame
- Add Incompatibility Network
- Add Incompatibility BetterNetworking
- Add new config CompressionLevel
- Add WearNTear Support Patch (Support checks are performed a little less frequently.)
0.1.5.1
- Edit Readme
0.1.5
- Relise