Zum Inhalt

Command: !roll

Würfelt eine Zahl. Standard 1-100, mit Argument konfigurierbar (!roll 6 = 1-6, wie Würfel).

Patterns: Set Argument (Default) + Get Random Number + Send Message Sub-Actions: 4

Action: [Cmd] !roll

Sub-Action 1: Set Argument — Max-Wert

Feld Wert
Variable Name maxRoll
Value %input0%

Sub-Action 2: If/Else — Default wenn nichts angegeben

If/Else: %maxRoll% Is Null or Empty
└─ Set Argument: maxRoll = 100

Sub-Action 3: Get Random Number

Feld Wert
Type Between
Min 1
Max %maxRoll%

Setzt %randomNumber%.

Sub-Action 4: Send Message

Feld Wert
Message 🎲 @%user% rollt %randomNumber% (1-%maxRoll%)
Send using bot account aktiv

Action-Tree

[Cmd] !roll
├── 1. Set Argument: maxRoll = %input0%
├── 2. If/Else: %maxRoll% Is Null or Empty
│   └── Set Argument: maxRoll = 100
├── 3. Get Random Number (1, %maxRoll%)
└── 4. Send Message: "🎲 @%user% rollt %randomNumber% (1-%maxRoll%)"

Command-Einstellungen

Feld Wert
Name !roll
Group AzaCraft Fun
Commands !roll
!dice
!w (deutsch Würfel)
Sources Twitch Message
Global Cooldown 0
User Cooldown 15

Verwendungsbeispiele

Chat Resultat
!roll "🎲 @user rollt 42 (1-100)"
!roll 6 "🎲 @user rollt 4 (1-6)"
!roll 1000 "🎲 @user rollt 731 (1-1000)"
!roll banana Twitch akzeptiert die Range-Validation evtl. nicht — Banane → max bleibt undefined → Verhalten unklar

Erweiterung: Input validieren

Wenn User Zahlen-Input prüfen willst:

2. If/Else: %maxRoll% Is Null or Empty
   └── Set Argument: maxRoll = 100
3. If/Else: %maxRoll% Regex Match ^[0-9]+$
   (wenn match → ok)
4. If/Else: %maxRoll% Less Than 2
   ├── Send Message: "@%user% max-Wert muss > 1 sein"
   └── Break
5. If/Else: %maxRoll% Greater Than 99999
   ├── Send Message: "@%user% max-Wert zu groß"
   └── Break

Erweiterung: DnD-Style !roll 2d6

User schreibt !roll 2d6 für 2 Würfel à 6 Seiten.

Komplexer ohne C#/Regex-Inline-Function. Pragmatischer Approach:

1. If/Else: %input0% Contains "d"
   ├── Set Argument: diceCount = $regex(%input0%, ^(\d+)d.*$, $1)$
   ├── Set Argument: diceSides = $regex(%input0%, ^\d+d(\d+)$, $1)$
   ├── (loop diceCount times)
   ├── Send Message: "@%user% rollt %total%"
   └── Break
2. (standard single-roll wie oben)

Loops in Streamer.bot via Core → Logic → While + Counter. Wird komplex — für volle DnD-Style besser ein C#-Code-Block. Pragmatisch: nur !roll N (single dice).

Erweiterung: Crit + Fail

Bei !roll 20 (D20) auf 1 = Crit Fail, auf 20 = Crit Success:

5. If/Else: %maxRoll% Equals 20
   ├── If/Else: %randomNumber% Equals 1
   │   ├── Send Message: "🎲 @%user% rollt 1 — CRIT FAIL 💀"
   │   └── Break
   ├── If/Else: %randomNumber% Equals 20
   │   ├── Send Message: "🎲 @%user% rollt 20 — NAT 20! 🔥"
   │   └── Break

Quellen