ValheimTune
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.
模組介紹 作者原文
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
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。
下面這些內容需要先安裝,否則該模組不會生效: