FAQ & troubleshooting
Short answers to what plugin developers ask most. Missing data? Start with the checklist.
Does it lag the server?
No. Tracking an event is a map lookup in memory. Reports are built and sent once an hour from a low-priority background thread, gzipped, with 5- and 10-second timeouts. The performance sampler looks at the main thread about ten times a second from its own thread, and event handlers and commands get two clock reads per call. If you want none of the sampling or timing, call analytics.autoPerformance(false).
Can I use it next to bStats?
Yes. They don't share anything: each is relocated into your plugin and has its own config file. bStats is great for public server counts; PluginAnalytics answers product questions such as which features are used, where players drop and which errors hurt.
Does it work on offline-mode servers?
Yes. Players are identified by a salted hash of the UUID the server gives them, whatever it is. Each server reports whether it runs in online mode.
What about BungeeCord and Velocity networks?
The SDK runs in Bukkit-based servers (Bukkit, Spigot, Paper, Purpur, Folia), so a plugin on the backend servers of a network works normally, and each backend server counts as a server. Players aren't matched across servers, because each server has its own salt: one person on three backends counts as three players. There's no SDK for proxy plugins.
What if several plugins on one server use the SDK?
That's what relocation is for: each plugin has its own copy, its own thread and its own reports, and none can affect the others. They share plugins/PluginAnalytics/config.yml, so the server owner turns them all on or off at once.
Does it work on Folia?
Yes. Events, properties, funnels, config usage, errors, logs, spans, notices and feedback all work. Folia has no single main thread, so the main-thread sampler, the automatic timing of handlers and commands, automatic command events and MSPT are skipped. Details
Which Minecraft and Java versions are supported?
Minecraft 1.8 through the latest release, on any Java version from 8 up: the SDK is compiled for Java 8 against the 1.8.8 API.
How long is data kept?
Daily data (servers per day, events, errors per day, logs, performance, listing stats) is kept 400 days on Free, of which the last 90 are shown, and 760 days on Pro, with 2 years shown. Records that aren't daily, such as the list of servers, first times used by funnels, error issues and feedback, stay until the plugin is deleted.
How do I delete data?
Delete the plugin in Settings → Danger zone, or your whole account in Profile. Everything is deleted for good, and servers still running the plugin are ignored from then on. Details
Why are my numbers different from SpigotMC's?
SpigotMC counts downloads, including updates by people who already have your plugin, and test servers or servers that never start the plugin never report. On our side a server counts once it sends a report, and not at all when its owner turned analytics off. Page views are only counted where the tag is shown and images load, and unique viewers are counted per day.
Why is a server I just started missing?
Its first report is sent 3 to 6 minutes after startup and can take up to 5 more minutes to be written. Reports are sent hourly and once more when the plugin is disabled, and a server can report at most once every 10 minutes. The checklist
Is the project key a secret?
No. It's meant to ship inside your jar: it can only send data to your project, never read it. Reading your data needs your dashboard account.
What happens if PluginAnalytics is unreachable?
Nothing visible. The SDK never throws; a failed report is kept in memory and merged into the next attempt an hour later. A report the server refuses for good (for example an unknown key) is dropped.
Can I see what a specific player did?
No, by design. Players only exist as hashes that differ on every server, and the dashboard shows counts, reach and funnels, never individuals.