

DonutLeaderboard is a standalone leaderboard plugin for Spigot, Paper, Purpur and Folia servers running Minecraft 1.20.1 through 26.3. It gives players a clean, GUI-powered way to see who leads the server in balance, kills, playtime, blocks mined and more, with daily, weekly, monthly and all-time boards. Custom leaderboards can be built from any PlaceholderAPI placeholder, and a single lightweight jar covers every supported version.
| Feature | Description |
|---|---|
| Category Menu | Chest GUI that lists every built-in and custom leaderboard, opened with /leaderboard, /lb, /top or /leaderboards |
| Paginated Leaderboard GUI | Six-row board with player heads, distinct styling for ranks 1 to 3, previous and next pages, and a back button |
| Your Own Rank | A viewer rank slot shows where you stand, even when you are not on the current page |
| Daily, Weekly, Monthly & All-Time | Switch periods with a button inside the GUI; period boundaries follow a configurable timezone |
| Built-In Categories | Balance (Vault), kills, deaths, playtime, blocks mined, mob kills, animals bred, fish caught and damage dealt |
| PlaceholderAPI Boards | Create custom leaderboards from any PlaceholderAPI placeholder, plus a full placeholder expansion |
| SQLite & MySQL Storage | SQLite by default, optional MySQL with HikariCP pooling and automatic schema migrations |
| Async Cached Rankings | Rankings refresh on a background executor so the main and region threads stay free |
| Paper, Purpur, Spigot & Folia | One jar for 1.20.1 through 26.3, with Folia region and global scheduler support |
| Tiny Jar | Around 100 KB; database drivers are downloaded by the server on first start instead of being bundled |
DonutLeaderboard opens with a category menu so players can jump straight to the board they care about.
The category menu includes:
Players open it with /leaderboard, /lb, /top or /leaderboards. No complicated command syntax is needed.
Each category opens a paginated six-row leaderboard that is easy to read at a glance.
The leaderboard includes:
Only one leaderboard inventory is open per player, and all clicks, drags, number-key swaps and double-click collects are blocked to prevent item theft or duplication.
Every category can be viewed across four periods:

Players switch periods with the clock button inside the GUI. Period boundaries use the timezone set in periods.timezone, so resets happen at the right time for your community. Admins can also reset a category period manually with /lb reset <category> <period>.
DonutLeaderboard includes a PlaceholderAPI expansion with the identifier donutleaderboard.
| Placeholder | Description |
|---|---|
%donutleaderboard_rank_<category>_<period>% |
The viewer's rank in a category and period (0 if unranked) |
%donutleaderboard_top_<n>_name_<category>_<period>% |
Player name at rank n |
%donutleaderboard_top_<n>_value_<category>_<period>% |
Value at rank n |
%donutleaderboard_top_<n>_rank_<category>_<period>% |
Rank number at position n |
Period tokens are daily, weekly, monthly and all_time.
Use these in scoreboards, holograms, tab lists and chat to show your top players anywhere on the server.
| Command | Description | Permission |
|---|---|---|
/leaderboard |
Open the category menu | donutleaderboard.use |
/lb open [category] [period] |
Open a specific leaderboard | donutleaderboard.use |
/lb rank <player> <category> [period] |
Show a player's rank | donutleaderboard.rank |
/lb reload |
Reload config and messages | donutleaderboard.admin.reload |
/lb reset <category> <period> |
Reset stored scores for a period | donutleaderboard.admin.reset |
/lb refresh [category] [period] |
Force a ranking refresh | donutleaderboard.admin.refresh |
Aliases are lb, top and leaderboards. use and rank are granted to everyone by default, and admin permissions default to operators. All commands include tab completion.
DonutLeaderboard supports multiple storage options depending on the size of the server.
SQLite is the default storage option and is ideal for:
It works out of the box without separate database infrastructure.
MySQL can be used for larger installations and server networks.
MySQL support includes:
The database drivers are declared as server libraries and downloaded automatically on first start, which keeps the plugin jar tiny.
DonutLeaderboard is designed to keep ranking work away from the main server thread.
The plugin includes:
cache.refresh-seconds, minimum 15)DonutLeaderboard uses a modern Java plugin architecture.
Technical details include:
DonutLeaderboard is designed to be configurable for any server style.
Configurable options include:
& colour codesConfig files update automatically when new options are added, so upgrades never wipe your settings.
plugins folder and use the default SQLite storage immediately.DonutLeaderboard requires a Spigot, Paper, Purpur or Folia server running Minecraft 1.20.1 to 26.3, with Java 17 or newer (Java 25 for 26.3 servers).
Optional:
If you encounter a bug or have a feature request, please join the Discord community or report it through the appropriate project page.
DonutLeaderboard is licensed under the Apache License 2.0.
You are free to use, modify, and redistribute DonutLeaderboard in accordance with the terms of the Apache License 2.0.