An open API service indexing awesome lists of open source software.

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

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)