
A powerful and flexible playtime reward plugin that automatically rewards your players for their time spent on your server!
A flexible playtime reward plugin that automatically rewards your players for their time spent on your server!
PlaytimeReward-1.0.0.jar fileplugins folderPlaytimeReward folder with default configurationplugins/PlaytimeReward/config.yml/ptr reload or restart the serverAfter installation, verify the plugin is working:
> plugins
[10:00:00 INFO]: Plugins (1): PlaytimeReward
The plugin generates a config.yml file in plugins/PlaytimeReward/ with extensive customization options.
reward:
# Time in seconds between each reward
interval: 300 # 5 minutes (300 seconds)
# Item to give as reward (use Minecraft material names)
# Examples: DIAMOND, EMERALD, GOLD_INGOT, IRON_INGOT, NETHERITE_INGOT
item: DIAMOND
# Amount of items to give per reward
amount: 1
# Custom display name for the reward item (optional)
# Use & for color codes (&a = green, &b = blue, etc.)
display-name: "&b&lPlaytime Reward"
# Lore for the reward item (optional)
lore:
- "&7Thank you for playing!"
- "&7Earned from playtime"
All messages support Minecraft color codes (& format):
messages:
# Message when player receives reward
reward-received: "&a&l✦ &aYou received &e{amount}x {item} &afor playing!"
# Message when inventory is full
inventory-full: "&c&l⚠ &cYour inventory is full! &7Reward saved. Use &e/ptr claim &7to claim it later."
# Message when claiming stored rewards
rewards-claimed: "&a&l✦ &aYou claimed &e{amount} &astored reward(s)!"
# Message when no rewards to claim
no-rewards: "&c&l✦ &cYou don't have any stored rewards!"
# Message for next reward countdown
next-reward: "&b&l⏰ &bNext reward in: &e{time}"
# Welcome message on join
welcome: "&a&l✦ &aWelcome back! You'll earn rewards every &e{interval} &aof playtime!"
features:
# Send welcome message when player joins
welcome-message: true
# Show actionbar with time until next reward
actionbar-countdown: true
# Play sound when reward is received
reward-sound: true
sound: ENTITY_PLAYER_LEVELUP
# Enable particle effects when giving reward
reward-particles: true
particle: TOTEM_OF_UNDYING
advanced:
# Auto-save player data (in minutes)
auto-save-interval: 5
# Reset playtime on server restart (not recommended)
reset-on-restart: false
# Maximum stored rewards per player (prevents abuse)
max-stored-rewards: 100
# Minimum online time to start earning (in seconds)
# Prevents AFK farmers at spawn
minimum-online-time: 60
Example 1: Give 3 Emeralds every 10 minutes
reward:
interval: 600
item: EMERALD
amount: 3
Example 2: Give 1 Netherite Ingot every hour
reward:
interval: 3600
item: NETHERITE_INGOT
amount: 1
display-name: "&6&l⭐ &ePremium Hour Reward &6&l⭐"
lore:
- "&7You've played for 1 hour!"
- "&eThank you for your dedication"
Example 3: Quick rewards for testing (30 seconds)
reward:
interval: 30
item: DIAMOND
amount: 5
You can use any valid Minecraft material name. Common examples:
DIAMOND, EMERALD, GOLD_INGOT, IRON_INGOTNETHERITE_INGOT, ANCIENT_DEBRISENCHANTED_GOLDEN_APPLE, GOLDEN_APPLEELYTRA, TOTEM_OF_UNDYINGEXPERIENCE_BOTTLE, BEACONSee Spigot Material List for all available materials.
All commands use the /ptr prefix (alias for /playtimereward).
| Command | Description | Permission |
|---|---|---|
/ptr info |
Displays your playtime statistics | None (default) |
/ptr claim |
Claims your stored rewards | None (default) |
| Command | Description | Permission |
|---|---|---|
/ptr reload |
Reloads the configuration | PlaytimeReward.admin |
/ptr check <player> |
Views a player's statistics | PlaytimeReward.admin |
/ptr reset <player> |
Resets a player's playtime data | PlaytimeReward.admin |
/ptr save |
Manually saves all player data | PlaytimeReward.admin |
/ptr infoShows your personal playtime information:
Example Output:
=== Your Playtime Info ===
Total Playtime: 2 hours 45 minutes 30 seconds
Current Session: 15 minutes 10 seconds
Next Reward: 4 minutes 30 seconds
Stored Rewards: 3 (Use /ptr claim)
/ptr claimClaims all stored rewards that were saved due to full inventory.
Example Output:
✦ You claimed 5 stored reward(s)!
/ptr reloadReloads the plugin configuration without restarting the server.
Use Case: After editing config.yml
/ptr check <player>Views detailed statistics for any player.
Example Output:
=== Steve's Playtime Data ===
Total Playtime: 2 hours 45 minutes 30 seconds
Time Since Last Reward: 4 minutes 20 seconds
Stored Rewards: 3
Current Session: 15 minutes 10 seconds
/ptr reset <player>⚠️ WARNING: Permanently resets all playtime data for a player. Cannot be undone!
/ptr saveForces an immediate save of all player data to disk.
Use Case: Before server maintenance or manual file edits
| Permission | Description | Default |
|---|---|---|
PlaytimeReward.receive |
Allows receiving playtime rewards | true (everyone) |
PlaytimeReward.admin |
Allows using admin commands | op (operators only) |
Give admin permission to a moderator:
# Using LuckPerms
/lp user Moderator permission set PlaytimeReward.admin true
Remove receive permission from a player:
# Using LuckPerms
/lp user Player permission set PlaytimeReward.receive false
Group permissions (in your permissions plugin):
groups:
default:
permissions:
- PlaytimeReward.receive
moderator:
permissions:
- PlaytimeReward.admin
When you join, you'll see a welcome message (if enabled):
✦ Welcome back! You'll earn rewards every 5 minutes of playtime!
Simply play on the server! Every configured interval (default 5 minutes), you'll automatically receive a reward:
✦ You received 1x diamond for playing!
[Sound and particle effects play]
If your inventory is full, the reward is automatically stored:
⚠ Your inventory is full! Reward saved. Use /ptr claim to claim it later.
Use /ptr info to see:
When you have inventory space, use /ptr claim to collect all stored rewards at once.
Check any player's statistics:
/ptr check PlayerName
Give yourself a test reward:
/ptr check YourName # Check your current data
# (Wait for automatic reward or adjust config for testing)
plugins/PlaytimeReward/config.yml/ptr reload/ptr check <player>/ptr reset <player> (use cautiously)/ptr save (before maintenance)plugins/
└── PlaytimeReward/
├── config.yml # Plugin configuration
└── playerdata.yml # Player playtime data
The playerdata.yml file stores:
Player data is automatically saved:
/ptr save is executedSolutions:
PlaytimeReward.receive permission/ptr reload/ptr check <player>minimum-online-time requirement is metSolutions:
reward.item setting in config.yml/ptr reloadSolutions:
/playtimereward instead of /ptrSolutions:
/ptr saveSolutions:
reward.interval in config.yml (value is in seconds)/ptr reload after changingIf you need additional support:
auto-save-interval based on player countmax-stored-rewards limitminimum-online-time to reduce unnecessary checksPotential features for future versions:
If you find a bug, please report it with:
Have an idea? Share it with details about:
Join our Discord server for support, updates, and community discussion:
https://discord.gg/cybycQ9wGp
This plugin is free to use for your server.
Yenith
Thank you for using PlaytimeReward! If you enjoy this plugin:
Made with ❤️ for the Minecraft community
Last Updated: 06 October 2025