Stats v5.3.6-BETA

Track your players and gather interesting statistics about them!

  1. Lolmewn
    Native Minecraft Version:
    Legacy (< 1.13)
    Tested Minecraft Versions:
    • 1.13
    • 1.14
    Source Code:
    Stats - made by Lolmewn

    This is the newest release for Stats. Version 5 is built completely from the ground up and already contains exciting new features.
    Website coming soon!

    Supported Stats
    Right now the following Stats are supported and tracked for everyone:
    - Blocks broken (including location, type & timestamp)
    - Blocks placed (including location, type, tool & timestamp)
    - Playtime (including world)
    - Kills (including world, victimType, victimName & weapon)
    - Deaths (including location & cause)
    - Arrows shot (including world)
    - Beds entered (including world)
    - Buckets emptied (including world & type)
    - Commands performed (including world)
    - Damage taken (including world & type)
    - Eggs thrown (including world)
    - Fish caught (including world & type)
    - Food consumed (including world & type)
    - Items crafted (including world & type)
    - Items dropped (including world & type)
    - Items picked up (including world & type)
    - Times kicked (including world)
    - Last join (including world)
    - Last quit (including world)
    - Move (including world & type)
    - PVP (including world, victimType, victimName & weapon)
    - PVP streak (including world)
    - Times sheared (including world & type)
    - Times joined (including world)
    - Tools broken (including world & type)
    - Trades performed (including world, item & price)
    - Words said (including world)
    - XP gained (including world)

    If any stat is missing/not working properly, let me know here:

    Setting up the plugin
    Simply drop the jar in the plugins folder. On first startup, the plugin will generate a config.yml, in which you have to put your MySQL Database credentials. Then restart your server and you're ready to go!

    Seeing your Stats
    You can use /stats to view your individual Stats (hover over a value to see more detailed information).
    In the future, websites can be built to read the database and show statistics on a webpage.

    Signs (from v5.3.2)
    Simply put down a sign with [Stats] on the first line, and it'll start the configuration process for that sign. Please note that you need the permission node, and to remove a Stats sign, you need permission node stats.sign.break.

    You can either display a Single, multiple or a random stat on the sign. Furthermore, you can specify a single, multiple, a random or all online players to show up on the sign. Please note that some stats do not show up when using random stats for all players, such as Last join, Last quit and PVP kill streak. They don't really make sense.

    This build is mostly intended for new users of Stats. This build will not convert old data (Stats 2 / Stats 3) data into Stats 5 data (yet). Watch for updates on when this is supported.
    Furthermore, all gathered statistics are sent to a global server which will be used to display statistics on a website, just like with Stats 2. Will we reach 219 years of playtime again?

    Below is info on Stats 3, the previous version of the plugin. It can still be used, but will not be developed for anymore.
    Stats 3 details below

    This plugin is licensed GPLv3

    NOTICE: I'm looking for a new maintainer for the plugin. I unfortunately cannot give this project the love that it so desperately needs. If you're interested, hit me up on Telegram ( or send me an email (lolmewn[at]

    Plugin description
    Stats is an advanced statistics gathering plugin, currently focussed on player statistics. Information such as PVP kills, blocks broken, playtime and much more. You can store this data as simple files, or store them in a MySQL database. The benefit of using the database is that you can also use any web-end out there to display your players' statistics on your website.

    How to install
    To install the plugin, simply drag-and-drop the Stats.jar into your 'plugins' folder.
    When you start the server, a "Stats" folder will be created, containing a config file.
    For a detailed description on the config file, click here.
    The most important option is "storage", which can be set to either "flatfile" or "mysql" by default.
    If you choose MySQL, there is another file (mysql.yml). Fill in your MySQL details there. That's all!

    If you're installing a web-end as well, please read the instructions for said web-end on how to install it.
    A list of web-ends compatible with Stats 3:

    List of available Stats
    This is a list of all available stats. Please note that there might be more stats in your environment, as other plugins can add their own stats to the plugin. For those stats, please see the documentation of the plugin providing them.

    |Stat name|Description|Available Metadata|
    |Arrows|Amount of arrows shot (not hit!)|world|
    |Beds entered|Self-explanatory|world|
    |Blocks broken|Self-explanatory|world, name, data (see here for more info)|
    |Blocks placed|Self-explanatory|world, name, data (see here for more info)|
    |Buckets emptied|Self-explanatory|world|
    |Buckets filled|Self-explanatory|world|
    |Commands done|Amount of commands done|world|
    |Damage taken|Self-explanatory|world, cause|
    |Death|Amount of times died|world, cause|
    |Eggs thrown|Self-explanatory|world|
    |Fish caught|Self-explanatory|world|
    |Items crafted|Self-explanatory|world, name|
    |Items dropped|Self-explanatory|world, name|
    |Items picked up|Self-explanatory|world, name|
    |Joins|Amount of times joined the server|None|
    |Kill|Amount of kills gotten|world, (name of) weapon, entityType|
    |Last join|Last time (in milliseconds epoch time) joined the server|world|
    |Last seen|Last time (in milliseconds epoch time) left the server|world|
    |Money|**Not yet functional**|world|
    |Move|Amount of blocks moved|world, type (0 = walking, 1 = boat, 2 = minecart, 3 = pig, 4 = on a pig in a minecart, 5 = horse, 6 = flying)|
    |Omnomnom|Amount of food eaten|world|
    |PVP|PVP kills gotten|world, victim (UUID of the other player), time (in milliseconds epoch time), (name of) weapon|
    |PVP streak|Current kill-chain, gets reset when killed|world|
    |PVP top streak|Highest PVP streak ever achieved - may be moved to Highscores in the future|world|
    |Playtime|Time in seconds played on the server|world|
    |Shears|Amount of sheeps sheared|world|
    |Teleports|Amount of times teleported|world|
    |Times kicked|Self-explanatory|world|
    |Tools broken|Self-explanatory|world, name|
    |Trades|Amount of times traded with a villager|world|
    |Votes|**Only works when Votifier is enabled**. If the player name is not found, the vote is ignored|None|
    |Words said|Amount of words said|world|
    |Times changed world|Self-explanatory|None|
    |Xp gained|Amount of XP gained in total|world|

    Tickets and Source
    Found a bug? Want a new feature? Want to see how Stats is built?
    You can find all and more here:

Recent Reviews

  1. Jowcey
    Version: v5.3.6-BETA
    Excellent Plugin, very well programmed which makes it super easy to add your own stats if you know basic java and sql :)
    1. Lolmewn
      Author's Response
      Thanks <3
  2. MauriceLPs
    Version: v5.3.6-BETA
    Its a good Plugin. But does have this Plugin an in-built API too? I want to retrieve Data though it in my Plugins. If this is solved, 5/5 Stars.
    1. Lolmewn
      Author's Response
      Sort of, but they're not documented. If you look through the source, specifically the Listener classes for data addition or the Command handler class for data retrieval, I'm sure your plugins will be able to get the data out.
  3. z__
    Version: v5.3.1-BETA
    Any ratings below 4 stars looked like people who were either clueless or had 3rd party issues... It's probably been anywhere from 3-5 stars over the years I've used this plugin. Currently a 4 star plugin in my opinion...

    There are work arounds to make this hook into placeholderAPI via mysql, but it would be extremely beneficial if you would add this support natively with your own placeholders for PAPI... Having a database and a website are nice, but the information could be used much more easily if it had placeholders in PAPI... I think this should be probably one of the highest priorities... A second plugin that adds this functionality would be a worthy premium plugin! Just a thought...

    Developement has been slow, but as stated on the page for a long long time they are looking for a new developer... I truly hope this lives on with future development...
    1. Lolmewn
      Author's Response
  4. MrMaxim3
    Version: v5.2.0-ALPHA
    [18:22:58] [Server thread/ERROR]: Could not pass event BlockPlaceEvent to Stats v5.2.0
    org.bukkit.event.EventException: null
    at$1.execute( ~[Spigot.jar:git-Spigot-7228328-11323bf]
    at org.bukkit.plugin.RegisteredListener.callEvent( ~[Spigot.jar:git-Spigot-7228328-11323bf]
    at org.bukkit.plugin.SimplePluginManager.fireEvent( [Spigot.jar:git-Spigot-7228328-11323bf]
    at org.bukkit.plugin.SimplePluginManager.callEvent( [Spigot.jar:git-Spigot-7228328-11323bf]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callBlockPlaceEvent( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.ItemStack.placeItem( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.PlayerInteractManager.a( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.PlayerConnection.a( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.PacketPlayInUseItem.a( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.PacketPlayInUseItem.a( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$ [Spigot.jar:git-Spigot-7228328-11323bf]
    at java.util.concurrent.Executors$ [?:1.8.0_181]
    at [?:1.8.0_181]
    at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.MinecraftServer.D( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.DedicatedServer.D( [Spigot.jar:git-Spigot-7228328-11323bf]
    at net.minecraft.server.v1_12_R1.MinecraftServer.C( [Spigot.jar:git-Spigot-7228328-11323bf]
    at [Spigot.jar:git-Spigot-7228328-11323bf]
    at [?:1.8.0_181]
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Material.getKey()Lorg/bukkit/NamespacedKey;
    at nl.lolmewn.stats.listener.bukkit.BlockPlace.generateMetadata( ~[?:?]
    at nl.lolmewn.stats.listener.bukkit.BlockPlace.lambda$onBlockPlace$0( ~[?:?]
    at java.util.Optional.ifPresent( ~[?:1.8.0_181]
    at nl.lolmewn.stats.listener.bukkit.BlockPlace.lambda$onBlockPlace$1( ~[?:?]
    at io.reactivex.internal.observers.LambdaObserver.onNext( ~[?:?]
    at hu.akarnokd.rxjava2.debug.validator.ObservableValidator$ValidatorConsumer.onNext( ~[?:?]
    at io.reactivex.internal.operators.observable.ObservableScalarXMap$ ~[?:?]
    at io.reactivex.internal.operators.observable.ObservableJust.subscribeActual( ~[?:?]
    at io.reactivex.Observable.subscribe( ~[?:?]
    at hu.akarnokd.rxjava2.debug.validator.ObservableValidator.subscribeActual( ~[?:?]
    at io.reactivex.Observable.subscribe( ~[?:?]
    at io.reactivex.Observable.subscribe( ~[?:?]
    at io.reactivex.Observable.subscribe( ~[?:?]
    at nl.lolmewn.stats.listener.bukkit.BlockPlace.onBlockPlace( ~[?:?]
    at sun.reflect.GeneratedMethodAccessor494.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke( ~[?:1.8.0_181]
    at java.lang.reflect.Method.invoke( ~[?:1.8.0_181]
    at$1.execute( ~[Spigot.jar:git-Spigot-7228328-11323bf]
    ... 18 more
  5. quarizma1992
    Version: v3.1.1-RC Failed to generate tables for stats
    at nl.lolmewn.stats.mysql.MySQLStorage.generateTables( ~[Stats3.jar:?]
    at nl.lolmewn.stats.mysql.MySQLStorage$ [Stats3.jar:?]
    at [spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat( [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B( [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B( [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A( [spigot.jar:git-Spigot-db6de12-18fbb24]
    at [spigot.jar:git-Spigot-db6de12-18fbb24]
    at Source) [?:1.8.0_161]
    Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory( ~[Stats3.jar:?]
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource( ~[Stats3.jar:?]
    at org.apache.commons.dbcp2.BasicDataSource.getConnection( ~[Stats3.jar:?]
    at nl.lolmewn.stats.mysql.MySQLStorage.generateTables( ~[Stats3.jar:?]
    ... 8 more
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_161]
    1. Lolmewn
      Author's Response
      Your connection to the database doesn't work. This is not the plugin's fault.
  6. SuperRonanCraft
    Version: v3.1.1-RC
    AMAZING! I've hooked this plugin to mvdw mysql placeholders and even mvdw to Placeholder api to AnimatedMenu with no issues (yes very complex but perfect for Hub Servers and per-server stats) and it still works flawlessly with no lag time on uploading and retrieving database information. Please add more stats that combine things such as total kills of a certain mob, as atm it's certain mob with certain weapon, but still 11/10 plugin for making my server stats come alive!
  7. misterjacket
    Version: v3.1.1-RC
    The new version works perfect on my 1.10 server!
    But I have one question. The %value% shows for example: '15.0 Commands done' but can i remove the decimal? So its just '15'? if so... how ?

    Thanks for this great plugin!
    1. Lolmewn
      Author's Response
      Not yet, I've been working on this myself, too. Thanks for the feedback :)
    Version: v3.1.1-RC
    The best Statistics plugin at the moment.
    Sadly the webinterface is... sorry... but awful and crappy. I know that the author is not responsible for it, but its really sad that there isnt a good looking and working Webend. (Like webstatsX for this plugins older versions. Looking for someone who can make webstatsX working again..)
    5 Stars if there will be a better solution for this in future. For me a good Stats plugin needs to have a good Webend, too.
  9. Huso3288
    Version: v3.1.1-RC
    MySQL Connection dont Work. Fix this. Thanks

    1. Lolmewn
      Author's Response
      What do you mean, "doesn't work"? How is this helpful to me? How do I fix something that you don't tell me about, other than "plz fix"?
  10. HyperGaming18
    Version: v3.1.1-RC
    Always loved this plugin but i've never got the web end working. take a look for yourself...

    It asks for "php-mysqlnd" When it's already installed. Then it asks for me to make my own permissions. i tried looking into it for hours and it didn't work. If you could shed some light on it PM me please <3 anyway love your plugin <3
    1. Lolmewn
      Author's Response
      For web-support, please ask the creator of Blue stats. I have never touched the code (heck, I don't even use it myself).