https://github.com/fasterralf/twitchsummonsystem
Interactive Twitch chat summon system with gacha mechanics, OBS integration, and Discord notifications
https://github.com/fasterralf/twitchsummonsystem
chatbot csharp discord dotnet gacha lottery obs signalr streaming twitch webhook
Last synced: 3 months ago
JSON representation
Interactive Twitch chat summon system with gacha mechanics, OBS integration, and Discord notifications
- Host: GitHub
- URL: https://github.com/fasterralf/twitchsummonsystem
- Owner: Fasterralf
- License: mit
- Created: 2025-05-26T19:18:40.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-06T13:56:32.000Z (about 1 year ago)
- Last Synced: 2025-07-06T14:34:53.872Z (about 1 year ago)
- Topics: chatbot, csharp, discord, dotnet, gacha, lottery, obs, signalr, streaming, twitch, webhook
- Language: C#
- Homepage:
- Size: 1.98 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎮 TwitchSummonSystem
**Automatisches Twitch Channel Point System mit schönen OBS-Animationen**
Deine Zuschauer können Channel Points ausgeben → Das System macht automatisch einen "Summon" → Schöne Animation in OBS → Discord-Benachrichtigung bei Gold!
## 🚀 **Was macht das System?**
1. **👤 Zuschauer** drückt dein Channel Point Reward (z.B. "Summon")
2. **🎯 System** würfelt: Normal (häufig) oder **GOLD** (selten, aber Chance steigt!)
3. **📺 OBS** zeigt automatisch schöne Animation (Gold = spektakulär!)
4. **🤖 Chat Bot** schreibt Ergebnis in den Chat
5. **📱 Discord** bekommt Benachrichtigung bei Gold-Summons
**🎯 Perfekt für**: Gacha-Games, Pack-Öffnungen, Glücksspiel-Content, Viewer-Interaction
## ⚠️ **BEVOR DU ANFÄNGST - Das brauchst du:**
- ✅ **Twitch-Account** (mit Channel Point Rewards freigeschaltet)
- ✅ **Discord Server** (für Benachrichtigungen)
- ✅ **Computer/Server** (Windows oder Linux)
- ✅ **30 Minuten Zeit** für die Einrichtung
- ❌ **KEINE Programmierkenntnisse** nötig!
## 🛠️ **SCHRITT-FÜR-SCHRITT ANLEITUNG (Für totale Anfänger)**
### **📱 SCHRITT 1: Twitch Developer Account erstellen**
1. Gehe zu [dev.twitch.tv](https://dev.twitch.tv)
2. Melde dich mit deinem Twitch-Account an
3. Klicke auf **"Console"**
4. Klicke **"Applikationen registrieren"**
5. Fülle aus:
- **Name**: `MeinSummonSystem` (oder was du willst)
- **OAuth-Redirect-URLs**: `http://localhost:3000`
- **Kategorie**: `Game Integration`
6. **Speichern** klicken
7. **WICHTIG**: Notiere dir:
- ✏️ **Client-ID** (langes Kauderwelsch)
- ✏️ **Client Secret** (klicke "Neues Secret generieren")
### **🎁 SCHRITT 2: Channel Point Reward erstellen**
1. Gehe in dein **Twitch Creator Dashboard**
2. **Einstellungen** → **Community** → **Channel-Punkte**
3. Klicke **"Belohnung hinzufügen"**
4. Erstelle eine neue Belohnung:
- **Name**: `Summon` (MERKE DIR DEN EXAKTEN NAMEN!)
- **Kosten**: z.B. 100 Channel Points
- **Beschreibung**: "Würfle um Gold!"
5. **Speichern**
### **📱 SCHRITT 3: Discord Webhooks erstellen**
1. Gehe in deinen **Discord Server**
2. **Server-Einstellungen** → **Integrationen** → **Webhooks**
3. **"Neuer Webhook"** klicken
4. Erstelle **2 Webhooks**:
- **Webhook 1**: `Summon-Normal` (für alle Meldungen)
- **Webhook 2**: `Summon-Fehler` (für Fehler)
5. Bei jedem Webhook: **"Webhook-URL kopieren"** klicken
6. **NOTIERE DIR BEIDE URLs!**
### **💻 SCHRITT 4A: Auf deinem Windows-PC testen**
1. **Downloade das Projekt:**
```
Gehe zu: https://github.com/Fasterralf/TwitchSummonSystem
Klicke den grünen "Code" Button
Klicke "Download ZIP"
Entpacke die ZIP-Datei
```
2. **Installiere .NET 8:**
- Gehe zu [dotnet.microsoft.com](https://dotnet.microsoft.com/download)
- Downloade ".NET 8.0 Runtime" für Windows
- Installiere es
3. **Konfigurationsdatei bearbeiten:**
- Öffne den entpackten Ordner
- Kopiere die Datei `.env.example` zu `.env`
- Öffne `.env` mit Notepad
- Fülle ALLE Werte aus (die du dir in Schritt 1-3 notiert hast):
```bash
# Deine Twitch-Daten hier eintragen:
TWITCH_CLIENT_ID=HIER_DEINE_CLIENT_ID_EINTRAGEN
TWITCH_CLIENT_SECRET=HIER_DEIN_CLIENT_SECRET_EINTRAGEN
TWITCH_ACCESS_TOKEN=HIER_SPÄTER_EINTRAGEN
TWITCH_REFRESH_TOKEN=HIER_SPÄTER_EINTRAGEN
TWITCH_CHANNEL_ID=DEINE_TWITCH_USER_ID
TWITCH_CHANNEL_NAME=dein_twitch_username
TWITCH_SUMMON_REWARD_NAME=Summon
# Bot-Konfiguration (kann erstmal gleich sein):
TWITCH_BOT_USERNAME=dein_twitch_username
TWITCH_BOT_CLIENT_ID=GLEICHE_WIE_OBEN
TWITCH_BOT_CLIENT_SECRET=GLEICHE_WIE_OBEN
TWITCH_CHAT_OAUTH_TOKEN=HIER_SPÄTER_EINTRAGEN
TWITCH_CHAT_REFRESH_TOKEN=HIER_SPÄTER_EINTRAGEN
# Discord Webhooks:
DISCORD_WEBHOOK_URL=HIER_DEINE_ERSTE_WEBHOOK_URL
DISCORD_ERROR_WEBHOOK_URL=HIER_DEINE_ZWEITE_WEBHOOK_URL
```
4. **Programm starten:**
- Öffne **Eingabeaufforderung** (cmd)
- Navigiere zum Projektordner: `cd C:\Pfad\Zu\Deinem\TwitchSummonSystem`
- Tippe: `dotnet restore`
- Tippe: `dotnet run`
- Das Programm startet auf: `http://localhost:5173`
### **🖥️ SCHRITT 4B: Auf Linux-Server (für Fortgeschrittene)**
**Vollständige Server-Anleitung findest du in `SERVER_SETUP.md`**
## **🔑 WICHTIG: Access Tokens generieren**
Die **Access Tokens** sind kompliziert zu bekommen. Du hast 2 Optionen:
### **Option A: Einfach (Tool nutzen)**
1. Nutze: [twitchtokengenerator.com](https://twitchtokengenerator.com)
2. Wähle die Berechtigung: `channel:read:redemptions chat:read chat:edit`
3. Kopiere **Access Token** und **Refresh Token**
### **Option B: Manuell (kompliziert)**
Siehe offizielle Twitch-Dokumentation (nicht für Anfänger empfohlen)
## **📺 OBS einrichten (Für die schönen Animationen)**
1. **Öffne OBS Studio**
2. **Quelle hinzufügen** → **Browser**
3. **Neue Browser-Quelle erstellen:**
- **URL**: `http://localhost:5173/obs.html`
- **Breite**: `1920`
- **Höhe**: `1080`
- **FPS**: `30`
4. **OK** klicken
5. **Fertig!** Animationen erscheinen automatisch bei Summons
## **🎮 Testen ob alles funktioniert**
1. **Starte das Programm** (siehe oben)
2. **Öffne in Browser**: `http://localhost:5173/admin.html`
3. **Schaue ob alle Status grün sind**
4. **Gehe auf Twitch** und nutze dein Channel Point Reward
5. **Schaue ob Animation in OBS erscheint**
6. **Prüfe Discord** ob Benachrichtigung kam
## **❗ HÄUFIGE PROBLEME & LÖSUNGEN**
### **"Reward nicht gefunden"**
- ➡️ **Prüfe**: Ist der Name in `.env` datei EXAKT gleich wie auf Twitch?
- ➡️ **Achte auf**: Groß-/Kleinschreibung, Leerzeichen, Sonderzeichen
### **"Chat Bot verbindet nicht"**
- ➡️ **Prüfe**: Access Token korrekt?
- ➡️ **Tipp**: Gehe zu `http://localhost:5173/admin.html` für Details
### **"Discord Benachrichtigungen kommen nicht"**
- ➡️ **Prüfe**: Webhook-URLs korrekt kopiert?
- ➡️ **Test**: Klicke in Discord auf deinen Webhook → "Test"
### **"Programm startet nicht"**
- ➡️ **Prüfe**: .NET 8 installiert?
- ➡️ **Versuche**: `dotnet --version` in Eingabeaufforderung
### **"Access Token ungültig"**
- ➡️ **Lösung**: Generiere neue Tokens bei twitchtokengenerator.com
- ➡️ **Häufig**: Tokens laufen ab, müssen erneuert werden
## **🚀 Für Server-Betreiber (24/7 laufen lassen)**
Wenn du das System **24/7 auf einem Server** laufen lassen willst:
1. **Miete einen Linux-Server** (z.B. Contabo, Hetzner, AWS)
2. **Folge der Anleitung** in `SERVER_SETUP.md`
3. **Lade deine `.env` Datei** sicher auf den Server
4. **Starte den Service** mit den mitgelieferten Skripten
**Server-Vorteile:**
- ✅ Läuft 24/7, auch wenn dein PC aus ist
- ✅ Bessere Performance
- ✅ Professioneller für deine Zuschauer
---
## **🔧 Technische Details (für Entwickler)**
### **System URLs**
- **🏠 Main App**: `http://localhost:5173/`
- **⚙️ Admin Dashboard**: `http://localhost:5173/admin.html`
- **📺 OBS Browser Source**: `http://localhost:5173/obs.html`
- **❤️ Health Check**: `http://localhost:5173/health`
### **Features**
- **🎁 Twitch Integration**: Automatische Channel Point Reward Behandlung
- **📺 OBS Browser Source**: Schöne Summon-Animationen mit Gold/Normal Effekten
- **📱 Discord Benachrichtigungen**: Auto-Meldungen bei Gold-Summons und System-Fehlern
- **🎯 Pity System**: Erhöhte Gold-Chancen nach normalen Summons
- **⚡ Real-time Updates**: SignalR für Live-Browser-Updates
- **🔄 Smart Token Management**: Automatische Twitch-Token Erneuerung
- **🛡️ Rate Limiting & Security**: Schutz vor API-Missbrauch
- **❤️ Health Monitoring**: System-Überwachung mit Status-Checks
- **💾 Auto-Backup System**: Automatische Lottery-Daten Sicherung
- **🖥️ Modern Admin Dashboard**: Schönes Web-Interface zur Systemkontrolle
### **Sicherheit**
- ✅ **Keine Credentials im Code** - Alles über Environment Variables
- ✅ **Sichere Systemd-Konfiguration** - Secrets in geschützter `.env` Datei
- ✅ **Rate Limiting** aktiviert
- ✅ **Global Exception Handling** mit Discord-Benachrichtigungen
- ✅ **Automatic Backups** alle 30 Minuten
- ✅ **Production-ready Logging** mit strukturiertem Format
## **🆘 HILFE GESUCHT?**
**Du kommst nicht weiter?** Kein Problem!
1. **📖 Lies** `SERVER_SETUP.md` für Server-Installation
2. **🔍 Schaue** ins Admin-Panel: `http://localhost:5173/admin.html`
3. **💬 Erstelle** ein Issue auf GitHub mit deinem Problem
4. **📝 Beschreibe** genau was nicht funktioniert
**🎯 WICHTIG**: Teile NIEMALS deine Tokens/Secrets öffentlich!
## **🤝 Contributing**
1. Fork das Repository
2. Feature Branch erstellen (`git checkout -b feature/AmazingFeature`)
3. Änderungen committen (`git commit -m 'Add AmazingFeature'`)
4. Branch pushen (`git push origin feature/AmazingFeature`)
5. Pull Request öffnen
## **📄 Lizenz**
Distributed under the MIT License. See `LICENSE` for more information.
---
**🎮 Viel Spaß mit deinem Twitch Summon System!**
Made with ❤️ for the Twitch Community by [Fasterralf](https://github.com/Fasterralf)