SkadiNet
Reduces network pressure and desync with peer-aware pacing, safer ownership recovery, payload reduction, negotiated compression, optional dungeon-layer filtering, and client-side stutter protection.
Screenshots 1 screenshots
About this mod Author’s original text
SkadiNet
SkadiNet helps Valheim multiplayer feel smoother by sending world updates efficiently and reducing unnecessary network traffic.
Install it on the server and clients, then play normally. The default settings are recommended for most servers.
The server and every player must use the same SkadiNet version.
What it does
- Schedules world updates at a steady rate for each player.
- Gives Steam more send-rate and queue headroom for busy servers and large initial syncs.
- Reduces tiny repeated movement and rotation updates.
- Compresses network data when both sides support it.
- Recovers object ownership when a player disconnects.
- Delays forced cleanup during loading, teleporting, combat, and ship travel to reduce client stutter.
- Can keep surface and dungeon objects in separate network layers, reducing unnecessary world updates on large dungeon servers.
When an optimization cannot be used safely, SkadiNet falls back to normal Valheim behavior.
Settings
Most tuning features use one 0-100 slider. 0 turns that feature off, while higher values make it more aggressive. Dungeon layers use a simple on/off setting.
| Setting | What it changes |
|---|---|
| DungeonLayerFiltering | Separates surface and dungeon objects. It is off by default; enable it only when your server benefits from large or custom dungeons. |
| DungeonLayerAlwaysSendPrefabs | Compatibility fallback for custom dungeons built from ordinary pieces. Add actual entrance-floor ZDO prefab names only if the entrance or start area fails to load. Standard and normally structured modded dungeons need no entries. |
| SchedulerThroughput | Serves more players per tick and allows a larger ZDO queue. Higher values may reduce delay but use more CPU and queue more data. |
| PayloadReducerStrength | Filters more tiny repeated updates. Higher values save traffic but may make unimportant motion slightly less smooth. |
| CompressionAggression | Compresses more packets. Higher values save more bandwidth but use more CPU. |
| OwnershipIntensity | Checks and repairs object ownership more actively. Higher values can improve responsiveness but perform more checks. |
| ClientStutterGuardStrength | Protects busy moments from forced cleanup for longer. Cleanup may happen later instead. |
The server and listed Valheim admins control the networking settings; other players receive them as read-only. DungeonLayerFiltering and its prefab list are shared with every player. ClientStutterGuardStrength is personal to each player.
When dungeon layers are enabled, SkadiNet keeps essential terrain and teleport objects loaded on both layers, sends player and dungeon-generator data ahead of time, and keeps the previous layer for 2.5 seconds during a transition. Ownership normally stays on the same layer; LocationProxy bridge objects may cross layers so static dungeon interactions such as boss altars keep working.
Valheim's explicit priority updates can still cross layers for safety, but off-layer objects are not shown.
Leave DungeonLayerAlwaysSendPrefabs empty unless a building-piece custom dungeon cannot be entered. In that case, add the actual entrance-floor ZDO prefab name (for example, Ice_floor), not the dungeon, location, or room name. This setting pre-sends data; it does not make off-layer objects visible.
If Dungeon Splitter is installed, SkadiNet automatically leaves its own dungeon-layer filter off to avoid both mods changing the same world lists.
Use Enabled as the master switch.
While enabled, SkadiNet sets Steam's send rate to 50 MB/s and its send buffer to 100 MB.
Do not install Network or NetworkTweaks alongside SkadiNet because they change the same Steam settings.
Links
GitHub
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: