Playtime Rewards & Progression
1.5.14The ultimate player retention system based on visible, rewarding progression.
1.5.14latestv1.5.14 – Maintenance ReleaseSep 20, 2026 No gameplay or configuration changes. Safe to update from any previous version. Improved · Upgrade safety: added an automated regression suite that migrates the exact config.yml shipped with each of the 17 published releases, from 1.0 through 1.5.13, to the current schema. · The suite verifies that existing values, rewards and Career Tiers are preserved, new settings are added correctly, and running the migration a second time produces no further changes. · Historical migration paths are also covered, including: · Anti-AFK sounds moved from locale files into config.yml · Removal of the old Career multiplier · First-join reward key rename · config-version remains at 4. · No changes to the configuration schema or player-data format. · Existing automatic migration backups (config.backup.v-to-v.yml) are unchanged.1.5.13v1.5.13 ChangelogSep 19, 2026 Fixed · Fixed rotating reward pools not always preserving their configured order. · SEQUENTIAL rotating rewards now remain consistent across server restarts. · RANDOM rotating rewards now resolve against a stable pool order. · Fixed a case where the first-join reward could be lost if a player disconnected shortly after joining for the first time. Improved · First-join rewards are now secured immediately after the player session is loaded. · First-join sound, title and particle effects are still delayed slightly so they do not overwrite the welcome title. · Added a configuration warning when visual.first-join.reward-id points to a non-LIFETIME reward. · Added a configuration warning when visual.first-join.reward-id references an unknown reward. · Added automated tests for rotating reward resolution. Branding · Renamed the plugin to Playtime Rewards & Progression. · Updated visible plugin titles, console prefix and bundled configuration/message headers. · The internal Bukkit plugin id, permissions and PlaceholderAPI identifiers remain unchanged for compatibility.v1.5.12v1.5.12 ChangelogSep 5, 2026 Performance · Optimized command queue flushing for servers with multiple players. · Periodic queued-command delivery now batches all eligible players into a shared two-phase persistence cycle instead of saving the full queue separately for every player. · Preserved the existing durability guarantees: queued commands are still persisted as DISPATCHING before execution to prevent accidental duplicate rewards after a crash. Reliability · If the pre-dispatch queue save fails, no queued commands are executed and all selected entries are safely restored to PENDING. · If the final persistence step fails after commands have been attempted, affected entries retain the existing UNCERTAIN recovery behavior. · Per-player command flush limits remain unchanged when using the new batched flush system. Cleanup · Removed unused legacy classes. · General internal cleanup with no configuration changes required. Compatibility · No config migration required. · No user-facing command or permission changes. · Existing reward, queue and recovery behavior remains compatible with v1.5.11.1.5.11v1.5.11 ChangelogAug 9, 2026 · Fixed unsafe player-session handling after failed data loads. · Improved YAML recovery and protection against accidental data loss. · Fixed playtime loss during lag spikes or long server freezes. · Improved inventory-space checks for queued rewards. · Fixed first-join demo rewards being claimable twice. · Added better diagnostics for failed, pending and uncertain reward deliveries. · Added config migration to version 4.1.5.9v1.5.9 ChangelogAug 3, 2026 · Reworked sounds, particles and enchantments to avoid removed API constants. · Fixed playtime loss caused by lag and sub-second rounding. · Added durable reward command delivery with retries and dead-letter handling. · Prevented broken commands from blocking queues or duplicating completed rewards. · Improved career progression when multiple tiers are crossed. · Added strict YAML loading, safer atomic writes and temporary-file recovery. · Prevented removed rewards from being restored automatically. · Fixed GUI safety during reloads and shutdowns. Added /playtime help, offline player resets and improved tab completion. · Improved Anti-AFK detection and reload behavior. · Standardized message keys and removed unused configuration and code. · Added an automated release verification tool with compilation, locale and configuration checks.1.5.8v1.5.8 ChangelogJul 25, 2026 · Improved reward delivery reliability and queue handling. · Fixed rewards being marked as claimed when they could not be delivered or queued. · Improved pending inventory reward handling, including identical queued rewards. · Improved command execution handling to distinguish complete delivery failures. · Added clearer claim feedback for rewards that are not ready, already claimed, career-locked or could not be delivered. · Fixed first-join detection to prevent welcome actions or demo rewards from repeating after quick reconnects. · Improved reward GUI slot collision handling. · Improved Top Playtime GUI slot validation and automatic refresh after the initial data load. · Optimized Top Playtime loading by reducing unnecessary player-data reads. · Improved BossBar behavior and configuration consistency. · Added an independent toggle for the Anti-AFK actionbar. · Added automatic configuration migration to config version 2. · Fixed career tier rewards being granted again when a tier ID was renamed or removed. · Improved career tier state synchronization after configuration changes. · Reworked the message audit system to automatically detect all registered message keys. · Fixed message keys being excluded from missing-translation checks. · Added stricter validation for duplicate, empty and malformed message keys. · Improved message consistency and localization across commands and interfaces. · Added a dedicated header for /playtime next. · Improved mixed MiniMessage and legacy color formatting support. · Made previously inactive configuration options work correctly. · Improved configuration validation and administrator warnings. · Improved cache cleanup and reload behavior. · Removed obsolete, duplicated and unused internal code. · General code cleanup, reliability improvements and minor bug fixes.1.5.6v1.5.6 Data integrity updateJul 18, 2026 Data Integrity Update · Reworked the YAML persistence system for safer and more reliable player data storage. · Added unique session identities to prevent outdated saves from affecting newer player sessions. · Fixed possible data rollbacks during rapid reconnects. · Unified autosaves, logout saves, resets and shutdown saves into a single ordered queue. · Player resets are now fully transactional and cannot be bypassed by pending saves. · Added real flush handling during shutdown to ensure final data is written before the plugin stops. · Failed save operations are now retried instead of being silently discarded. · Improved protection for playtime, claims, milestones, career progress and pending rewards. · Removed unused internal code and improved overall storage consistency.1.5.5v1.5.5Jul 12, 2026 Fixed Accurate playtime pause handling · Fixed playtime sessions not being fully paused while players were AFK. · Fixed playtime sessions not being fully paused in excluded worlds. · Fixed playtime sessions not being fully paused in excluded game modes. · Fixed a small amount of playtime being incorrectly credited after returning from a paused state. · Fixed playtime being credited when disconnecting while the session was paused. Reward GUI improvements · Fixed an issue where clicking certain slots in the player's own inventory could trigger GUI actions. · Prevented shift-click, number-key swapping, double-click and inventory drag interactions inside the reward GUI. · Improved overall GUI interaction safety. Milestone system · Fixed milestone progress not being permanently stored. · Fixed /playtime stats always reporting zero completed milestones for many players. · Existing player data is now automatically synchronized with their accumulated playtime without replaying old milestone announcements. Reward protection · Added validation to prevent the incompatible combination of: · auto-claim: true · allow-duplicate-claims: true · Invalid configurations are now detected automatically and safely prevented from generating unlimited reward claims. Improved · Simplified the internal milestone tracking system by using a single persistent source of truth. · Reduced duplicate processing during player join. · Improved inventory queue initialization. · Improved internal validation and lifecycle consistency. Internal · Refactored milestone persistence. · Improved session state transitions between active and paused states. · Improved runtime configuration validation. · General code cleanup and reliability improvements.1.5.4v1.5.4 ChangelogJul 5, 2026 Fixed - Fixed a critical YAML persistence issue where a session could be marked clean even if the file save failed. - Fixed inventory-queued rewards being flushed duringPlayerQuitEvent, which could remove a pending reward before the player was actually able to receive it. - Fixed reward command dispatch so normal claims execute immediately when already on the main server thread instead of always being delayed by one tick. - Fixed rotating queued rewards by storing the exact command list selected at claim time for new pending rewards. - Fixed GUI claiming bypassingplaytimeprogression.user.claimpermission. - Fixed initial career tier upgrades such asrookiefrom producing noisy first-tick upgrade effects or broadcasts. - Fixed PlaceholderAPI%playtimeprogression_pending_next%so v1.5.4 encoded pending rewards are displayed as a readable claim key. - Fixed PlaceholderAPI expansion cleanup by unregistering it on plugin disable. - Fixed default reward descriptions so they match the actual item commands inconfig.yml. Improved - Reworked TopManager to refresh the playtime top asynchronously and publish a cached snapshot on the main thread. - Top placeholders and Top GUI now use the last safe cached snapshot instead of forcing a full YAML scan on demand. - Online player sessions are merged into the Top snapshot so current playtime is reflected even before the next disk save. -/playtime statsnow uses stored YAML playerdata plus live sessions instead of only loaded sessions. - Removed unused Vault softdepend fromplugin.yml; PlaceholderAPI remains as softdepend.1.5.3v1.5.3 Fix & ImproveJun 23, 2026 Fixed · Fixed permission handling for multiple /playtime subcommands. · Fixed cycle reset synchronization issues affecting daily, weekly and monthly rewards. · Fixed reward rotation inconsistencies that could cause different rewards to appear between the GUI and the actual claim process. · Fixed placeholder calculations for upcoming rewards. · Fixed command queue duplicate handling for offline rewards. · Fixed several edge cases related to reward claiming after cycle transitions. Improved · Added validation for GUI inventory sizes to prevent invalid configurations from causing inventory creation errors. · Improved reward rotation handling to better respect configured timezone and week-start settings. · Improved inventory reward queue processing and delivery behavior. · Improved YAML storage error reporting and diagnostics. · Improved top player cache reliability and player name resolution. · Improved feedback when interacting with unavailable rewards in the GUI. · Improved overall configuration safety and resilience against administrator mistakes. Permissions · Added playtimeprogression.user.career · Added playtimeprogression.afk.bypass Configuration · Added additional inventory queue configuration options. · Improved validation of several configuration values. · Updated internal defaults for better stability. Internal · General code cleanup and maintenance. · Reduced risk of data inconsistencies during reloads and resets. · Multiple internal optimizations and reliability improvements.1.5.2v1.5.2 Critical Bug FixesJun 13, 2026 Fixed critical issues identified in v1.5.1: 1. Player quit save reliability 2. Inventory reward queue duplicate prevention 3. Partial command execution safety 4. Safer online reset 5. Inventory queue now only blocks inventory-dependent rewards1.5.1v1.5.1 - Notification UpdateJun 7, 2026 · Improved Reward Ready Notifier behavior. · Added repeat-while-unclaimed option. · By default, players are now notified only once when a new reward becomes available. · Server owners can enable repeated reminders if they want. · Reward-ready messages now support %amount% and %reward% placeholders. · Improved default reward-ready messages in all included languages. · Added preview message keys to the message audit system. · Replaced raw stack trace output with cleaner plugin logging. · No config migration required. Existing configs are completed automatically.1.5Playtime Progression Free v1.5 — Reward Ready NotifierMay 17, 2026 · Added Reward Ready Notifier. · Players now receive a subtle notification when a reward becomes available. · Added configurable actionbar notification. · Added optional chat notification. · Added optional sound feedback. · Added cooldown protection to avoid notification spam. · Added new configurable message keys for reward-ready notifications.1.4v1.4 — Reward Preview UpdateMay 8, 2026 · Added Compact Reward Preview to the main rewards GUI. · Players can now see reward contents at a glance.1.3GUI Status UpdateMay 4, 2026 · Added Playtime Status to the main rewards GUI. · Players can now see whether their playtime is counting or paused. · Minor GUI and message polish. · No config migration required. Existing configs are completed automatically.1.2Next Reward highlightMay 3, 2026 Added Next Reward highlight in the rewards GUI.The next available reward now stands out visually. Minor GUI/message polish.
1.1Added Claim All Rewards buttonMay 2, 2026 Added Claim All Rewards button to the main rewards GUI. Improved message audit cleanup for GUI and visual message keys.1.0Apr 12, 2026
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta