ValheimTune

v0.7.9·Updated 2026-10-06

Server-side performance patches for Valheim dedicated servers. Object sync 4.1ms -> 0.09ms per call on a 700k-object world. Players install nothing, wire format untouched. Valheim 1.0 ready.

About this mod Author’s original text

ValheimTune

✅ Valheim 1.0.17 ready

0.7.9 runs on game 1.0.17 (network version 40), and still on 1.0.16, 1.0.15,

1.0.14 and 1.0.12 (40) and 1.0.7 (39). 0.7.9 is 0.7.8 rebuilt for 1.0.17;

0.7.7 fixed three vanilla bugs any 1.0

server has — player edits skipped by the incremental save, spawners duplicating

creatures after a restart, and a 100 ms server freeze on every disconnect — plus

two sync gaps found in review. It has not been booted on 1.0.17 — read the

CHANGELOG before you deploy it.

Upgrading from 0.7.6, 0.7.7 or 0.7.8 needs no config edit.

Running game 0.221.12? Use 0.6.0 instead — the

version gate will refuse to apply these patches to an older build.: Akoozie-ValheimTune

Makes a Valheim dedicated server with a big base and a handful of players feel

like a small one.

Server-side only — players install nothing. Every change is on the server,

the wire format is untouched, and vanilla clients connect exactly as before.

game 1.0.17, 1.0.16, 1.0.15, 1.0.14 and 1.0.12 (network version 40), 1.0.7 (39), dedicated server only

needs BepInEx 5.4.x

status 0.7.9 (= 0.7.7 code) is the 1.0.17 rebuild with 0.7.7's vanilla bug fixes. Every method this

plugin patches is byte-identical between 1.0.16 and 1.0.17

(decompile diff), it compiles against the 1.0.17 assemblies and

its unit tests pass - but it has NOT been booted on 1.0.17. 0.7.0

WAS verified live on 1.0.7, 2026-09-09: 698,000 objects, a

12,000-instance base, 2-6 players.

Why

Measured on that server, not modelled:

| | Vanilla | ValheimTune |

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

| Sync scan, per player per round | 4.1 ms | 0.07 ms |

| Autosave | 381 ms freeze in one frame | 6 ms slices over ~350 frames |

| Join sync cost | ~11 ms per call | ~5.5 ms |

| Join stream rate | 1,261 objects/s | 3,617 objects/s |

| Server frame rate | 30 fps, hard-capped | 60 fps |

| Relayed updates, 2 players at a base | baseline | ~55 % fewer |

Every knob defaults to vanilla except the ones proven live. What each number

comes from is in How it works.

Requirements

  • Valheim dedicated server (Steam app 896660). Not the in-client host.
  • BepInEx 5.4.x for Valheim (BepInExPack_Valheim).
  • Game version listed in [Compat] KnownGoodBuilds (currently 1.0.7, 1.0.12, 1.0.14, 1.0.15, 1.0.16, 1.0.17).

On any other version the plugin runs in vanilla + measurement mode and says

so in the log.

Install —

Akoozie-ValheimTune. Note that mod managers install to a client profile; for

a dedicated server you still need the DLL on the server, so the manual

steps below are the normal route.

  • Install BepInEx on the server. With the lloesche/valheim-server Docker

image that is BEPINEX=true in server.env.

  • Drop ValheimTune.dll into BepInEx/plugins/ (Docker:

config/bepinex/plugins).

  • Restart. The config file appears at BepInEx/config/akoozie.valheimtune.cfg.
  • Check the log for:

[ValheimTune] 0.7.9 loaded on game 1.0.17 (net 40), 18 methods patched, replacements on

[ValheimTune] SendZDOs window 10240/2048, 3 constants replaced (expected 3)

Recommended settings

What runs on the reference server. Apply one at a time and read the stats line

between changes. Most knobs take effect within 5 seconds without a restart.

[Server]

TargetFrameRate = 60

[Sync]

SendWindowBytes = 32768

MinHeadroomBytes = 4096

AllPeersPerRound = true

RelayMinIntervalMs = 200

[Steam]

SendRateMaxBytesPerSec = 1048576

DirtySets and TopKSort are already on by default.

Upgrading from an earlier release

Drop the new DLL in and restart - no config edit needed. A new plugin

version never rewrites an existing akoozie.valheimtune.cfg (BepInEx only

writes a default when the key is absent), so your file still says

KnownGoodBuilds = 1.0.7. As of 0.7.1 that no longer costs you anything: the

list shipped in the release is treated as a floor, and your config can only

add to it. You will see this once on boot:

[ValheimTune] game 1.0.17 is not in your KnownGoodBuilds (1.0.7) but ships in

this release (1.0.7, 1.0.12, 1.0.14, 1.0.15, 1

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
ValheimTune-0.7.9.zip
File size
47.9 KiB