TDXPlugins
TDX Leaderboards

Installation

Install TDX Leaderboards on a Paper 1.20+ server in under a minute.

Requirements

DependencyVersionRequired
Java21+Yes
Paper1.20.x — 1.21.11+Yes
Vault1.7+Optional (economy boards)
PlaceholderAPI2.11+Optional (placeholder boards)
DecentHolograms2.8+Optional (in-world holograms)

Spigot is not officially supported but most things work. Folia status: partial — the per-tick board update task is region-aware as of 1.9.0.

Walkthrough

Stop the server

Always stop cleanly before adding a plugin jar.

Drop in the jar

Copy TDXLeaderboards-x.y.z.jar into your plugins/ folder. After the next start, the layout under plugins/ looks like this:

config.yml
messages.yml
data.db

Pick your storage backend

The default is SQLite — fine for a single server, zero config required. Switch to MySQL only if you run a network or want shared data across multiple backends.

plugins/TDXLeaderboards/config.yml
general:
  storage: sqlite
  # nothing else to configure — data lives in plugins/TDXLeaderboards/data.db
plugins/TDXLeaderboards/config.yml
general:
  storage: mysql

mysql:
  host: localhost
  port: 3306
  database: tdxleaderboards
  username: tdx
  password: change-me
  pool-size: 10
  use-ssl: false

The plugin will create its own tables on first connect — you only need to hand it an empty database and a user with ALL PRIVILEGES on it.

Match the reset cycle to your season

monthly.reset-period accepts monthly, weekly, or biweekly. The defaults reset on the 1st of every month at 00:00 server-local time.

plugins/TDXLeaderboards/config.yml
monthly:
  reset-period: monthly  # monthly | weekly | biweekly
  reset-day: 1           # day of month (or day of week if weekly)
  reset-hour: 0

Skim the bundled boards, disable what you don't want

The default config.yml ships with 16 boards enabled. Disable any you don't want by setting their enabled: false. The bundled comments explain what each one tracks.

Reload and verify

/lbadmin reload
/lbadmin update
/leaderboard

reload re-reads the config, update forces an immediate refresh of every board, /leaderboard opens the GUI. If the boards populate, you're done.

What now?