Erstelle ein Plugin
Die vollständige SDK-Referenz für Plugin-Entwickler — Sandboxed Python, als ZIP-Datei versendet, über den Marketplace verteilt.
Plugins sind isolierte Python-Prozesse. Schreibe einen Handler, deklariere deine Fähigkeiten, lade ein Zip hoch — wir führen es in einem abgesicherten Docker-Container aus und übertragen Discord-Events per JSON-RPC.
Was ist ein Plugin?
Ein Plugin ist ein kleines Programm, das auf Ereignisse in einem Discord-Server lauscht und darauf reagiert.
- Jemand betritt deinen Server → dein Plugin sendet eine Willkommensnachricht.
- Jemand gibt
/leaderboardein → dein Plugin antwortet mit den Top 10 Nutzern. - Jemand reagiert auf eine Nachricht → dein Plugin zählt die Abstimmung und aktualisiert das Endergebnis.
Du schreibst Python. Du importierst das SDK. Du dekorierst eine Funktion mit @plugin.on_event("member_join") und schreibst, was passieren soll. Die Plattform erledigt den Rest.
Was die Plattform für dich erledigt
- Verbindet sich mit Discord. Du musst dich nie mit WebSocket-Gateways, Sharding, Intents oder Rate-Limits befassen. Die Plattform liefert Ereignisse an deine Handler und ein einziger
ctx.discord.send_message(…)-Aufruf antwortet. - Hostet deinen Code. Keine Server zu mieten, kein Docker zu verwalten, keine Deployments um 2 Uhr nachts. Pushe deinen Code — die Plattform führt ihn in einer isolierten Sandbox aus.
- Spricht mit der Außenwelt. Rufe externe APIs mit
ctx.httpauf, halte Live-Verbindungen mitctx.wsoffen und lass die Plattform API-Schlüssel aus verschlüsselten Geheimnissen injizieren, damit dein Code sie nie berührt. Siehe Ausgehende HTTP. - Übernimmt Zahlungen. Lege einen Preis fest oder versende ihn kostenlos. Kunden zahlen über Stripe und du behältst 70–85 % des Umsatzes (die Stufe hängt von deinen letzten 30 Tagen Volumen ab), automatisch auf dein Bankkonto ausgezahlt nach einer Haltefrist. Siehe Verkaufe dein Plugin.
- Gibt jeder Installation eine Einstellungsseite. Deklarieren Sie einige Widgets in JSON und Admins erhalten eine Designvorgabe-Dashboard-Seite für Ihr Plugin — Statuskarten, Diagramme, Einstellungsformulare — ohne dass Sie eine Zeile Frontend schreiben. Siehe Dashboards.
- Versendet Ihre Updates. Veröffentlichen Sie eine neue Version und Installationen übernehmen sie automatisch (Besitzer können eine Version anheften, um sich abzumelden). Keine Migrations-E-Mails, kein "Bitte laden Sie den Bot erneut ein". Siehe Updates und Rollback.
- Skaliert für dich. Eine Installation oder eine Million — die Plattform übernimmt Parallelität, Wiederholungsversuche und Kontingente.
Was du tust
Schreibe die Logik, die Discord-Ereignisse in Aktionen umwandelt. Das ist alles. Der Ablauf sieht so aus:
Wie sich ein Plugin von einem "Discord-Bot-Framework" unterscheidet
| Bereich | Plugin (diese Plattform) | Selbst gehosteter Bot (discord.py usw.) |
|---|---|---|
| Mit Discord verbinden | Plattform übernimmt es | Du übernimmst es |
| Server zum Hosten des Codes | Plattform stellt bereit | Du mietest / verwaltest |
| Zahlungen / Stripe | Plattform verwaltet | Du baust es selbst |
| Pro Kunde Installation | Ein Klick für Kunden | Du führst jeden Kunden durch OAuth |
| Skalierung / Kontingente / Wiederholungen | Plattform verwaltet | Du verwaltest es |
| Bewertungen / Erkennbarkeit | Integrierter Marktplatz | Du vermarktest deinen Bot selbst |
| Discord API-Oberfläche | Fähigkeitsbegrenzt (deklariere, was du brauchst) | Vollzugriff (deine Verantwortung) |
Wo du deine Zeit verbringst
- Ereignisse mit Handlern verbinden. Dekoratoren wie
@plugin.on_event("message_create")oder@plugin.on_slash_command("hello"). - Status speichern. Pro-Server-Einstellungen, Zähler und Leaderboards leben in
ctx.kv(Schlüssel-Wert, jedes Plugin hat es) oderctx.sql(vollständiges SQL, eine Fähigkeit, die du anforderst und die nach der Überprüfung durch Mitarbeiter gewährt wird). In jedem Fall gibt es keine Datenbank zu verwalten. - (Optional) Eine Einstellungsseite. Lasse ein JSON-Manifest fallen und Kunden erhalten eine Dashboard-Seite, von der aus sie dein Plugin konfigurieren können. Kein Frontend-Code erforderlich.
Sie können Ihr erstes Plugin in einem Nachmittag erstellen und einreichen. Erste Versionen neuer Entwickler durchlaufen eine kurze Überprüfung durch das Personal, bevor sie im Marktplatz angezeigt werden; etablierte Entwickler, die aus öffentlichen Repos veröffentlichen, überspringen normalerweise die Warteschlange. Klicken Sie oben auf "Erste Schritte", wenn Sie bereit sind, Code zu schreiben. Lieber nicht von einer leeren Datei anfangen? Der Plugin-Generator schreibt einen funktionierenden ersten Entwurf aus einer Beschreibung, und die yourbot CLI führt ihn lokal aus, bevor Sie etwas hochladen.
Die ganze Reise auf einen Blick
Jedes Plugin durchläuft die gleichen fünf Stationen, und diese Dokumentation ist in der gleichen Reihenfolge angeordnet — die Registerkartenleiste oben gruppiert sie in Verstehen → Erstellen → Versenden → Referenz. Jede Station verlinkt auf den Bereich, der sie behandelt:
yourbot dev ausführen, Unit-Tests mit MockContext.
Schritt 3
Einreichen
yourbot validate ausführen, ein Zip hochladen oder von GitHub abrufen.
Schritt 4
Veröffentlichen
Überprüfung bestehen, auf dem Marktplatz live gehen, Auto-Update-Installationen.
Schritt 5
Verdienen
Set plans, keep 70–85%, automatic payouts.
Gut zu wissen, bevor du erstellst
- Dein Code hat keinen direkten Netzwerkzugriff. Alle HTTP gehen durch
ctx.httpzu Domains, die du deklarierst; Live-Verbindungen gehen durchctx.ws. - Nichts bleibt auf der Festplatte erhalten. Container werden zwischen Neustarts gelöscht. Der dauerhafte Status gehört in
ctx.kvoderctx.sql. - Ressourcen sind begrenzt. 64 MB Speicher und einen Bruchteil einer vCPU pro Worker. Die vollständigen Zahlen findest du unter Limits und Kontingente.
- Timer laufen nicht von selbst. Marketplace-Plugins sind ereignisgesteuert: Periodische Arbeiten nutzen Ereignistraverkehr mit einer Abkühlungszeit. Siehe Pool-Modus.
- Das Lesen von Text, den Menschen eingeben, ist eine Datenschutzfunktion. Nachrichtentext kommt leer an, es sei denn, du forderst
events:message_contentan und der Server genehmigt es. Siehe den Funktionenkatalog. - Deine erste Version wird von einer Person überprüft. Planen Sie auf einen kurzen Wartezeit, bevor sie live geht. Siehe Veröffentlichen & Überprüfung.
Vorhandene FAQ
Springe direkt zum Abschnitt, der deine Frage beantwortet. Das Filterfeld oben durchsucht nur die Registerkarte, auf der du dich befindest.
| Ich möchte… | Gehe zum |
|---|---|
| Reagieren, wenn jemand beitritt, etwas postet oder anklickt | Alle Ereignisse |
| Slash-Befehl | Slash-Befehle |
| Neue Nachrichten | events:message_content |
| Pro-Server-Einstellungen oder Zähler speichern | Schlüssel-Wert-Speicher |
| Einen API-Schlüssel halten, ohne ihn hartcodiert zu haben | Berechtigte Benutzer |
| Echte SQL-Abfragen ausführen | Speicher & E/A: Sandboxed SQL |
| Eine externe API aufrufen | Ausgehende HTTP-Anfragen mocken |
| Eine Live-Verbindung zu einem Game-Server halten | Speicher & E/A: WebSockets |
| Etwas nach Plan machen | Cron-Zeitpläne |
| Ein Pop-up-Formular öffnen (Modal) | Erstellen: Modal-Dialoge |
| Eine Nachricht aktualisieren, wenn auf eine Schaltfläche geklickt wird | Erstellen: Schaltflächen & Menüs |
| Einen Cooldown oder eine Ratenbegrenzung für einen Befehl hinzufügen | Speicher & E/A: Ephemerer Zustand |
| Einstellungen anzeigen | Dashboard-Manifest (JSON) |
| Eine vollständig benutzerdefinierte Dashboard-UI erstellen | Dashboards: Iframe-Modus |
| Mein Plugin vor dem Upload testen | Erste Schritte |
| Unit-Tests für meine Handler schreiben | Produktion: Tests |
| SDK-Fehler behandeln, ohne zu abstürzen | Produktion: Fehlerbehandlung |
| Verstehen, warum sich Modulglobale zurücksetzen | Produktion: Pool-Modus |
| Sehen, was mein Plugin berühren darf | Referenz: Funktionenkatalog |
| Jede Größe und Ratenlimitierung überprüfen | Referenz: Limits und Kontingente |
| Plugin löschen | Benenne dein Plugin |
| Veröffentlichen & prüfen | Veröffentlichen & prüfen |
| Sehen Sie, was sich in jeder SDK-Version geändert hat | Referenz: SDK-Änderungsprotokoll |
SDK v0.9.0 · Zuletzt aktualisiert Juli 2026 · Zurück zum Entwicklerportal