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

# Panels

> The message members click to open a ticket, and the settings shared by everything under it.

A panel is the message members interact with. It owns the channel it's posted in, the display mode, and the settings shared by every option beneath it — case numbering, channel naming, ticket limits.

Every command here needs to be run by **ticket staff** (set with `!tickets staff`) or an **Administrator**.

## Creating one

```javascript theme={null}
!tickets panel add #support dropdown Support
```

Arguments are the **channel**, the **mode**, and the **name** you'll use to refer to it in later commands.

| Mode       | Looks like                                |
| ---------- | ----------------------------------------- |
| `button`   | One button per option, side by side       |
| `dropdown` | A single select menu listing every option |

<CodeGroup>
  ```javascript List panels theme={null}
  !tickets panel list
  ```

  ```javascript Switch mode theme={null}
  !tickets panel mode Support button
  ```

  ```javascript Delete theme={null}
  !tickets panel remove Support
  ```
</CodeGroup>

<Tip>
  Use `button` for three options or fewer — they're visible without interacting. Past that, `dropdown` keeps the message compact and lets each option carry a description.
</Tip>

## Publishing it

```javascript theme={null}
!tickets resend Support
```

Posts (or re-posts) the panel message with its currently enabled options. **Run this every time you add, remove, rename or re-style an option** — the message doesn't update itself.

## Categories

<CodeGroup>
  ```javascript Default theme={null}
  !tickets panel category Support default "Tickets"
  ```

  ```javascript Overflow theme={null}
  !tickets panel category Support overflow "Tickets 2"
  ```
</CodeGroup>

Discord caps a category at 50 channels. When the default fills, new tickets go to the overflow category instead of failing. On a busy server this is the difference between tickets working and tickets silently breaking at 2am.

Aliases: `categories`.

## Channel naming

```javascript theme={null}
!tickets panel nameformat Support case
```

| Format     | Produces             |
| ---------- | -------------------- |
| `case`     | `ticket-0042`        |
| `username` | `ticket-someone`     |
| `template` | Whatever you specify |

For `template`, pass the pattern after the format:

```javascript theme={null}
!tickets panel nameformat Support template {option}-{case}
```

Aliases: `naming`.

### Case number padding

```javascript theme={null}
!tickets panel casepadding Support 3
```

Zero-pads case numbers to that many digits — `3` gives `#007`. Aliases: `padding`.

## Ticket limits

```javascript theme={null}
!tickets panel maxtickets Support 1
```

How many tickets one member can have open at once, for this panel. `1` is the usual choice and stops people opening five tickets about the same thing. Aliases: `maxopen`, `limit`.

## Claiming

```javascript theme={null}
!tickets panel claims Support on
```

Toggles whether staff can claim tickets. With claiming on, one staff member takes responsibility and — depending on the option's [permission flags](/setup/tickets/access#permission-flags) — others may lose the ability to speak.

Aliases: `claiming`.

## Controls message

```javascript theme={null}
!tickets panel autopin Support on
```

Pins the controls message (claim / close / etc.) in each new ticket, so it stays reachable after a long conversation.

## Delete delay

```javascript theme={null}
!tickets panel deletedelay Support 1h
```

How long a closed ticket's channel sticks around before deletion. Gives staff a window to reopen a ticket that was closed by mistake. Aliases: `deletedelayafterclose`.

## Dropdown placeholder

```javascript theme={null}
!tickets panel placeholder Support "What do you need help with?"
```

The greyed-out text on the select menu before anything is picked. Dropdown mode only.

## A worked setup

A support panel and a separate applications panel:

```javascript theme={null}
// support
!tickets panel add #support dropdown Support
!tickets panel category Support default "Tickets"
!tickets panel category Support overflow "Tickets 2"
!tickets panel nameformat Support case
!tickets panel casepadding Support 4
!tickets panel maxtickets Support 1
!tickets panel claims Support on
!tickets panel deletedelay Support 1h
!tickets panel placeholder Support "What do you need help with?"

!tickets option add Support general "General Help"
!tickets option add Support report "Report a User"
!tickets option add Support appeal "Ban Appeal"
!tickets resend Support

// applications
!tickets panel add #applications button Apply
!tickets panel nameformat Apply username
!tickets panel maxtickets Apply 1

!tickets option add Apply staff "Staff Application"
!tickets resend Apply
```

## Command reference

| Command                                                | Aliases               | Description                  |
| ------------------------------------------------------ | --------------------- | ---------------------------- |
| `tickets panel add <channel> <mode> <name>`            | `create`, `new`       | Create a panel               |
| `tickets panel list`                                   | `ls`                  | View all panels              |
| `tickets panel remove <name>`                          | `delete`, `del`, `rm` | Delete a panel               |
| `tickets panel mode <panel> <mode>`                    | —                     | button or dropdown           |
| `tickets panel category <panel> <kind> <category>`     | `categories`          | default or overflow category |
| `tickets panel nameformat <panel> <format> [template]` | `naming`              | Channel naming               |
| `tickets panel casepadding <panel> <digits>`           | `padding`             | Zero-pad case numbers        |
| `tickets panel maxtickets <panel> <count>`             | `maxopen`, `limit`    | Open tickets per member      |
| `tickets panel claims <panel> (on/off)`                | `claiming`            | Enable claiming              |
| `tickets panel autopin <panel> (on/off)`               | —                     | Pin the controls message     |
| `tickets panel deletedelay <panel> <duration>`         | —                     | Delay before deletion        |
| `tickets panel placeholder <panel> <text>`             | —                     | Dropdown placeholder         |
| `tickets resend <panel>`                               | —                     | Publish the panel message    |
