Zum Inhalt

Command: !shrimp

Per-User-Counter. Jedes Mal wenn ein User !shrimp tippt zählt SB für genau diesen User hoch und postet wie oft er es schon getan hat.

Patterns: Global (Set) Increment + Global (Get) + Send Message Sub-Actions: 3 Cooldown: User 15s / Global 0s

Action: [Cmd] !shrimp

Sub-Action 1: Global (Set) — Counter hochzählen

Pfad: Core → Globals → Global (Set)

Feld Wert
Variable Name shrimpCount
Mode Increment
Increment Amount 1
Destination User (redeemer)
Persisted Persisted

Wichtig: User (redeemer) heißt der ausführende User (Sender des Commands). Würde das Destination = Global sein, wäre es ein globaler Counter für alle.

Increment macht: wenn der User-Global noch nicht existiert → wird auf 1 gesetzt, sonst um 1 erhöht.

Sub-Action 2: Global (Get) — Aktuellen Wert holen

Pfad: Core → Globals → Global (Get)

Feld Wert
Variable Name shrimpCount
Default Value 1
Source User (redeemer)
Persisted Persisted
Variable Name (Destination) myShrimpCount

Nach diesem Schritt ist %myShrimpCount% als Argument verfügbar.

Sub-Action 3: Send Message

Feld Wert
Message 🦐 @%user% hat schon %myShrimpCount% mal Shrimp gerufen.
Send using bot account aktiv
Fallback to Broadcaster aktiv

Action-Tree

[Cmd] !shrimp
├── 1. Global (Set): shrimpCount += 1   [User (redeemer), Persisted]
├── 2. Global (Get): shrimpCount → %myShrimpCount%   [User (redeemer)]
└── 3. Send Message: "🦐 @%user% hat schon %myShrimpCount% mal Shrimp gerufen."

Command-Einstellungen

Feld Wert
Name !shrimp — Shrimp Counter
Group AzaCraft Fun
Commands !shrimp
!krabbe
Text Matching Mode Basic
Location Start
Sources Twitch Message
Persist per User Counter nicht relevant (wir nutzen Globals statt Command-Counter)
Global Cooldown 0
User Cooldown 15

Verwendungsbeispiele

Chat-Eingabe Wer Erwartetes Ergebnis (User Bob ruft das 3. Mal)
!shrimp Bob "🦐 @Bob hat schon 3 mal Shrimp gerufen."
!shrimp Alice (ihr 1. Mal) "🦐 @Alice hat schon 1 mal Shrimp gerufen."
!shrimp (nach Restart) Bob "🦐 @Bob hat schon 4 mal Shrimp gerufen." (Persisted)

Globals nach Restart

Da Persisted = Persisted gesetzt ist, überlebt der Counter einen Streamer.bot-Neustart. Du kannst die User-Globals im Streamer.bot UI sehen:

Servers/Clients-Pane ist NICHT der richtige Ort. User-Globals sind unter dem User-Profil im Twitch-User-Pane (links → Tab Users → User suchen → Tab Globals).

Persisted vs Non-Persisted

Wenn du wolltest dass der Counter pro Stream-Session zurückgesetzt wird:

Feld Wert
Persisted Non-Persisted

Dann ist nach jedem SB-Restart wieder 0.

Sub-Action 1 + 2 verschmelzen?

Streamer.bot v1.0.4: Set MACHT den Wert NICHT direkt als Argument verfügbar. Du musst nach Set immer noch Get aufrufen wenn du den Wert in der gleichen Action brauchst. (Workaround: Set Argument: myCount = $add(%existing%, 1)$ — aber dann musst du existing vorher selbst gelesen haben.)

Drei-Sub-Action-Pattern ist Standard.

Erweiterungs-Ideen

Milestones

Nach dem Get einen If/Else-Cascade:

4. If/Else: %myShrimpCount% Equals 100
   ├── Send Message: "🎉 @%user% hat 100 Shrimps! Shrimp-Lord 👑"
   └── Break
5. If/Else: %myShrimpCount% Equals 50
   ├── Send Message: "@%user% hat 50 Shrimps. Halb zu Lord."
   └── Break
6. (...normale Message von Sub-Action 3 nach unten verschoben)

Leaderboard

Nicht direkt möglich ohne C# — User-Globals sind nicht einfach iterierbar via Sub-Actions. Wenn du ein !shrimplead willst musst du entweder: - Counter parallel in einen Plain-Global mit User-Namen schreiben (Global (Set) shrimpLeaderboard_%userName% = %myShrimpCount%) - Oder C# (was wir hier nicht machen)

Pragmatisch: Top-Shrimper manuell im Stream-Overlay zeigen.

Cap

If/Else: %myShrimpCount% Greater Than 999 → "@%user% chill, du bist süchtig" + Break vor Sub-Action 3.

Import-Code

Streamer.bot Export-String

Falls du nicht klicken willst — hier kommt der Export-String rein sobald der Command bei uns getestet und exportiert ist.

[Hier wird der Streamer.bot Export-String eingefügt]

So importierst du:

  1. Streamer.bot öffnen → Tab Actions
  2. Unten Import klicken
  3. Den Code-Block oben komplett kopieren und ins Dialog-Feld einfügen
  4. Import drücken → Action erscheint in der Liste
  5. Im Tab Commands ggf. die Verknüpfung mit der Action prüfen

Quellen