TDXDevelopment
Get started

Your first install

A walkthrough from purchase to working install, using TDX VotePlus as the example.

This walkthrough uses TDX VotePlus as the worked example, but the shape is identical for every TDX plugin, pick up the jar, drop it in, edit the config, reload.

If you're installing TDX Leaderboards instead, follow the same steps but replace TDXVotePlus-x.y.z.jar with TDXLeaderboards-x.y.z.jar and the config path with plugins/TDXLeaderboards/.

Confirm prerequisites

Run /version on your server. The current TDX VotePlus needs Paper or Folia 26.1 or newer running on Java 21+. On 1.20.x to 1.21.x, use TDX VotePlus 1.2.16 instead, the steps below are the same. TDX Leaderboards runs on Paper 1.20.x or newer. If any of that is missing, fix it first, see prerequisites for the full list.

Drop the jar in plugins/

Stop the server, copy the jar into your plugins/ folder, then start the server back up. On first boot the console shows a summary box, and these lines are the ones to look for:

latest.log
[INFO] [TDXVotePlus] Using SQLite storage backend.
[INFO] [TDXVotePlus] Registered Votifier listener for com.vexsoftware.votifier.model.VotifierEvent
[INFO] [TDXVotePlus]   Vote sites   : 3 configured
[INFO] [TDXVotePlus]   Milestones   : 5 entries loaded

If you see No Votifier-compatible plugin detected instead of the listener line, install NuVotifier first. VotePlus runs without it, but no votes will ever arrive.

Find your config files

The plugin creates a folder under plugins/ on first boot. For VotePlus it looks like this:

config.yml
vote-rewards.yml
vote-sites.yml
milestones.yml
vote-party.yml
messages.yml
voteplus.db
  • config.yml, storage, timezone and the other plugin-wide switches
  • vote-rewards.yml, vote-sites.yml and the other feature files, one per subsystem, see the configuration overview for the full list
  • messages.yml, every chat line the plugin sends (MiniMessage-aware)
  • guis/, one layout file per menu
  • voteplus.db, the SQLite database, leave it alone

Set the essentials

You can ship most defaults unchanged, but before opening up you will want to:

  • Replace the three placeholder links in vote-sites.yml with your own voting pages, so /vote sites sends players to the right place
  • Decide what a vote pays in vote-rewards.yml: items, money, exp or commands
  • Set general.timezone in config.yml to where your players live, it decides when the day and the month roll over
  • (Optional) Switch the storage backend to MySQL if you are on a network, see the storage page

Every file has inline comments explaining each key, so read top to bottom once before changing anything.

Reload, then test

Apply your edits and send yourself a test vote:

/voteplus reload
/voteplus give <yourname>

give pushes one vote through the whole pipeline, exactly like a real one, so you can check rewards without waiting for a vote site. Your vote count goes up by one, use /voteplus reset <yourname> afterwards if you want a clean slate.

If the reward shows up in chat and in your inventory, VotePlus works. What is left is pointing your vote sites at your Votifier port, which the first vote setup guide walks through.

What now?