TDXDevelopment
TDX LeaderboardsConfiguration

rewards

Per-position commands and messages, plus per-board overrides.

When a leaderboard period ends, the rewards block decides what each top-N player receives. Rewards are console commands and configurable messages, fired in order, per position, per board.

Quick example

plugins/TDXLeaderboards/config.yml
rewards:
  enabled: true
  default:
    1:
      commands:
        - "give %player% diamond 5"
        - "eco give %player% 1000"
      message: "<gradient:#FFD700:#FFA500>You finished #1 this month! +5 diamonds, +$1000</gradient>"
    2:
      commands:
        - "give %player% diamond 3"
      message: "<#C0C0C0>2nd place! +3 diamonds</>"
    3:
      commands:
        - "give %player% diamond 1"
      message: "<#CD7F32>3rd place! +1 diamond</>"

These rewards apply to every board unless overridden below.

Reference

KeyTypeDefaultNotes
enabledbooleantrueMaster switch.
defaultmapDefault rewards by position, applied to every board.
default.<n>.commandslistConsole commands to run for position <n>. %player% substituted.
default.<n>.messagestringMiniMessage string sent to the player when the reward fires.
per-boardmapemptyOverride block keyed by board name.

Per-board override

To give the votes board a custom #1 reward without touching the others:

plugins/TDXLeaderboards/config.yml
rewards:
  per-board:
    votes:
      1:
        commands:
          - "lp user %player% parent add vip-vote"
        message: "<#FF9D5E>Top voter! You've earned the VIP Vote tag for the month.</>"

The override is shallow: positions you don't specify fall back to default. So in the example above, the votes board still uses the default #2 and #3 rewards.

Placeholders inside reward strings

Inside commands and message, the following are substituted at fire time:

TokenReplaced with
%player%The player's name
%uuid%The player's UUID
%board%The board name (e.g. votes, mob_kills)
%position%The player's final position on the board
%value%The player's final tracked value

PlaceholderAPI tokens (%vault_eco_balance%, etc.) also resolve, provided PAPI is installed.

Players who are offline at reset time still receive their rewards on next join, the plugin queues them in the database. The message is shown the moment they connect; the commands fire immediately at reset (so make sure they don't require the player to be online, use give over tell, for instance).