> For the complete documentation index, see [llms.txt](https://av0.gitbook.io/av/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://av0.gitbook.io/av/bots/ezpanel.md).

# EzPanel

### Overview

EzPanel Ticket Bot is a powerful and highly customizable system for managing tickets, inquiries, and service requests within your Discord server. It allows server administrators to create interactive panels with multiple "variants" (ticket types), each potentially having unique pricing, modal questions, required roles, and target categories. The bot handles ticket creation, automated management with a **ticket claim feature**, a **user review system**, and **advanced automated closure**, granular permission control, and detailed logging with transcripts. This guide will walk you through all available commands and features.

***

### 1. Panel & Variant Management Commands

These commands are for administrators to create, edit, and manage the ticket panels and the options (variants) within them.

#### 1.1. Panel Commands

**`/create_panel <category> [title] [description] [color] [image_url] [thumbnail_url] <variant_name> [variant_ticket_description] [price] [emoji] [variant_category_id] [required_role] [display_mode] [button_color] [modal_q1]...[modal_q5]`**

Create a new ticket panel with its first variant. This command initializes a new interactive panel message in the current channel.

* **category**: The default Discord category where tickets from this panel will be created.
* **title (Optional)**: The main title for the panel embed.
* **description (Optional)**: The main description for the panel embed. Supports basic Discord markdown and  `\n` for new lines.
* **color (Optional)**: Hex color code (ex: FF0000) or a predefined color name (ex: Red) for the panel embed.
* **image\_url (Optional)**: URL for a large image in the panel embed.
* **thumbnail\_url (Optional)**: URL for a thumbnail image in the panel embed.
* **variant\_name**: The name for the first variant/option on this panel.
* **variant\_ticket\_description (Optional)**: Custom description for the embed inside the ticket channel when this variant is chosen. Supports placeholders like {user.mention}, {variant.name}.
* **price (Optional)**: A numerical price for this first variant.
* **emoji (Optional)**: An emoji (Unicode or custom Discord emoji ID) to display next to this first variant.
* **variant\_category\_id (Optional)**: A specific Discord category ID where tickets for THIS variant will be created, overriding the panel's default category.
* **required\_role (Optional)**: A specific role a user must have to open a ticket using this variant.
* **display\_mode (Optional)**: How variants are displayed: dropdown (default) or buttons.
* **button\_color (Optional)**: If display\_mode is buttons, specifies the color: grey, green, red, blue.
* **modal\_q1 to modal\_q5 (Optional)**: Up to 5 questions (max 45 chars each) to ask the user in a modal when they select this variant.

> **Example**: /create\_panel category:"Support Tickets" title:"Support" description:"Open a ticket for technical help." variant\_name:"Support" display\_mode:buttons button\_color:green modal\_q1:"What is your issue?"

**`/edit_panel <message_id> [category] [title] [description] [color] [image_url] [thumbnail_url] [display_mode]`**

Edit an existing ticket panel's properties. This command modifies the appearance and general settings of an existing panel message.

* **message\_id**: The Discord Message ID of the panel you want to edit.
* **category (Optional)**: New default Discord category for tickets from this panel.
* **title (Optional)**: New title for the panel embed.
* **description (Optional)**: New description for the panel embed.
* **color (Optional)**: New hex color code for the panel embed.
* **image\_url (Optional)**: New URL for the panel embed's large image.
* **thumbnail\_url (Optional)**: New URL for the panel embed's thumbnail.
* **display\_mode (Optional)**: Change the display mode for variants (dropdown or buttons).

> **Example**: /edit\_panel message\_id:739285617392846153 title:"Customer Support" color:Green

**`/del_panel <message_id>`**

Delete an existing ticket panel and all its associated variants. This command removes the panel message from Discord and deletes the panel and its variants from the database. Existing tickets created from this panel are unaffected.

* **message\_id**: The Discord Message ID of the panel to delete.

> **Example**: /del\_panel message\_id:520398475610284937

#### 1.2. Variant Commands

**`/add_variant <message_id> <variant_name> [ticket_description] [price] [emoji] [variant_category_id] [required_role] [button_color] [modal_q1]...[modal_q5]`**

Add a new variant (option) to an existing ticket panel.

* **message\_id**: The Discord Message ID of the panel to add this variant to.
* **variant\_name**: The name for the new variant/option.
* **ticket\_description (Optional)**: Custom description for the embed inside the ticket channel for this variant. Use placeholders like {user.mention}.
* **price (Optional)**: A numerical price for this variant.
* **emoji (Optional)**: An emoji for this variant.
* **variant\_category\_id (Optional)**: Specific Discord category ID for tickets from THIS variant.
* **required\_role (Optional)**: Role a user must have for this variant.
* **button\_color (Optional)**: If panel display\_mode is buttons, specifies color: grey (default), green, red, blue.
* **modal\_q1 to modal\_q5 (Optional)**: Up to 5 modal questions for this variant.

> **Example**: /add\_variant message\_id:981204736581027462 variant\_name:"Bug Report" emoji:"🐞" modal\_q1:"Steps to reproduce?"

**`/edit_variant <message_id> <variant_option> [name] [ticket_description] [price] [emoji] [variant_category_id] [required_role] [button_color] [status] [modal_q1]...[modal_q5]`**

Edit an existing variant within a ticket panel.

* **message\_id**: The Discord Message ID of the panel containing the variant.
* **variant\_option**: Select the variant to edit from the autocomplete list (this will be the variant's ID).
* **name (Optional)**: New name for the variant.
* **ticket\_description (Optional)**: New custom ticket embed description. Use **CLEAR** to remove an existing custom description and revert to default.
* **price (Optional)**: New price for the variant.
* **emoji (Optional)**: New emoji for the variant.
* **variant\_category\_id (Optional)**: New specific category ID for the variant.
* **required\_role (Optional)**: New role required for this variant.
* **button\_color (Optional)**: New button color (if panel uses buttons mode).
* **status (Optional)**: Set the variant's visibility and interaction state:
  * ✅ Enable: Visible and clickable.
  * 🔘 Disable: Visible but not clickable (only applies if panel display\_mode is buttons).
  * ❌ Hide: Not visible on the panel.
* **modal\_q1 to modal\_q5 (Optional)**: Set or change modal questions. Providing any modal\_q# will overwrite all existing modal questions for this variant with the new set.

> **Example**: /edit\_variant message\_id:305716284920583746 variant\_option:"Bug Report" price:0 status:enabled

**`/del_variant <message_id> <variant_option>`**

Delete a specific variant from a ticket panel. The last visible variant cannot be deleted (hide it first or delete the panel).

* **message\_id**: The Discord Message ID of the panel containing the variant.
* **variant\_option**: Select the variant to delete from the autocomplete list (this will be the variant's ID).

> **Example**: /del\_variant message\_id:874561092384756210 variant\_option:"Old Service"

***

### 2. Ticket Management Commands

These commands are used to manage active tickets. Some may require specific permissions.

**`/close`**

Close the current ticket channel. If enabled, this will prompt for confirmation. It saves a transcript, sends logs, and deletes the channel.

**`/close_all`**

Closes all currently open tickets on the server. This is an admin-only command and will ask for confirmation due to its wide impact.

**`/rename <new_name>`**

Rename the current ticket channel.

**`/move <category>`**

Moves the current ticket channel to a different Discord category.

> **Example**: /move category:"Resolved Tickets"

**`/add_user <user>`**

Add a specified user to the current ticket channel. The added user will typically receive permissions similar to the ticket opener.

* **user**: The @mention or ID of the user to add.

**`/remove_user <user>`**

Remove a specified user from the current ticket channel. This removes any specific permission overwrites for that user in the ticket.

* **user**: The @mention or ID of the user to remove.

**`/alert [hours]`**

Set a manual auto-close alert for the current ticket. If no response is received from the ticket opener within the specified time, the ticket will be closed automatically.

* **hours (Optional)**: Number of hours until auto-close. Defaults to a pre-configured value (ex: 12 hours).

> **Example**: /alert hours:24

***

### 3. Configuration Commands (/setup)

These commands allow administrators to customize the bot's behavior and permissions.

**`/setup general [max_tickets] [timezone] [ticket_closure_confirmation] [claim_system] [rating_system] [auto_close_enabled] [auto_close_duration] [footer_name] [footer_image_url] [embed_color] [transcripts_channel] [ticket_opening_ping] [ticket_name_format] [dm_transcript]`**

Configure general bot settings. All parameters are optional.

* **max\_tickets (Optional)**: Maximum number of open tickets a single user can have.
* **timezone (Optional)**: Bot's timezone for timestamps (ex: Europe/Paris, UTC).
* **ticket\_closure\_confirmation (Optional)**: Enable or Disable the confirmation step before closing a ticket.
* **claim\_system (Optional)**: Enable or Disable the ticket claim system.
* **rating\_system (Optional)**: Enable or Disable the ticket rating system on closure.
* **auto\_close\_enabled (Optional)**: Enable or Disable automatically closing inactive tickets.
* **auto\_close\_duration (Optional)**: Inactivity period before auto-closing (ex: 30m, 2h, 7d).
* **footer\_name (Optional)**: Custom text for embed footers. Leave empty to revert to default.
* **footer\_image\_url (Optional)**: Custom image URL for embed footers.
* **embed\_color (Optional)**: Default color for bot embeds (hex code or predefined name).
* **transcripts\_channel (Optional)**: The Discord text channel where ticket transcripts and logs will be sent.
* **ticket\_opening\_ping (Optional)**: Enable or Disable automatic pings to designated roles when a new ticket is opened.
* **ticket\_name\_format (Optional)**: Format for newly created ticket channel names (ex: variant-number-pseudo).
* **dm\_transcript (Optional)**: Enable or Disable DMing the transcript to the ticket opener upon closure.

> **Example**: /setup general max\_tickets:3 timezone:UTC transcripts\_channel:#ticket-logs claim\_system:Enable

**`/setup command_permissions <role>`**

Configure which bot commands a specific role can use. Presents an interactive UI to select allowed commands for the chosen role.

* **role**: The @mention or ID of the role to configure.

> **Example**: /setup command\_permissions role:@Moderator

**`/setup ticket_permissions <is_ticket_opener> [role]`**

Set in-ticket channel permissions for a role or for the ticket opener. Presents an interactive UI to select specific Discord permissions (ex: send messages, attach files) that apply inside ticket channels.

* **is\_ticket\_opener**: Choose "Yes" to configure for the ticket opener, or "No" to configure for a role.
* **role (Optional)**: If is\_ticket\_opener is "No", specify the @mention or ID of the role.

> **Example**: /setup ticket\_permissions is\_ticket\_opener:No role:@SupportStaff

**`/sync_ticket_perms`**

Resynchronize and apply all currently configured in-ticket permissions to all active (open) ticket channels. Useful after making changes with /setup ticket\_permissions.

> **Example**: /sync\_ticket\_perms

***

### 4. Information & Utility Commands

**`/tickets_stats`**

Display current ticket statistics for the server. Includes total tickets, active tickets, total messages, average response time, and active tickets per category.

**`/perms`**

Display all TicketBot command permissions currently set up for roles. Shows which roles are allowed to use which bot slash commands.

**`/ticket_perms`**

Display all configured in-ticket channel permissions for roles and the ticket opener. Shows what permissions different roles (or the ticket opener) have inside a ticket channel.

**`/ratings [stars]`**

View the latest ticket ratings submitted by users.

* **stars (Optional)**: Filter ratings by a specific star count (1-5).

**`/help`**

Display a list of all available TicketBot commands and their descriptions.

**`/ping`**

Check the bot's current latency to Discord and provides a performance score.

***

### 5. Automated System Features

#### 5.1. Panel Interaction & Ticket Creation

Users click buttons or select options from a dropdown on a panel to initiate ticket creation.

* **Role Requirements**: Variants can require specific roles; users without the role cannot select that variant.
* **Modal Questions**: If a variant has modal questions configured, a pop-up form will appear for the user to fill out.
* **Channel Name**: Ticket channels are named according to the format set in /setup general.
* **Initial Embed**: An embed message is posted in the new ticket, with a custom description if set for the variant.
* **Pings**: If enabled (/setup general ticket\_opening\_ping:Enable), relevant roles (configured via /setup ticket\_permissions) are pinged in the new ticket. This ping is quickly deleted.
* **Ticket Limit**: Users are restricted by the maximum number of open tickets configured via /setup general.

#### 5.2. Ticket Closure

* **Confirmation**: If enabled (/setup general ticket\_closure\_confirmation:Enable), users are asked to confirm before a ticket is closed.
* **Transcripts**: Upon closing, a detailed HTML transcript of the conversation is generated.
* **Logging**: An embed summarizing the ticket closure (closer, creator, stats) along with the HTML transcript is sent to the configured transcripts channel.
* **DM Transcript & Review**: If enabled, the HTML transcript and/or a rating prompt is also DMed to the ticket opener.
* **Channel Deletion**: The ticket channel is deleted after closure.

#### 5.3. Automated Closure Systems

* **Manual Alert (/alert)**: When an alert is set, the ticket opener is notified that the ticket will close due to inactivity. If the ticket opener (or anyone with permission to speak) sends any message, the alert is automatically cancelled.
* **Automatic Inactivity Closure**: If enabled via /setup general, the bot will **passively** close any ticket that has been inactive for the configured duration. The timer resets with every new message.

#### 5.4. Claim System

* If enabled (/setup general claim\_system:Enable), a "Claim" button appears in new tickets.
* Staff members (excluding the ticket opener) can click this button to officially take ownership of the ticket.
* Once claimed, the button updates to show who claimed it and becomes disabled. This helps in coordinating support efforts.

#### 5.5. Review System

* If enabled (/setup general rating\_system:Enable), a rating prompt is sent to the ticket opener via DM upon ticket closure.
* Users can leave a star rating (1-5) and an optional comment.
* Admins can view aggregated ratings using the /ratings command.

#### 5.6. Permissions System

* **Bot Command Permissions**: Administrators can define precisely which roles can use specific EzPanel Bot commands (ex: only @Admin can use /del\_panel). Configured via /setup command\_permissions.
* **In-Ticket Permissions**: Administrators can control what different roles (or the ticket opener themselves) can do inside a ticket channel (ex: send messages, attach files, close tickets). Configured via /setup ticket\_permissions.

***

### 6. Customization Highlights

EzPanel Ticket Bot offers extensive customization:

* **Panel Appearance**: Titles, descriptions, colors, images, thumbnails.
* **Variant Details**: Names, prices, emojis, specific categories, required roles, button colors, modal questions.
* **Ticket Embeds**: Custom descriptions within tickets per variant.
* **Bot Settings**: Max tickets, timezone, embed footers, global embed color, transcripts channel.
* **Naming & Pings**: Ticket channel name format, enable/disable opening pings.
* **Workflow**: Enable/disable ticket closure confirmation, DM transcripts, **claim system, review system, and auto-close**.

***

### 7. Advantages of EzPanel Ticket Bot

* **Efficiency**: Streamlined ticket creation and management through interactive panels.
* **Automation**: Automated pings, alerts, auto-closure, transcript generation, and logging reduce manual workload.
* **Customization**: Tailor panels, variants, and bot behavior to fit specific server needs.
* **Granular Permissions**: Fine-grained control over who can use bot commands and what users/roles can do within tickets.
* **User-Friendly**: Intuitive commands and UI components for both users and administrators.

***

### 8. Frequently Asked Questions (FAQ)

* **Q: How do I create a ticket panel?**
  * A: Use the /create\_panel command, specifying at least a category and a variant\_name. Many other options are available for customization.
* **Q: How do users open a ticket?**
  * A: Users interact with the panel message created by /create\_panel. They will either click a button or select an option from a dropdown. If modal questions are set for that variant, a form will pop up.
* **Q: What's the difference between /alert and the automatic inactivity closure?**
  * A: /alert is a **manual** action by staff to set a one-time closure timer. The automatic inactivity closure (from /setup general) is a **passive** system that applies to all tickets, closing them if they are inactive for a set period.
* **Q: How does the Claim System work?**
  * A: When enabled via /setup general, a "Claim" button appears in new tickets. When a staff member clicks it, they are marked as the ticket's owner, which helps coordinate support.
* **Q: How can I see user feedback?**
  * A: If the review system is enabled, you can view the feedback with the /ratings command.
* **Q: How do I control which staff members can manage panels or use specific bot commands?**
  * A: Use the /setup command\_permissions command to assign specific bot command permissions to roles. For example, you can allow only @SeniorStaff to use /del\_panel.
* **Q: How do I control what staff members (or the ticket opener) can do inside a ticket?**
  * A: Use the /setup ticket\_permissions command. This lets you define permissions like "can send messages," "can attach files," or "can close ticket" for different roles or for the ticket opener within the ticket channel itself.
* **Q: What if I change permissions? Do I need to update old tickets?**
  * A: Yes, after changing in-ticket permissions with /setup ticket\_permissions, run /sync\_ticket\_perms to apply the new permission settings to all currently open ticket channels.

***

### 9. Conclusion

EzPanel Ticket Bot provides a robust, highly adaptable, and automated system for managing tickets on your Discord server. With its wide array of commands for panel customization, ticket handling, and granular permission controls, it aims to create an organized and efficient support environment for both your users and your administrative team. For further support or questions, feel free to contact us on [D**iscord**](https://discord.gg/anewvision).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://av0.gitbook.io/av/bots/ezpanel.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
