TDXDevelopment
TDX LeaderboardsConfiguration

hooks

Announcements, DecentHolograms, the Discord webhook and PlaceholderAPI.

These blocks sit below rewards in config.yml. Each integration does nothing when its plugin is missing, so leaving them enabled is harmless.

Announcements

Broadcasts a line to the whole server when somebody takes #1 on a board.

plugins/TDXLeaderboards/config.yml
announcements:
  enabled: true
  cooldown: 300

  per-board:
    balance: false
    playtime: false
KeyTypeDefaultNotes
enabledbooleantrueMaster switch.
cooldownint300Seconds before the same board can announce again. Stops spam when #1 keeps changing hands.
per-board.<board>booleantrueSet a board's id to false to keep it quiet. Boards you do not list announce.

The text is announcement-new-leader in messages.yml and takes %player% and %board%.

DecentHolograms

Floating leaderboards in the world. Needs the DecentHolograms plugin.

plugins/TDXLeaderboards/config.yml
holograms:
  enabled: true
  default-lines: 10
KeyTypeDefaultNotes
enabledbooleantrueMaster switch.
default-linesint10How many entries a new hologram shows when you give no number.

Holograms are made in game, not in the config:

CommandWhat it does
/lbadmin hologram create <id> <board|points> [lines]Creates one where you stand, for a board or for the points leaderboard.
/lbadmin hologram remove <id>Removes it.
/lbadmin hologram listLists the holograms this plugin manages.
/lbadmin hologram refreshRedraws all of them now.

They are saved to plugins/TDXLeaderboards/holograms.yml, survive restarts, and are redrawn after every board update, so they are at most general.update-interval seconds behind. There is no separate refresh timer and no line template in config.yml.

Discord webhook

Posts the final standings to a Discord channel when a period ends. It ships disabled. To get a webhook URL in Discord: Server Settings, Integrations, Webhooks, New Webhook.

plugins/TDXLeaderboards/config.yml
discord:
  enabled: true
  webhook-url: "https://discord.com/api/webhooks/1234567890/abcDEF..."
  embed-color: 5089000
  top-count: 5
  footer-text: "TDX Leaderboards"
KeyTypeDefaultNotes
enabledbooleanfalseMaster switch.
webhook-urlstringemptyThe webhook URL. Treat as a secret.
embed-colorint5089000Sidebar colour as a decimal number, not hex. 5089000 is #4DA6E8, gold is 16766720, green 5763384, red 14495300.
top-countint5How many players of the points leaderboard are listed.
footer-textstringTDX LeaderboardsLine at the bottom of the embed.

The embed is titled with the period that ended and has two sections: the top top-count players by points, and the winner of each board. The title, the wording and the webhook's name and avatar are not configurable here. Set the name and avatar on the webhook itself in Discord.

The post runs off the main thread. If Discord rate-limits it or returns an error, a warning is written to console and the post is dropped. There is no retry.

Anyone with the webhook URL can post to your channel. Keep config.yml out of public repositories and screenshots, and delete and recreate the webhook in Discord if it leaks.

PlaceholderAPI

The expansion registers on startup whenever PlaceholderAPI is installed. There is nothing to switch on in config.yml. The full list is on the Placeholders page.

Custom tracking

The custom-tracking block (ore and crop lists, spawner exclusions, the kill-farming cooldown) belongs to the boards that count things themselves. It is documented with them on the boards page.