DiagnoseServerLag

v0.10.9·Updated 2026-10-09

Names the cause of lag instead of guessing. Measures your client and the server once a second and tells you which it is: starved server, saturated link, packet loss, object churn, world loading, or yo

About this mod Author’s original text

Diagnose Server Lag

Says which kind of lag you actually have, instead of guessing.

"The server is lagging" covers six unrelated failures. They feel identical while playing — the game goes sticky — and they have nothing in common but that. A starved server, a saturated link, a lossy connection, an overloaded base, a world still loading and a computer that cannot keep up each need a different fix, and picking the wrong one costs an evening. Worse, the measurement people reach for first actively misleads: a frame-rate counter reads perfectly fine while the server burns, because your machine has nothing to struggle with when the updates never arrive.

This mod measures both ends once a second, and names the cause.

What it tells you

Press F8 and the report opens with a verdict in plain language, the evidence it was decided from, and what is actually worth doing about it. For example:

The server is badly starved: 84 ms per tick sustained (12 per second).

Nothing on your machine will change this, and it is happening to everyone online at the same time.

  • tick 91.2 ms now, 84.4 ms median over the server's last 60s
  • worst single tick in that window 340 ms
  • 47 server stalls over the window
  • 18,402 networked objects in the world, 612/s sent to 3 players

or

Packets are being lost: connection quality 91.4%.

This is the network path, not the server and not your computer, so neither restarting the server nor turning settings down will touch it.

The six causes it separates:

| Cause | What proves it |

|---|---|

| Server starved | The server's own tick times, which a client cannot see at all |

| Link saturated | Bytes handed to the socket that have not left, and whether that number is climbing |

| Connection quality | Steam's measured packet-loss fraction, and ping jitter judged apart from latency |

| Object churn | Object updates per second against this server's own recent normal |

| World loading | Objects being built into the scene at the moment the frame stalled |

| Your machine | Frame times, but only claimed once the other five have been measured and ruled out |

More than one can be true at once and often is — a saturated link and heavy churn are usually one event seen from two ends — so the report ranks them and shows the rest under the headline.

Why it needs the server

The server half is the point of the mod. A client watching itself can tell you the game feels bad; only the server's own tick times can tell you whether the server was keeping up at the time, and that is the single measurement that decides whether anything on your machine is worth changing.

Without it the mod still works and still finds link saturation, packet loss, churn and loading — it simply cannot rule the server in or out, and it says so rather than quietly guessing:

The server is not running this mod, so it cannot be measured. Every verdict below is made from this machine's side alone, and "the server was fine" is the one thing it cannot tell you.

Installation

Install on the server and on every client (Gale, r2modman or Mod Manager, or drop DiagnoseServerLag.dll into BepInEx/plugins). Keep the same version everywhere.

  • Server without the mod: clients diagnose their own end and say the server half is missing. Nothing breaks.
  • Client without the mod: that player gets no report. Everyone else is unaffected.
  • Hosting the world yourself: both halves are the same process, and the server numbers are read directly with no asking involved.

Works on Windows and Linux dedicated servers. Requires BepInExPack for Valheim.

Keys (configurable)

| Key | Does |

|---|---|

| F8 | Open and close the report. Escape closes it too. |

| F7 | Turn the corner readout on and off. |

There is also a pause toggle in the report's top-right corner, the same mark used on the large map and GrabMaterials' inventory panel: gray when off, Valheim orange while the game really is paused, red with a slash when the pause was asked for and refused. It is off by default.

Pau

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
DiagnoseServerLag-0.10.9.zip
File size
117.2 KiB