> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeonbot.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Tickets

> A comprehensive, multi-category ticket system for server support.

The Tickets module provides a complete solution for handling member support, inquiries, and reports. It supports up to 25 unique ticket categories (types), interactive UI panels (buttons or dropdowns), automated transcripts, and robust logging.

<Note>
  **Required Permission:** [Server Owner](/permissions/hierarchy), [Extra Owners](/permissions/extra-owners), and [Trusted Users](/permissions/trusted-users) can configure the ticket system. Managing active tickets requires a configured **Support Role**.
</Note>

***

## Step-by-Step Setup Guide

Setting up your ticket system requires configuring your team, creating your categories, and deploying the interactive panel.

<Steps>
  <Step title="Configure Support Team">
    First, define which roles can view and answer tickets.

    ```bash theme={null}
    .ticket support add @Moderator
    ```
  </Step>

  <Step title="Set Logging Channel">
    Set the channel where ticket creations, deletions, and transcripts will be sent.

    ```bash theme={null}
    .ticket logging #ticket-logs
    ```

    *Optional: Turn on automatic chat transcripts with `.ticket autotranscript enable`.*
  </Step>

  <Step title="Create Ticket Types">
    Create the distinct categories (types) users can open. You need at least one type before creating a panel.

    ```bash theme={null}
    .ticket type create Support "Support Category" "General Support" 🎫
    .ticket type create Report "Reports Category" "Player Reports" 🚨
    ```

    *(Syntax: `.ticket type create <name> <category> [label] [emoji]`)*
  </Step>

  <Step title="Deploy the Panel">
    Deploy the panel into your chosen channel. You can use normal text or a rich embed (see Customizing Messages below).

    ```bash theme={null}
    .ticket panel Please select a category below to open a ticket.
    ```

    After running this command, an interactive menu will appear allowing you to select which of your configured ticket types to include, and whether you want them displayed as **Buttons** or a **Dropdown Menu**.
  </Step>
</Steps>

***

## Customizing Messages

You can use both **plain text** and **rich embeds** for both your Ticket Panels and your Greet Messages (the message sent inside the ticket when it opens).

### Customizing the Panel

Design a rich embed using the interactive embed builder, then deploy your panel using the `{embed:name}` syntax.

<Steps>
  <Step title="Create the Embed">
    ```bash theme={null}
    .embed create ticket_panel
    ```

    Use the dropdown menu to customize the title, description, color, and images.
  </Step>

  <Step title="Deploy the Panel">
    ```bash theme={null}
    .ticket panel {embed:ticket_panel}
    ```

    The embed will be rendered as the main panel message above the interactive buttons/dropdowns.
  </Step>
</Steps>

### Customizing the Greet Message

The greet message is the first message ZEON sends inside a newly opened ticket. You can attach a custom embed to it in the exact same way.

```bash theme={null}
.ticket greetmsg Support Welcome {user}! Please describe your issue. {embed:support_info}
```

*In this example, ZEON will tag the user, send the welcome text, and attach the `support_info` embed.*

***

## Managing Active Tickets

Once a user opens a ticket, your Support Team can manage it using the control panel sent inside the ticket channel, or via commands.

### Inside-Ticket Commands

These commands must be run inside the actual ticket channel.

| Command                      | Description                                                     |
| :--------------------------- | :-------------------------------------------------------------- |
| `.ticket add @user/@role`    | Give a specific user or role access to the ticket               |
| `.ticket remove @user/@role` | Remove a specific user or role from the ticket                  |
| `.ticket rename <name>`      | Rename the ticket channel                                       |
| `.ticket close`              | Archive the ticket (hides it from the user, keeps it for staff) |
| `.ticket reopen`             | Reopen an archived ticket (restores user access)                |
| `.ticket transcript`         | Manually generate and send an HTML transcript                   |
| `.ticket delete`             | Permanently delete the ticket channel in 5 seconds              |

### Interactive Control Panel

Every ticket automatically contains a persistent control panel at the bottom with quick-action buttons for support staff.

**Active Tickets:**

* `Close` *(Red)*: Archives the ticket, hiding it from the user while preserving it for staff.
* `Rename` *(Grey)*: Opens a popup menu to quickly rename the channel.
* `Transcript` *(Grey)*: Generates an HTML log of the chat and sends it to the logging channel.
* `Delete` *(Red)*: Permanently deletes the ticket channel.

**Archived Tickets:**

* `Reopen` *(Green)*: Un-archives the ticket and restores the user's access.
* `Rename` *(Grey)*: Opens a popup menu to quickly rename the channel.
* `Transcript` *(Grey)*: Generates an HTML log of the chat and sends it to the logging channel.
* `Delete` *(Red)*: Permanently deletes the ticket channel.
