Skip to main content

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:

  1. In the Ticket Tool dashboard, they click their avatar, choose Account, open the Linked accounts tab and click Link Minecraft.
  2. They get a code like ABCD-EFGH, valid for 10 minutes and usable once.
  3. 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} is false.
  • The Minecraft ban result never counts as a clean record or a ban: {bans.minecraft.status} is claimed and {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

CommandPermissionDefaultWhat it does
/ttlink <code>tickettool.linkEveryoneLinks the player's Minecraft account to the Discord account that made the code
/ticketlink statustickettool.adminOpShows the connection state, key id, Discord server and ban source
/ticketlink reloadtickettool.adminOpRe-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 other bans.minecraft fields. 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-providerBan source
litebansLiteBans
advancedbanAdvancedBan
libertybansLibertyBans
vanillaThe 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.