Input Overlay

Input Overlay v4.8

Supported Bit Versions
Source Code URL
Minimum OBS Studio Version
Supported Platforms
Windows, Linux

Input Overlay is a small plugin for obs studio that shows keyboard, mouse and gamepad inputs on stream. It adds two new source types to obs: Input Overlay and Input History

How does it work?
The plugin uses a texture and a config file to create the overlay. This means that you can configure which buttons are shown on screen, how they are arranged and how they look.
By default the plugin comes with presets for mouse, keyboard, gamepad and icons for the arrow keys.
When creating an "Input Overlay" source in obs you can then point it to either the preset files or the ones you made yourself.

Why does Input Overlay not detect input in some cases?
This is most likely caused by the application protecting its inputs for a variety of reasons. Launching obs-studio as administrator usually fixes this issue.

Video tutorial on vimeo
Installation guide on github
For Arch-based linux distros:
You can install the plugin via the AUR using the package obs-input-overlay-bin maintained by networkjanitor.

Please note:
  • If you're on a fresh installation of windows or you don't play any games there's a high chance that you don't have the Visual C++ 2015 Redistributable installed. You can get it here.
  • The plugin currently does not work with Streamlabs OBS!
  • (Windows only) Since this plugin hooks into input do not open two instances of OBS, because it will result in stuttering input. If you do need two instances run one instance as 32bit.
These values are used to let the plugin calculate the direction of your mouse movements.
Here you'll find out what values you need to use for your game.
demo_hook.exe and demo_hook_async.exe are located inside the release zip archive under the folder "util"!
Since v4.3 the plugin comes with a *.so file for OBS Studio on linux. I compiled and tested it on Manjaro.
The installation instructions included are currently incorrect.
Here's how the installation should go down for most linux distros (Note that this will install the plugin globally for all users, for user specific installation you can follow these instructions):
1. Download the latest release zip
2. Create a folder called "input-overlay" in "/usr/share/obs/obs-plugins"
3. Copy the contents of the folder "data" in "plugin-linux" into the new folder
4. Copy the file "" in "bin/64bit" into "/usr/lib/obs-plugins"
5. Install libuihook over your package manager or (only try this if compiling is not an option) download this binary and copy it into "/usr/lib" (and "usr/lib64" if necessary)

Things to note:
You need to install libuiohook manually, since I do not ship it with the plugin. Look it up in your package manager or compile it from source (Make sure to not just use sudo make install, because it offers no way of removing it again!)
For Arch and its derivatives you can get libuiohook from the AUR.
OBS Studio running with input-overlay on Manjaro (inside a VM)

Or scan it yourself:
First release
Last update
4.27 star(s) 30 ratings

More resources from universallp

Latest updates

  1. 5.0.0 Test version

    That took a while, didn't it? Well I've finally gotten something that should be in the realm of...
  2. Small fixes

    NOTE: Please make sure to use the presets shipped with this version, as previous layouts do not...
  3. Smaller additions

    While I'm still working on 5.0, I also try my best to maintain the current version. I've...

Latest reviews

Excellent plugin. Highly customizable, ini files were relatively easy for me to understand, and overall a very good overlay. I occasionally run into a minor issue where one of the keys would randomly get stuck into a 'Pressed' state until I press that key again. It happens often, but not too much as to be a real nuisance (though I could see it as a problem for full QWERTY layouts).
It's really not clear on where to put the file in

and the videos are in russian
The only Russian videos are the ones labeled "Russian", so I hope that didn't surprise you. There's also an English version right above those.
Seems like it should work, but when I tried to make my own preset, none of the buttons would leave the far left edge of the source, making it useless. The only reason I'm not rating lower is because it looks like I ran into a pretty nasty edge case.
Works flawlessly, however, I can't seem to make it work with the steam controller, any ideas?
You'll need something that makes it available as an Xinput device, eg.
Absolutely amazing plugins :)
I really like your plugin. I suggest adding in the config text file wich one modify the texture file or how the overlay will be placed. I figured it out easy tho.

I'm currently making my own keyboard one with a retro style but, some of my keys are not perfectly 3 time width like the spacebar. Is the size multiplier float? Can we use decimal number for the size multiplier?

I plan on posting my retro keyboard style here when done.
No the width can only be a whole number
time ago I got this plugin ... and had a template that included numbers.
Why not include that template?
That preset is still here, it's called wasd-extended-numeric:
The plugin is not compatible with Linux(Mint/Ubuntu) Libuiohook cannot be compiled as 'xt' is not available even after installing xen-tools
It should be, have you tried using my precompiled version? Also I can't support every single distribution out of the box, I can however help you get it to work
I'm very happy to use the software you've created.
We also hope to add a Fight stick user interface.
There are literally NO instructions whatsoever, and trying to find the image file it requests (even reading the comments) is infuriating so... after some searching I find it... except there is no mouse/wasd option. This is just not very well explained and honestly for someone looking for some plug and play option, this isn't it.
Did you read the plugin post at all? There's a part called "How to install and use" that might be what you're looking for, it even contains a video tutorial. I moved it further up so it's a bit easier to find.