Skip to main content

Tickets

The Tickets module lets players open private support channels from inside Minecraft. A player runs /support in-game, the bot creates a Discord channel under your support category, pings the support role, and the conversation continues in Discord. Transcripts are saved automatically and stale tickets close themselves.

Overview

Each ticket is a dedicated Discord text channel. The player’s opening message seeds the channel, the configured support role is pinged, and the conversation is persisted to the database so it survives restarts. Tickets auto-close after a configurable idle window, with a warning before shutdown.

Configuration

All keys live under features.tickets in plugins/XDiscordUltimate/config.yml.
features:
  tickets:
    enabled: true
    ticket-category: "Support Tickets"
    ticket-panel-channel: "ticket-logs"
    transcript-channel: "ticket-logs"
    support-role: "Support"
    max-open-tickets: 3
    auto-close-hours: 48
    auto-close-warning-enabled: true
    auto-close-warning-minutes: 60
    player-close: true
    save-transcript: true

Key behavior

  • ticket-category — Discord category under which new ticket channels are created (default Support Tickets).
  • ticket-panel-channel — Channel used for the ticket panel/log feed (default ticket-logs).
  • transcript-channel — Channel where closing transcripts are posted (default ticket-logs).
  • support-role — Discord role pinged and granted view access to each ticket (default Support).
  • max-open-tickets — Maximum number of tickets a single player may have open at once (default 3).
  • auto-close-hours — Idle time before a ticket is automatically closed (default 48).
  • auto-close-warning-enabled — When true, players are warned before auto-close fires.
  • auto-close-warning-minutes — How far in advance the warning is sent (default 60 minutes before close).
  • player-close — When true, players can close their own tickets.
  • save-transcript — When true, a transcript is generated and posted on close.

How It Works

1

Player opens a ticket

In-game, the player runs:
/support I fell through the world and lost my items
# alias:
/ticket I fell through the world and lost my items
2

A private channel is created

The bot creates a Discord text channel under ticket-category, named for the ticket, and grants access to the player’s linked Discord account and the support-role. The opening message is posted and the support role is pinged.
3

Conversation continues in Discord

The player and support staff converse in the channel. All messages are persisted to the tickets and ticket_messages database tables, so the ticket survives plugin or server restarts.
4

Ticket closes

Either the player (if player-close: true) or a staff member closes the ticket, or it auto-closes after auto-close-hours of inactivity. When auto-close-warning-enabled is true, a warning is posted auto-close-warning-minutes before shutdown. If save-transcript: true, the full transcript is posted to transcript-channel.
Tickets are stored in two database tables: tickets (ticket metadata) and ticket_messages (the full message history). This means an open ticket is never lost to a restart.

Next Steps

Moderation

Ban sync, chat filtering, and in-game /report commands.

Configuration

Reference for every module and key in config.yml.