Minecraft Plugin
Ticket Tool Link connects your Minecraft server to one Discord server. When someone opens a ticket, staff see their Minecraft name, UUID, whether they are online and when they were last seen, plus any active ban from your ban plugin. Players link their Minecraft account by typing a short code in game, so there is nothing for staff to check by hand.
Community and Pro
Game server plugins are included with Community and Pro, the same as lookups and ban lookup. Game Server Plugins compares the five official plugins.
Requirements
- Server: Paper, Folia or Spigot, Minecraft 1.20.6 or newer, on Java 21.
- Accounts: Java Edition, on an online-mode server. Ticket Tool checks every player with Mojang before linking.
- Ban plugin (optional): LiteBans, AdvancedBan or LibertyBans. Without one, the plugin reads the server's own ban list.
- Network: outbound HTTPS to
dash.ticket-tool.app. There is no port to open.
Version 1 doesn't support a proxy edition (Velocity or BungeeCord), Bedrock players joining through Geyser or Floodgate, or offline-mode servers. On a network, install the plugin on each backend instead of the proxy.
How members are matched
Players link their Minecraft account to Discord themselves:
- In the Ticket Tool dashboard, they click their avatar, choose Account, open the Linked accounts tab and click Link Minecraft.
- They get a code like
ABCD-EFGH, valid for 10 minutes and usable once. - In game they type
/ttlink ABCD-EFGH.
Ticket Tool checks the player's UUID with Mojang before linking and stores the name Mojang reports, so the plugin can't put a made-up name on the account. A UUID Mojang doesn't know is refused. If Mojang is down, the plugin retries once after a few seconds, and the code stays usable if that fails too.
The account is linked as Verified in game and shared with your Discord server only. The member can share it with other servers, or with every server, from the same page, and unlink it at any time.
Codes are personal
Whoever types a code links their Minecraft account to the Discord account that made it. Staff never need a member's code, so tell your members never to hand one out.
Verified here, claimed elsewhere
A plugin is run by its server's owner, so Ticket Tool only takes its word for its own server. A link your plugin made shows as Verified in game on your server. If the member shares that account with another server, staff there see Linked in game on another server, not verified here on the linked accounts and lookups cards, and:
{minecraft.verified}isfalse.- The Minecraft ban result never counts as a clean record or a ban:
{bans.minecraft.status}isclaimedand{bans.minecraft.banned}stays empty.
The reverse holds too: a link another server's plugin made is only a claim on yours until the member types a code on your server.
Download
Download TicketToolLink-<version>.jar from the Minecraft releases page of the open-source ticket-tool-app/integrations repository.
Setup
Create a plugin key
Go to Dashboard → Automations → Connections. Under Game server plugins, click Create a key, pick Minecraft and name it after the server. Copy the key: it is only shown once. Create one key for each server you run.
On a network, that means one key for each backend.
Install the plugin
Put the jar in the server's plugins folder (on a network, each backend's) and start the server once. That creates plugins/TicketToolLink/config.yml and messages.yml.
Paste the key
Paste the whole key from the dashboard, starting with ttp_, into the key: field:
# plugins/TicketToolLink/config.yml
key: "ttp_0123456789abcdef.your-key-here"
Run /ticketlink reload. Within a few seconds the key shows Connected now on the Connections page, and /ticketlink status says the server is connected.
Turn it on in a category
Edit a category and open Game server tools on the General tab. Switch on Minecraft in the Lookups card, tick Minecraft in the Ban lookup card, or both.
Commands
| Command | Permission | Default | What it does |
|---|---|---|---|
/ttlink <code> | tickettool.link | Everyone | Links the player's Minecraft account to the Discord account that made the code |
/ticketlink status | tickettool.admin | Op | Shows the connection state, key id, Discord server and ban source |
/ticketlink reload | tickettool.admin | Op | Re-reads config.yml and messages.yml and reconnects |
/tickettool works as an alias for /ticketlink. /ttlink only works for players, never the console or command blocks.
Configuration
key: "" # the full key from the dashboard
server-name: "" # the name staff see for this server; empty uses the key's name
ban-provider: auto # auto, litebans, advancedban, libertybans or vanilla
link-cooldown-seconds: 5 # how long a player waits between /ttlink attempts
api-url: "https://dash.ticket-tool.app"
debug: false
Leave api-url as it is unless Ticket Tool support asks you to change it. On a network, set server-name on each backend so staff can tell them apart. All player-facing text is in messages.yml. The key is never written to the server log.
What staff see
- Lookups card: the player's name with a NameMC link, their UUID, Online on the backend they are on or Offline with the last-seen date, and when they first joined. Playtime isn't shown: version 1 of the protocol has no field for it.
- Ban lookup card: a Minecraft row with the reason, date, expiry and moderator.
- Variables:
{minecraft.verified},{minecraft.name},{minecraft.uuid},{minecraft.online},{minecraft.last_seen},{minecraft.first_seen},{minecraft.server}and{minecraft.url}, plus{bans.minecraft.banned},{bans.minecraft.reason}and the otherbans.minecraftfields. Variables says what each one holds.
If the plugin is offline or slow, the ticket still opens straight away. Staff see the linked name and UUID and a note that the plugin didn't answer.
Ban sources
The plugin reads bans through the ban plugin's own API, on your server. Ticket Tool never connects to your ban plugin's database or to your server.
ban-provider | Ban source |
|---|---|
litebans | LiteBans |
advancedban | AdvancedBan |
libertybans | LibertyBans |
vanilla | The server's own ban list (banned-players.json) |
auto picks the first ban plugin it finds, and falls back to the server's own list. Each reports the active ban with its reason, date, expiry and moderator.
Rotating or revoking a key
On the Connections page, Rotate issues a new key for the same entry and stops the old one at once, so put the new key in the plugin's config and reload. Revoke deletes the key, and Minecraft lookups show as unavailable. To build a plugin of your own, see the Game Plugin Protocol.