Guides · Product
How to see how many servers use your Minecraft plugin
Two ways to count the servers running your Spigot or Paper plugin, bStats and PluginAnalytics, why it differs from downloads, and its limits.
Downloads tell you how many times your jar was fetched. They don't tell you how many servers run it: one owner downloads every update, another downloads once and never installs it, a hosting company puts one download on two hundred servers. To know how many servers actually use your plugin, the plugin has to tell you itself.
There are two common ways to do it. Both take a few minutes.
Option 1: bStats
bStats is the classic: free, open source, and used by thousands of plugins. It counts servers and players and shows them on a public page, with charts for versions, platforms and countries, plus custom charts you define.
Setup, in short:
- Sign in at bstats.org, add your plugin and note its plugin id (a number).
- Add the
bstats-bukkitdependency from Maven Central and shade and relocate it into your jar (bStats checks this; an unrelocated copy refuses to run). - Start it in
onEnable:
@Override
public void onEnable() {
int pluginId = 12345; // from your bStats page
Metrics metrics = new Metrics(this, pluginId);
metrics.addCustomChart(new SimplePie("storage", () -> getConfig().getString("storage.type")));
}
The bStats docs have the exact Maven and Gradle snippets. Your charts fill in over the next hours.
Good for: a free, public server and player count that you and others can see.
Option 2: PluginAnalytics
PluginAnalytics counts the same servers, privately, and adds what happens inside them: which features are used, where players drop off, which errors hurt, and how your SpigotMC listing converts into installs.
- Create a project in the dashboard and copy its key.
- Add the SDK and relocate it (Gradle and Maven snippets).
- Start it in
onEnable:
@Override
public void onEnable() {
analytics = PluginAnalytics.start(this, "pa_your_key");
}
The first data shows up within a minute, and the dashboard updates live. Servers, versions, platforms, countries, players and your config choices are collected without any more code; custom events are one line each.
Good for: private numbers, product questions and error tracking, on top of the count.
You can run both. They don't conflict, and many developers keep bStats for its public page.
Why the count doesn't match your downloads
Expect the number of servers to be much lower than your downloads, and don't panic:
- Updates are downloads too. An owner who installs every update counts once as a server and twenty times as a download.
- Many downloads never get installed. People download to try, to compare, or for a server they never open.
- Test servers come and go. A server that ran your plugin once and was deleted still shows in your downloads.
- Owners can opt out. Both bStats and PluginAnalytics let server owners turn metrics off (bStats in
plugins/bStats/config.yml, PluginAnalytics inplugins/PluginAnalytics/config.yml), so a share of servers never reports. That's how it should be: owners trust plugins that respect it. - Offline networks and firewalls block outgoing connections, so some servers can't report at all.
The useful number isn't the raw count but its trend, and how it compares with the step before it. If downloads double after an update but servers stay flat, something stops people between the download and a working install.
What a server count can't tell you
A server count answers "how many?". The questions that decide what you build next are different:
- Do they keep it? How many servers that installed it last month still run it today? A rising count can hide a leaky bucket.
- What do they use? Which commands and features get used, and which ones nobody touches?
- Where do they get stuck? How many players start your minigame and how many finish it?
- What breaks? Which errors happen, on which versions, and did the last update fix them?
- Which config choices are common? If 90% of servers keep a default, it's a good default. If everyone changes it, it isn't.
That's the difference between metrics and product analytics. bStats is great at the first. PluginAnalytics was built for the rest: funnels and retention, events, errors, config usage and listing analytics, from one line in onEnable.
Respect the server owner
Whatever you choose:
- Say in your resource description that the plugin collects anonymous usage statistics, and how to turn them off.
- Never collect player names, UUIDs, IP addresses or chat. You don't need them to answer any of the questions above.
- Keep it off the main thread and never let it break the plugin if the service is down.
Both tools do this for you. If you build your own, it's the part people forget.
More guides
How to get more downloads for your Minecraft plugin on SpigotMC
How to get more downloads on SpigotMC: tag lines, the first screen, GIFs that load, updates, reviews, Modrinth and Hangar, and measuring what works.
6 min readGrowthA free SpigotMC resource page template (BBCode included)
Free BBCode template for a SpigotMC plugin page: the section order that sells, the tags SpigotMC supports, image and GIF sizes, and common mistakes.
4 min read