About LoadTimeProfiler
From ThunderstoreStartup and join profiling, optional acceleration, timeout protection, and reloadable log filtering
LoadTimeProfiler
Profiles modded Valheim startup, world joins, and dedicated server boot. One patcher DLL also provides optional localization caching, config-write coalescing, timeout protection, logging filters, and automatic reload of other mods' BepInEx cfg files.
Features
- Measures Start to Lobby, Lobby to World, and dedicated server startup.
- Shows plugin construction,
Awake,OnEnable,Start, and major lifecycle timings. - Attributes synchronous Harmony callback time in
ObjectDB.AwakeandZNetScene.Awaketo individual mods. - Optionally accelerates supported localization work and automatic BepInEx config writes.
- Applies a configurable timeout floor to supported vanilla, Jotunn, ServerSync, and AzuAntiCheat paths.
- Gives each mod four GUID-based log checkboxes, without inspecting the stack on each message.
- Reloads logging settings automatically, including on headless servers with no connected player.
- Optionally reloads other mods' registered BepInEx cfg files after local file edits, without an in-game administrator or ConfigManager.
- Keeps the newest 20 reports for comparison.
Installation
Place LoadTimeProfiler.dll in:
BepInEx/patchers
Do not place it in BepInEx/plugins. Install it separately on each client or dedicated server you want to profile.
Timeout protection is endpoint-local. Install the same build and timeout setting on both client and server when you want equivalent protection in both directions.
Usage
- Start Valheim normally.
- Wait for the main menu to measure Start to Lobby.
- Enter a world to also measure Lobby to World.
- Open the newest report in:
BepInEx/config/LoadTimeProfiler
Dedicated servers create a Server Startup report in the same directory. Compare multiple warm runs because disk cache, network conditions, world size, and background programs can affect loading time.
Start To Lobby starts at this patcher's Patch callback and ends when FejdStartup.Start completes. It does not include the entire executable startup or all later rendering. The earlier preloader config/Manual logging setup is outside that clock; use an external launch-to-menu measurement when comparing total startup cost.
In Valheim 1.0, the intro cinematic can continue after this boundary. Intro playback, skipping it, and the time until the menu accepts input are outside this measurement; the existing timing boundary stays unchanged.
Lobby To World starts when TransitionToMainScene accepts the world transition and ends when SpawnPlayer completes. Earlier login, password, permission, warning, and world-selection prompts are not included.
Configuration
The configuration file is:
BepInEx/config/sighsorry.LoadTimeProfiler.cfg
| Setting | Default | Purpose | |---|---:|---| | General.ProfilingEnabled | true | Measures loading times, creates timing reports and enables lifecycle and per-mod attribution. | | General.LocalizationCacheEnabled | true | Caches supported vanilla and external localization work. | | General.ConfigWriteCoalescingEnabled | true | Coalesces automatic config writes during Chainloader.Start. | | General.ConfigAutoReloadEnabled | false | Automatically reloads other mods' registered BepInEx cfg files after local file edits. Restart required. | | General.TimeoutProtectionSeconds | 120 | Sets the minimum supported connection and send-queue timeout. Use 0 to disable it. | | Logging.Mods.<GUID> | Errors, Warnings when absent | Allowed groups for the mod's default BepInEx logger. |
Each mod has four independent checkboxes. There is no logging master switch, common logger option, or source-name override.
| Checkbox | Config name | Default | |---|---|---| | Fatal + Error | Errors | Checked | | Warning | Warnings | Checked | | Message + Info | Information | Unchecked | | Debug | Debug | Unchecked |
Unconfigured mods keep fatal/error/warning messages and suppress message/info/debug on their default logger. Clear every checkbox (None in the file) to silence that logger; select all four to allow every event, including custom level values. LoadTimeProfiler's own diagnostic logger and report files remain available. Unity logs and unowned/custom/shared Manual loggers always pass through this filter.
Example (replace the example GUIDs with the actual mod GUIDs):
[General]
ProfilingEnabled = true
LocalizationCacheEnabled = true
ConfigWriteCoalescingEnabled = true
ConfigAutoReloadEnabled = false
TimeoutProtectionSeconds = 120
[Logging.Mods]
sighsorry.ConfigManager = Errors, Warnings
author.examplemod = Errors, Warnings, Information, Debug
author.noisymod = None
Compatibility
When one of these mods is installed, disable the overlapping LoadTimeProfiler feature:
| Installed mod | LoadTimeProfiler setting | |---|---| | Smoothbrain-StartupAccelerator | LocalizationCacheEnabled = false and ConfigWriteCoalescingEnabled = false | | MSchmoecker-LocalizationCache | LocalizationCacheEnabled = false | | MSchmoecker-TimeoutLimit | TimeoutProtectionSeconds = 0 |
LoadTimeProfiler does not detect the three acceleration/timeout overlaps above or change their settings automatically. Edit the config and restart. Standalone QuietLogs/ShutUp detection prevents overlapping logging filters; standalone ConfigWatcher detection prevents overlapping automatic cfg watchers. Each conflict disables only its matching LTP feature.
Reading Reports
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 56d ago.
LoadTimeProfiler 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.3.2, released 2026-09-09
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 5 recorded builds of LoadTimeProfiler.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 1.3.2 | 2026-09-09 | n/a | BepInEx |
| 1.3.1 | 2026-09-08 | n/a | BepInEx |
| 1.2.4 | 2026-07-25 | n/a | BepInEx |
| 1.0.1 | 2026-07-17 | n/a | BepInEx |
| 1.0.0 | 2026-07-13 | n/a | BepInEx |
Dependencies
- Required: BepInExPack Valheim
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run LoadTimeProfiler 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 catalogAdmin & protection
Permissions, moderation, anti-cheat and land protection for the people running the server.
Works on a server
From source side supportThunderstore lists server-side support for LoadTimeProfiler 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-02Open ↗
- ✓Authorsighsorry, as published on Thunderstore
- ✓LicenseNot published by the sourceFree




