@@ -6,81 +6,87 @@ sidebar_position: 1
66
77# Discord Multi Bot
88
9- A modern, self-hosted Discord multi bot built on ** Discord.py** , full feature set out of the box.
9+ A modern, self-hosted Discord multi bot built on ** Discord.py** , full feature set out of the box for the MSK Scripts Discord server.
10+ All bots run in a single process, each bot stays in its own module for clarity and maintainability.
1011
1112---
1213
1314## ✨ Features
1415
1516### Commands Bot
1617
17- | Command | Beschreibung | Rollen |
18- | ------------------ | --------------------------------------------- | ----------- ---------------- |
19- | ` /ping ` | Bot-Latenz anzeigen | Alle |
20- | ` /userinfo ` | Infos über einen User (inkl. Minigame-Punkte) | Alle |
21- | ` /flachwitz ` | Zufälliger Flachwitz | Alle |
22- | ` /rg ` | Zahl raten | Alle |
23- | ` /script_guides ` | Support-Guides für MSK-Scripts | Alle |
24- | ` /clear ` | Nachrichten löschen (max. 100) | Team |
25- | ` /random ` | Geheimzahl für Ratespiel setzen | Team |
26- | ` /add_flachwitz ` | Flachwitz hinzufügen | Team |
27- | ` /send_message ` | Nachricht über Modal senden | Founder, Manager |
28- | ` /send_embed ` | Embed über Modal senden | Founder, Manager |
29- | ` /information ` | Information-Embed senden | Founder, Manager |
30- | ` /rules ` | Regelwerk senden | Founder, Manager |
31- | ` /backup_database ` | MySQL-Backup erstellen | Founder |
18+ | Command | Description | Roles |
19+ | ------------------ | --------------------------------------- | ---------------- |
20+ | ` /ping ` | Show bot latency | Everyone |
21+ | ` /userinfo ` | User info including minigame points | Everyone |
22+ | ` /flachwitz ` | Random German flat joke | Everyone |
23+ | ` /rg ` | Guess the secret number | Everyone |
24+ | ` /script_guides ` | Support guides for MSK scripts | Everyone |
25+ | ` /clear ` | Delete messages (max. 100) | Team |
26+ | ` /random ` | Set secret number for the guessing game | Team |
27+ | ` /add_flachwitz ` | Add a new flat joke | Team |
28+ | ` /send_message ` | Send a message via modal | Founder, Manager |
29+ | ` /send_embed ` | Send an embed via modal | Founder, Manager |
30+ | ` /information ` | Post the information embed | Founder, Manager |
31+ | ` /rules ` | Post the rules embed | Founder, Manager |
32+ | ` /backup_database ` | Create a MySQL database backup | Founder |
3233
3334---
3435
3536### Events Bot
3637
37- ** Geloggte Events (alle als farbige Embeds mit Timestamp ):**
38+ ** Logged events (all as colored embeds with timestamp ):**
3839
39- | Kategorie | Events |
40- | ---------- | ---------------------------------------------------------------------------------------------------- |
41- | 👤 Member | Join, Leave (inkl. Kick-Erkennung ), Ban, Unban, Username/Nickname-Änderung, Rollen vergeben/entzogen |
42- | 💬 Messages | Gelöscht (inkl. Anhänge & Löscher ), Bulk-Delete, Bearbeitet (Vorher/Nachher + Jump-Link) |
43- | 📁 Channels | Erstellt, Gelöscht, Umbenannt , Topic/Slowmode/NSFW geändert |
44- | 🔑 Roles | Erstellt, Gelöscht, Umbenannt, Farbe/Berechtigungen /Mentionable geändert |
45- | 🔊 Voice | Joined, Left, Gewechselt |
46- | 🔗 Invites | Erstellt (mit Code, Channel, Ablaufdatum ), Gelöscht |
40+ | Category | Events |
41+ | ---------- | --------------------------------------------------------------------------------------------- |
42+ | 👤 Member | Join, Leave (incl. kick detection ), Ban, Unban, Username/Nickname change, Roles added/removed |
43+ | 💬 Messages | Deleted (incl. attachments & who deleted ), Bulk delete, Edited (before/after + jump link) |
44+ | 📁 Channels | Created, Deleted, Renamed , Topic/Slowmode/NSFW changed |
45+ | 🔑 Roles | Created, Deleted, Renamed, Color/Permissions /Mentionable changed |
46+ | 🔊 Voice | Joined, Left, Switched channel |
47+ | 🔗 Invites | Created (with code, channel, expiry ), Deleted |
4748
48- ** Context-Menu-Commands (Rechtsklick auf Nachricht ):**
49+ ** Context menu commands (right-click on a message ):**
4950
50- | Command | Beschreibung | Rollen |
51- | ---------------- | -------------------------------- | ---------------- |
52- | Comment Feedback | Kommentar zu Feedback hinzufügen | Founder, Manager |
53- | Answer a Message | Auf eine Nachricht antworten | Founder, Manager |
54- | Edit Message | Nachricht des Bots bearbeiten | Founder, Manager |
55- | Edit Embed | Embed des Bots bearbeiten | Founder, Manager |
51+ | Command | Description | Roles |
52+ | ---------------- | --------------------------------------------------------------------- | ---------------- |
53+ | Comment Feedback | Add a comment to a feedback embed. The original author receives a DM. | Founder, Manager |
54+ | Answer a Message | Reply to a message | Founder, Manager |
55+ | Edit Message | Edit a bot message | Founder, Manager |
56+ | Edit Embed | Edit a bot embed | Founder, Manager |
57+
58+ ** Feedback channel behavior:**
59+ - Messages posted in the feedback channel are automatically converted into embeds.
60+ - When a team member comments on feedback via "Comment Feedback", the original author receives a ** DM** containing the comment text and who wrote it.
61+ - If the user has DMs disabled, the comment is still saved in the embed — only the DM is skipped.
5662
5763---
5864
5965### Minigames Bot
6066
61- Alle Spiele (außer ` /8ball ` ) sind in das ** Punktesystem ** integriert .
62- Mit ` /points ` können User ihren Stand und Fortschritt zu Belohnungen einsehen .
67+ All games (except ` /8ball ` ) are integrated into the ** points system ** .
68+ Use ` /points ` to check your current score and progress toward rewards .
6369
6470#### Commands
6571
66- | Command | Beschreibung |
67- | ------------ | ---------------------------------------------------- |
68- | ` /tictactoe ` | TicTacToe gegen den Bot (Easy / Medium / Hard) |
69- | ` /8ball ` | Magic 8-Ball – Ja/Nein-Fragen |
70- | ` /dice ` | Würfeln (d4, d6, d8, d10, d12, d20, d100) |
71- | ` /flipcoin ` | Münze werfen (Heads / Tails) |
72- | ` /rps ` | Rock Paper Scissors |
73- | ` /slots ` | Einarmiger Bandit mit Animation |
74- | ` /trivia ` | Multiple-Choice Quiz (OpenTrivia DB + Fallback-Bank ) |
75- | ` /hangman ` | Galgenmännchen mit ASCII-Art |
76- | ` /connect4 ` | Vier Gewinnt gegen den Bot |
77- | ` /wordle ` | 5-Buchstaben-Wort in 6 Versuchen erraten |
78- | ` /blackjack ` | Blackjack mit Hit / Stand / Double Down |
79- | ` /points ` | Punktestand & Fortschrittsbalken anzeigen |
80-
81- #### Punktesystem
82-
83- | Spiel | Punkte |
72+ | Command | Description |
73+ | ------------ | ----------------------------------------------------- |
74+ | ` /tictactoe ` | TicTacToe vs bot (Easy / Medium / Hard) |
75+ | ` /8ball ` | Magic 8-Ball – yes/no questions |
76+ | ` /dice ` | Roll dice (d4, d6, d8, d10, d12, d20, d100) |
77+ | ` /flipcoin ` | Flip a coin (Heads / Tails) |
78+ | ` /rps ` | Rock Paper Scissors |
79+ | ` /slots ` | Slot machine with animation |
80+ | ` /trivia ` | Multiple choice quiz (OpenTrivia DB + local fallback ) |
81+ | ` /hangman ` | Hangman with ASCII art |
82+ | ` /connect4 ` | Connect Four vs bot |
83+ | ` /wordle ` | Guess the 5-letter word in 6 tries |
84+ | ` /blackjack ` | Blackjack with Hit / Stand / Double Down |
85+ | ` /points ` | Show your points and reward progress |
86+
87+ #### Points System
88+
89+ | Game | Points |
8490| --------- | ---------------------------------------------------------------------- |
8591| TicTacToe | Easy: Win +5 / Lose -2 / Draw +1 · Medium: +10/-4/+2 · Hard: +20/-5/+5 |
8692| Flipcoin | Win +3 / Lose -1 |
@@ -92,73 +98,76 @@ Mit `/points` können User ihren Stand und Fortschritt zu Belohnungen einsehen.
9298| Wordle | 1 try +50 → 6 tries +5 / Lose -5 |
9399| Blackjack | Win +15 / Blackjack +25 / Lose -5 / Draw +0 |
94100
95- #### Belohnungsstufen
101+ > ` /8ball ` is excluded from the points system.
102+
103+ #### Reward Tiers
96104
97- | Stufe | Punkte | Belohnung |
98- | ---------------- | ------ | --------- |
99- | 🥉 Bronze Player | 500 | Rolle |
100- | 🥈 Silver Player | 1. 500 | Rolle |
101- | 🥇 Gold Player | 4. 000 | Rolle |
102- | 💎 Diamond Player | 10. 000 | Rolle |
105+ | Tier | Points | Reward |
106+ | ---------------- | ------ | -------------------------------------------- |
107+ | 🥉 Bronze Player | 500 | Role |
108+ | 🥈 Silver Player | 1, 500 | Role + 1 free encrypted script from the shop |
109+ | 🥇 Gold Player | 4, 000 | Role |
110+ | 💎 Diamond Player | 10, 000 | Role + 1 free source script from the shop |
103111
104- > Belohnungen und Punktwerte können in ` bots/minigames/points_config.json ` angepasst werden .
105- > Rollen- IDs werden dort ebenfalls konfiguriert – nach Änderungen Bot neu starten .
112+ > Point values and rewards can be adjusted in ` bots/minigames/points_config.json ` .
113+ > Add Discord role IDs there to enable automatic role assignment — restart the bot after changes .
106114
107115---
108116
109117## 📁 Project Structure
110118
111119```
112120discord_multibot/
113- ├── main.py # Einstiegspunkt – startet alle Bots parallel
114- ├── .env # Tokens & IDs (nicht committen!)
115- ├── .env.example # Vorlage für .env
121+ ├── main.py # Entry point – starts all bots in parallel
122+ ├── .env # Tokens & IDs (never commit this!)
123+ ├── .env.example # Template for .env
124+ ├── .gitignore
116125├── requirements.txt
117- ├── multibot.service # systemd-Unit
118- ├── multibot.log # Log-Datei (wird automatisch erstellt )
126+ ├── multibot.service # systemd unit file
127+ ├── multibot.log # Log file (created automatically )
119128│
120- ├── data/ # Persistente Daten (automatisch erstellt )
121- │ ├── flachwitze.json # Flachwitz-Datenbank
122- │ └── points.json # Punkte aller User
129+ ├── data/ # Persistent data (created automatically )
130+ │ ├── flachwitze.json # Joke database
131+ │ └── points.json # Minigame points for all users
123132│
124- ├── core/ # Geteilte Komponenten
125- │ ├── config.py # Alle Einstellungen aus .env
126- │ ├── utils.py # Embed-Builder , JSON-Helfer , BaseModal
127- │ └── points_manager.py # Punkte lesen/schreiben, Belohnungen vergeben
133+ ├── core/ # Shared components used by all bots
134+ │ ├── config.py # All settings loaded from .env
135+ │ ├── utils.py # Embed builder , JSON helpers , BaseModal
136+ │ └── points_manager.py # Read/write points, handle reward unlocks
128137│
129138└── bots/
130- ├── commands/ # Haupt-Slash-Command-Bot
139+ ├── commands/ # Main slash command bot
131140 │ ├── bot.py
132141 │ └── cogs/
133142 │ ├── admin.py # /backup_database, /send_message, /send_embed
134- │ ├── community.py # /rules, /information + persistente Views
143+ │ ├── community.py # /rules, /information + persistent views
135144 │ ├── minigames.py # /random, /rg, /flachwitz, /add_flachwitz
136145 │ ├── support.py # /script_guides
137- │ └── utility.py # /ping, /userinfo (inkl. Punkte ), /clear
146+ │ └── utility.py # /ping, /userinfo (incl. points ), /clear
138147 │
139- ├── events/ # Event-Logging-Bot
148+ ├── events/ # Event logging bot
140149 │ ├── bot.py
141150 │ └── cogs/
142- │ ├── logging_cog.py # Alle Guild-Events als farbige Embeds
143- │ ├── message_handler.py # on_message, Feedback-Channel
144- │ └── context_menus.py # Comment Feedback, Answer/Edit Message, Edit Embed
151+ │ ├── logging_cog.py # All guild events as colored embeds
152+ │ ├── message_handler.py # on_message, feedback channel handling
153+ │ └── context_menus.py # Comment Feedback (+ DM) , Answer/Edit Message, Edit Embed
145154 │
146- └── minigames/ # Minigames-Bot
155+ └── minigames/ # Minigames bot
147156 ├── bot.py
148- ├── points_config.json # Punktwerte & Belohnungen (editierbar )
157+ ├── points_config.json # Point values & rewards (user-editable )
149158 └── cogs/
150- ├── tictactoe.py # /tictactoe – Easy / Medium / Hard KI
151- ├── eightball.py # /8ball – Magic 8-Ball
152- ├── dice.py # /dice – Würfeln (d4–d100)
153- ├── flipcoin.py # /flipcoin – Münze werfen
154- ├── rps.py # /rps – Rock Paper Scissors
155- ├── slots.py # /slots – Einarmiger Bandit
156- ├── trivia.py # /trivia – Multiple-Choice Quiz
157- ├── hangman.py # /hangman – Galgenmännchen
158- ├── connect4.py # /connect4 – Vier Gewinnt
159- ├── wordle.py # /wordle – 5-Buchstaben-Wort erraten
160- ├── blackjack.py # /blackjack – Blackjack mit Double Down
161- └── points.py # /points – Punktestand & Fortschritt
159+ ├── tictactoe.py # /tictactoe – Easy / Medium / Hard AI
160+ ├── eightball.py # /8ball – Magic 8-Ball
161+ ├── dice.py # /dice – Roll dice (d4–d100)
162+ ├── flipcoin.py # /flipcoin – Flip a coin
163+ ├── rps.py # /rps – Rock Paper Scissors
164+ ├── slots.py # /slots – Slot machine with animation
165+ ├── trivia.py # /trivia – Multiple choice quiz
166+ ├── hangman.py # /hangman – Hangman with ASCII art
167+ ├── connect4.py # /connect4 – Connect Four vs bot
168+ ├── wordle.py # /wordle – Guess the 5-letter word
169+ ├── blackjack.py # /blackjack – Blackjack with Double Down
170+ └── points.py # /points – Show points & reward progress
162171```
163172
164173---
0 commit comments