TDXPlugins
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).