sighsorry-SkadiNet icon

SkadiNet

Reduces network pressure and desync with adaptive ZDO scheduling, smarter ownership recovery, payload reduction, compression, and safe visual RPC filtering, all controlled by simple unified sliders.

Last updated 3 hours ago
Total downloads 133
Total rating 0 
Categories Mods Tweaks Server-side Client-side AI Generated
Dependency string sighsorry-SkadiNet-1.0.1
Dependants 1 other package depends on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
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.2333

README

SkadiNet

SkadiNet

SkadiNet is a Valheim networking optimization mod for BepInEx servers. It reduces network pressure and ownership-related desync with adaptive ZDO scheduling, smarter client ownership, payload reduction, negotiated compression, and conservative visual RPC filtering.

The config surface is intentionally small: each major system is controlled by one 0-100 slider. 0 disables that system.

Features

  • Adaptive ZDO send scheduler with queue pressure handling and lagging-peer backfill.
  • Fixed Steam socket send-rate ceiling at 36 MB/s while SkadiNet is enabled.
  • Vector3/Quaternion micro-update reducer for non-critical ZDO data.
  • Adaptive client ownership using distance, ping, jitter, owner load, cooldowns, and combat hints.
  • Negotiated Deflate compression with per-peer fallback after a compression/decompression failure.
  • Whitelist-only RPC AoI for safe visual RPCs such as DamageText and TalkerSay.
  • Optional client-side stutter guard that delays/coalesces GC.Collect during sensitive gameplay windows.
  • ServerSync-backed config sync.

Recommended Config

Start with the default profile:

[General]
Enabled = true
LockServerConfig = true
DebugLogging = false
SchedulerThroughput = 35
PayloadReducerStrength = 30
CompressionAggression = 50
OwnershipIntensity = 45
ClientStutterGuardStrength = 50
RpcAoiAggression = 35

Server-synced sliders: SchedulerThroughput, PayloadReducerStrength, CompressionAggression, OwnershipIntensity, RpcAoiAggression.

Client-local settings: DebugLogging, ClientStutterGuardStrength.

Presets

Use these as practical tuning points. Raise one area at a time when diagnosing a specific bottleneck.

Slider Conservative Recommended Worth Trying Aggressive Very Aggressive
SchedulerThroughput 20 35 50 70 85
PayloadReducerStrength 15 30 45 60 75
CompressionAggression 25 50 65 80 90
OwnershipIntensity 20 45 60 75 90
ClientStutterGuardStrength 25 50 65 80 90
RpcAoiAggression 15 35 50 65 80

Very Aggressive is a practical upper preset for strong servers and stable clients, not the absolute maximum. Values closer to 100 are best reserved for targeted testing.

Slider Guide

Slider Default Higher Values
SchedulerThroughput 35 Shorter send intervals, larger ZDO package caps, more peers per tick, faster lagging-peer backfill.
PayloadReducerStrength 30 More suppression of tiny repeated position/rotation updates.
CompressionAggression 50 Compresses smaller packages and accepts smaller bandwidth wins.
OwnershipIntensity 45 Scans farther/faster, uses stronger combat hints, and rejects poor ping/jitter candidates more strictly.
ClientStutterGuardStrength 50 Keeps longer GC protection windows when memory pressure allows it.
RpcAoiAggression 35 Uses a smaller visual radius for eligible safe visual RPCs.

Notes

  • SkadiNet does not make the server own every ZDO. It nudges ownership toward suitable nearby clients.
  • RPC AoI is whitelist-only and falls back to vanilla routing for unknown, directed, unresolved, global, animation/noise, and state-critical RPCs.
  • If every peer would receive an eligible RPC anyway, SkadiNet uses vanilla fanout.
  • Resources.UnloadUnusedAssets is not delayed or patched by ClientStutterGuard.
  • DebugLogging is useful for short diagnostics, but should stay off during normal play.

GitHub

https://github.com/sighsorry1029/SkadiNet