Command: !duel @user¶
Zwei User duellieren sich. Bot würfelt, einer gewinnt, einer verliert. Optional mit Per-User-Win/Loss-Counter.
Patterns: Set Argument + Get User Info for Target + Get Random Number + If/Else + Globals Sub-Actions: 8-12
Action: [Cmd] !duel¶
Sub-Action 1: Set Argument — Target¶
1. Set Argument: targetLogin = $replace(%input0%, @, )$
2. If/Else: %targetLogin% Is Null or Empty
├── Send Message: "@%user% nutze !duel @username"
└── Break
3. Get User Info for Target (%targetLogin%)
4. If/Else: %addTargetResult% Equals false
├── Send Message: "@%user% den User gibt's nicht."
└── Break
Sub-Action 5: Self-Duel verhindern¶
5. If/Else: %targetUserName% Equals (Ignore Case) %userName%
├── Send Message: "@%user% du kannst dich nicht selbst duellieren."
└── Break
Sub-Action 6: Get Random Number — 50/50¶
| Feld | Wert |
|---|---|
| Type | Between |
| Min | 1 |
| Max | 2 |
Sub-Action 7: If/Else — User gewinnt¶
7. If/Else: %randomNumber% Equals 1
├── 7a. Send Message: "⚔️ @%user% besiegt @%targetUser%! Glorreich."
├── 7b. Global (Set) Increment: duelWins = User (redeemer) Persisted
├── 7c. Global (Set) Increment: duelLosses = User (target) Persisted
└── 7d. Break
Sub-Action 8: Send Message — Target gewinnt¶
8a. Send Message: "⚔️ @%targetUser% besiegt @%user%! Verheerend."
8b. Global (Set) Increment: duelLosses = User (redeemer) Persisted
8c. Global (Set) Increment: duelWins = User (target) Persisted
Action-Tree¶
[Cmd] !duel
├── 1. Set Argument: targetLogin = $replace(%input0%, @, )$
├── 2. If/Else: %targetLogin% Is Null or Empty
│ ├── Send Message: "@%user% nutze !duel @username"
│ └── Break
├── 3. Get User Info for Target (%targetLogin%)
├── 4. If/Else: %addTargetResult% Equals false
│ ├── Send Message: "@%user% den User gibt's nicht."
│ └── Break
├── 5. If/Else: %targetUserName% Equals %userName%
│ ├── Send Message: "kannst dich nicht selbst duellieren"
│ └── Break
├── 6. Get Random Number (1, 2)
├── 7. If/Else: %randomNumber% Equals 1
│ ├── Send Message: "⚔️ @%user% besiegt @%targetUser%!"
│ ├── Global Set Increment duelWins (User redeemer, Persisted)
│ ├── Global Set Increment duelLosses (User target, Persisted)
│ └── Break
└── 8. Send Message: "⚔️ @%targetUser% besiegt @%user%!"
+ Global Set Increment für Win/Loss
Command-Einstellungen¶
| Feld | Wert |
|---|---|
| Name | !duel |
| Group | AzaCraft Fun |
| Commands | !duel!fight |
| Sources | Twitch Message |
| Global Cooldown | 0 |
| User Cooldown | 30 |
Begleiter-Command: !duelstats¶
Postet die eigenen Duel-Stats.
[Cmd] !duelstats
├── 1. Global (Get): duelWins (User redeemer, Persisted) → wins
├── 2. Global (Get): duelLosses (User redeemer, Persisted) → losses
└── 3. Send Message: "⚔️ @%user% — %wins% Siege, %losses% Niederlagen."
Verwendungsbeispiele¶
| Chat | Resultat |
|---|---|
!duel @bob |
"⚔️ @user besiegt @Bob!" oder umgekehrt |
!duel bob |
gleich |
!duel @sich-selbst |
"kannst dich nicht selbst duellieren" |
!duelstats |
"@user — 5 Siege, 3 Niederlagen." |
Erweiterung: Streaks¶
Nach jedem Win den winStreak Counter hochzählen, bei Loss zurücksetzen:
7a. ... (existing win logic)
7b. Global (Set) Increment: winStreak (User redeemer, Persisted)
... (in loss branch:)
8b. Global (Set) Value: winStreak = 0 (User redeemer, Persisted)
Bei 5+ Streak Special-Message:
+ Global (Get): winStreak (User redeemer) → streak
+ If/Else: %streak% Greater Than 4
└─ Send Message: "🔥 @%user% hat %streak% Siege in Folge!"
Erweiterung: Reward zum Duellieren¶
Statt freier Command → nur via Channel-Points-Reward. Spart Spam, macht Duell wertvoll.
Anlegen: Reward Duel mit Streamer für 1000 Channel Points + User-Input (Target-Name).
Häufige Fallen¶
- Globals fluten User-Counter — bei vielen Duels wächst der Globals-DB. Streamer.bot handelt das gut, kein Problem bei Tausenden Duels
- Anti-Harassment — !duel kann von Trolls missbraucht werden um Target zu spammen. Per-User-Cooldown reicht meist, bei wiederholten Beschwerden Mod-Permission setzen
- Counter-Reset — wenn du Stats zurücksetzen willst → manuell in SB User-Globals-UI oder
Clear Non-Persisted User Globals(nur Non-Persisted!) Sub-Action
Quellen¶
- Get User Info for Target: https://docs.streamer.bot/api/sub-actions/twitch/user/get-user-info-for-target
- Globals Pattern: patterns/03-globals.md