MagiCorp-TickProfiler icon

TickProfiler

Valheim server tick profiler with ranked subsystem timing and an optional client-side F8 performance overlay.

CHANGELOG

Changelog

0.2.4

  • Fixed the client overlay on Valheim 1.0.12 by invoking non-public ZRoutedRpc.GetServerPeerID() through runtime reflection.
  • Eliminates repeated MethodAccessException spam and allows the client hello/snapshot exchange to proceed.

0.2.3

  • Reworked periodic server console output into a short health/stall summary plus a top-5 consumer table.
  • Detailed text and JSON snapshots remain unchanged.

0.2.2

  • Fixed the client overlay losing its snapshot RPC handler when Valheim replaces ZRoutedRpc during the frontend-to-world transition.
  • The client now detects each new routed-RPC instance, re-registers the snapshot handler, and immediately re-announces itself to the server.

0.2.1

  • Fixed the client overlay toggle on Valheim 1.0.12 by using Valheim's ZInput path instead of legacy UnityEngine.Input.
  • Added explicit client RPC registration and first-snapshot diagnostics.
  • Added server logging when an overlay client registers.

0.2.0

  • Added an optional client-side overlay, toggled with F8 by default.
  • Added server-to-client RPC snapshots for current Update/FixedUpdate rates, stalls, CPU/GC data and top consumers.
  • Client component is read-only and performs no profiling.
  • Server only sends profiler data to clients that have the overlay installed.
  • Kept the dedicated server profiler and client UI as separate DLLs so IMGUI is never loaded by the server plugin.

0.1.0

  • Initial release.
  • Reports server Update and FixedUpdate rates.
  • Detects frame/tick stalls and gap percentiles.
  • Profiles Valheim networking, ZDO replication, AI, spawning, item drops, structures, world systems and supported Harmony mod patches.
  • Writes periodic log output plus JSON and text snapshots.
  • Supports on-demand snapshots using BepInEx/tickprofiler.request.