Playtime is a plugin for tracking numerous times for particular players. Currently within its release stage, it can track the time that a player has been online, been alive for, and how long they have played on the server in total. It currently supports three forms of data management, which are MySQL, SQLite, and flat file storage using yaml files. There is also tracking of AFK players (if you wish to enable it), and I try to keep everything within this plugin as configurable as possible. Please, if you have any type of feedback at all, don't hesitate to leave a comment! I usually try to add new ideas within a week of requesting it if I deem that it is appropriate for the plugin.

News: Playtime-2.0.0!

There are plans for an upcoming re-write of the Playtime plugin in its entirety! You can view the notes on this update at the link below:

This will add some major overhauls, including an incredible re-write of the event system, finally fixing the event system to allow for player-defined events after a certain time period.

Have questions on the update, or need help with the plugin in general? Leave a comment below or feel free to talk to me direct via IRC: #codelanx

Updating to Playtime 1.4.1+

Note that v1.4.0 introduces an event system with a few example events placed in. If you would not like any events to be used at all, simply remove everything in the events.yml file and save it as blank.


  1. Download the jar file and put it in your plugin folder
  2. Start your server
  3. PlayTime has generated a config.yml in your plugins folder, customize it so it can connect to your database
  4. Restart your server


Java 6 or higher


  • Logs PlayTime for users currently online, updates it every minute
  • Logs the PlayTime in a MySQL database
  • Looking up your own play time with a command
  • Look up up someone elses play time with a command
  • See how long since your last death
  • See how long since someone else's death
  • Stop tracking the time of AFK players
  • Flatfile support (yml files) - Deprecated, will return in the future
  • SQLite support
  • Dynamic configuration updating
  • Asynchronous data management
  • Time spent online since login
  • Other languages - Currently supported: en_US (English), de_DE (German)
  • Firing Console commands when a time is reached
  • Add top for total time played
  • Add command to switch between data managers
  • Automatic updating and version checking. This is possible to disable under the "update" section of the config. For more information, read the Configuration page

For a full list of upcoming features, feel free to look here:

Metrics Stats

Playtime uses metrics, which keeps track of information such as OS, player count, java version, and other specific information in an anonymous fashion. You can view the collected information by clicking the graph below, and it is used for any potential future development for specific groups that develop within statistics:

This can be disabled in the Metrics configuration for all plugins, under plugins/PluginMetrics/config.yml , and set "opt-out" to true. Keep in mind this will make your server not report any information, and I love stats almost as much as cats </3

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Kruize1 Kruize1 Sep 13, 2016 at 06:00 UTC - 0 likes

    @TheCrafterBoyGER: Go

    Same problem here. [Playtime] null every 10 minutes. No idea why this is happening

  • Avatar of user-11800842 user-11800842 Jul 22, 2016 at 03:30 UTC - 0 likes

    I have a problem. I'm trying to run a command every 30 minutes a player plays. (So like 1hr 30 2hr 2hr 30 and so on) But every time I try it fails. How do you use the repeat option..?

    Yogbox 2.0 Official Server

  • Avatar of user-11800842 user-11800842 Jul 18, 2016 at 19:34 UTC - 0 likes

    How is Playtime 2.0.0 coming? I'd love to use it!

  • Avatar of Edge209 Edge209 Apr 23, 2016 at 02:39 UTC - 0 likes

    I don't like to go trolling on other, similar plugins looking to pull away users, but I it does look like some servers are in need of an alternative if Playtime is no longer active. It has all of the same functionality, plus much more, including UUID support, so please check out OnTime.

    My plugins:

    OnTime - Playing time tracking, auto-reward system
    OnSign - Displays player online and playtime status on signs
    afkTermnator - Find/ punish players using machines to avoid AFK detection


  • Avatar of Elian1203 Elian1203 Apr 23, 2016 at 01:18 UTC - 0 likes

    I don't think the author is ever going to update the plugin. I had to make my own plugin with compatibility to convert old playtimes from this plugin to itself. I'd recommend you all get a new playtime plugin that supports UUIDs. This plugin caused my server to crash many times because of the SQLite database.


  • Avatar of Dh82 Dh82 Apr 12, 2016 at 00:11 UTC - 0 likes

    Unfortunately, the developer links do not work. Please inform me if I am the only one who is getting the "404" error code from the link.

  • Avatar of dutchy1001 dutchy1001 Apr 08, 2016 at 09:01 UTC - 0 likes

    @user-11800842: Go

    Sorry for previous reply (deleted now) wasn't awake to realise I answered in the wrong plugin as my own.

    Were is my Coffee.....

    uSkyblock: Official Website
    uSkyblock: Issue report
    Latest Dev version download: Latest
    uSkyblock server:

    I'm associated with uSkyblock (v2.0.1 and upwards) but can't be held responsible for mistakes you make.

  • Avatar of user-11800842 user-11800842 Apr 08, 2016 at 03:14 UTC - 0 likes

    Every time I run the game, I get this error:

    [22:10:51] [Server thread/ERROR]: Cannot load plugins/Playtime/events.yml org.bukkit.configuration.InvalidConfigurationException: while parsing a block collection in "", line 8, column 9: - 'msg %u For playing thirty min ... ^ expected , but found Scalar in "", line 9, column 12: - 'adjustbonusclaimblocks %u 10' ^ at org.bukkit.configuration.file.YamlConfiguration.loadFromString( ~[YamlConfiguration.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at org.bukkit.configuration.file.FileConfiguration.load( ~[FileConfiguration.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at org.bukkit.configuration.file.FileConfiguration.load( ~[FileConfiguration.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration( [YamlConfiguration.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at com.rogue.playtime.event.EventHandler.loadEvents( [Playtime.jar:?] at com.rogue.playtime.event.EventHandler.( [Playtime.jar:?] at com.rogue.playtime.Playtime.onEnable( [Playtime.jar:?] at [JavaPlugin.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at [JavaPluginLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at org.bukkit.plugin.SimplePluginManager.enablePlugin( [SimplePluginManager.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin( [CraftServer.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins( [CraftServer.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] at net.minecraft.server.MinecraftServer.func_71243_i( [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.func_71222_d( [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.func_71247_a( [MinecraftServer.class:?] at net.minecraft.server.dedicated.DedicatedServer.func_71197_b( [lt.class:?] at [MinecraftServer.class:?] at [?:1.8.0_66] Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block collection; expected , but found Scalar at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockSequenceEntry.produce( ~[ParserImpl$ParseBlockSequenceEntry.class:?] at org.yaml.snakeyaml.parser.ParserImpl.peekEvent( ~[ParserImpl.class:?] at org.yaml.snakeyaml.parser.ParserImpl.checkEvent( ~[ParserImpl.class:?] at org.yaml.snakeyaml.composer.Composer.composeSequenceNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeMappingNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeMappingNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeMappingNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeNode( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.composeDocument( ~[Composer.class:?] at org.yaml.snakeyaml.composer.Composer.getSingleNode( ~[Composer.class:?] at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData( ~[BaseConstructor.class:?] at org.yaml.snakeyaml.Yaml.loadFromReader( ~[Yaml.class:?] at org.yaml.snakeyaml.Yaml.load( ~[Yaml.class:?] at org.bukkit.configuration.file.YamlConfiguration.loadFromString( ~[YamlConfiguration.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0] ... 17 more [22:10:51]

    And this is my events.yml:

    events: thirtyminutes: type: onlinetime time: 30 at-login: false repeat: true commands: - 'msg %u For playing thirty minutes, you have earned 10 bonus claim blocks! - 'adjustbonusclaimblocks %u 10'>>

    Any ideas?

    Edit: It is actually working, it's just giving me a big error.

    Last edited Apr 08, 2016 by user-11800842: Missed a part
  • Avatar of TheCrafterBoyGER TheCrafterBoyGER Mar 23, 2016 at 10:13 UTC - 0 likes

    It sends "Playtime:Null" every 10 Minutes. I didn't change anything... but yesterday it worked fine. Server Version: git-Spigot-db6de12-18fbb24 (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT)

  • Avatar of SalC1 SalC1 Mar 06, 2016 at 18:35 UTC - 0 likes

    If you have 1.9, do not install this. It will spam the console with errors. Please update this to 1.9!


Date created
Aug 10, 2012
Last update
Jan 21, 2014
Development stage
  • enUS
GNU General Public License version 3 (GPLv3)
Curse link
Reverse relationships
Recent files