PVP Stats

You want to keep track of your users' PVP actions? There you go. Drop the jar into your plugin folder, restart the server, change the config, restart - done!


>> download for 1.8 through 1.12 <<

>> download for 1.7 and earlier <<


This plugin features saving of kills, deaths and killstreaks to a MySQL database, simple as that:

Table name: pvpstats

  • name
  • kills
  • deaths
  • streak
  • currentstreak
  • ELO
  • time

Since v0.6 it also supports more detailed stats, so you can check the kill / death count by time

Table name: pvpkillstats

  • name
  • kill
  • time

That's the basic equipment you need to display the PVP experience of your players. PVP Stats will create the databases for you! You just need to setup the database connection/settings in the config


/pvpstats - show your pvp stats /pvpstats [player] - show player's pvp stats
/pvpstats [amount] - show the top [amount] players (K-D)
/pvpstats top [amount] - show the top [amount] players (K-D)
/pvpstats top [type] - show the top 10 players of the type
/pvpstats top [type] [amount] - show the top [amount] players of the type
/pvpstats cleanup - clean the database of multi entries
/pvpstats debugkill [attacker] [victim] - manually insert a kill for debug purposes
/pvpstats migrate [from/to] [yml/sqlite/mysql] - migrate from/to a different database implementation
/pvpstats purge [amount] - purge KILLSTATS entries older than [amount] days
/pvpstats reload - reload the config
/pvpstats wipe [player] - wipe the stats [for a player]

Permission nodes:

description: Ability to cleanup (remove entries with the same player name)
  default: op
description: Permission to be counted
default: true
description: Ability to debug
default: op
description: Ability to add a debug kill
default: op
description: Ability to migrate
default: op
description: Ability to purge entries older than X days
default: op
description: Ability to reload
default: op
description: Permission to get global stats
default: true
description: Ability to wipe the stats
default: op
description: Permission to block being killed to be counted
default: false


Q: How do I change the placeholder colors?

A: You can change the formatting of player outputs, including placeholders, in the lang.yml, look for "format:", by default it is red (&c) and gray (&7).

Q: How do I change the numbered output?

A: In the same file, lang.yml, look for "numbers:" it contains only two things, the number area (%0%) and the values (%1%), if you don't like the colon, or want different formatting here, you can change this.

Q: I kill someone and the kill is not counted!

A: Did you just kill the same player earlier? There is an abuse check to prevent this. Set checkAbuse to false if you do not want that.

Q: I died by myself and it reset my kill streak!

A: You can disable this by setting preventRegularDeaths to false


> Commented config < (GitHub)

Database options:

  • a MySQL database
  • SQLite installed
  • YML Files (probably slow)

Recommended Holographic Leaderboard Setup:

I recommend using Holographic Displays and Holographic Scoreboards (I fixed a small startup issue for MC 1.13: download).

With these plugins, you can set up holographic displays for example /pvpstats top kills 10 - if you only want a representation of a top-(or flop-)leaderboard, I suggest you use this setup.

Example for top 6 kills scoreboard:

/hgs create YourBoardName 1m console pvpstats top kills 6
(Thanks to RafaelAuler for pointing me in this direction!)‚Äč

Alternative Setup with Placeholders:

You need

Then you can create more detailed holograms with the following placeholders:

Placeholder API Player Placeholders:

  • Player based stats:
    • slipcorpvpstats_kills
    • slipcorpvpstats_deaths
    • slipcorpvpstats_streak
    • slipcorpvpstats_maxstreak
    • slipcorpvpstats_elo - the ELO score
    • slipcorpvpstats_ratio - the kill/death ratio
  • Top list stats:
    • slipcorpvpstats_top_kills_head_5 - heading ("Top 5 Kills")
    • slipcorpvpstats_top_kills_1 - Top player entry ("1. SLiPCoR: 100")
    • slipcorpvpstats_top_kills_2 - Second player entry ("2. garbagemule: 70")
    • slipcorpvpstats_top_kills_3 - ...
    • slipcorpvpstats_top_kills_4
    • slipcorpvpstats_top_kills_5
  • Worst list stats:
    • slipcorpvpstats_flop_kills_head_5 - heading ("Least 5 Kills")
    • slipcorpvpstats_flop_kills_1 - First player entry ("1. SLiPCoR: 5")
    • slipcorpvpstats_flop_kills_2 - Second player entry ("2. garbagemule: 10")
    • slipcorpvpstats_flop_kills_3 - ...
    • slipcorpvpstats_flop_kills_4
    • slipcorpvpstats_flop_kills_5

Valid list statistics are:

  • kills
  • deaths (top is sorted ascending!)
  • streak (maximum streak)
  • elo
  • k-d (kill/death ratio as defined in the config)


  • pandapipino for the idea :)

Source: GitHub

Phoning home

To determine popularity and usage of PVP Stats, the server contacts my private server for information purposes. It sends your port, IP (for proper server counting), and the plugin version. That's it! If you want to disable that, set "tracker" to false in the config!



Posts Quoted:
Clear All Quotes

About This Project



Recent Files