January 25, 2024

VRChat Twitch Integration (For Worlds!), or VTI, is a pairing of VRChat assets and a Companion App that enables Twitch streamers and their viewers to interact with a World on VRC and trigger special effects and events. These can be anything from fireworks whenever someone subscribes, to jumpscares triggered by your chat, and even to message boards for Q&A panels!

The VTI Companion App will always be free to download, and the VRChat World Asset Bundle can be purchased at the links below!

Documentation
Dev Log

  • Beta
  • Ongoing
Coming SoonComing Soon

Getting Started

VRChat Twitch Integration (For Worlds!), or VTI, aims to add more interactivity to VRChat Worlds for streamers and their viewers to play with. It will connect to your Twitch broadcast, generate chat commands, donation triggers, and even Channel Point rewards on the fly! Once a viewer triggers an event, the Companion will tell the VRChat side to queue it up and play.

To get started, download the Companion App in the blurb above, run it, and click Connect to start connecting to Twitch and open up the VRChat connection. Then, once in the VTI-Capable VRChat World, find the VTI Control Panel and click the Connect button there to fully connect VRC to the Companion. Once everything lights up green, VTI will have automatically made all the event bindings it needs to for your chat to start playing along!

Additionally, if the World allows it, you may go into each “Target” on the Companion and rebind them to something completely different! This can allow you to personalize the stage to your audience by adjusting redeem costs and changing just what causes each event to cook off. Be sure to hit Save and Apply to keep your settings for next session!

Disclaimer: The VTI Companion App is not provided by, supported by, nor endorsed by the VRChat company and is a third-party application. Please do not report bugs with VTI to the VRC team. Instead, use the Companion’s built-in Send Feedback button.

How Does It Work?

The VTI Companion App communicates with VRChat and Twitch, creating and collecting events automatically into a queue for the World to execute. The Companion talks to VRChat through Remote String Loading, and VRChat talks to the Companion by way of the Debug Log file. This is currently a fair bit of a workaround as Worlds do not yet have OSC support.

Please note that VTI does not provide any functionality to VRChat directly; it can only be used with VRChat Worlds that implement VTI deliberately through the World Asset Bundle in the blurb.

VTI is NOT a modification of the VRChat Client, and strictly uses the methods exposed through Udon and its own Debug output to function.

Troubleshooting and Known Issues

To steal a phrase from a friend of mine, VTI is an imperfect application created by an imperfect being. Not only this, but it relies on an imperfect communication method (until OSC comes to VRChat Worlds) to work. Because of all this, there are some known issues and caveats that you will probably run into. Below is a list of said common issues and how they may be dealt with.

Every Time I Open VTI, It Opens A Browser Tab

This is because VTI uses Twitch’s Implicit Grant Flow to authenticate with your Twitch account. This is the most secure method for both you and myself as the auth tokens only work for that session, are not stored either locally nor on any of my servers, and do not require that I bake VTI’s “Client Secret” into the Companion App’s code or run an external authentication webservice. Put simply: VTI does not collect your login information, and any session information is trashed once VTI is closed.

New Events Take Several Seconds To Trigger

This is an unfortunate downside of Remote String Loading, as it is globally capped to only work once every 5 seconds, and while on cooldown new requests will be queued and cleared “at random”. If any other Udon script is also trying to use Remote String Loading, VTI will have to wait an additional 5 seconds for the next open “time slot” that it can attempt a read. VTI will only read once every 6 seconds by default, and hard-cap itself to 5.1 seconds at the fastest so as not to completely hog the Remote String Loading queue.

FIX: Petition VRChat to add OSC support for Worlds or something.

The VRChat Link Light Just Keeps Blinking Yellow And Never Connects

The VTI Companion App relies on VRChat’s Debug Log file to hear anything the VRC side is saying. If VRChat is not currently writing out its Debug Output, VTI has nothing to listen to.

FIX: Enable Logging in VRChat’s Debug options, and remove -nolog from VRChat’s Launch Options if present.

The Companion App Keeps Throwing Errors About Permissions And Such

Unfortunately, due to how the VTI Companion works, it needs to read from VRChat’s AppData directory. If you are running the Companion with insufficient privileges to read that file, it will fail to connect.

FIX: Run the Companion App as Administrator