Schritt für Schritt: So baust du ein Race-Control-Panel – von der Nachricht im Panel-Kanal über Formular und Willkommensnachricht bis zum Speichern.
Step by step: how to build a race control panel – from the message in the panel channel, the form and the welcome message to saving.
Du öffnest den Editor auf der Seite „Race Control System“ über „Panel erstellen“ oder bei einem bestehenden Panel über „Bearbeiten“.
Zwei ähnliche Namen: Schritt 1 heißt im Editor „RC Nachricht“ – das ist die Panel-Nachricht im Panel-Kanal. Schritt 4 heißt „RC Message“ – das ist die Willkommensnachricht im neuen RC-Kanal.
Nichts wird automatisch gespeichert. Erst „Panel speichern“ in Schritt 6 übernimmt deine Änderungen. Verlässt du die Seite mit ungespeicherten Änderungen, fragt der Browser nach.
You open the editor on the “Race Control System” page with “Create Panel”, or with “Bearbeiten” (edit) on an existing panel.
Two steps with the same name: in the English editor, step 1 and step 4 are both called “RC Message”. Step 1 is the panel message in the panel channel, step 4 the welcome message in the new RC channel.
Nothing is saved automatically. Only “Save Panel” in step 6 stores your changes. If you leave the page with unsaved changes, your browser asks first.
Hier baust du die Nachricht, die der Bot in den Panel-Kanal postet. Sie besteht aus Bausteinen, den Komponenten (Discord Components V2). Links steht die Liste, rechts die Vorschau. Ein neues Panel ist leer.
| Komponente | Wofür | Gut zu wissen |
|---|---|---|
| Text Display | Formatierter Text. Markdown wie **fett**, *kursiv*, Listen, Links und Überschriften mit # funktioniert. | Darf nicht leer sein. Discord erlaubt bis zu 4000 Zeichen Text – für die ganze Nachricht zusammen, nicht pro Block. Die Vorschau zeigt Markdown unformatiert, in Discord erscheint es formatiert. |
| Separator | Eine Trennlinie oder nur etwas Abstand. | „Trennlinie anzeigen“ an oder aus. |
| Section | Text mit einem Zubehör rechts daneben: einem Bild (Thumbnail-URL) oder einem Button. | Das Zubehör ist Pflicht. Ein Button in einer Section öffnet RCs wie jeder andere Button. |
| Container | Ein Rahmen um mehrere Komponenten, mit farbigem Balken links (Akzentfarbe). | Kann Text Display, Separator, Section, Action Row und Media Gallery enthalten, aber keinen weiteren Container. Inhalte fügst du über das „+“ am Container hinzu. Ein leerer Container gilt als Fehler. |
| Action Row (Buttons) | Die Knöpfe zum Melden: bis zu 5 Buttons oder ein Auswahlmenü mit bis zu 25 Optionen. | Ohne Button oder Auswahlmenü kann niemand ein RC öffnen – dann lässt der Editor nicht speichern. |
| Media Gallery | Bis zu 10 Bilder, je mit Bild-URL und optionaler Beschreibung. | Bilder brauchen eine vollständige Adresse (https://…). |
„Als Spoiler anzeigen“ bei Container und Media Gallery derzeit ohne Wirkung – in der Panel-Nachricht blendet Discord die Inhalte trotzdem normal ein. In der Willkommensnachricht (Schritt 4) funktioniert die Option.
Öffne die Action Row mit dem Stift. Unter „Typ“ wählst du zwischen Buttons (höchstens 5 pro Action Row) und einem Auswahlmenü (höchstens 25 Optionen).
Wechselst du den Typ, ersetzt der Editor die bisherigen Buttons bzw. Optionen – ihre Einstellungen gehen verloren.
Interaktionen: Jeder Button und jede einzelne Option eines Auswahlmenüs ist eine Interaktion. In den Schritten 3, 4 und 5 richtest du Formulare, Nachrichten und Rollen pro Interaktion ein – so kann „Strafe anfechten“ an einen anderen Ausschuss gehen als „Vorfall melden“. Löschst du einen Button und legst ihn neu an, bekommt er eine neue Kennung; seine Einstellungen sind dann weg.
Action Row in einem Container: Fügst du eine Action Row über das „+“ eines Containers hinzu, erscheint sie in den Schritten 3 bis 5 erst, nachdem du sie einmal mit dem Stift geöffnet und „Übernehmen“ geklickt hast. Vorher meldet Schritt 6 womöglich „Keine Buttons gefunden“.
This is where you build the message the bot posts in the panel channel. It is made of building blocks, the components (Discord Components V2). The list is on the left, the preview on the right. A new panel is empty.
| Component | Used for | Good to know |
|---|---|---|
| Text Display | Formatted text. Markdown such as **bold**, *italic*, lists, links and headings with # works. | Must not be empty. Discord allows up to 4,000 characters of text – for the whole message together, not per block. The preview shows Markdown unformatted; in Discord it is formatted. |
| Separator | A divider line or just some spacing. | “Show Divider” on or off. |
| Section | Text with an accessory next to it: an image (thumbnail URL) or a button. | The accessory is required. A button in a section opens RCs like any other button. |
| Container | A frame around several components, with a coloured bar on the left (accent colour). | Can hold Text Display, Separator, Section, Action Row and Media Gallery, but no other container. Add content with the “+” on the container. An empty container counts as an error. |
| Action Row (Buttons) | The buttons for reporting: up to 5 buttons or one select menu with up to 25 options. | Without a button or select menu nobody can open an RC – the editor will not let you save. |
| Media Gallery | Up to 10 images, each with an image URL and an optional description. | Images need a full address (https://…). |
“Show as spoiler” on containers and media galleries currently has no effect – in the panel message Discord shows the content normally. In the welcome message (step 4) the option works.
Open the Action Row with the pencil. Under “Type” you choose between buttons (at most 5 per Action Row) and a select menu (at most 25 options).
If you switch the type, the editor replaces the existing buttons or options – their settings are lost.
Interactions: every button and every single option of a select menu is an interaction. In steps 3, 4 and 5 you set up forms, messages and roles per interaction – so “Appeal a penalty” can go to a different committee than “Report incident”. If you delete a button and create it again, it gets a new ID; its settings are gone.
Action Row inside a container: if you add an Action Row with the “+” of a container, it only shows up in steps 3 to 5 after you have opened it once with the pencil and clicked “Apply”. Until then step 6 may report “No buttons found”.
Hier legst du fest, wo das Panel erscheint und wie RCs angelegt werden. Die Einstellungen gelten für alle Buttons und Optionen des Panels. Rechts zeigt eine Vorschau, wie ein RC-Kanal heißen wird.
| Einstellung | Was sie bewirkt |
|---|---|
| Panel Channel Pflicht | Der Kanal, in den der Bot die Panel-Nachricht postet. Zur Auswahl stehen Text-Kanäle. Wechselst du ihn später, löscht der Bot beim Speichern die alte Nachricht und postet sie im neuen Kanal. |
| Race Control Kategorie Pflicht | Die Kategorie, in der die RC-Kanäle entstehen. Wird sie in Discord gelöscht, landen neue RCs ohne Kategorie ganz oben in der Kanalliste. Ist sie voll (50 Kanäle), kann kein RC mehr entstehen. |
| Channel Name Template | So heißen die RC-Kanäle. Standard: rc-{count}-{username}, bis zu 100 Zeichen. Die Variablen stehen weiter unten. |
| Race Control Limit optional | Höchstzahl offener RCs pro Fahrer in diesem Panel (1–25). Übernommene RCs zählen mit. Der Bot prüft das beim Klick, noch bevor das Formular erscheint. |
| Log Channel optional | Kanal für die Meldungen „🏁 Neues Race Control“ und „🔒 Race Control geschlossen“. Übernahmen werden nicht gemeldet. Wähle einen Kanal, den nur die Rennleitung sieht. |
| Option | Standard | Wirkung |
|---|---|---|
| Ersteller kann Race Control schließen | aus | Der Ersteller darf sein RC selbst mit „🔒 RC schließen“ beenden. |
| DM an Ersteller beim Schließen | aus | Trotz der Beschriftung kommt die Direktnachricht beim Öffnen: „🏁 Race Control erstellt“ mit Servername und Link zum RC-Kanal. Beim Schließen verschickt der Bot keine Direktnachricht. Hat jemand Direktnachrichten von Servermitgliedern abgeschaltet, entfällt sie ohne Fehlermeldung. |
| User beim Öffnen erwähnen | an | Die Willkommensnachricht beginnt mit einer Erwähnung des Erstellers. |
| Moderatoren beim Öffnen erwähnen | an | Der Bot erwähnt zu Beginn der Willkommensnachricht alle Rollen aus Schritt 5, die für den geklickten Button bzw. die gewählte Option zuständig sind. Ihre Mitglieder bekommen dadurch eine Benachrichtigung. Rollen, die es in Discord nicht mehr gibt, lässt er aus. |
Der Editor listet fünf Variablen auf. Diese funktionieren zusätzlich: {displayname}, {rc-count}, {ticketnumber}, {server} und {category}.
| Variable | Wird zu | Beispiel im Kanalnamen |
|---|---|---|
{username} | Discord-Benutzername des Erstellers (nicht der Server-Spitzname) | lena_racing → lena-racing |
{displayname} | Anzeigename des Erstellers auf dem Server | Lena → lena |
{userid} | Discord-ID des Erstellers | 284716520591032320 |
{option} | Beschriftung der gewählten Option im Auswahlmenü. Bei Buttons bleibt sie leer. | Vorfall melden → vorfall-melden |
{count}, {rc-count}, {ticketnumber} | RC-Nummer des Panels, vierstellig | 0042 |
{date} | Datum des Öffnens (Weltzeit UTC) | 2026-09-25 |
{server} | Name des Servers | pdel |
{category} | Name der Race-Control-Kategorie | race-control-liga-1 |
So entsteht der Name:
{date} nutzt die Weltzeit (UTC). Kurz nach Mitternacht deutscher Zeit steht dort noch der Vortag.Tipp: Nutze {option} nur bei einem Auswahlmenü mit schlichten Options-Texten. Bei Buttons wird die Stelle leer – aus rc-{option}-{count} wird dann rc--0042. {user} gehört nicht in den Kanalnamen, dort wird daraus nur eine Zahlenfolge.
This is where you decide where the panel appears and how RCs are created. The settings apply to all buttons and options of the panel. On the right, a preview shows what an RC channel will be called. The labels of that preview and the small descriptions below the options are currently only shown in German.
| Setting | What it does |
|---|---|
| Panel Channel required | The channel where the bot posts the panel message. You can pick text channels. If you change it later, the bot deletes the old message when you save and posts it in the new channel. |
| Race Control Category required | The category in which the RC channels are created. If it is deleted in Discord, new RCs end up without a category at the top of the channel list. If it is full (50 channels), no more RCs can be created. |
| Channel Name Template | What the RC channels are called. Default: rc-{count}-{username}, up to 100 characters. The variables are listed below. |
| Race Control Limit optional | Maximum number of open RCs per driver in this panel (1–25). Claimed RCs count too. The bot checks it on the click, before the form appears. |
| Log Channel optional | Channel for the “🏁 New Race Control” and “🔒 Race Control Closed” messages. Claims are not reported. Pick a channel that only your stewards can see. |
| Option | Default | Effect |
|---|---|---|
| Creator can close Race Control | off | The creator may close their own RC with “🔒 Close RC”. |
| Send DM to creator on close | off | Despite the label, the direct message is sent when the RC is opened: “🏁 Race Control Created” with the server name and a link to the RC channel. The bot sends no direct message when an RC is closed. If someone has turned off direct messages from server members, it is skipped without an error. |
| Mention user on open | on | The welcome message starts with a mention of the creator. |
| Mention moderators on open | on | At the start of the welcome message the bot mentions every role from step 5 that is responsible for the clicked button or chosen option. Their members get a notification. Roles that no longer exist in Discord are skipped. |
The editor lists five variables. These work as well: {displayname}, {rc-count}, {ticketnumber}, {server} and {category}.
| Variable | Becomes | Example in the channel name |
|---|---|---|
{username} | The creator's Discord username (not the server nickname) | lena_racing → lena-racing |
{displayname} | The creator's display name on the server | Lena → lena |
{userid} | The creator's Discord ID | 284716520591032320 |
{option} | Label of the chosen option in a select menu. With buttons it stays empty. | Report incident → report-incident |
{count}, {rc-count}, {ticketnumber} | The panel's RC number, four digits | 0042 |
{date} | Date the RC was opened (UTC) | 2026-09-25 |
{server} | Server name | pdel |
{category} | Name of the race control category | race-control-league-1 |
How the name is built:
{date} uses UTC. Right after midnight in Central Europe it still shows the previous day.Tip: only use {option} with a select menu whose option texts are plain. With buttons the spot stays empty – rc-{option}-{count} then becomes rc--0042. {user} does not belong in channel names; it only turns into a string of digits there.
Für jeden Button und jede Option kannst du ein Formular einrichten, das Discord vor dem Öffnen des RCs anzeigt. Links wählst du die Interaktion, in der Mitte baust du das Formular aus bis zu fünf Feldern, rechts siehst du die Vorschau.
Das Besondere bei Race Control: Ein User Select Menu kann die ausgewählten Fahrer direkt zum RC-Kanal hinzufügen. Alle zwölf Feldtypen und diese Einstellung erklärt die Seite Formulare (Modals).
For every button and option you can set up a form that Discord shows before the RC is opened. Pick the interaction on the left, build the form from up to five fields in the middle and check the preview on the right.
What makes race control special: a User Select Menu can add the selected drivers straight to the RC channel. All twelve field types and this setting are explained on the Forms (modals) page.
Die Willkommensnachricht ist die erste Nachricht des Bots in jedem neuen RC-Kanal. Oben stellst du die Standard-Nachricht für alle Interaktionen ein, darunter auf Wunsch eigene Nachrichten für einzelne Buttons oder Optionen.
| Typ | Inhalt |
|---|---|
| Nachricht | Ein normaler Text mit Markdown und Platzhaltern. Texte über 2000 Zeichen teilt der Bot auf mehrere Nachrichten auf; die Buttons hängen dann an der letzten. |
| Embed | Eine Box mit Embed Titel (bis 256 Zeichen), Embed Beschreibung (bis 4096), Farbe, optionalem Thumbnail (vollständige https://-Adresse) und Footer Text (bis 2048). Platzhalter funktionieren in allen Feldern. Erwähnungen wie {user} sind nur in der Beschreibung anklickbar – im Titel und Footer nimm lieber {displayname}. |
| Komponenten | Die Bausteine aus Schritt 1, aber ohne Action Row; eine Section kann hier nur ein Bild tragen. |
Achtung beim Typ „Komponenten“: Damit entsteht beim Schließen derzeit kein Transcript – der Kanal wird trotzdem gelöscht und der Verlauf geht verloren. Auch „RC beanspruchen“ klappt nur halb: Discord meldet „Diese Interaktion ist fehlgeschlagen“, Button und Claim-Hinweis bleiben aus, gespeichert ist die Übernahme trotzdem. Nutze bis auf Weiteres „Nachricht“ oder „Embed“.
Beim Embed genau sein: Eine ungültige Thumbnail-Adresse – etwa ohne https:// – oder ein Text, der durch eingesetzte Formular-Antworten ({modal:…}) über die Grenzen oben hinauswächst, verhindert die ganze Willkommensnachricht. Der RC-Kanal entsteht dann ohne Nachricht und ohne Buttons, und der Fahrer sieht „❌ Ein Fehler ist aufgetreten.“. Setze Formular-Antworten deshalb lieber in die Beschreibung als in Titel oder Footer.
Bei einem neuen Panel ist die Willkommensnachricht zunächst leer. Erst wenn du Schritt 4 öffnest, setzt der Editor die Vorlage „Willkommen {user}! Dein RC wurde erstellt. …“ ein – in der Sprache, in der das Dashboard gerade angezeigt wird. Öffnest du Schritt 4 nie, meldet Schritt 6 „RC-Willkommensnachricht ist leer.“, und im RC-Kanal stehen nur die Erwähnungen, die Formular-Antworten und die Buttons.
„Schließen-Button“ und „Claim-Button“ sind standardmäßig an. Im RC-Kanal erscheinen sie als „🔒 RC schließen“ (rot) und „✋ RC beanspruchen“ (blau). Die Vorschau zeigt sie verkürzt als „RC schließen“ und „Claim“. Die beiden Schalter gelten für alle RCs des Panels, auch für Interaktionen mit eigener Nachricht.
Lass den Schließen-Button an. Ohne ihn kann niemand ein RC über den Bot schließen: Es entstehen keine Transcripts, und die Kanäle müssten von Hand gelöscht werden.
Diese Platzhalter ersetzt der Bot in der Willkommensnachricht, im Embed und in eigenen Nachrichten pro Interaktion:
| Platzhalter | Wird zu |
|---|---|
{user}, {usermention} | Erwähnung des Erstellers (@Name) |
{username} | Benutzername des Erstellers |
{displayname} | Anzeigename des Erstellers auf dem Server |
{userid} | Discord-ID des Erstellers |
{rc-count}, {count}, {ticketnumber} | RC-Nummer, vierstellig (0042) |
{option} | Beschriftung der gewählten Option im Auswahlmenü – bei Buttons leer |
{category} | Name der Discord-Kategorie des RCs |
{server} | Name des Servers |
{date} | Datum im Format JJJJ-MM-TT (UTC) |
{modal:Feldname} | Antwort aus dem Formularfeld mit genau diesem Namen, zum Beispiel {modal:Beteiligter Fahrer}. Leer, wenn das Feld nicht ausgefüllt wurde. |
Hinweis zum Editor: Unter dem Textfeld stehen „{user}, {username}, {rc-count}, {category}“ – diese vier funktionieren. {category} ist aber der Name der Discord-Kategorie, nicht der geklickte Button.
Im unteren Bereich „Nachricht pro Interaktion (optional)“ baust du für einzelne Buttons oder Optionen eine eigene Willkommensnachricht – etwa eine andere Begrüßung für Einsprüche als für Vorfallmeldungen:
{modal:…} für die Felder des Formulars dieser Interaktion ein.{modal:…} selbst ein.
The welcome message is the bot's first message in every new RC channel. At the top you set the default message for all interactions; below that you can add dedicated messages for individual buttons or options.
| Type | Content |
|---|---|
| Message | Plain text with Markdown and placeholders. Texts longer than 2,000 characters are split into several messages; the buttons go on the last one. |
| Embed | A box with Embed Title (up to 256 characters), Embed Description (up to 4,096), colour, an optional thumbnail (full https:// address) and footer text (up to 2,048). Placeholders work in every field. Mentions like {user} are only clickable in the description – use {displayname} in the title and footer. |
| Components | The building blocks from step 1, but without Action Row; a section can only carry an image here. |
Careful with the “Components” type: with it, no transcript is created when the RC is closed at the moment – the channel is still deleted and the conversation is lost. “Claim RC” only half works as well: Discord reports “This interaction failed”, the button and the claim notice do not change, but the claim is saved anyway. Use “Message” or “Embed” for now.
Be precise with embeds: an invalid thumbnail address – for example without https:// – or a text that grows beyond the limits above because of inserted form answers ({modal:…}) prevents the whole welcome message. The RC channel is then created without a message and without buttons, and the driver sees “❌ Ein Fehler ist aufgetreten.” (an error occurred). So rather put form answers into the description than into the title or footer.
For a new panel the welcome message starts out empty. Only when you open step 4 does the editor insert the template “Welcome {user}! Your RC has been created. …” – in the language the dashboard is currently shown in. If you never open step 4, step 6 reports “RC welcome message is empty.” and the RC channel only shows the mentions, the form answers and the buttons.
“Close Button” and “Claim Button” are on by default. In the RC channel they appear as “🔒 Close RC” (red) and “✋ Claim RC” (blue). The preview shows them in short as “Close RC” and “Claim”. The two switches apply to all RCs of the panel, including interactions with a dedicated message.
Keep the close button switched on. Without it nobody can close an RC through the bot: no transcripts are created and the channels would have to be deleted by hand.
The bot replaces these placeholders in the welcome message, in the embed and in dedicated messages per interaction:
| Placeholder | Becomes |
|---|---|
{user}, {usermention} | Mention of the creator (@Name) |
{username} | The creator's username |
{displayname} | The creator's display name on the server |
{userid} | The creator's Discord ID |
{rc-count}, {count}, {ticketnumber} | RC number, four digits (0042) |
{option} | Label of the chosen option in a select menu – empty for buttons |
{category} | Name of the RC's Discord category |
{server} | Server name |
{date} | Date as YYYY-MM-DD (UTC) |
{modal:Field name} | The answer from the form field with exactly this name, for example {modal:Driver involved}. Empty if the field was left blank. |
Note on the editor: the hint below the text field lists “{user}, {username}, {rc-count}, {category}” – all four work. {category} is the name of the Discord category, though, not the clicked button.
In the lower area “Message per interaction (optional)” you build a dedicated welcome message for individual buttons or options – for example a different greeting for appeals than for incident reports:
{modal:…} for the fields of this interaction's form.{modal:…}.
Hier trägst du die Rennleitungs-Rollen ein – die Rollen, deren Mitglieder die RCs sehen, beim Öffnen erwähnt werden und sie bearbeiten. Pro Rolle legst du fest, für welche Interaktionen sie zuständig ist und was sie darf.
Wichtig: Bei neu hinzugefügten Rollen sind „Race Controls schließen“ und „Race Controls claimen“ aus. Hake beides an, sonst kann deine Rennleitung RCs weder schließen noch übernehmen.
Alles zu Zugriff, Rechten, Ping und Dashboard-Zugang steht unter Rollen & Rechte.
This is where you add the steward roles – the roles whose members see the RCs, are mentioned when one is opened and handle them. For each role you decide which interactions it is responsible for and what it may do.
Important: for newly added roles, “Close Race Controls” and “Claim Race Controls” are off. Tick both, otherwise your stewards can neither close nor claim RCs.
Everything about access, permissions, pings and dashboard access is on the Roles & permissions page.
Im letzten Schritt prüft der Editor dein Panel und fasst die Einstellungen zusammen.
In the last step the editor checks your panel and summarises the settings. The result and parts of the summary are currently shown in German.
Tritt unserem Discord-Server bei – das Team hilft dir bei der Einrichtung gerne weiter.
Join our Discord server – the team is happy to help you with the setup.