Direkt zum Hauptinhalt

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

Sidebar → Tickets → Send Panel → Display mode

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

One button per topic. Max 5 per row, max 25 topics total. Good for few topics (1–5) where direct click is faster.

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

Two buttons in the panel:

  • "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:

  1. Logs the field-level error (which URL exactly)
  2. Auto-retries without media
  3. Posts the panel anyway (text-only)
  4. 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).