XLeaderboards

This plugin is designed for users seeking a fast and efficient leaderboard system, supporting time-based rankings such as **daily**, **weekly**, **monthly**, and **permanent** leaderboards. Everything is handled through **placeholders**, eliminating the need for NPCs or menus. Its main strength lies in the ease of setting up time-based leaderboards—an area where few plugins truly excel.
|
|
|
|
| — | — | — |

### Features
– **Fully Reworked Core:** XLeaderBoards has been completely redesigned to support both **SQLite** and **MySQL**, allowing the plugin to scale effortlessly and efficiently with large amounts of data.
– **Improved Performance:** Successfully tested with over 2 million real records, capable of updating them in under one minute.
– **Timed Leaderboards:** Efficient ranking system with full support for **daily**, **weekly**, **monthly**, and **permanent** leaderboards.
– **Easy Setup:** Create and configure leaderboards easily using just placeholders.
– **Unlimited Possibilities:** Thanks to placeholder-based logic, you can create tops for any plugin—even if it lacks native support. XLeaderBoards handles number formatting and comparison automatically.
– **Player Ranking:** Shows each player’s position across all leaderboards (daily, weekly, etc.) with built-in placeholder support.
– **Command Improvements:** New features like **tab-completion** and a **/reload** command have been added for easier management.
– **Optimizations:** Fully configurable write frequency, data limits, and time intervals to suit your server’s capacity and activity.
– **All Versions Supported:** Includes support for **1.21.4** to **1.21.8**. Although XLeaderBoards doesn’t rely on NMS, it includes compatibility logic for version-specific changes.
– **Folia Support:** As Folia is becoming a performance standard in modern Minecraft servers, XLeaderBoards now fully supports it—just like **StellarProtect**.
– **Top rewards:** You can set rewards for the players who are in the daily leaderboards.
– **Need More Features?** Join our Discord and suggest new features. We’re actively listening to community feedback!

## How to Get Started
1. **Download and install the plugin.**
By default, the plugin supports **SQLite** and **MySQL** out of the box.
2. **Start your server.**
Once the plugin folder is generated, configure your database credentials depending on your chosen engine.
3. **Set up your tops.**
Use the placeholders of your choice to create customized leaderboards.
4. **Integrate with DecentHolograms or your preferred plugin.**
Ensure that your chosen plugin supports PlaceholderAPI, and follow the example configuration provided below.
5. **Refer to the placeholders section.**
All available formats for placeholders are listed in the dedicated section.
DecentHolograms Example Config
“`yaml
location: Spawnb:6.022:33.500:11.943
enabled: true
display-range: 48
update-range: 48
update-interval: 20
facing: 0.0
down-origin: false
pages:
– lines:
– content: ‘#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)’
height: 0.7
– content: ‘#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS’
height: 0.3
– content: ‘&7(La riqueza y ellos son uno)’
height: 0.3
– content: ”
height: 0.3
– content: ‘#FBF727#1. &f%xleaderboard_top_coins;daily;top_name;1% &8- #FBF727%xleaderboard_top_coins;daily;top_value;1%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#2. &f%xleaderboard_top_coins;daily;top_name;2% &8- #FBF727%xleaderboard_top_coins;daily;top_value;2%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#3. &f%xleaderboard_top_coins;daily;top_name;3% &8- #FBF727%xleaderboard_top_coins;daily;top_value;3%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#4. &f%xleaderboard_top_coins;daily;top_name;4% &8- #FBF727%xleaderboard_top_coins;daily;top_value;4%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#5. &f%xleaderboard_top_coins;daily;top_name;5% &8- #FBF727%xleaderboard_top_coins;daily;top_value;5%
#FAFF2E⛃’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&8► &fTu posición: #FBF727#%xleaderboard_ranking_daily_coins% &8- #FBF727%xleaderboard_amount_daily_coins%
#FAFF2E⛃ &8◄’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘#F4F149&l[Diario] &7[Semanal] [Mensual] [Permanente]’
height: 0.3
actions:
RIGHT:
– NEXT_PAGE:tops_DINERO
– SOUND:UI_BUTTON_CLICK:0.7:2.7
– lines:
– content: ‘#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)’
height: 0.7
– content: ‘#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS’
height: 0.3
– content: ‘&7(La riqueza y ellos son uno)’
height: 0.3
– content: ”
height: 0.3
– content: ‘#FBF727#1. &f%xleaderboard_top_coins;weekly;top_name;1% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;1%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#2. &f%xleaderboard_top_coins;weekly;top_name;2% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;2%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#3. &f%xleaderboard_top_coins;weekly;top_name;3% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;3%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#4. &f%xleaderboard_top_coins;weekly;top_name;4% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;4%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#5. &f%xleaderboard_top_coins;weekly;top_name;5% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;5%
#FAFF2E⛃’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&8► &fTu posición: #FBF727#%xleaderboard_ranking_weekly_coins% &8- #FBF727%xleaderboard_amount_weekly_coins%
#FAFF2E⛃ &8◄’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&7[Diario] #F4F149&l[Semanal] &7[Mensual] [Permanente]’
height: 0.3
actions:
LEFT:
– PREV_PAGE:tops_DINERO
– SOUND:UI_BUTTON_CLICK:0.7:2.7
RIGHT:
– NEXT_PAGE:tops_DINERO
– SOUND:UI_BUTTON_CLICK:0.7:2.7
– lines:
– content: ‘#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)’
height: 0.7
– content: ‘#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS’
height: 0.3
– content: ‘&7(La riqueza y ellos son uno)’
height: 0.3
– content: ”
height: 0.3
– content: ‘#FBF727#1. &f%xleaderboard_top_coins;monthly;top_name;1% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;1%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#2. &f%xleaderboard_top_coins;monthly;top_name;2% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;2%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#3. &f%xleaderboard_top_coins;monthly;top_name;3% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;3%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#4. &f%xleaderboard_top_coins;monthly;top_name;4% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;4%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#5. &f%xleaderboard_top_coins;monthly;top_name;5% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;5%
#FAFF2E⛃’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&8► &fTu posición: #FBF727#%xleaderboard_ranking_monthly_coins% &8- #FBF727%xleaderboard_amount_monthly_coins%
#FAFF2E⛃ &8◄’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&7[Diario] [Semanal] #F4F149&l[Mensual] &7[Permanente]’
height: 0.3
actions:
LEFT:
– PREV_PAGE:tops_DINERO
– SOUND:UI_BUTTON_CLICK:0.7:2.7
RIGHT:
– NEXT_PAGE:tops_DINERO
– SOUND:UI_BUTTON_CLICK:0.7:2.7
– lines:
– content: ‘#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)’
height: 0.7
– content: ‘#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS’
height: 0.3
– content: ‘&7(La riqueza y ellos son uno)’
height: 0.3
– content: ”
height: 0.3
– content: ‘#FBF727#1. &f%xleaderboard_top_coins;permanent;top_name;1% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;1%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#2. &f%xleaderboard_top_coins;permanent;top_name;2% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;2%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#3. &f%xleaderboard_top_coins;permanent;top_name;3% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;3%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#4. &f%xleaderboard_top_coins;permanent;top_name;4% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;4%
#FAFF2E⛃’
height: 0.3
– content: ‘#FBF727#5. &f%xleaderboard_top_coins;permanent;top_name;5% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;5%
#FAFF2E⛃’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&8► &fTu posición: #FBF727#%xleaderboard_ranking_permanent_coins% &8- #FBF727%xleaderboard_amount_permanent_coins%
#FAFF2E⛃ &8◄’
height: 0.3
– content: ‘&r’
height: 0.3
– content: ‘&7[Diario] [Semanal] [Mensual] #F4F149&l[Permanente]’
height: 0.3
actions:
LEFT:
– PREV_PAGE:tops_DINERO
– SOUND:UI_BUTTON_CLICK:0.7:2.7
“`
config.yml
“`yaml
tops:
kills:
## This placeholder will parse to retrieve the current count of this leaderboard.
placeholder: “%statistic_player_kills%”
name: “Asesinatos”
databaseId: survival_top
debug: false
optimizations:
## Max bulk size for mongodb, if you have a lot of players, you can increase this value,
## but be careful with the memory usage.
max-bulk-size: 1000
## Max cached top entries your server loads on memory.
cached-top-entries: 10
## If you have a lot of players, you can increase this value.
ticks-between-updates: 600
## Max bulk size for resetting temporal values, this have minor size
## you can increase this value, but be careful with the memory usage.
max-reset-bulk-size: 5000
topUpdates:
daily:
minutes: 10
weekly:
minutes: 30
monthly:
hours: 3
permanent:
hours: 6
databases:
mongodb:
host: localhost
port: 27017
database: leaderboards
user: root
password: root
“`
lang.yml
“`yaml
tops:
noPermission: “&cYou don’t have permission to use this command.”
noRanking: “&6Unranked”
noTop: “&6No record”
loading: “&fLoading…”
hologram:
daily: “&6&l[Daily] &7[Weekly] [Monthly] [Permanent]”
weekly: “&7[Daily] &6&l[Weekly] &7[Monthly] [Permanent]”
monthly: “&7[Daily] &7[Weekly] &6&l[Monthly] &7[Permanent]”
permanent: “&7[Daily] &7[Weekly] &7[Monthly] &6&l[Permanent]”
daily: “Daily”
weekly: “Weekly”
monthly: “Monthly”
permanent: “Permanent”
invalidTimeType: “&cThe leaderboard time type is not valid.”
toggleWait: “&cPlease wait a bit before changing the leaderboard time.”
toggleTime: “&fThe leaderboard time is now: &e
tops: |-
&d &a
&d &f
&d &b
topLine: “&b#<#> &8- &f
“`
rewards.yml
“`yaml
enabled: false
rewards:
kills:
top1:
top: 1
rewards:
– “command: give
– “message: &7 &a”
– “center_message: &6&lTOP &e#
– “message: &7 &d”
– “message: &7You have received a diamond sword for staying in top!”
– “message: &7 &a”
top2:
top: 2
rewards:
– “command: give
– “message: &7 &a”
– “center_message: &6&lTOP &e#
– “message: &7 &d”
– “message: &7You have received a iron sword for staying in top!”
– “message: &7 &a”
top3:
top: 3
rewards:
– “command: give
– “message: &7 &a”
– “center_message: &6&lTOP &e#
– “message: &7 &d”
– “message: &7You have received a stone sword for staying in top!”
– “message: &7 &a”
“`

**TimeType:** daily/weekly/monthly/permanent
– **/xlb gettop
– **/xlb forceupdate

– **xleaderboards.forceupdate** » Forces the update of the top.
– **xleaderboards.gettop** » Gets the top of the day, week, month, or permanent.

**TopName:**
– **name** – This is established in the `config.yml` key. For example, in `tops.coins`, “coins” is the name of the top.
**TimeType:**
– **daily** – Displays the top player or value for the last 24 hours.
– **weekly** – Displays the top player or value for the last 7 days.
– **monthly** – Displays the top player or value for the last 30 days.
– **permanent** – Displays the top player or value permanently.
**ValueType:**
– **top_name** – Displays the player’s name at this top index position.
– **top_value** – Displays the value at this top index position.
– **top_uuid** – Displays the player’s UUID at this top index position.
**Index:**
– **min** – The minimum index is 1.
– **max** – The maximum index is the one established in the config under `cached-top-entries`.
%xleaderboard_top_
Examples
“`yaml
%xleaderboard_top_coins;daily;top_name;1%
%xleaderboard_top_coins;weekly;top_name;2%
%xleaderboard_top_coins;monthly;top_name;3%
%xleaderboard_top_coins;permanent;top_name;4%
%xleaderboard_top_coins;daily;top_value;1%
%xleaderboard_top_coins;weekly;top_value;2%
%xleaderboard_top_coins;monthly;top_value;3%
%xleaderboard_top_coins;permanent;top_value;4%
“`
%xleaderboard_ranking_
Examples
“`yaml
%xleaderboard_ranking_daily_coins%
%xleaderboard_ranking_weekly_coins%
%xleaderboard_ranking_monthly_coins%
%xleaderboard_ranking_permanent_coins%
“`
%xleaderboard_amount_
Examples
“`yaml
%xleaderboard_amount_daily_coins%
%xleaderboard_amount_weekly_coins%
%xleaderboard_amount_monthly_coins%
%xleaderboard_amount_permanent_coins%
“`
%xleaderboard_update_cooldown_
Examples
“`yaml
%xleaderboard_update_cooldown_daily%
%xleaderboard_update_cooldown_weekly%
%xleaderboard_update_cooldown_monthly%
%xleaderboard_update_cooldown_permanent%
“`
%xleaderboard_reset_cooldown_
Examples
“`yaml
%xleaderboard_reset_cooldown_daily%
%xleaderboard_reset_cooldown_weekly%
%xleaderboard_reset_cooldown_monthly%
“`

|
|
|
|
| — | — | — |





More Images








