VTube Model-Wechsel via Channel-Point-Reward¶
User löst Reward ein → Avatar wechselt für X Minuten zu einem anderen Modell. Z.B. "Alt-Look" oder "Halloween-Costume".
Voraussetzung: VTube Studio verbunden, mindestens 2 Models in VTS verfügbar Patterns: Reward Trigger + Load Model by Name + Delay + Load Model by Name (Reset) Sub-Actions: 4-6
Models in VTube Studio vorbereiten¶
Stelle sicher dass folgende Models im VTS verfügbar sind:
| Model-Name | Use-Case |
|---|---|
Main Avatar |
Default-Model |
Halloween Costume |
Spooky-Variant |
Birthday Outfit |
Special-Event |
Anime Style |
Stylistische Variant |
Pixel Avatar |
8-bit-Style |
Wichtig: exakter Name aus dem VTS Model-Selector.
Reward in Streamer.bot anlegen¶
| Feld | Wert |
|---|---|
| Title | Halloween-Modus für Avatar |
| Cost | 5000 |
| Prompt | Avatar wird für 5 Minuten gespooky |
| Skip Request Queue | false (wir fulfillen selbst) |
| Max Per Stream | 2 |
| Global Cooldown | 600 (10 Min) |
Action: [Reward] Halloween Avatar¶
Trigger¶
Twitch → Channel Reward → Reward Redemption → Reward Halloween-Modus für Avatar.
Sub-Action 1: Load Model by Name — Halloween-Variant¶
Pfad: Integrations → VTube Studio → Load Model by Name
| Feld | Wert |
|---|---|
| Model | Halloween Costume |
Setzt %success% (bool).
Sub-Action 2: Error-Handling¶
If/Else: %success% Equals false
├── Update Redemption Status: Cancel (Refund)
├── Send Message: "@%user% Avatar-Wechsel fehlgeschlagen — Refund."
└── Break
Sub-Action 3: Send Message¶
Sub-Action 4: Delay (Anzeige-Dauer)¶
Sub-Action 5: Load Model by Name — Reset auf Default¶
| Feld | Wert |
|---|---|
| Model | Main Avatar |
Sub-Action 6: Send Message + Fulfilled¶
Action-Tree¶
[Reward] Halloween Avatar (Trigger: Reward Redemption)
├── 1. Load Model by Name: Halloween Costume
├── 2. If/Else: %success% Equals false
│ ├── Update Redemption Status: Cancel
│ ├── Send Message: "@%user% Avatar-Wechsel fehlgeschlagen — Refund."
│ └── Break
├── 3. Send Message: "🎃 @%user% hat Halloween-Modus aktiviert..."
├── 4. Delay 300000 ms (5 Min)
├── 5. Load Model by Name: Main Avatar
├── 6. Send Message: "✅ Back to Normal-Modus."
└── 7. Update Redemption Status: Fulfilled
Variante: Model wechseln ohne Auto-Reset¶
Wenn das Model bis zum nächsten Reward bleiben soll (z.B. "Outfit-of-the-Day"):
[Reward] Set Outfit
├── 1. Load Model by Name: %rawInput% (User input nutzt Model-Namen)
├── 2. If/Else: %success% Equals false
│ ├── Update Redemption Status: Cancel
│ └── Break
├── 3. Send Message: "@%user% Outfit gewechselt zu %rawInput%"
└── 4. Update Redemption Status: Fulfilled
Setup im Reward: User Input Required = true, User schreibt Model-Namen rein.
Vorsicht bei User-Input: Filter auf valide Model-Namen damit nicht jeder Müll-Name gesetzt wird. Mit Get Current Model checken ob Wechsel erfolgreich war.
Variante: Random Model aus Pool¶
[Reward] Random Outfit
├── 1. Group [Random]: Outfits
│ ├── Load Model by Name: Halloween Costume
│ ├── Load Model by Name: Birthday Outfit
│ ├── Load Model by Name: Anime Style
│ └── Load Model by Name: Pixel Avatar
├── 2. Send Message: "🎲 @%user% rollt Random-Outfit"
├── 3. Delay 300000 ms
└── 4. Load Model by Name: Main Avatar
VTS lädt zufällig eines der 4 Outfits.
Variante: Persistent Save des Original-Models¶
Wenn du nicht hardcoden willst welches das "normale" Model ist:
[Reward] Halloween Avatar
├── 1. Get Current Model → %modelName% etc.
├── 2. Global (Set): originalModel = %modelName% (Persisted)
├── 3. Load Model by Name: Halloween Costume
├── ... (Logic + Delay)
├── X. Global (Get): originalModel → backToModel
└── Y. Load Model by Name: %backToModel%
So funktioniert's auch wenn du das Default-Model später umbenennst.
Häufige Fallen¶
- Model-Name Tippfehler — case-insensitive aber muss exakt matchen. Aus VTS UI kopieren
- Model nicht im VTS verfügbar —
success = false. Refund machen - Mehrere Rewards parallel — wenn 2 User gleichzeitig redeem, kämpfen die Models. Action Queue mit Single-Concurrent
- Delay-Hang bei SB-Restart — wenn SB während des 5-Min-Delays crasht, bleibt Avatar in Halloween. Helper-Action
[Sys] Stream Online → Load Default Modelfixt das beim nächsten Stream-Start - Channel-Points-Refund vergessen — bei Fehler IMMER Cancel-Status setzen sonst zahlt User für nix
Quellen¶
- Load Model by Name: https://docs.streamer.bot/api/sub-actions/integrations/vtube-studio/load-model-by-name
- Reward Redemption: rewards/setup.md