If you relate to one or more of the following:
-
Occasional VRChat keyboard glitches
-
Inability to type fast just because of how it is
-
Too used to overlay keyboards
-
Migrating from OVR Toolkit to XSOverlay
-
Some other random thing
This plugin is for you!
Note
There is no official plugin support yet (as of 2024-05-27). This plugin is applied using BepInEx.
Last tested with build 667. It should work on most newer versions,
as long as Xiexe hasn't reworked something. (lol)
(images are slightly out of date, but it pretty much looks the same)
Open a PowerShell window, change directory to your XSOverlay folder and paste the following script
(To find it, open Steam, go to XSOverlay > Manage > Browse local files)
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/nyakowint/xsoverlay-keyboard-osc/main/install.ps1" | Invoke-Expression
If you're having trouble, try manual installation
- Enable OSC. For VRChat you can find this in the Action Menu (Options > OSC > Enabled)
- Open the XSOverlay keyboard
- Press the message icon on the right hand side of the keyboard, under the lock button
- Congrats! Type away
Optionally, open XSOverlay's settings (Settings > KeyboardOSC) and change the plugin options to your liking
(this may break with an update, you can go back with the tab under bindings)
Note
The modified settings UI deliberately uses default theme. If you're a custom theme user (unreleased) and this bothers you enough feel free to pull request.
Use the following shortcut keys for quick access to certain actions:
Shortcut Key | Function |
---|---|
ESC | Clear current text |
END | Clear last sent message (equivalent to pressing "Clear Chatbox" in radial menu) |
TAB | Toggle silent message (indicated by orange text, disables your typing indicator and chatbox noise as well) |
INSERT | Replace current text with your last message (does not send) |
Backspace or Delete | Delete last character from right or left respectively |
CTRL + C | Copy current text to clipboard |
CTRL + V | Paste text from your clipboard |
CTRL + Backspace | Delete last word (kinda broken lol) |
ENTER | Send message to the chatbox! Has differing behavior depending on your settings. |
I cannot guarantee full compatibility with OSC in alternate platforms (mostly resonite/chillout?) as this is made with VRC's routes in mind.
This will set you up for sending your messages sent through this plugin to your Twitch chat.
- Go to Twitch Developer Console and create an Application
- Set the redirect URI to
http://localhost:<WEB PORT>/apps/KeyboardOSC/twitchAuth.html
- Web port is usually WebSocketPort + 1 (if you didnt change it, it's currently
42071
)
- Web port is usually WebSocketPort + 1 (if you didnt change it, it's currently
- Select Confidential for Client Type
- Go to Settings > KeyboardOSC
- Press the Twitch setup button
- In the webpage fill in your Client ID and Client Secret from Twitch Dev then press Authorize on both pages
- If everything works out (hopefully) you should get a toast message saying it's successful
- Use silent message (Tab) to not send to twitch per message, if needed
The bar used for typing may have positional quirks until you move it for the first time. I consider this a non-issue. It tries its best :p
If you can't seem to get OSC to work, try one of these:
- Restart VRChat before trying anything else. OSC as a whole will just break sometimes.
- Change the OSC port used by XSOverlay, instructions how to do this -> > XSOverlay Docs < ( it does not use OSCQuery as of writing, so this is probably your issue)
- Reset your OSC config?
If this plugin's settings dont show up in the menu, it's likely:
- You are using a custom theme and it is conflicting somehow. As of writing this update is not fully out and i have no way of testing it lmao
- Either your XSOverlay or Plugin are outdated
- something else, bug me about it shrug
If you need help, have concerns or whatnot I'm in the XSOverlay server as well as my own dev discord
- Follow the BepInEx install guide into XSOverlay.
- Download both the plugin DLL and
BepInEx.cfg
from Releases - IMPORTANT: Move
KeyboardOSC.dll
into<xso folder>/BepInEx/plugins
folder, andBepInEx.cfg
into<xso folder>/BepInEx/config
folder.- Make sure you have done the second part. if you dont then you will have a quite useless plugin :L
- or set it yourself:
HideManagerGameObject = true
- Start XSOverlay
- Follow the install steps in reverse order. Delete
BepInEx
,doorstop_config.ini
,winhttp.dll
and other non overlay files from your XSOverlay folder.
Check the .csproj or actions workflow
but if you wanna build this just drop the necessary dlls from XSOverlay_Data/Managed
into refs
, restore and build w/
Release config. dll will be in builds
folder