Support Tickets
Give your community a reliable way to get help. Zander's support ticket system works seamlessly across Discord and the web - every ticket is backed by a private Discord channel that mirrors the web conversation, with messages relayed both ways. Categories, staff-only internal notes, escalation, and permission-based access control ensure the right staff see the right tickets.
📸 Screenshot: The /support page showing a player's open tickets with status badges and category labels
For Players​
Opening a Ticket​
Tickets can be opened in two ways:
- Discord: Click the Create Ticket button in your server's support channel, or use
/ticket create. - Web: Go to /support/create and fill in the form.
Select the appropriate category when creating your ticket - this determines which staff team receives it.
Viewing Your Tickets​
All your open and closed tickets are listed at /support once you're logged in - this includes tickets you own as well as ones you've been added to as a participant. Click any ticket to view the full conversation.
Replying to a ticket requires your Minecraft account to be linked. From a ticket page you can also add or remove other participants (individual users or whole rank groups) if you're the owner, staff, or hold zander.web.tickets.manageparticipants.
If you've received a punishment and want to appeal it, head to /appeal instead. Submitting the appeal form looks up the punishment, then opens a ticket titled Appeal #<id> - <type> - <date> in the "Uncategorised" category and notifies the staff member who issued the original punishment.
For Staff​
Ticket Dashboard​
The support dashboard at Dashboard → Support (requires zander.web.tickets) gives staff a full view of all tickets in their accessible categories.
📸 Screenshot: The support dashboard showing a list of open tickets across multiple categories, with status, priority, and last-updated columns
Features available from the dashboard:
- Filter tickets by category (
/dashboard/support/explorer?category=, staff must have access to that category), status, or assigned staff - Reply with a public reply (visible to the ticket creator) or an internal note (
visibility=internal, staff only) - Update ticket status, reassign to a different category, escalate/deescalate (requires
zander.web.ticket.escalate), lock/unlock, or close
Ticket Statuses​
| Status | Description |
|---|---|
open | Active - awaiting a response |
pending | Waiting on additional information from the player (staff-set only) |
closed | Resolved and closed - deletes the Discord channel; reopening recreates it |
Locked and escalated are tracked as separate boolean flags on the ticket (not additional status values) and are toggled independently of the three statuses above:
| Flag | Description |
|---|---|
locked | Replies restricted to staff only |
escalated | Raised to a higher support tier |
Ticket status and category-level dashboard access use permission nodes derived from the category itself (zander.web.tickets.<slug> or zander.web.tickets.*), not a separate status-management permission.
Discord Ticket Commands​
When working from within a ticket channel in Discord, staff can use these /ticket subcommands:
| Subcommand | Who | Description |
|---|---|---|
/ticket status <status> | Staff | Update the ticket status |
/ticket close | Staff or ticket owner | Close the ticket |
/ticket lock | Staff | Lock replies to staff only |
/ticket add <user|role> | Staff | Add a participant to the ticket |
/ticket remove <user|role> | Staff | Remove a participant |
/ticket manual <user> <subject> <description> | Staff (ManageChannels) | Open a ticket on behalf of a player |
Setting Up the Ticket Panel​
Use /ticket panel [channel] [category] to post a "Create Ticket" button in any channel. Players can click this button to open a ticket at any time (requires ManageChannels permission).
📸 Screenshot: A Discord support channel showing the "Create Ticket" button embed
Categories​
Ticket categories control how tickets are routed and which staff have access.
Manage categories from Dashboard → Support → Categories (/dashboard/support/categories) - create, edit, delete, and assign per-category role permissions.
Each category has:
- A name and slug (used in permission nodes)
- A list of staff roles - LuckPerms groups (mapped to Discord role IDs) that have access to tickets in this category
Creating, editing, or deleting a category automatically refreshes the category-picker buttons on the Discord support panel message.
Category Permissions​
| Permission | Description |
|---|---|
zander.web.tickets | Base permission - access the support dashboard |
zander.web.tickets.<slug> | Access tickets in a specific category (e.g. zander.web.tickets.general) |
zander.web.tickets.* | Access tickets in all categories |
Use category-specific permission nodes to create specialised support teams - for example, give your moderation team zander.web.tickets.appeals without granting access to general enquiries.
Configuration​
Set your Discord ticket category and support panel channel in config.json:
"discord": {
"supportPanelChannelId": "CHANNEL_ID",
"supportTicketCategoryId": "CATEGORY_ID"
}
Ticket channels are created inside supportTicketCategoryId in Discord when a ticket is opened.
Support is gated behind the features.support flag in features.json; both the public routes and the JSON search endpoint check it before responding.
There's no general-purpose way for other tools to read or write ticket data - the support pages only work when you're logged in through the website itself. The one exception is GET /support/users/search?q=, which powers the "search for a user to add" box on a ticket page.