Source-checkedAdmin & protection

TickProfiler

by MagiCorp · for Valheim

Valheim 1.0 performance profiler with real-time TPS deadlines, hitch forensics, safe mod attribution, runtime context and client graphs.

942Downloads
47d agoLast updated
BepInExLoaders
ThunderstoreSource

About TickProfiler

From Thunderstore

Valheim 1.0 performance profiler with real-time TPS deadlines, hitch forensics, safe mod attribution, runtime context and client graphs.

MagiCorp Valheim TickProfiler

TickProfiler 1.0 is a Valheim dedicated-server and client performance profiler focused on real-time tick deadlines, main-thread hitches, and safe mod attribution.

Server profiler

The dedicated-server component records:

  • Effective 50 Hz FixedUpdate rate based on real wall-clock deadlines. Unity catch-up bursts never repay deadlines that were already missed.
  • Correct pending-deadline accounting when a stall crosses a report boundary.
  • Main Update throughput, p95/p99/worst gaps, stall count, excess wall time and cumulative hitch buckets.
  • Event-correlated hitch attribution with confidence levels. Managed GC is reported as observed during a hitch rather than automatically blamed.
  • Safe BepInEx plugin-loop attribution for Update, FixedUpdate and LateUpdate. TickProfiler never instruments another mod's Harmony Prefix/Postfix/Finalizer methods.
  • Harmony patch-owner context for game methods, reported as involved mods rather than assumed causes.
  • Runtime context including players, ZDO count, active objects, loaded/generated zones, thread count and VM network throughput.
  • Process RSS/private memory, managed heap, GC collections and CPU usage.
  • TickProfiler self-overhead, timed calls/sec, output queue depth and exception-stack recovery count.
  • Optional 1-in-N sampling for deep/high-frequency game methods. Aggregate rates are scaled while worst-call values remain observed values.

The first 45 seconds are ignored by default so scene/world startup does not pollute runtime hitch statistics.

Hitch forensics

Significant hitches can create JSON captures under:

BepInEx/tickprofiler-forensics/

Each capture includes the hitch duration, estimated missed fixed deadlines, attribution/confidence, runtime context and the preceding performance samples. File output is serialized on a background worker so slow storage does not block the Valheim main thread.

Output

Normal output is written to:

  • BepInEx/LogOutput.log
  • BepInEx/tickprofiler-latest.txt
  • BepInEx/tickprofiler-status.json
  • BepInEx/tickprofiler-forensics/*.json for qualifying hitches

Touch BepInEx/tickprofiler.request to request an immediate full snapshot. The request file is polled at a configurable low rate rather than once per frame.

Client overlay

Install the same package on a Windows Valheim client and press F8 to toggle the overlay.

The client shows:

  • Local FPS/frame-gap timing, stalls, CPU, RSS, managed memory and GC activity.
  • Server effective tick rate and Update rate.
  • Server runtime context and TickProfiler self-overhead.
  • Top server consumers.
  • Rolling five-minute client and server graphs.
  • Exact server hitch-event markers at the time the hitch occurred rather than only at the next periodic snapshot.
  • Snapshot age, server-side Steam transport ping for every connected player, and server/client protocol compatibility.

TickProfiler 1.0 uses protocol v2 while retaining legacy v1 hello/snapshot compatibility with 0.x clients/servers where possible. Overlay text is cached between refreshes to avoid allocating new strings every render frame.

Important server settings

Created in BepInEx/config/magicorp.valheim.tickprofiler.cfg:

  • ReportIntervalSeconds = 10
  • OverlayIntervalSeconds = 2
  • RequestPollSeconds = 1
  • StartupWarmupSeconds = 45
  • DeepGameProfiling = true
  • ProfilePluginLoops = true
  • HotMethodSampleEveryN = 4
  • TopConsumers = 12
  • SpikeThresholdMs = 20
  • MainThreadStallThresholdMs = 75
  • WriteHitchForensics = true
  • ForensicHitchThresholdMs = 100
  • AnnounceHitchesInChat = true
  • AnnounceHitchesInGame = false
  • AnnounceHitchThresholdMs = 250
  • AnnounceHitchCooldownSeconds = 10

ProfileModHarmonyMethods is retained only as a deprecated 0.x compatibility key and migrates to ProfilePluginLoops.

Validation

TickProfiler 1.0.0 is built against Valheim 1.0.14 and BepInExPack Valheim 5.4.2350.

The included core tests validate deadline accounting, Unity catch-up behavior, report-boundary pending misses, JSON escaping, hitch buckets and statistic resets. A spare-server burn test also validates controlled 100/250/500/1000 ms stalls, sustained overload and exception-stack recovery.

TickProfiler is diagnostic only and does not intentionally change gameplay state.

Highlights

From source data

Loaders

Runs on BepInEx.

Footprint

Rated a light load on a server.

Last update

Its author last shipped an update 47d ago.

TickProfiler on Nxeon

From our catalogue
One-click install
Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
Server side
Optional on the server
Server type needed
BepInEx
Server load
light
Smallest plan we suggest
Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
Latest build
1.0.3, released 2026-09-18

Game versions by loader

LoaderGame versionsNewest
BepInEx

From 15 recorded builds of TickProfiler.

Recent builds

BuildReleasedGame versionsLoaders
1.0.32026-09-18n/aBepInEx
1.0.22026-09-17n/aBepInEx
1.0.12026-09-17n/aBepInEx
1.0.02026-09-17n/aBepInEx
0.4.42026-09-17n/aBepInEx
0.4.32026-09-14n/aBepInEx

Dependencies

Declared by the newest build that lists any. Required ones are installed with it on one-click installs.

Run TickProfiler on a Valheim server

Pick a server or deploy a new one above; it is installed in one click.

What kind of mod it is

From the catalog
Listed on Thunderstore as “Admin”

Admin & protection

Permissions, moderation, anti-cheat and land protection for the people running the server.

Works on a server

From source side support

Thunderstore lists server-side support for TickProfiler as optional: it can run on a server, but isn’t required there.

Compatibility

Game
Valheim
Loaders
BepInEx
Runs on
Serveroptional on the server
Requires
One-click install needs a BepInEx server.

Verified at the source

  • ✓ThunderstoreOfficial listing, checked 2026-10-01Open ↗
  • ✓AuthorMagiCorp, as published on Thunderstore
  • ✓LicenseNot published by the sourceFree

TickProfiler, answered

Generated from the mod’s own source data.

Do my players need to install TickProfiler?

Thunderstore lists server-side support for TickProfiler as optional: it can run on a server, but isn’t required there.

Which loaders does it support?

BepInEx.

Is it free?

Yes. TickProfiler is free to download from Thunderstore.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run TickProfiler on a Valheim server.

Deploy in about a minute from $9.99 a month, then add TickProfiler in one click.