Elo - Ranked & Leaderboards v2.1.1

Elo is a premium PvP ranking system built for competitive Minecraft servers.

New Features​

  • /elo rank GUI is fully configurable via gui.yml — title, slots, materials, names, lore, and format messages under gui.rank
  • Config keys auto-merge on startup and reload for gui.yml, messages.yml, and config.yml (existing values are preserved)
  • gui.rank.stats-source and gui.leaderboard.stats-source support database, placeholderapi, or papi
  • Shared StatsResolver for rank and leaderboard GUIs with PlaceholderAPI integration
  • debug.stats option in config.yml for verbose stat-resolution logging

Improvements​

  • messages.yml rank-ui.* keys remain as fallbacks when gui.rank.messages.* is not set
  • PlaceholderAPI expansion falls back to database when player data is not cached
  • PlaceholderAPI registration failure is now logged if expansion does not register

Bug Fixes​

  • YAML storage now persists kills, deaths, and eloRating (fixes stats showing 0 after server restart)
  • Existing users receive new gui.yml keys on update without deleting their config file
  • Removed unused legacy RankGui class that could cause confusion with the active rank GUI

Configuration​

  • gui.yml — added config-version: 1, gui.rank.items., gui.rank.messages., gui.rank.stats-source
  • config.yml — added debug.stats: false
  • Customize /elo rank in plugins/<plugin>/gui.yml; use gui.rank.stats-source: placeholderapi for PAPI-backed stats
  • Fixed a critical threading issue that prevented rank-up notifications and money rewards from working on Folia servers.

New /elo reload Command​

  • Validation-before-apply: Each configuration file is validated before being applied. If a file contains errors, the previous working configuration is preserved and the specific error is reported.
  • Per-file status reporting: Reload now reports success/failure for each file individually (config.yml, messages.yml, gui.yml, database.yml).
  • Permission: The new elo.admin.reload permission (default: op) grants reload access independently of elo.admin. The elo.admin permission also includes elo.admin.reload as a child.
  • Console logging: All reload events are logged to the console with the [ELO] prefix.
  • Runtime service reload: After config reload, the rank system, sync manager, leaderboard cache, and rank permissions are all refreshed automatically.
  • Partial reload support: If only some config files pass validation, the valid ones are applied while the others keep their previous state.

Fully Configurable /elo rank UI​

All visible text in the /elo rank GUI is now configurable via messages.yml:
YAML:
rank-ui:
  title: "&6&lʏᴏᴜʀ ʀᴀɴᴋ"
  subtitle: "&7ᴄᴜʀʀᴇɴᴛ ᴄᴏᴍᴘᴇᴛɪᴛɪᴠᴇ ꜱᴛᴀɴᴅɪɴɢ"
  elo-format: "&eELO: &f{elo}"
  rank-format: "&bRank: &f{rank}"
  position-format: "&aLeaderboard Position: &f#{position}"
  wins-format: "&aWins: &f{wins}"
  losses-format: "&cLosses: &f{losses}"
  winrate-format: "&dWin Rate: &f{winrate}%"
  progress-format: "&6Progress: &f{progress_percent}%"
  placement-text: "&7Complete placements to receive a rank"
  next-rank-format: "&eNext Rank: &f{next_rank}"
  points-needed-format: "&ePoints Needed: &f{points_to_next}"

Language System Expansion​

New messages added to messages.yml:
YAML:
reload:
  reloading: "&eʀᴇʟᴏᴀᴅɪɴɢ ᴄᴏɴꜰɪɢ..."
  success: "&a✓ Configuration successfully reloaded."
  no-permission: "&cYou do not have permission to reload the configuration."
  invalid-config: "&cAn error occurred while loading the configuration."
  file-error: "&cError in {file}: {error}"
  file-ok: "&a  ✓ {file} reloaded successfully."
  kept-old-config: "&e  ⚠ {file} had errors — keeping previous configuration."
  complete: "&a[ELO] Configuration successfully reloaded."

UI Customization Options​

New ui section in config.yml:
YAML:
ui:
  text-format: "legacy"           # "legacy" or "minimessage"
  use-progress-bar: true
  progress-bar-length: 20
  filled-symbol: "█"
  empty-symbol: "░"
  filled-color: "&a"
  empty-color: "&7"

  rank-icons:
    ht1: "⬆"
    ht2: "⬆"
    # ...

  header-separator: "&6&l═══════════════════════════════"
  footer-separator: "&6&l═══════════════════════════════"
  • Fixed rank-down permission cleanup so higher-rank permissions are removed when a player drops to a lower rank.
  • Added full rank permission resync on rank changes, joins/relogs, admin point changes, plugin reloads, and online data recalculation paths.
  • Added a dedicated rank permission sync service that clears old Elo rank attachments before applying only the current rank's configured permissions.
  • Updated rank rewards so commands and Vault economy rewards still run, while rank permissions are managed by the resync system.
  • Added cross-server Elo sync with Redis/MySQL.
  • Added AjLeaderboards top 10 placeholders.
  • Added player rank/value placeholders.
  • Improved /elo top, /elo rank, and /elo reload internals.
  • Improved performance with player and leaderboard caching.
  • Introduced MINI CAPS UI refresh.
  • fize size reduced.
  • Added async sync operations and timestamp conflict handling.
  • Various bug fixes and optimizations.

New Placeholders​

  • %elo_top_1_name% through %elo_top_10_name%
  • %elo_top_1_value% through %elo_top_10_value%
  • %elo_player_rank%
  • %elo_player_value%

New Config​

YAML:
elo-sync:
  enabled: true
  type: "redis" # or "mysql"
  redis:
    host: localhost
    port: 6379
    password: ""
  mysql:
    host: localhost
    port: 3306
    database: elo
    username: root
    password: ""
Messages now configurable for the first time:
  • /elo help output (title, all command descriptions, admin section header)
  • Kill action bar feedback (the +points / total message shown after a kill)
  • Rank-up title overlay (✦ RANK UP! ✦)
  • /elo rank and /elo top "players only" errors
  • /elo top invalid page number error
  • /elo points success format and "no data" error
  • /elo addpoints and /elo setpoints success confirmations and usage hints
  • /elo reload status messages (reloading, success, failed)
  • Unknown subcommand error
New keys added to messages.yml:

YAML:
errors:
  players-only:          # "Only players can use this command"
  unknown-subcommand:    # "Unknown subcommand: {command}"
  specify-player:        # "You must specify a player"
  no-data:               # "No data found for player"
  amount-positive:       # "Amount must be positive"
  command-error:         # Generic command error

feedback:
  reload-reloading:      # Shown when reload starts
  reload-success:        # Shown on successful reload
  reload-failed:         # Shown if reload throws an error

help:
  admin-header:          # "--- Admin Commands ---" separator line

commands:
  addpoints:
    usage:               # /elo addpoints usage hint
  setpoints:
    usage:               # /elo setpoints usage hint
  • changed the setting whitelisted-worlds into blacklisted-worlds.
  • Added version check on start up.
  • Fixed some minor issues in Folia.
  • Fixed some minor bugs on al platforms.
  • Fix: /elo top leaderboard now shows correct player statistics when configured to use PlaceholderAPI.
  • Added: new config option
    YAML:
    gui.leaderboard.stats-source
    choose database (default) or placeholderapi to control where leaderboard values come from.
  • Fixed startup Banner not showing up as intended.
Buy a license now
$5.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
Lifetime
Share and earn
Refer this resource and earn a 10% commission.
3,044 Views
21 Purchases
22 Downloads
Feb 15, 2026 Published
Jun 22, 2026 Updated
Not yet rated
880 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. No
Type
  1. Gameplay
  1. Economy
  1. Adventure
Game mode
  1. Survival
  1. Factions
  1. Prison
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Folia
  1. Purpur
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
Supported languages
  1. This product doesn't contain text
Creator
Recommended for you
a custom-designed prefix system intended to replace the standard prefix display used by LuckPrerms
Not yet rated
34 purchases
Premium Fancy Menu is a configuration package of deluxe menus and RTP plugins.
5.00 star(s) 2 ratings
22 purchases
Feature characters such as Tung Tung Tung Sahur, Tralallelo and more
Not yet rated
22 purchases
Labubu dolls are collectible figurines, These are their models !
Not yet rated
17 purchases
A detailed set of shark entity models crafted in Blockbench.
Not yet rated
8 purchases
Share and earn
Refer this resource and earn a 10% commission.
3,044 Views
21 Purchases
22 Downloads
Feb 15, 2026 Published
Jun 22, 2026 Updated
Not yet rated
880 KB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. No
Type
  1. Gameplay
  1. Economy
  1. Adventure
Game mode
  1. Survival
  1. Factions
  1. Prison
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Folia
  1. Purpur
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
Supported languages
  1. This product doesn't contain text
Creator
Recommended for you
a custom-designed prefix system intended to replace the standard prefix display used by LuckPrerms
Not yet rated
34 purchases
Premium Fancy Menu is a configuration package of deluxe menus and RTP plugins.
5.00 star(s) 2 ratings
22 purchases
Feature characters such as Tung Tung Tung Sahur, Tralallelo and more
Not yet rated
22 purchases
Labubu dolls are collectible figurines, These are their models !
Not yet rated
17 purchases
A detailed set of shark entity models crafted in Blockbench.
Not yet rated
8 purchases
Top