Event: HR Critical Zone
FortgeschrittenPro Zone eine Action mit Trigger-Range-Filter + Edge-Detection via Persisted Global.
- Steps
- 7
- Cooldown
- 0s/User
- Cooldown
- 0sglobal
- Zugriff
- Broadcaster
Pro Zone eine Action mit Trigger-Range-Filter + Edge-Detection via Persisted Global.
Statt einer großen If/Else-Cascade pro Action lieber pro Zone eine eigene Action mit Range-Filter direkt im Trigger. Das ist sauberer und performanter. Das Hauptproblem: der Trigger feuert jede Sekunde: du willst aber nur einmal beim Übergang reagieren, nicht permanent. Lösung: Edge-Detection via Persisted Global Globale Variable %currentZone% Speichert die letzte erreichte Zone: resting / active / high / critical.
Variablen-Doku .
| Action | Range-Filter im Trigger | Reaktion |
|---|---|---|
[HR] Resting Zone | Min 40, Max 70 | Calm-Overlay |
[HR] Active Zone | Min 70, Max 130 | Normaler Stream-Modus |
[HR] High Zone | Min 130, Max 170 | ”Spannung steigt”-Effekte |
[HR] Critical Zone | Min 170, Max 220 | Stress-Modus + Alarm |
[HR] Critical ZoneTrigger: Integrations > HypeRate.io > Heart Rate Pulse mit Min 170 und Max 220.
Liest Persisted Global currentZone in lokale Variable previousZone.
| Global Name | currentZone |
|---|---|
| Persisted | aktiv |
| Variable Name | previousZone |
| Default Value | unknown |
Wenn ja: Action sofort beenden.
| Input | %previousZone% |
|---|---|
| Operation | Equals |
| Value | critical |
Edge-Detection: bei jedem weiteren Pulse in der Critical-Zone passiert nichts mehr.
| Global Name | currentZone |
|---|---|
| Value | critical |
| Persisted | aktiv |
| Message | 🚨 Stress-Modus an, Puls bei %heartRate% BPM |
|---|
| Source | StressOverlay |
|---|---|
| State | Visible |
| File | C:\sounds\alarm.mp3 |
|---|---|
| Volume | 40 |
| Scene | Intense |
|---|
Damit du beim Zurückfallen auf eine niedrigere Zone ebenfalls reagieren kannst, eine weitere Action [HR] Active Zone mit Range 60–140, die im Then-Branch von %previousZone% Equals "critical" eine Chill-Message postet und StressOverlay wieder versteckt.
Damit currentZone nicht zwischen Streams hängen bleibt: eigene System-Action [Sys] HR Reset mit Trigger Twitch > Channel > Stream Online und einer einzigen Sub-Action Core > Globals > Set mit currentZone = unknown.
| Situation | Zone | Resultat |
|---|---|---|
| Game startet, HR 80 | Active | Nichts (passive Display) |
| Boss-Fight, HR 145 | High | ”Spannung steigt”-Overlay einmalig |
| Final-Hit, HR 175 | Critical | Stress-Modus an, Alarm |
| Boss besiegt, HR fällt auf 95 | Active (Recovery) | “Chillt wieder”-Message |
previousZone-Check würde der Alarm jede Sekunde feuern. Persisted Global ist Pflicht.currentZone bleibt vom letzten Stream, beim nächsten Stream kommt evtl. die falsche Initial-Reaction.130–170 und 170–220, nicht 130–170 und 160–200).Min = 30 in jeder Zone-Action setzen, damit Disconnect nicht „Resting“ triggert.lastHR Global berechnen. Bei diff > 30 ein „was war das gerade?“-Message posten.