Minecraft server analytics, explained.

The plugin reads TPS and milliseconds per tick against the 50 ms budget, sessions and playtime, the hostname each player typed, Vault money flows and store purchases.

See who joins and stays, which plugin is eating your tick, whether your economy is inflating and which packages actually sell. One plugin, about five minutes.

Free for one server. No card needed.

Questions it answers for Minecraft servers

What the demo dashboard answers for this game.

Are new players coming back?

Day-1, day-7 and day-30 retention for every week of new players.

Which plugin is eating my tick?

Every tick over 100 ms is captured and named by plugin on Paper and Purpur, even when nobody is online.

Is my economy inflating?

Money supply and how much the top 1% hold through Vault, with sources and sinks when EssentialsX is installed.

Which subdomain brings players who stay?

play., tiktok., yt.: joins, 7-day return and spend for every address players type.

What sells per player-hour?

Tebex and PayNow revenue matched to playtime, with top packages and refunds.

When are players online?

Players online through the day and week, so you schedule events and restarts at the right time.

What ServerStats tracks on Minecraft servers

One plugin on each Paper, Purpur or Folia backend and on the Velocity proxy. Chat is counted, never read.

Performance

  • TPS over 1, 5 and 15 minutes, and MSPT against the 50 ms budget
  • Every tick over 100 ms, with the plugin or server area (entities, chunks, redstone, world generation) that took the time
  • Loaded chunks, entities and tile entities per world, view and simulation distance
  • Heap, garbage collection, process and host CPU and memory

Players

  • Players online, sessions and playtime per world
  • AFK-adjusted active playtime per world (EssentialsX installed and metrics.deep on)
  • New and returning players, D1, D7 and D30 retention and churn risk
  • The address each player typed (play., yt., tiktok.) for campaign tracking
  • Client versions with ViaVersion, Java or Bedrock through Geyser and Floodgate
  • Ping, login denials, kicks and quit reasons

Economy and store

  • Vault: money supply and how evenly it's spread (Gini), sampled every 15 minutes
  • EssentialsX: where money comes from and where it goes
  • Tebex, PayNow and CraftingStore purchases matched to players by UUID (Operator)
  • NuVotifier votes by site, LuckPerms rank changes

Gameplay

  • Deaths by damage type, PvP kills by weapon, mob kills
  • Blocks broken and placed, advancements, commands used (the root command only)
  • Portal use and world changes

Velocity networks

  • Players per backend and transfers between backends
  • Backend up or down, kicks and connection denials
  • The join address, counted once at the proxy

No install yet? Basic mode uses the Server List Ping on port 25565 and follows your _minecraft._tcp SRV record. Check any Minecraft server with the Minecraft server status checker.

Minecraft gamemodes, payments and punishments

A dashboard shaped like your server, and a log of who paid whom.

Dashboards per gamemode

  • Survival / SMP
  • Hardcore
  • Skyblock
  • Factions
  • Prison
  • Towny and Earth
  • Lifesteal
  • Anarchy
  • Creative / Plots
  • RPG / MMO

We suggest the gamemode from the plugins we detect, and you confirm it. Anything else gets the general dashboard. Minigame networks (BedWars, SkyWars) and parkour are next.

Logs and flags

Every payment, trade, shop sale and punishment in one log you can filter by player. Abuse flags point out large transfers, alt-account funnels, transfer rings and staff paying themselves.

What we listen to You pick the plugin for each area

Player payments
EssentialsXCMI betaPlayerPointsTokenManager
Money supply and flow
VaultEssentialsXCMI betaPlayerPointsCoinsEngine
Server shops
EssentialsXShopGUI+ betaEconomyShopGUI
Player shops
ChestShopQuickShop-Hikari
Auctions
zAuctionHouseCrazyAuctionsAuctionHouse beta
Punishments
AdvancedBanLibertyBansLiteBans betaPaper kicks and ban listVelocity: LibertyBans, LiteBans beta
Ranks and votes
LuckPermsNuVotifier (Paper and Velocity)
Crates
ExcellentCratesCrazyCrates
Teams and land
SuperiorSkyblock2BentoBoxIridiumSkyblock betaFactionsUUIDSaberFactions betaTownyLands beta
Jobs
Jobs Reborn

The number that matters: TPS and MSPT

50ms
The tick budget: 20 ticks a second
MSPT under 50 ms
Full 20 TPS
MSPT over 50 ms
TPS falls below 20
A tick over 100 ms
Lag spike, plugin named
The plugin's own cost
About 5 µs a tick

Minecraft runs 20 ticks a second, so every tick has 50 ms. TPS only tells you the server already fell behind. MSPT (milliseconds per tick) tells you how close it is: a server at 20 TPS and 45 MSPT is one busy farm away from lag.

When a tick runs past 50 ms, the built-in sampler reads the main thread every 5 ms. If the tick ends over 100 ms, ServerStats records a lag spike with its top three causes: a plugin by name, or a server area such as entities, chunk loading or redstone, plus the method that was running.

It runs all the time, so the spike at 3 a.m., with nobody online to start a profiler, is still captured. On Folia there's no single main thread, so ServerStats reads region TPS at players' chunks instead and the profiler stays off.

One plugin. About five minutes.

Works with

  • Paper
  • Purpur
  • Folia
  • Velocity
  • Vault
  • EssentialsX
  • Spark
  • Votifier
  • LuckPerms
  • Tebex
  • PayNow
  • Connects out only. No ports to open on your server.
  • A one-time claim code, then the agent signs everything it sends with its own key. No reusable secret is stored on your server or ours.
  • Player IDs are keyed hashes in analytics. Player IP addresses are never sent to us.
plugins/ServerStats/config.yml
# Drop the jar into plugins/ and start once, then in
# plugins/ServerStats/config.yml (Velocity: plugins/serverstats/config.yml):
claim-code: "SS-XXXX-XXXX-XXXX"   # one-time, from the dashboard
server-name: "survival"
moderation: false            # optional, off by default

# or in the console: /serverstats claim <code>

Minecraft questions

How do I check TPS on a Paper server?

Run /tps for the 1, 5 and 15-minute averages and /mspt for milliseconds per tick. Both show the moment you type them. ServerStats records them continuously, so you can see what TPS was overnight and which plugin was running when it dropped.

Can I exclude AFK time from playtime?

Yes, when EssentialsX is installed and metrics.deep is on in config.yml. The Paper agent records active playtime by world and removes periods EssentialsX marks AFK, including long AFK sessions and world changes. Without EssentialsX, ordinary session playtime remains available.

Which plugin is lagging my server?

The plugin has its own sampling profiler. Every tick over 100 ms is captured and charged to the innermost plugin on the main thread's stack (Paper and Purpur), with the method name. Ordinary tick time is broken down by plugin every 5 minutes too.

Does it work with Velocity networks?

Yes. Install the plugin on each backend and on the Velocity proxy, each with its own claim code. The proxy reports transfers and backend health. BungeeCord isn't supported yet.

Can I import my Plan player history?

Yes. The local Plan importer reads a SQLite backup and brings completed sessions, available first-join dates, unambiguous countries and per-session join addresses into one Minecraft server at a time. Your plan's session history window still applies.

Will the plugin lag my server?

It's built not to. Its main-thread work averaged 5.4 µs a tick in testing, and an A/B run under the same load showed no measurable difference in /mspt. /serverstats status shows its own cost on your server.

Does it work on Pterodactyl or a hosted server?

Yes, if you can upload files to plugins/. It's a normal plugin jar, you can claim it from the panel console with /serverstats claim, and it only connects out, so no port needs opening. One-click install from Pterodactyl and Pelican is on the roadmap.

Do I need spark or Vault?

No. Lag profiling is built in. spark adds its own readings, Vault adds economy analytics and EssentialsX adds money sources and sinks.

Is it free?

Free covers one server with 24 hours of history, forever, with no card. Operator is $9.99 a month for 10 servers and 90 days of history, which you need for week-on-week trends and D7 or D30 retention. Yearly billing gives two months free.

Related games

One ServerStats account covers every game you run.

Start with one Minecraft server, free

Install it and see your first numbers today.