Tracks each player's active (non-AFK) playtime, gated behind LuckPerms permissions, to power
a rewards program for the most active players on your server. One jar, runs on Paper, Spigot,
Purpur, and Folia
AFK-aware tracking — movement, block/inventory interaction, chat, commands, and combat all count as activity; pure camera-look movement doesn't, so anti-AFK macros don't farm rewards. AFK time is tracked separately from active time, not just dropped.
- LuckPerms-gated commands — every subcommand is a standard Bukkit permission node, managed by LuckPerms the normal way. Reward actions can also add groups / promote tracks directly via the LuckPerms API.
- Config-driven rewards — playtime and login-streak milestones, plus daily/weekly/monthly
leaderboard payouts, run console commands (or first-class
vault:give/luckperms:addgroup/luckperms:promoteactions) — no hard dependency on any specific economy plugin. - Hall of Fame — past leaderboard periods are archived, not just overwritten, browsable in a chest GUI.
- Login streaks — consecutive-day play tracked and rewarded separately from raw playtime.
- Visual details — MiniMessage-driven
/playtimestat card with a progress-to-next-reward bar, paginated leaderboard/Hall of Fame GUIs, live action bar and optional scoreboard, AFK tab-list tag, PlaceholderAPI expansion, Discord webhook announcements. - WorldGuard region rules (optional) — flag known AFK-farm regions as "never active", or flag a legitimate AFK lounge as exempt from detection.
- Temporary event multipliers —
/playtime event 2 1hfor a timed 2x active-time window. - SQLite by default, MySQL optional — zero-config out of the box; point at MySQL/MariaDB for a shared BungeeCord/Velocity network.
- CSV export for admins auditing the rewards program.
Optional: LuckPerms, PlaceholderAPI, Vault (+ an economy plugin), WorldGuard
Set stealth-mode: true in config.yml to suppress every player-facing notification at once:
AFK enter/exit broadcasts, the pre-AFK warning, the live action bar, the sidebar scoreboard, the
tab-list [AFK] tag, and all reward/leaderboard announcements (in-game and Discord). Reward
commands (vault:give, luckperms:addgroup, etc.) still run — only the announcements are
suppressed, so you can keep paying out rewards silently.
The individual toggles (afk.broadcast-status-changes, visuals.actionbar.enabled, each
milestone's announce, each leaderboard-rewards.<period>.announce, etc.) still work normally
when stealth-mode is false, if you want more surgical control instead of the all-at-once
switch.
Stealth mode does not touch permissions. playtime.use and playtime.top default to true
for everyone, so players can still run /playtime and see their own stats/the leaderboard unless
you revoke those nodes via your permissions plugin (e.g.
/lp group default permission set playtime.use false).

