Skip to content
Go to file

This Repo is marked for merging and eventually deletion. Please see #18 for more details.


This is the new home of the TwitchChatOverlay repository!

It was previously located over here!

See also my OpenVRDesktopDisplayPortal for putting any desktop window into VR :D

==== Donate

This is a stripped down version of the SteamVR Unity Plugin with a custom Overlay script that displays twitch chat!

To use this, Download and launch the latest release, and enter your Twitch Username, OAuth Key (get your OAuth Key here) and the desired Channel, then press "Press to Connect" and it should momentarilly connect to your Twitch chat. Check behind one of your controllers (should be left!) for your chat display! It should zoom up when you look at it.

Oculus Rift users:

We're receiving reports that some Rift users find some games are incompatible with the SteamVR Overlay system. You can read more about it in the issue posted here. The jist of things is that some games seem to skip the SteamVR Compositor and draw directly to the Rift instead. Check the SteamVR Display Mirror and see if you can see the Overlays there. If you can see the Overlays in the Mirror but not the Rift, then that game is probably incompatible :(. Please post your findings in the issue.


  • See your favorite chat in VR! From almost any SteamVR game!
  • Easily attach Chat to the Screen, a Tracked Controller, or drop it in the World.
  • Easily snap Controller attached Chat to a set "Base Position".
  • Offset Chat positionally and rotationally.
  • Basic Gaze Detection and Animation support (Fade In/Out and/or Scale Up/Down on Gaze).
  • Basic Save/Load Support! Saves all settings except OAuth Key!
  • Notification Sound on Chat Message Received (Set Volume to 0 to Disable)
  • Active Viewer Count (Updated as often as Twitch allows)
  • "Experimental" Emote Support ;) kappa kappa

Basic Controls

(click to enlarge) (actual controls might vary slightly as this is still under development) basic controls


Note that these demos are a bit old, and do not represent the current state of the branch.

Known Issues

  • SteamVR_ControllerManager.cs doesn't correctly auto-identify controllers for me, so I wrote my own manager, HOTK_TrackedDeviceManager.cs. My Device Manager is super pre-alpha but should correctly identify both Controllers as long as at least one of them is assigned to either the left or right hand, and they are both connected. If neither Controller is assigned to a hand, they are assigned on a first come first serve basis. If only one Controller is connected, and it isn't already assigned, it will be assigned to the right hand.
  • Oculus Rift Users are reporting some games seem to be incompatible, please see the issue posted here.
  • If you launch it and nothing happens in VR, check the Data folder for output_log.txt and look for "Connect to VR Server Failed (301)" if you're getting that error, try restarting your PC, and if that doesn't work try this solution by /u/GrindheadJim:

For clarification, what I did was right-click on the .exe file, clicked "Properties", went to the "Compatibility" tab, and checked the box under "Run as Administrator". For the record, I have also done this with Steam and SteamVR. If you're having any issues with any of these programs, I would start there.

Additional Notes / Tips & Tricks

  • When attaching Overlays to controllers, the offset is reoriented to match the Base Position's orientation. X+ should always move the Overlay to the Right, Y+ should always move Up, and Z+ should always move Forward, relative to the Overlay.
  • You can copy and paste your OAuth key, you don't have to manually type it out, but you do have to get it off that site, or off another site that generates Twitch OAuth keys.
  • OAuth is not saved for security reasons.
  • You can put the Overlay up in the sky and tilt it if you don't like it on the controllers and find it obtrusive in the world. Just set the Base Position to "World", then mess with the middle "Positional Control" slider and the top "Rotational Control" slider until you find a position that works for you :)
  • You can stream the Display Mirror if you want your viewers to be able to see the Overlay, or you can stream the game's output if you do not.
  • To save a new settings profile, select "New.." from the dropdown and press "Save", then enter a name in the box just below and press the new "Save" button.
  • To delete a profile, select the profile you want to delete from the dropdown box, and click the Delete button twice. On the first click the text will change red and the tooltip will change. On second click the profile will be deleted. There is no undo so use this wisely. Select a different profile or press Load or Save to reset the Delete button.
  • You can disable Chat Notification Sounds by setting the Volume slider to 0.

How can I help?

If you know how to program, we could always use help! Feel free to fork the repo and improve it in any way you see fit; but if you don't know how but still want to contribute, we always need more beta testers! Download the release and share it around! If you want to do more, donations are always cool too! You'll be funding my programming endeavors, including cool projects like these VR Overlays: Donate

Special Thanks

(No endorsements are intended to be implied.)

Thanks to Grahnz for the base TwitchIRC.cs script! The license file is available here.

Thanks to Eric Daily for the base SaveLoad script! The license file is available here.

Thanks to Jalastram for some of their sounds! The license file for these can be found [here](../master/Assets/StreamingAssets/Twitch/Sounds/GUI Sound Effects/LICENSE.txt).

Thanks to everyone who has tested it so far! The feedback has really helped speed things along!


Put your favorite Twitch Chat directly into any OpenVR game!



You can’t perform that action at this time.