promotional bannermobile promotional banner

Tick Watchdog

Configurable watchdog that captures thread dumps when server is suffering from TPS lag

Tick Watchdog

Summary

I was tired of the "server running behind" messages not offering any other useful information. This mod provides said useful information by dumping it into a text file and printing a notification in console.


What Tick Watchdog Does

Every server tick is timed, and when a tick takes longer than your configured threshold:

  • A thread dump is written to logs/tickwatchdog/dump-YYYY-MM-DD_HH-mm-ss.txt
  • The server thread is shown first, with mod package annotations to help identify culprits
  • Lock and monitor info is included
  • Deadlock detection runs automatically
  • Rolling TPS averages(1m / 5m / 15m) are logged alongside the dump

A configurable cooldown prevents log spam during sustained lag events.


Reading a Dump

Open the dump file and look at the SERVER THREAD section first. Stack frames are annotated with their origin:

>>> SERVER THREAD (RUNNABLE)
    at net.minecraft.world.level.chunk.ChunkSource.tick(...)  [Minecraft]
    at somemod.world.TickHandler.onTick(...)  [Mod? (somemod.*)]

If a mod class appears near the top of the stack, it's likely responsible for the spike. The 1m vs 15m TPS gap is also useful as a large difference points to something event-triggered rather than a steady per-tick cost


Configuration

Created automatically at config/tickwatchdog.txt on first launch.

Default configuration is as follows:

# Trigger a thread dump if a tick takes longer than this (ms)
# Normal tick = 50ms. 100ms = ~10 TPS or worse.
threshold_ms=100

# Minimum seconds between dumps (prevents log spam during sustained lag)
cooldown_seconds=30

# Log rolling TPS averages to console periodically
log_tps=true

# How often to log TPS (seconds)
tps_log_interval_seconds=60

The Tick Watchdog Team

profile avatar
  • 6
    Projects
  • 634
    Downloads

Mod developer and occasional modpack author. Generally open to version or feature requests!

Donate

More from _haise0_View all

  • PackReport project image

    PackReport

    • 18
    • Mods

    Simple in-game bug reporting for modpack authors and SMP/RP servers with configurable endpoint support

    • 18
    • May 22, 2026
    • Mods
    • +2
  • Grimoire of Trickery project image

    Grimoire of Trickery

    • 228
    • Modpacks

    Grimoire of Trickery is a pack that is specifically made for an smp i made, but turned into a pack that i feel can be released.

    • 228
    • March 22, 2026
    • Modpacks
    • +3
  • Sysout Filter project image

    Sysout Filter

    • 53
    • Mods

    JVM-level console spam filter with simple config file

    • 53
    • March 15, 2026
    • Mods
    • +1
  • Merp Merp SMP Season 3 project image

    Merp Merp SMP Season 3

    • 9
    • Modpacks

    Fantasy RPG-inspired world built around magic, with a core focus on survival and challenging gameplay

    • 9
    • March 7, 2026
    • Modpacks
    • +3
  • PackReport project image

    PackReport

    • 18
    • Mods

    Simple in-game bug reporting for modpack authors and SMP/RP servers with configurable endpoint support

    • 18
    • May 22, 2026
    • Mods
    • +2
  • Grimoire of Trickery project image

    Grimoire of Trickery

    • 228
    • Modpacks

    Grimoire of Trickery is a pack that is specifically made for an smp i made, but turned into a pack that i feel can be released.

    • 228
    • March 22, 2026
    • Modpacks
    • +3
  • Sysout Filter project image

    Sysout Filter

    • 53
    • Mods

    JVM-level console spam filter with simple config file

    • 53
    • March 15, 2026
    • Mods
    • +1
  • Merp Merp SMP Season 3 project image

    Merp Merp SMP Season 3

    • 9
    • Modpacks

    Fantasy RPG-inspired world built around magic, with a core focus on survival and challenging gameplay

    • 9
    • March 7, 2026
    • Modpacks
    • +3