Mitra Leaderboards
A flexible and high-performance leaderboard system for Fabric servers. It computes and publishes leaderboards from placeholders (e.g. blocks mined, play time, kills, etc.), with optional MongoDB support to store and display offline players.
✨ Features
- Multiple leaderboards: define as many holders as you want (e.g.
blocks_mined,time_played,kills…). - Native placeholders (pb4/Patbox): exposes values for TAB, HUDs, holograms, or any plugin/mod that reads placeholders.
- Per-holder update scheduling (configurable in seconds).
- Online or offline mode:
- Online-only: TOP is computed with currently connected players (no DB).
- Offline tracking: saves and queries from MongoDB for global TOPs.
- Asynchronous execution: safe capture on the server thread, heavy work in async workers.
- Optimized for thousands of players: efficient TOP-K selection, minimal I/O and CPU.
- Robust placeholder evaluation: cleans values and prevents crashes if a placeholder fails.
✅ Requirements
- Fabric Loader + Fabric API (server).
- pb4 Placeholders (Patbox) for placeholder resolution/registration.
- MongoDB (requerid)
📦 Installation
- Download Mitra Leaderboards and its requirements.
- Place the
.jarfiles in themods/folder of the server (and client if you want HUDs). - Start the server to generate the config folders.
- Configure
leaderboard.yml(andmongo.ymlif you plan to use offline tracking). - Restart.
⚙️ Configuration
leaderboard.yml
holders:
blocks_mined:
valueCheck: "%mitra:mined_total%"
update: 20
top: 10
trackOffline: false
time_played:
valueCheck: "%mitra:play_time%"
update: 30
top: 15
trackOffline: true
🧩 Placeholders
For a holder named blocks_mined:
📏 Size and timers
%mitra:leaderboard blocks_mined_size%→ number of entries.%mitra:leaderboard blocks_mined_update_in_s%→ seconds until the next update.%mitra:leaderboard blocks_mined_update_in_hms%→ remaining time inHH:MM:SS.
🏆 TOP by position (N ≥ 1)
-
%mitra:leaderboard blocks_mined_value_N%→ numeric value. -
%mitra:leaderboard blocks_mined_player_N%→ player name. -
%mitra:leaderboard blocks_mined_uuid_N%→ player UUID. -
#1 %mitra:leaderboard blocks_mined_player_1%— %mitra:leaderboard blocks_mined_value_1% -
#2 %mitra:leaderboard blocks_mined_player_2%— %mitra:leaderboard blocks_mined_value_2% -
#3 %mitra:leaderboard blocks_mined_player_3%— %mitra:leaderboard blocks_mined_value_3%
📜 Commands
(Base command may differ depending on your setup; examples use
/lb)
-
/lb reload
Reloads theleaderboard.ymlconfiguration and reschedules all tasks.
Useful when you change values in the config without restarting the server. -
/lb recompute <holder>
Forces an immediate recompute of the specified holder.
Example:/lb recompute blocks_minedwill update the ranking for theblocks_minedleaderboard instantly. -
/lb list
Displays a list of all currently active holders.
Example output:
👨💻 Authors & Credits
No gallery available for this project.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
Leaderboard 1.1+1.21.8 1.1+1.21.8 |
1.21.8
|
fabric
|
Download |
|
Leaderboard 1.1+1.21.1 1.1+1.21.1 |
1.21.1
|
fabric
|
Download |
|
Leaderboard 1.1+1.21.4 1.1+1.21.4 |
1.21.4
|
fabric
|
Download |
|
Leaderboard 1.1+1.21.11 1.1+1.21.11 |
1.21.11
|
fabric
|
Download |
|
Leaderboard 1.1+26.2 1.1+26.2 |
26.2
|
fabric
|
Download |
|
Leaderboard 2.0.0 1.0-SNAPSHOT |
1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric
|
Download |
|
Leaderboard 1.0-SNAPSHOT 1.0-SNAPSHOT |
1.21.1
|
fabric
|
Download |
|
Leaderboard 1.0-SNAPSHOT 1.0-SNAPSHOT |
1.21.1
|
fabric
|
Download |
|
Leaderboard 1.0-SNAPSHOT 1.0-SNAPSHOT |
1.21.1
|
fabric
|
Download |