VoidTuber

Redeems & Twitch

Redeems is where you make things happen on stream: a channel point redeem throws props, a chat command starts a dance, a raid shows a message. Each automation is a small diagram of when this happens → do that.

The Redeems & automations window: a list of automations on the left, a diagram of connected blocks on the right
The Examples automation: triggers on the left (purple ones come from Twitch), wired to actions on the right. The selected block's settings are on the left.

Connecting Twitch

  1. Open Integrations ▸ Twitch.
  2. Press Log in with Twitch. Your browser opens; enter the code the app shows and allow it.
  3. Switch on Connect when the app starts if you want it to connect by itself.

The app only asks Twitch for what redeems, chat, bits, follows, subs and raids need. Your login is kept on your computer. Log out removes it.

Making an automation

  1. New automation, and give it a name.
  2. Right-click the canvas and add a trigger, for example Twitch ▸ Channel point redeem. Click it and pick the reward on the left.
  3. Right-click again and add an action, for example Props ▸ Throw props.
  4. Drag from the trigger's dot to the action to wire them.
  5. Click the trigger and press Test with a fake event to try it without going live.

An automation only runs while its switch in the list is on. Right-click a dot to unwire it; Del deletes the selected block. Wheel zooms, dragging empty space pans.

Triggers

TriggerFires when
Channel point redeemSomeone redeems a reward. {user} {reward} {input} {cost}
Chat commandA chat message starts with the command, like !dance. Can be limited to subscribers, VIPs or mods, with a cooldown. {user} {args} {arg1}…
Chat messageA message contains the text (empty = every message)
BitsSomeone cheers within the range you set. {amount}
Follow, Subscription, RaidSomeone follows, subscribes (or gifts), or raids. {viewers} for raids
Key pressYou press a key while the app is focused
Called triggerA Stream Deck, shortcut or script calls it (below), or a Call trigger block does
TimerEvery so often while the automation is on
App started, Avatar loadedThe app starts, or an avatar finishes loading
OBS scene changedOBS switches scene (needs OBS connected)
Dance started, Dance finishedAn MMD dance starts or ends

Actions

GroupActions
AvatarExpression (hold for some seconds) · Clear expressions · Avatar toggle (an item of the VRChat menu, like Clothes/Hoodie) · Avatar parameter · Avatar size · Switch avatar · Webcam tracking on/off
PropsThrow props · Drop props · Headpat · Show / hide prop
MediaPlay dance · Play sound · Show text (drawn into the picture, so OBS shows it)
TwitchSend chat message
OBSSwitch OBS scene · Show / hide OBS source
LogicWait · Random · Compare · Cooldown · Every Nth time · Call trigger
DataSet variable · Web request · Log

Variables: write {user}, {reward}, {amount} and so on in any text and they are filled in, for example Show text: {user} redeemed {reward}!. Each trigger's help (click it) lists its variables. Set variable makes your own; global ones are remembered across restarts.

The Examples automation (switched off) shows a few complete setups to copy from.

Controlling OBS

To switch scenes or show and hide sources from an automation, open Integrations ▸ OBS and switch on Let redeems control OBS. In OBS turn on Tools ▸ WebSocket Server Settings ▸ Enable WebSocket server. The app reads the port and password from OBS's settings by itself.

Stream Deck, hotkeys & scripts

Switch on Integrations ▸ Stream Deck & scripts ▸ Allow local web requests. Then anything on this computer can run a Called trigger by name:

curl localhost:39580/trigger/my-trigger?user=Me

Only programs on your own computer can do this. Web pages can't, even ones open in your browser.