HomeJavaMods✅CustomLeaderboards [1.21-26.2]
✅CustomLeaderboards [1.21-26.2]
[​IMG]

A lightweight and customizable Minecraft leaderboard plugin for Spigot and Paper servers.

Create daily, weekly and monthly leaderboards for playtime, mob kills, blocks mined, items crafted, economy balances and any supported PlaceholderAPI value.
DAILY
WEEKLY
MONTHLY
PERMANENT

Paper & Spigot 1.21 • SQLite & MySQL • Rewards • Hologram Support

MORE PLUGINS BY DONCASPER99
Click a plugin to view its resource page.

[​IMG] [​IMG]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT IS CUSTOMLEADERBOARDS?

CustomLeaderboards is a lightweight and configurable leaderboard plugin for Minecraft servers.

It tracks changes in numeric PlaceholderAPI values and creates daily, weekly, monthly, and permanent rankings. This makes it possible to build leaderboards for economy, statistics, jobs, tokens, points, playtime, or almost any other plugin that provides a numeric placeholder.

Everything is displayed through placeholders, allowing you to use your preferred hologram, scoreboard, menu, or chat plugin.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MAIN FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DEFAULT LEADERBOARDS

CustomLeaderboards includes five example categories:

These are only defaults. Categories and sources can be changed in config.yml.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IMAGES
upload_2026-7-21_10-31-7.png
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS
  1. CustomLeaderboards reads each configured source for online players.
  2. The first reading becomes the player's starting baseline.
  3. Positive changes are added to the active periods.
  4. Players are sorted by their earned value.
  5. At reset time, rewards are resolved and the period begins again from zero.
This means a player with old lifetime statistics will not automatically receive those values on a new weekly leaderboard.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REQUIREMENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
INSTALLATION
  1. Stop your Minecraft server.
  2. Install PlaceholderAPI.
  3. Place CustomLeaderboards.jar in the plugins directory.
  4. Start the server.
  5. Edit plugins/CustomLeaderboards/config.yml.
  6. Configure rewards in rewards.yml.
  7. Restart the server or run /customleaderboards reload.
SQLite is enabled by default and requires no external database setup.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMMANDS

Code (Text):

/customleaderboards reload
/customleaderboards update
/customleaderboards top <period> <top>
/customleaderboards forcereset <period> <true|false>
/customleaderboards debug
 
Short command alias:

Code (Text):

/clb
 
Permission:

Code (Text):

customleaderboards.admin
 
The permission is granted to server operators by default.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[​IMG]
PLACEHOLDERS
General formats:

Code (Text):

%customleaderboards_top_<top>;<period>;top_name;<position>%
%customleaderboards_top_<top>;<period>;top_value;<position>%
%customleaderboards_reset_cooldown_<period>%
 
Examples:

Code (Text):

%customleaderboards_top_eco;weekly;top_name;1%
%customleaderboards_top_eco;weekly;top_value;1%

%customleaderboards_top_playtime;weekly;top_name;1%
%customleaderboards_top_playtime;weekly;top_value;1%

%customleaderboards_reset_cooldown_weekly%
 
Valid periods:

Code (Text):

daily
weekly
monthly
permanent
 
PLACEHOLDERAPI SETUP
CustomLeaderboards requires PlaceholderAPI.
After installing PlaceholderAPI, run the following commands:

Code (Text):

/papi ecloud download Statistic
/papi reload
 
If you use the Money leaderboard, install Vault and a compatible economy plugin.
The Vault placeholder may also require the Vault expansion:

Code (Text):

/papi ecloud download Vault
/papi reload
 
You can test a placeholder with:

Code (Text):

/papi parse me %statistic_time_played%
 
CustomLeaderboards registers its own placeholders automatically.
Do not download a separate CustomLeaderboards expansion.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONFIGURATION EXAMPLES

Spoiler: Leaderboard categories - config.yml
Code (YAML):

tops
:
  playtime
:
    name
: Playtime
    placeholder
: ' %statistic_time_played%'
    parse_time
: true
    time_unit
: ticks
    time_format
: short

  kills
:
    name
: Mob Kills
    placeholder
: ' %statistic_mob_kills%'

  eco
:
    name
: Money Earned
    placeholder
: ' %vault_eco_balance%'
 

Spoiler: Weekly reset schedule
Code (YAML):

topResets
:
  weekly
:
    day
: MONDAY
    time
: '00:00:00'
    timezone
: UTC
 
Valid days:

Code (Text):

MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
 

Spoiler: SQLite configuration
Code (YAML):

database
:
  type
: sqlite

  sqlite
:
    file
: leaderboards.db
 

Spoiler: MySQL configuration
Code (YAML):

database
:
  type
: mysql

  mysql
:
    host
: localhost
    port
: 3306
    database
: leaderboards
    user
: root
    password
: 'change-me'
    use-ssl
: false
 
Never publish real database credentials in screenshots, logs, configuration examples, or support messages.

Spoiler: Weekly reward example
Code (YAML):


rewards
:
  weekly
:
    eco
:
      top1
:
        top
: 1
        rewards
:
          - 'console_command
: give <player> diamond 3'
          - 'message
: &7'
          - 'center_message
: &6&l TOP &e #<top> &6&lMONEY &f- &b$<amount>'
          - 'message
: &aYou placed first in weekly money!'

      top2
:
        top
: 2
        rewards
:
          - 'console_command
: give <player> diamond 2'
          - 'message
: &7'
          - 'center_message
: &6&l TOP &e #<top> &6&lMONEY &f- &b$<amount>'
          - 'message
: &aYou placed second in weekly money!'

      top3
:
        top
: 3
        rewards
:
          - 'console_command
: give <player> diamond 1'
          - 'message
: &7'
          - 'center_message
: &6&l TOP &e #<top> &6&lMONEY &f- &b$<amount>'
          - 'message
: &aYou placed third in weekly money!'

    kills
:
      top1
:
        top
: 1
        rewards
:
          - 'console_command
: give <player> diamond 3'
          - 'message
: &7'
          - 'center_message
: &6&l TOP &e #<top> &6&lKILLS &f- &b<amount>'
          - 'message
: &aYou placed first in weekly mob kills!'

      top2
:
        top
: 2
        rewards
:
          - 'console_command
: give <player> diamond 2'
          - 'message
: &7'
          - 'center_message
: &6&l TOP &e #<top> &6&lKILLS &f- &b<amount>'
          - 'message
: &aYou placed second in weekly mob kills!'

      top3
:
        top
: 3
        rewards
:
          - 'console_command
: give <player> diamond 1'
          - 'message
: &7'
          - 'center_message
: &6&l TOP &e #<top> &6&lKILLS &f- &b<amount>'
          - 'message
: &aYou placed third in weekly mob kills!'

    playtime
:
      top1
:
        top
: 1
        rewards
:
          - 'console_command
: give <player> diamond 3'
          - 'message
: &7'
          - 'center_message
: &6&l⏱ TOP &e #<top> &6&lPLAYTIME &f- &b<amount>'
          - 'message
: &aYou placed first in weekly playtime!'

      top2
:
        top
: 2
        rewards
:
          - 'console_command
: give <player> diamond 2'
          - 'message
: &7'
          - 'center_message
: &6&l⏱ TOP &e #<top> &6&lPLAYTIME &f- &b<amount>'
          - 'message
: &aYou placed second in weekly playtime!'

      top3
:
        top
: 3
        rewards
:
          - 'console_command
: give <player> diamond 1'
          - 'message
: &7'
          - 'center_message
: &6&l⏱ TOP &e #<top> &6&lPLAYTIME &f- &b<amount>'
          - 'message
: &aYou placed third in weekly playtime!'
 

Available reward placeholders:

Code (Text):

<player> - Player name
<top>    - Leaderboard position
<amount> - Player's leaderboard value
 
Make sure settings.cached-top-entries in config.yml is equal to or higher than the highest rewarded position.

Supported actions:

  • console_command
  • player_command
  • message
  • center_message
  • broadcast

Supported variables:

  • <player>
  • <top>
  • <amount>
  • <category>

Spoiler: DecentHolograms example
Code (YAML):

location
: world:0.500:100.000:0.500
enabled
: true
display-range
: 48
update-range
: 48
update-interval
: 10
facing
: 0.0
down-origin
: false

pages
:
  - lines
:
      - content
: '&6&lBest Players of the Week'
        height
: 0.3

      - content
: '&7 (Resets in %customleaderboards_reset_cooldown_weekly%)'
        height
: 0.3

      - content
: '&eTop Playtime : &f%customleaderboards_top_playtime;weekly;top_name;1% &7 (&b %customleaderboards_top_playtime;weekly;top_value;1%&7)'
        height
: 0.3

    actions
: { }
 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
INCLUDED FILES

The plugin automatically generates:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TEST SERVER

Want to test the plugin before downloading it?
Join our test server using the IP below:


202.36.95.132


SUPPORT & FEEDBACK

Questions, bug reports, and feature suggestions are welcome in the resource discussion thread.

Please include your server version, plugin version, configuration without passwords, and the relevant console error when reporting a problem.

CustomLeaderboards is my first publicly released Minecraft plugin.
Feedback, suggestions, and bug reports are greatly appreciated!



★ DOWNLOAD MILESTONES ★

Thank you to everyone who has downloaded and supported CustomLeaderboards!


More milestones will be added as CustomLeaderboards continues to grow. Thank you for the support!


[​IMG]

Commands

Plugin details

Read from the plugin's own plugin.yml.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

✅CustomLeaderboards [1.21-26.2] is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1, 26.2. Downloaded 179 times (via Spigot). Download it and open it directly in the game.

Explore more