Supported Bit Versions
  1. 64-bit
Source Code URL
Minimum OBS Studio Version
Supported Platforms
  1. Windows
  2. Linux

Input Overlay is a plugin for obs studio that shows keyboard, mouse and gamepad inputs on stream. It adds a new source for visualizing inputs.

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 the mouse, keyboard and gamepad.
These are located in the "presets" zip archive on the github release page.
When creating an "Input Overlay" source in obs you can then point it to either one of those preset files or the ones you made yourself.

  • Flexible config system, which can arrange buttons and other elements in any form
  • Graphical tool to make preset creation easier (Video Tutorial)
  • Support for most gamepads
  • Remote connection to send inputs from gaming pc to streaming pc
  • Input White/Blacklist, so you you don't accidentally show sensitive data
  • WebSocket Server to allow the browser source to access input events
Installation and usage tutorial

Config editor (cct) tutorial

Installation instructions
How to create/modify presets
Additional Information can be found on the wiki.

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.



Or scan it yourself:
  • overlay-logo.png
    8.7 KB · Views: 33,302
First release
Last update
4.15 star(s) 62 ratings

More resources from univrsal

Latest updates

  1. Some fixes and new presets

    Added QWERTY-pixel numpad preset Added g502x mouse overlay preset Added NES preset Added QWERTZ...
  2. Fix some crashes

    Should fix crashes when using multiple gamepads or loading certain mouse presets.
  3. New Gamepad backend, remote connection fixes

    Most gamepads should now work out of the box thanks to SDL2 The remote connection should now...

Latest reviews

A great plug in, I will be using a lot... so I plan to. My only question is mapping of mouse buttons to regular keyboard keys. Currently I had to duplicate keyboard and crop individual letters to show the clicks from my mouse's extra buttons, such a "G" for wheel click, "R" for reload from one of the side mouse buttons.
Is there a way I can make some changes and replace ASCII code somewhere? or any other options to show those clicks on my mouse view instead of keyboard workaround. Extra mouse buttons, including wheel click is not highlighting.
It's not a game breaker, still nice options for me, and I will use it as is, but if there is a fix, please let me know :)
Everything appears to work, but the I have to call the overall experience quite dysfunctional. Documentation is poor, leaves out large portions of information that the programmer seems to think is "too obvious" to tell us (or something, I'm guessing. Point is there's steps missing). Best to start with the presets and reverse engineer them to make your controller work (assuming of course that one of the presets doesn't suit your needs simply as-is).

Didn't play well with my retro controller. I used JoyToKey to remap it to different keyboard keys and set the overlay map as a keyboard overlay with the retro controller images. Speaking of which, the background image, the base controller, can't be included in either the OBS plugin or the (more importantly) the provided web tool to generate the .json file for your controller, for what reason I have yet to fathom. You just have to guess where the controller buttons should land and push them a few pixels at a time this way, a few more that way, until they sit properly on the base image. The image swap on the button presses is also a lot more cryptic than it needs to be. He's got this 3 pixel gap thing going on that seems to work fine in the videos but somehow it doesn't work that way when setting up your own controllers.

[sigh] ... all that said... if you can get through all those roadblocks, or, if one of the presets suits your needs, it appears to work just fine. I am satisfied with the final result, at least. It has not broken so far... knock on wood.
Keyboard presets work just fine on arch linux but the mouse presets crash obs studio. using v5.0.4
Splendid and does the job perfectly!
Really good but the web creation tool seems a bit buggy with gamepad inputs. I can't get it to work with my Fightbox and Arrow keys work in the web editor, but not in the actual overlay. Am I doing something wrong?
It's precisely what it needs to be and does it well. with the advent of its io_client, it's perfect for any stream set-up. it is fully customizable and works cleanly. The only con is that it is not for the plug-n'-play user (hopefully not too many on here for this to apply).
hello universallp I see 3 folders one that is data and one that is obs plugins and the other that says io client and there is a program do you know what that program is for
It's for people that use multiple computers when streaming. It sends inputs from one computer to another.
This is really great for tutorials! I used the input-history preset and it's great! It's so easy to use set up! Enabled WebSocket forwarding, disabled gamepad hook, added input-history browser source, BAM! Thank you so much for this!
Only the mouse and keyboard work for me, not the gamepad and by the way I like your universallp plugins
Yeah there are some issues with gamepads. A few work (mine does) but I'm looking into using a more reliable library for gamepad input
Thank you so much