Home›Java›Mods›TickWarden
TickWarden
ModsJava

TickWarden

Java mod listed for Minecraft 1.21–26.x. Downloads from the MC Java Mods app on Android.

by moonlord7722 · on Modrinth

Measurable optimization that never breaks gameplay - and tells you why the server lagged. Paper, Purpur and Folia, 1.21.4+ and 26.x.

⬇ Download on Modrinth
TickWarden — screenshot 1TickWarden — screenshot 2TickWarden — screenshot 3TickWarden — screenshot 4TickWarden — screenshot 5TickWarden — screenshot 6TickWarden — screenshot 7TickWarden — screenshot 8

Optimization you can measure. Nothing that breaks your server. And when it lags - you find out why.

Most "optimization" plugins either repeat settings Paper already has, or save CPU by switching the game off. TickWarden shows you where the lag actually is, keeps a journal of every lag incident with what was going on at that moment, tells you which settings fix it, and handles the things a config file cannot. Free, no required dependencies, no telemetry. One jar for Paper, Purpur and Folia, 1.21.4 - 1.21.11 and 26.x.


The usual tricks

Lag plugins tend to save CPU in ways players notice first:

TickWarden does none of these.

How TickWarden is different

Lag incident journal - "why did it lag?"

"The server lagged last night" is useless without knowing where. When the server stalls, TickWarden takes a snapshot of the world at that moment and keeps it:

Then it names the likely cause in plain words: "139 new chunks generated in world near Steve", "crowded chunk world 120, -40: 1400 entities, mostly Chicken", "redstone - 48000 updates a second, busiest world 60, 60 (a clock, never stops)". When nothing in the world stands out, it says so honestly and points you to spark - a lag from a plugin is not something a world snapshot can see.

A snapshot costs about 1 ms per 1000 entities and is taken once per incident, not every tick.

Tick monitor - /tickwarden report

Average, 95th percentile and worst tick over the last 10 seconds, 1, 5 and 15 minutes, with real TPS for each window. Below them - lag spikes, incidents and what every module did since start, so "it lagged a minute ago" becomes a number you can compare after every change.

Lag scanner - /tickwarden scan

The chunks with the most entities, the most block entities (hoppers, chests, furnaces) and the most redstone, with a breakdown by type - "93: 60 chickens, 33 items". Click a line to teleport there. Read-only: it shows you where to look and never decides whose farm has to go.

Redstone watch

A clock left running in a forgotten corner of a base keeps the server busy day and night, long after its owner stopped caring. TickWarden counts redstone signal changes and piston moves in every chunk. A chunk that stays busy nearly every second for 30 seconds is a clock - it shows up in /tickwarden scan with "nonstop for 2h 14m" and in lag incidents.

Farms driven by a clock (kelp, bamboo) show up too, on purpose: look first, then decide. If you want, TickWarden can break clocks that ran nonstop for 10 minutes - the busiest repeater, comparator or observer drops as an item and admins are told where. That option is off by default: it breaks players' builds.

Measured: 640 observer clocks (49 000 updates a second) - the cost of watching them is lost in measurement noise.

Adaptive simulation distance

When the server keeps falling behind - the average tick over 50 ms for 20 seconds - chunks around players tick in a smaller radius: one step down, then another if that was not enough, never below 5. When the load drops, the distance comes back one step a minute. Admins get a chat message each way.

Players see the world as before - view distance is not touched - but crops, mobs and farms at the edge of the radius pause until the distance is back. A single long freeze, such as a world save, does not count - only lag that lasts. Nothing is written to server.properties or the worlds: after a restart, or /tickwarden reload, the distance is your own again. Turn it off with one line if you prefer the server to just lag.

Config advisor - /tickwarden advise

The biggest performance gains on Paper come from its configuration, not from plugins. The advisor reads server.properties, bukkit.yml, spigot.yml and both Paper configs and runs 38 checks: simulation distance, entity activation and tracking ranges, entity collisions, spawn limits, despawn ranges, redstone implementation, hopper events, villager sensors, treasure map searches, chunk save limits and more.

Every recommendation says three things: what the setting costs the server, what to set it to, and what players will notice after the change - so you decide with your eyes open. Hover a line in chat for the explanation. It never edits your files: Paper's configs are full of comments, and the change needs a restart anyway.

Per-world overrides in paper-world.yml are detected and reported. Checks are verified against the default configs of every supported version; a check that does not exist in your Paper version is skipped, not guessed.

Impact ratings follow measurements, not folklore. Lowering max-entity-collisions from 8 to 2 - a favourite of every optimization guide - cut about 10% of the tick in cramming-style pens (40 animals in 3×3 blocks) and nothing at all in ordinary pens where animals have room. So the advisor rates it medium and says exactly where it helps.

Crowd control

In a pen with sixty cows every one of them keeps choosing a random spot, pathfinding to it and pushing its neighbours - none of it visible, all of it paid for every tick. When a chunk holds 16 or more farm animals, TickWarden makes them stand still instead.

Everything that matters still works exactly as in vanilla, because it is done with Paper's own mob goal API: breeding, following a player holding food, panicking when hit, floating in water, sheared sheep eating grass to regrow wool. Babies and pets are never touched. The goal is not saved to the world - restart or remove the plugin and the animals behave as before.

Measured on a test server (960 animals in 16 packed pens, animals active as if a player stood next to them, three alternating 60-second runs each way):

Average tick
Crowd control off 8.75 ms
Crowd control on 7.17 ms

That is 18% of the whole tick on that server, and about 60% of what wandering animals cost. On 1.21.4 - 26.1.2 the same test gave 14-21%. We also verified with it on: animals set to breed produced calves, hit animals ran, sheared sheep regrew wool, and settled cows and sheep turned and followed a player holding wheat.

It only matters for pens near players - vanilla already stops animals wandering when nobody is within 32 blocks. But that is exactly where your players are: next to their farms.

Breed cap

The biggest entity lag on a survival server is rarely monsters. It is the pen someone has fed wheat for months. When there are already 64 animals of the same type within 16 blocks (96 for chickens), breeding and thrown eggs produce no babies - and the player feeding them sees why in the action bar, in their own language, instead of reporting a bug.

Folia

The same jar runs on Folia - with every module, not a cut-down mode. Folia has no single server tick: regions tick in parallel, each on its own thread. So everything TickWarden measures "per server" on Paper, it measures per region there:

Still Paper API only: no Folia-specific dependency and no server internals. Tested on Folia 1.21.11 and 26.2 with several regions ticking in parallel.

PlaceholderAPI

Optional. With PlaceholderAPI installed, put server health on a scoreboard, in TAB or on a hologram:

Placeholder Value
%tickwarden_tps% TPS over the last minute (on Folia - of the player's region)
%tickwarden_mspt% Average tick over the last minute, ms (on Folia - of the player's region, over 5 s)
%tickwarden_mspt_color% The same, colored green / yellow / red
%tickwarden_incidents_today% Lag incidents since midnight (survives restarts)
%tickwarden_last_incident% Time since the last lag incident ended
%tickwarden_simdistance% Current simulation distance
%tickwarden_redstone_clocks% Redstone clocks running now

On 26.x use PlaceholderAPI 2.12 or newer - older versions do not start there.

Commands

Command What it does
/tickwarden report Tick times, lag spikes, incidents, what the modules did
/tickwarden incidents Lag incidents since start
/tickwarden incident [n] One incident in full: cause, crowded chunks, players nearby
/tickwarden scan Chunks with the most entities, block entities and redstone
/tickwarden advise Settings worth changing (all for minor ones too)
/tickwarden reload Apply config changes without a restart

Alias /tw. Permissions: tickwarden.admin - the commands, tickwarden.notify - chat messages about lag incidents, simulation distance and broken clocks. Both are op by default.

Configuration

incidents:
  enabled: true
  spike-ms: 150          # a single tick this long opens an incident
  sustained-mspt: 50     # ...and so does a 5-second average this high
  notify-admins: true
  discord-webhook: ""    # empty = off
  keep-days: 14

redstone:
  enabled: true
  clock-seconds: 30
  break-clocks: false

adaptive-distance:
  enabled: true
  lag-mspt: 50
  min-distance: 5

crowd-control:
  enabled: true
  crowd-size: 16
  entity-types: [COW, MOOSHROOM, SHEEP, PIG, CHICKEN]

breed-cap:
  enabled: true
  radius: 16
  limit: 64
  limits:
    CHICKEN: 96

advisor:
  language: en   # or ru
  ignore: []     # checks you decided to keep as they are

Every message is in the config. English and Russian - config-ru.yml lands next to your config on first start, including Russian explanations for every advisor check.

Requirements

Server Paper, Purpur or Folia 1.21.4 - 1.21.11, 26.1 - 26.2
Tested on Paper 1.21.4, 1.21.8, 1.21.11, 26.1.2, 26.2; Folia 1.21.11, 26.2
Java 21 or newer
Dependencies none; PlaceholderAPI optional

What it does not do

Support

Bug reports are welcome and get priority over feature requests. A report with your config, /tickwarden report output, the incident from /tickwarden incident and the relevant log lines gets fixed fastest.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more