Components V2 Panel
Components V2 Panel
The modern panel style — since V2 the ticket panel uses Discord's new Components V2 API
What is Components V2?
Discord released a new components API in 2024 with much more layout flexibility than classic embeds. Quantix Tickets uses it for the ticket panel.
| Feature | V1 (Embed) | V2 (Container) |
|---|---|---|
| Accent color | ✅ | ✅ |
| Title + description | ✅ | ✅ (TextDisplay) |
| Image | Below text | MediaGallery |
| Thumbnail | Small, top-right | Section accessory |
| Buttons + select | Separate below | Inside container |
| Position choice | Not possible | Above / Below |
| 6000-char cap | ✅ | ❌ |
The new panel layout
┌─────────────────────────────────┐
│ ▌🎟️ Create Ticket │ ← Section + thumbnail
│ ▌ Click the button to ... │
│ ▌ [📷] │
├─────────────────────────────────┤
│ [Pick a topic …] ▼│ ← Select / button row
│ │
│ -# Quantix Tickets © │ ← Footer (subtext)
└─────────────────────────────────┘
The vertical line on the left is the accent-color border (panelEmbed.color).
Position toggle
Above the embed:
[Pick a topic …] ▼ ← top
─────────────────────
🎟️ Create Ticket ← embed body
Below the embed (default):
🎟️ Create Ticket ← embed body
─────────────────────
[Pick a topic …] ▼ ← bottom
Switching is live in the preview panel.
Display modes
Select menu (default)
A single dropdown with all topics. Good for many topics (>3).
Buttons
Image vs. thumbnail
Thumbnail (small, top-right)
- Renders as Section accessory to the right of title + description
- Recommended: 256 × 256 px (square)
- Good for logo / server icon
Image (full width)
- Renders as MediaGallery below the embed body
- Recommended: 1280 × 320 px (banner format)
- Good for visual eye-catcher
Both at once are fine — the container has room.
Edit instead of re-send
- "Send panel" — posts a new panel message
- "Edit" — edits the existing panel message
Edit only works if a panel was already sent (cfg.panelMessageId stored). When the original message has been deleted, the bot falls back to "send new" automatically.
When sending fails
Invalid image/thumbnail URL:
Discord rejects the embed with a 50035 (Invalid Form Body) error. The panel:
- Logs the field-level error (which URL exactly)
- Auto-retries without media
- Posts the panel anyway (text-only)
- Shows a warning telling you what Discord rejected
So you never just get a "server error".
Topic select reset
After picking a topic the dropdown auto-resets — the bot edits the panel message in-place with a refreshed component. Works for V2 panels too (no downgrade to V1).