To steal a phrase from a friend of mine, VTI is an imperfect application created by an imperfect being. Not only this, but it also 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 while using VTI. 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 (see VTI Function Overview for more details). 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.
When Trying To Connect, The Panel In VRC Immediately Fails To Connect And Shows A Red Status
VTI will connect to the Companion using Remote String Loading (see VTI Function Overview for more details). To do this, it needs to be able to connect to "localhost:12011", and "localhost" is not a whitelisted URL by default.
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, and the connection will never be able to complete. See VTI Function Overview for more details.
FIX: Enable Logging in VRChat’s Debug options, and remove -nolog from VRChat’s Launch Options if present.
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 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. Likewise, if you have somehow downloaded the VTI Companion App without ever running VRChat on the machine, you will see an error that the Log directory cannot be found.
FIX: Run the Companion App as Administrator, and run VRChat at least once before launching VTI.
How Do I Run This on Quest/Android?
Due to how the VTI Companion App functions (see VTI Function Overview for more details), VTI cannot be supported on standalone Quest or Android devices at this time.