Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
TickProfiler
Valheim server tick profiler with ranked subsystem timing and an optional client-side F8 performance overlay.
By MagiCorp
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
MethodAccessExceptionspam 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
ZRoutedRpcduring 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
ZInputpath instead of legacyUnityEngine.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.