Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Reward: Temp-VIP via Points

Reward: 24h VIP

Pro

Viewer kauft sich 24h VIP. Bot fügt VIP hinzu und speichert Expiry-Timestamp. Cron-Timer revoked nach 24h.

Steps
5
Cooldown
0s/User
Cooldown
0sglobal
Zugriff
Public

Klassisches Premium-Reward: selten und teuer. Bei 100.000 Channel-Points pro VIP ist es genug Aufwand, dass es ein echtes Statement ist.

Trigger setzt unter anderem Argument %user% Display-Name. Variablen-Doku , Argument %userId% Numerische User-ID. Variablen-Doku , Argument %redemptionId% Für Update Redemption Status. Variablen-Doku .

FeldWert
Title24h VIP-Status
Cost100000
PromptDu bekommst für 24h einen VIP-Status. Max 1 pro Stream.
User Input Requiredaus
Skip Request Queueaktiv
Max Per User Per Stream1

Trigger: Twitch > Channel Reward > Reward Redemption mit Reward-Filter 24h VIP-Status.

If/Else: Bereits VIP?

Core Logic If/Else

Pre-Check via User-Persisted-Global.

Input %vipExpiresAt%
Operation Is Not Null or Empty
Then

Update Redemption Status. Cancel

Twitch Rewards Update Redemption Status
Redemption ID %redemptionId%
Status Canceled
Then

Send Message to Channel: Schon VIP

Twitch Chat Send Message to Channel
Message @%user% du bist schon VIP. Points zurück.
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

Add VIP

Twitch Moderation Add VIP
User %user%

Set User Global. Expiry-Timestamp

Core Globals Global (Set)

Persistent pro User. 86400 = 24h in Sekunden.

User %user%
Name vipExpiresAt
Value $add(%timestampUnix%, 86400)$
Persisted aktiv

Update Redemption Status. Fulfilled

Twitch Rewards Update Redemption Status
Redemption ID %redemptionId%
Status Fulfilled

Send Message: Begrüßung

Twitch Chat Send Message to Channel
Message 👑 @%user% hat sich 24h VIP geleistet: herzlich willkommen! 💎
AzaBot: 👑 @SuperFan hat sich 24h VIP geleistet: herzlich willkommen! 💎
So sieht's im Chat aus
  1. 1 If/Else: %vipExpiresAt% Is Not Null or Empty
    1. Then 1a Update Redemption Status: Canceled
    2. Then 1b Send Message: schon VIP
    3. Then 1c Break
  2. 2 Add VIP: %user%
  3. 3 Set User Global: vipExpiresAt = jetzt + 86400
  4. 4 Update Redemption Status: Fulfilled
  5. 5 Send Message: "👑 24h VIP..."

Auto-Revoke-Timer (Timed Action [Cron] vip-revoke-check)

Abschnitt betitelt „Auto-Revoke-Timer (Timed Action [Cron] vip-revoke-check)“

Trigger: Core > Time > Timed Action mit Cron * * * * * (jede Minute).

Pflicht-Setup: sonst bleiben VIPs für immer.

Execute Code (C#). Iteriere User-Globals

Core C# Code Execute C# Code

Liest alle vipExpiresAt-Globals und checked Ablauf. Siehe Code unten.

public bool Execute() {
var now = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
var expiries = CPH.GetUserGlobalsForVariable<long>("vipExpiresAt");
foreach (var entry in expiries) {
if (entry.Value > 0 && entry.Value < now) {
CPH.TwitchRemoveVip(entry.UserName);
CPH.UnsetUserGlobal(entry.UserName, "vipExpiresAt", true);
CPH.SendMessage($"⏰ @{entry.UserName} VIP abgelaufen: danke fürs Mitmachen!");
}
}
return true;
}

Hinweis: CPH.GetUserGlobalsForVariable ist die offizielle Streamer.bot C#-Methode. Gleicher Approach wie in Lurkers.

  • Streamer ist offline während Expiry: Timed Action läuft trotzdem (SB läuft im Hintergrund auch ohne Stream). VIP wird sauber entfernt.
  • User wurde während VIP-Zeit gebannt: Remove VIP schlägt fehl. Global trotzdem unsetten damit der Re-Kauf später nicht im If/Else hängenbleibt.
  • Twitch-API-Limit: bei 50 Add-VIP-Requests in Folge bremst Twitch. Pre-Check: Get VIPs und List-Count.
  • SB-Crash mit ausstehender Revoke: VIP bleibt bis SB neu startet und der Cron das nächste Mal läuft. Tolerierbar.
  • Variable Dauer per Cost: pro Cost-Stufe unterschiedliche Dauer (12h für 50k, 24h für 100k, 7d für 500k). Mehrere Rewards anlegen.
  • VIP-Liste im Chat: !vipliste zeigt aktive Temp-VIPs mit Restzeit (Iteration über User-Globals).
  • VIP-Push als Sub-Belohnung: bei Resub Streak ≥ 6 automatisch 7d VIP setzen (siehe watch-streak).
  • Konflikt mit Subscriber-VIPs: manche Streamer geben Subs auch VIP. Vor Add VIP checken ob User Subscriber ist (%isSubscribed%) und entsprechend behandeln.