Skip to content

Commands

TheGaBr0 edited this page May 21, 2026 · 25 revisions

Playtime Commands Reference

Quick Navigation

List of available commands:


/playtime

Shows your own playtime statistics.

Permission: playtime
Default Access: Enabled for all players

/playtime <playername>

Shows another player's playtime.

Permission: playtime.others
Default Access: Disabled

Playtime subcommands

/playtime <playername> add <time>

Adds playtime to a specified player.

⚠️️️ This will modify the artificial playtime record. It will not affect the server's play_one_minute statistic or the actual playtime stored by the plugin. Instead, it will only update an additional record that is combined with the actual playtime.

Permission: playtime.others.modify
Default Access: Disabled

Time Format:

  • Multiple time units can be specified, separated by commas
  • Player's total playtime cannot exceed Long.MAX_VALUE (approximately 14.6 million years)

Examples:

/playtime TheGabro add 1d,4h,3m 
/playtime Steve add 20s,1y,3d 

/playtime <playername> remove <time>

Removes playtime from a specified player.

⚠️️️ This will modify the artificial playtime record. It will not affect the server's play_one_minute statistic or the actual playtime stored by the plugin. Instead, it will only update an additional record that is combined with the actual playtime.

Permission: playtime.others.modify
Default Access: Disabled

Time Format:

  • Multiple time units can be specified, separated by commas
  • Player's total playtime cannot go below 0

Examples:

/playtime TheGabro remove 1d,4h,3m 
/playtime Steve remove 20s,1y,3d 

/playtime <playername> reset [resettype]

Resets playtime data of players.

Permission: playtime.others.modify
Default Access: Disabled

Usage:

  • Use * instead of <playername> to apply the reset action to all users. This requires the permission playtime.others.modify.all
  • If no parameter is specified, it defaults to everything.

Reset Types:

  • server_playtime: Resets only the server's PLAY_ONE_MINUTE statistic (stored in world stats folder)
  • playtime: Resets database playtime records only (both artificial and actual playtime)
  • last_seen: Resets the last seen timestamp data
  • first_join: Resets the first join timestamp data
  • joinstreak: Resets both absolute and relative join streak records to 0
    • Learn about different types of join streaks here
  • joinstreak_rewards: Resets join streak reward progress and restarts reward tracking
  • goals: Resets all completed goals data
  • everything: Resets all player data (equivalent to the old all parameter)
    • Includes: playtime, goals, first join, last seen, and join streak data
    • Does NOT reset server statistics - use server_playtime separately if needed

Important: This action cannot be undone.

/playtimestats

The GUI used by this command can be completely customized and may require the understanding of views. Learn more here.

Shows registered stats of the sender in a customizable GUI.

Permission: playtime.stats
Default Access: Enabled Alias: /ptstats

Displays the player's own statistics through a customizable GUI interface with organized stat categories. This command uses the owner view configuration, providing full access to all personal statistics.

/playtimestats <playername>

Shows registered stats of the specified player in a customizable GUI.

Permission: playtime.others.stats
Default Access: Disabled

Displays statistics for another player using the player view configuration, which shows publicly available statistics. If the executor has the playtime.others.stats.staff permission, a special staff view is displayed instead, providing enhanced statistical information and administrative details.

Display Format:

  • Player: Customizable GUI interface with organized stat categories
  • Console: Text-based statistics output with detailed formatting

/playtimegoal

For a tutorial on goals you can take a look here.

Opens the goal management interface.

Permission: playtime.goal
Default Access: Disabled
Alias: /ptgoal

Playtimegoal subcommands

Permission: playtime.goal
Default Access: Disabled

/playtimegoal <goalname> checknow

Triggers a completion check of the target goal. This will also re-schedule the next check if it is a seconds based one.

Example:

/playtimegoal goal1 checknow

/playtimegoal create <goalname>

Creates a new goal and sets it to inactive by default.

Example:

/playtimegoal create goal1

/playtimegoal remove <goalname>

Deletes an existing goal.

Example:

/playtimegoal remove goal1

/playtimegoal rename <goalname> <newgoalname>

Renames an existing goal

Example:

/playtimegoal rename goal2 goal1

/playtimeaverage

Displays average playtime across all stored players.

Permission: playtime.average
Default Access: Disabled
Alias: /ptavg

/playtimepercentage <time>

Shows statistics for players meeting or exceeding specified playtime.

Permission: playtime.percentage
Default Access: Disabled
Alias: /ptpercent

Time Format:

  • Multiple time units can be specified, separated by commas

Example:

/playtimepercentage 30d
#Shows the percentage and number of players who have played for 30 days or more

/playtimetop [page]

Displays a leaderboard of the 100 players with highest playtime.

Permission: playtime.top
Default Access: Disabled
Alias: /pttop

✅ The chat output of this command can be completely customized in Translation/Commands/commands-config.yml.

Usage:

  • Maximum amount is 100 and can't currently be changed
  • Pages are represented as p1, p2, p3... (up to p10). These are not mandatory and you can use the clickable arrows in chat to switch page.
  • Each page displays 10 players maximum
  • If page is not specified, defaults to first page (p1)

Example:

/playtimetop 30 p1
#Shows the first page of top 30 players sorted by playtime
/playtimetop 30 p2
#Shows the second page of top 30 players sorted by playtime

/playtimejoinstreak

🔎 For a tutorial on join streak based rewards you can take a look here.

Opens the join streak rewards management GUI

Permission: playtime.joinstreak
Default Access: Disabled
Alias: /ptjsk

Playtimejoinstreak subcommands

/playtimejoinstreak seeplayer <playername>

Opens the same visual GUI as /claimrewards, but viewed from the perspective of the target player.

⚠️ Important: This GUI is read-only when viewing another player’s rewards. Admins cannot claim or modify rewards through this interface.

Permission: playtime.joinstreak.seeplayer
Default Access: Disabled

/playtimejoinstreak set <playername> <value>

Sets the target player's relative join streak to the specified value.

Permission: playtime.others.modify
Default Access: Disabled

Usage:

  • Use * instead of <playername> to apply the set action to all users. This requires the permission playtime.others.modify.all

/claimrewards

Opens the GUI to claim available rewards

Permission: playtime.joinstreak.claim Default Access: Enabled

playtime.joinstreak.claim grants the permission to use /claimrewards. As explained here this allows players to manually claim their rewards based on their current join streak.

Alternatively, players with the playtime.joinstreak.claim.automatic permission will automatically receive their rewards without needing to use the command.

/playtimereload

Refreshes system configuration and goals.

Effects:

  • Reloads config.yaml
  • Reloads goals
  • Restarts goal completion check schedule

Permission: playtime.reload
Default Access: Disabled
Alias: /ptreload

/playtimeattribute <playername> <attribute> [true|false]

Manages internal attributes of players in PlayTimeManager.

Permission: playtime.others.attributes Default Access: Disabled
Alias: /ptattr

Available Attributes:

  • hidefromleaderboard: Controls whether the player appears on playtime leaderboards. This affects placeholders.playtime-leaderboard-blacklist config field.

/playtimebackup

Triggers a manual database backup.

Permission: playtime.backup
Default Access: Disabled
Alias: /ptbkp

/playtimemigration <start|cancel|status> [dbtype]

Manages database migration operations.

⚠️ Console Only: This command can only be executed from the server console for security reasons.

Important Notes:

  • Migration occurs on the next server reload/restart
  • Make sure that target's data is correctly set in config.yml before restarting (e.g. username, password, etc...)
  • A backup is automatically created before migration starts
  • Existing PlayTimeManager tables in the target database (if any) are dropped

Subcommands:

  • start <dbtype> - Schedules a database migration to the specified type (mysql, mariadb, postgresql, sqlite)
  • cancel - Cancels a pending database migration
  • status - Displays current database type and any pending migration status

Available Database Types:

  • mysql
  • mariadb
  • postgresql
  • sqlite

Global Permission

Using playtime.* grants access to all playtime commands.

Permission: playtime.*
Default Access: OP only

Plugin Permissions Table

Permission Commands Granted
playtime /playtime (view own playtime statistics)
playtime.others /playtime <playername> (view other players' playtime)
playtime.others.modify /playtime <playername> add <time>
/playtime <playername> remove <time>
`/playtime reset [all
playtime.others.modify.all All /playtime.others.modify commands with * wildcard (apply to all users)
playtime.others.attributes /playtimeattribute <player> <attribute> [true|false] (manage players internal attributes of PlayTimeManager)
playtime.others.stats /playtimestats <playername> View another player's statistics (uses player view in GUI or formatted text output in console)
playtime.others.stats.staff /playtimestats <playername> View another player's statistics with enhanced details (uses staff view in GUI or detailed formatted text output in console)
playtime.stats /playtimestats View own statistics (uses owner view in GUI or formatted text output in console)
playtime.goal /playtimegoal (open goal management interface)
/playtimegoal create <goalname>
/playtimegoal remove <goalname>
/playtimegoal rename <goalname> <newgoalname>
playtime.average /playtimeaverage (view average playtime across all players)
playtime.percentage /playtimepercentage <time> (view statistics for players meeting specified playtime)
playtime.top /playtimetop [page] (view playtime leaderboard)
playtime.joinstreak /playtimejoinstreak (open join streak rewards management GUI)
playtime.joinstreak.seeplayer /playtimejoinstreak seeplayer <playername> (view another player's rewards GUI in read-only mode)
playtime.joinstreak.claim /claimrewards (manually claim available rewards)
playtime.joinstreak.claim.automatic Automatic reward claiming (no command needed - rewards are given automatically)
playtime.reload /playtimereload (reload configuration and goals)
playtime.backup /playtimebackup (trigger manual database backup)
playtime.* All playtime commands (global permission for all functionalities)

Clone this wiki locally