kou fixdesync

v1.0.1·Updated 2026-09-09

A mod that helps desync/lag in valheim. Server can tune configs to find the best setup.

About this mod Author’s original text

kou_fixdesync

Quality-of-life mod that fixes multiplayer desync and lag in Valheim by

removing the game's artificial network throttles. Built for Steam/PC dedicated

servers and clients. Players without the mod can still join — the mod never

changes the network message format.

The problem

Valheim syncs the world through ZDOs (zone data objects). By default the game:

  • Caps outstanding sync data at 10 KB per player — including bytes already

sent but not yet acknowledged. On any connection with real latency this

throttles world updates to a trickle, and high-ping players (overseas friends)

get starved almost completely. This is why chests take 10-30 seconds to open,

mobs freeze or teleport, and other players rubber-band.

  • Updates one player per frame, round-robin — the more players online, the

less often each one gets updates.

  • Pins Steam's send rate to a fixed 150 KB/s and disables its congestion

control by setting min = max.

  • Only syncs distant-zone objects when almost nothing else is queued, so

far-away terrain and builds stay stale.

  • Hands mob simulation to whichever nearby player claims it first — regardless

of that player's ping — so one laggy player makes mobs lag for everyone.

What the mod does

| Feature | Default game | With mod |

|---|---|---|

| Send window | 10 KB fixed | 60 KB default, automatically scales with each player's ping (window = target rate x round-trip time), hard-capped at 256 KB for safety |

| Update cadence | 1 player per frame | Every player, every 50 ms tick |

| Steam send rate | 150 KB/s pinned | 256 KB/s - 1 MB/s, congestion control active |

| Distant object sync | Threshold 10 | Threshold 30 |

| Mob simulation ownership | First-come | Lowest-ping player; migrates mobs off players over 150 ms ping when a player under 80 ms is nearby (10 s cooldown so it never flaps) |

Every feature can be turned on/off and tuned individually.

Install

Server (required):

  • Install BepInExPack for Valheim (the dependency listed above).
  • Put kou_fixdesync.dll into BepInEx/plugins.
  • Start the server once to generate the config, then tune

BepInEx/config/kou.fixdesync.cfg.

Clients (recommended): same steps. Server-only already fixes most of the lag

(everything you receive); installing on clients also fixes what others see

of you, because each client sends its own player/mob data through the same

throttled path. Players without the mod can still join normally.

The server dictates the config

You only ever need to edit the server's config file. When a modded client

joins, the server pushes its settings to that client automatically over a

custom RPC; the client applies them for the session and reverts on disconnect.

Clients can never push settings to the server.

Configuration (BepInEx/config/kou.fixdesync.cfg)

[1.SendWindow] — the main desync fix

  • Enabled (default true) — enlarge the per-player send window.
  • WindowBytes (default 61440) — window size in bytes. Clamped 10240-262144.
  • MinWindowBytes (default 2048) — minimum free window before a batch is sent.
  • PingAdaptive (default true) — scale each player's window with measured ping

so high-ping players are not starved. Strongly recommended for international servers.

  • TargetRateKBps (default 300) — per-player target rate used by the adaptive scaling.

[2.SendCadence]

  • Enabled (default true) — service all players every tick instead of one per frame.
  • SendIntervalMs (default 50) — tick interval. Lower = snappier, more CPU/bandwidth. Clamped 20-200.

[3.SteamRates]

  • Enabled (default true) — raise Steam's socket rate limits.
  • SendRateMinKBps (default 256) / SendRateMaxKBps (default 1024) —

keep max above min so Steam's congestion control can adapt to bad routes.

[4.DistantSync]

  • Enabled (default true), DistantThreshold (default 30) — how eagerly

distant-zone objects are synced. Raise if far-away builds appear late.

[5.SmartOwnership] — server only

  • Enabled (default true) — ping-aware mob simulation assignment.
  • PingCeilingMs (default 150) — m

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. 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.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. 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.

Dependencies

Install these first, or the mod will not work:

denikson-BepInExPack_Valheim

File & checksum

Filename
kou_fixdesync-1.0.1.zip
File size
83.4 KiB