
Bring a fast, configurable ticket system to your Minecraft servers. Players file tickets in-game with a single command, you receive rich Discord notifications instantly.
Highlights
- In‑game tickets with a simple command:
/ticket <category> <reason...> - Multi‑word categories supported (e.g., "Staff Request", "Player Report")
- Smart tab completion that suggests only your configured categories
- Discord webhook integration using rich embeds
- Configurable embed color (hex)
- Player head/avatar shown in the embed
- Clean, readable layout using your message template
- Fully server‑side configuration (common config); no client required
- Customizable user‑facing messages (success/help/errors) with placeholders

-
Ticket command
/ticket <category> <reason...>- Works with multi‑word categories
- Bare
/ticketshows a configurable help/usage message
-
Discord embeds
- Ticket is posted to a Discord channel via webhook
- Color is configurable (hex, e.g.,
#5865F2) - The player's Minecraft head is used as avatar and embed thumbnail
- All placeholders from your template are preserved
-
Server‑side config only
- Everything is configured from the server's common config (no client dependency)
- All players see the same messages no matter their client language
-
Clean admin UX
- Tab completion shows only categories from your config
- Invalid categories or missing reasons return clear, configurable errors

- Base command:
/ticket - Usage:
/ticket <category> <reason...> - Examples:
/ticket Bug Bees are escaping the hive enclosure/ticket Staff Request Please review my claim/ticket Player Report Steve griefed my base at spawn
Notes
- Multi‑word categories are parsed correctly; the remainder becomes the reason
- Suggestions show only configured categories

All options live in config/sarosdiscordwebhook-common.toml. Key settings:
-
Core
tickets.enabled— enable/disable the systemtickets.categories— list of categories (strings). Supports multi‑word entriestickets.discordWebhookUrl— your Discord webhook URLtickets.commandPermissionLevel— required vanilla permission (0–4; 0 = everyone)tickets.messageTemplate— text used as the embed descriptiontickets.embedColorHex— embed color (e.g.,#5865F2)
-
Advanced
tickets.inputTimeoutSeconds— session timeout for future multi‑step flowstickets.hideReasonInChat— for future chat‑capture flow (not used in default one‑line command)
-
Messages (all server‑side; placeholders are supported where shown)
tickets.messages.successSubmitted— shown on success- Placeholders:
{category},{reason}
- Placeholders:
tickets.messages.errorInvalidCategory— invalid categorytickets.messages.errorMissingReason— reason missingtickets.messages.errorWebhookNotConfigured— webhook missingtickets.messages.errorOnlyPlayers— console/non‑player usagetickets.messages.usageHelp— displayed on bare/ticket- Placeholders:
{categories}(comma‑separated list)
- Placeholders:
tickets.messages.errorNoCategories— if category list is emptytickets.messages.errorSendFailed— Discord post failed
Placeholders available in tickets.messageTemplate (used inside the Discord embed):
{player},{uuid},{category},{reason},{dimension},{x},{y},{z}

FAQ & Tips
-
Nothing posts to Discord
- Ensure
tickets.discordWebhookUrlis set and valid - Check
tickets.enabled = true
- Ensure
-
Players can't use
/ticket- Lower
tickets.commandPermissionLevel(0 lets everyone use it)
- Lower
-
I want a different embed look
- Customize
tickets.messageTemplateandtickets.embedColorHex
- Customize
-
My categories have spaces
- Supported! The command matches the longest configured category at the start of the input
External resources
Project members

Sarocesch
Member
Technical information
License
ARR
Client side
unsupported
Server side
required
Project ID

