Konfiguration
Die zentrale Config liegt in configs/config.yml. Token, guildId, Module-Toggles, Channels und Rollen werden hier eingetragen — alles andere kommt aus den Modul-YAMLs unter configs/modules/.
Hinweis: Eine
.env-Datei ist nicht mehr nötig.DATABASE_URLhat einen Fallback auffile:./grumpy.db(SQLite).
config.yml — Komplette Übersicht
# Bot-Zugangsdaten
token: "DEIN_BOT_TOKEN"
guildId: "DEINE_SERVER_ID"
# Sprache der User-Nachrichten: "de" oder "en"
language: "de"
# Optional: User-IDs mit voller Bot-Kontrolle
ownerIds: []
# Optional: Discord Webhook für Crash-Meldungen
errorWebhook: ""
# Bot-Presence — rotierende Custom-Activities statt Discord's Auto-"Im Sprachchat"
presence:
enabled: true
status: "online" # online | idle | dnd | invisible
rotateSeconds: 60 # min 15s (wird geclamped). Bei 1 Activity = statisch.
activities:
- "Watching Minetechworld.de"
- "Listening to TechnoBase.FM"
- "Playing /help"
# Module — true = aktiv, false = deaktiviert
addons:
welcome: true # Willkommen, Verifizierung, Leave-Nachrichten
mod: true # Moderation, Auto-Mod, Anti-Nuke, Reports, Audit-Logger
tickets: true # Ticket-System mit Panels und Forms
news: true # News-Posts per DM
voice: true # Join-to-Create Voice-Channels
music: true # Internet-Radio (TechnoBase.FM & Co.)
help: true # Auto-deployter Help-Hub
customcmd: true # /cc add ... — Admin-definierte /cmd-Commands
# Channel-IDs — alle hier eintragen
channels:
welcome: "ID" # Willkommens- & Leave-Nachrichten
verify: "ID" # Verify-Panel (wird auto-gepostet)
mod-log: "ID" # Mod-Log + Server-Audit-Logger
alert: "ID" # Anti-Nuke Notfälle
staff: "ID" # Manuelle Mod-Aktionen & Reports
support: "ID" # Ticket-Panel-Fallback
ticket-log: "ID" # Ticket-Transcripts & Summaries
news: "ID" # News-Posts
voice-lobby: "ID" # Join-to-Create Lobby — User joint hier, kriegt eigenen Channel
radio: "ID" # Voice-Channel für Music-Passive-Mode (Bot lebt hier)
help: "ID" # Help-Hub-Channel (Embed wird auto-gepostet)
suggestions: "ID" # Vorschlags-Board (/suggestion submit postet hier)
starboard: "ID" # ⭐ Starboard Output-Channel
levelup: "" # Level-Up-Karten ("" = gleicher Kanal, "dm" = DM, oder Channel-ID)
# Rollen-IDs — alle hier eintragen
roles:
unverified: "ID" # Neue Member bis zur Verifizierung
member: "ID" # Nach erfolgreicher Verifizierung
support: # Wer Tickets verwalten darf (mehrere möglich)
- "ID" # z.B. Supporter
- "ID" # z.B. Moderator
alert-ping: "" # Rolle die bei Anti-Nuke gepingt wird (optional)
⚠️ Die
message-ids:Sektion aus älteren Versionen wird nicht mehr verwendet. Panel-Message-IDs werden in der Datenbank verwaltet (WelcomeState,TicketPanelMessage).
Config Auto-Heal
Beim Start prüft der Bot configs/config.yml und passt das Schema selbst an:
- Fehlende Addon-Toggles (z.B. neue Module wie
voice,help,customcmd) werden mit ihren Defaults ergänzt. - Fehlende Channel-Felder (z.B.
voice-lobby,radio,help) werden als leere Strings hinzugefügt. - Fehlender
presence:-Block wird mit Default-Activities ergänzt — bestehendeconfig.yml-Dateien bekommen den Block beim nächsten Start automatisch. - Deprecated Sections wie
message-ids:werden entfernt. - Bestehende Werte und YAML-Kommentare bleiben unverändert — der Bot nutzt yaml's
parseDocument-API und merged nur das Schema, nicht die Daten.
Wenn die Datei angepasst wurde, zeigt die Konsole eine kurze Summary mit den Änderungen. Das heißt: nach einem Bot-Update musst du kein YAML-Editing machen, um neue Module zu aktivieren — einfach starten und in der Folge die neuen Felder ausfüllen.
Bot-Presence
Der presence:-Block in config.yml ersetzt Discord's Auto-Status (z.B. „Im Sprachchat") durch eine eigene, rotierende Activity-Liste.
presence:
enabled: true
status: "online" # online | idle | dnd | invisible
rotateSeconds: 60 # min 15s (wird geclamped)
activities:
- "Watching Minetechworld.de"
- "Listening to TechnoBase.FM"
- "Playing /help"
Activity-Format
Das Verb am Anfang bestimmt den Activity-Type:
| Prefix | Discord-Type |
|---|---|
Watching X |
Watching |
Playing X |
Playing |
Listening to X |
Listening (das to wird gestrippt) |
Streaming X |
Streaming |
Competing in X |
Competing (das in wird gestrippt) |
| alles andere | Custom Status |
Verhalten
rotateSecondsMinimum 15s (wird sonst hochgeclamped). Bei nur einer Activity bleibt die Anzeige statisch.enabled: falseoder leereactivities-Liste → der Bot lässt Discord's Default greifen (z.B. „Im Sprachchat").- Auto-Heal: Bestehende
config.yml-Dateien bekommen denpresence:-Block beim nächsten Start automatisch ergänzt — Kommentare und Werte bleiben erhalten.
Modul-Toggle
Die addons:-Sektion steuert welche Module aktiv sind:
| Schlüssel | Modul | Funktion |
|---|---|---|
welcome |
Welcome | Willkommen, Verifizierung, Raid-Schutz, Leave |
mod |
Moderation | Auto-Mod, Anti-Nuke, Reports, Warns, Audit-Logger |
tickets |
Tickets | Multi-Panels, Forms, Ticket-Verwaltung |
news |
News | News-Posts per Admin-DM |
voice |
Voice | Join-to-Create Voice-Channels |
music |
Music | Internet-Radio im Voice-Channel (Interactive + Passive) |
help |
Help | Help-Hub-Channel mit Modul-Dropdown |
customcmd |
CustomCmd | Admin-definierte /cmd-Commands |
reactionroles |
ReactionRoles | Self-Service Rollen-Panels via Button/Dropdown |
leveling |
Leveling | XP, Rang-Karten, Leaderboard, Rollen-Belohnungen |
suggestions |
Suggestions | Vorschlagsystem mit 👍/👎 und Status-Management |
polls |
Polls | Live-Abstimmungen mit Buttons |
starboard |
Starboard | ⭐ Beste Nachrichten hervorheben |
IDs kopieren
Developer Mode aktivieren:
Discord → Einstellungen → Erweitert → Entwicklermodus ✓
| Was | Wie |
|---|---|
| Channel-ID | Rechtsklick auf Channel → ID kopieren |
| Rollen-ID | Server-Einstellungen → Rollen → Rechtsklick → ID kopieren |
| Server-ID | Rechtsklick auf Server-Icon → ID kopieren |
| User-ID | Rechtsklick auf User → ID kopieren |
Auto-Deployment der Panels
Beim Start prüft der Bot:
- Verify-Panel — gibt es im DB-Eintrag eine Message-ID? Ist sie noch im Channel? Sonst: neu posten.
- Ticket-Panels — pro Panel-Eintrag in
tickets.ymldasselbe Spiel. Hat ein PanelchannelId: "0", wird aufchannels.supportausconfig.ymlzurückgegriffen.
Manuelles Re-Deploy bleibt verfügbar:
/welcome setup-verify/tickets setup-panel <panel-id>
Modul-Configs
Pro Modul gibt es eine eigene YAML-Datei für feature-spezifische Settings:
| Datei | Inhalt |
|---|---|
configs/modules/welcome.yml |
Welcome-/Leave-Modi (banner / embed / text), Banner-Farben, CAPTCHA, Raid-Schutz, Verify-Embed |
configs/modules/mod.yml |
Auto-Mod (Spam, Caps, Ads, …), Anti-Nuke, Eskalation, Report-Cooldown |
configs/modules/tickets.yml |
Panels, Kategorien, Forms, Auto-Close, Rating |
configs/modules/news.yml |
Admin-IDs, Reactions, Session-Timeout |
configs/modules/voice.yml |
Lobby-/Category-IDs, Name-Template, Auto-Delete-Timer, Channel-Limits |
configs/modules/music.yml |
Radio-Stationen (Presets), Volume, Auto-Leave, Passive-Mode |
configs/modules/help.yml |
Help-Embed-Inhalt, Quick-Action-Buttons, optionale Modul-Beschreibungen |
configs/modules/reactionroles.yml |
Standard-Farbe für neue Panels |
configs/modules/leveling.yml |
XP-Bereich, Cooldown, Voice-XP/min, Level-Up-Kanal, Rollen-Belohnungen, Akzentfarbe |
configs/modules/suggestions.yml |
Kanal, Cooldown, Min/Max-Länge, Vote-Emojis, Staff-Rollen |
configs/modules/polls.yml |
Max-Laufzeit in Stunden |
configs/modules/starboard.yml |
Emoji, Threshold, Ausgeschlossene Channels, Self-Star |
CustomCmd hat keine YAML — Commands werden komplett über
/cc addin der DB verwaltet.
Alle YAMLs werden beim ersten Start automatisch mit Defaults erzeugt.
Fallback-Kette für Modul-Channels: Ist
channelIdin der Modul-YAML leer, fällt der Bot auf den entsprechenden Eintrag inconfig.ymlzurück:
suggestions.yml: channelId→channels.suggestionsstarboard.yml: channelId→channels.starboardleveling.yml: levelUp.channel→channels.levelup
Setup-Status beim Start
Beim Hochfahren zeigt der Bot eine Übersicht:
═══════════════════════════════════════════════════════
GrumpyCore — Setup Status
═══════════════════════════════════════════════════════
✅ Connected to: Minetechworld.de (13 members)
Modules: welcome 🟢 mod 🟢 tickets 🟢 news 🟢
Channels: ✅ welcome ✅ verify ✅ mod-log ✅ alert
✅ staff ✅ ticket-log ✅ news
Roles: ✅ unverified ✅ member ✅ support
Panels deployed:
✅ verify-panel msg 1234...
✅ support msg 5678...
═══════════════════════════════════════════════════════
Fehlende Channels/Rollen sind mit ❌ markiert — direkt in config.yml ergänzen und Bot neu starten.
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
💬 Commands
👥 Staff