Input Overlay

Input Overlay v5.0.5

Another weird question: Is it possible to use the gamepad or arcade stick layouts with a keyboard? Like, I have my custom layout already made and working but my controllers are packed up somewhere. Is it possible to asjust the json file in such a manner? Can I just change the "dpad" to a "wasd" or something?
 
Another weird question: Is it possible to use the gamepad or arcade stick layouts with a keyboard? Like, I have my custom layout already made and working but my controllers are packed up somewhere. Is it possible to adjust the json file in such a manner? Can I simply change the "dpad" to a "wasd" or something? I think I can change the buttons to the appropriate keyboard 0xVALUE but what about the d-pad?
My interim workaround.
hHS0WbU.png
 
Last edited:
Hi, love the work here! I have a somewhat unique use case I'm trying to make work, that comes with questions/issues in two parts. Basically I would like to use the input-history as a basis to display pop-up text descriptions of the inputs I'm doing on my flight sim joystick and throttle controllers. First, do you filter the available controllers or is there a limitation on what SDL can interface with? Neither the joystick or throttle show up in the Input Overlay source, only my XBox controller. Second, I've been digging through the code on github and messing with the sample HTML that displays keyboard history. Do you currently even send SDL events over the websocket? console.log()ing every websocket message (in the on_data() function) doesn't show anything pressing buttons on my xbox controller or joysticks, but does log every keyboard and mouse action. I see a function in the websocket server code to dispatch SDL events but it doesn't seem to be sending them. I know that the sample HTML provided is only designed for keyboard inputs but I'm happy to adapt it myself as long as it can receive button presses from my controllers.

Thanks!

Edit: Just saw that there's a TODO in the gamepad hook helper about also registering joysticks and not just game controllers. That would be a welcome addition!
 
Last edited:
Hi, love the work here! I have a somewhat unique use case I'm trying to make work, that comes with questions/issues in two parts. Basically I would like to use the input-history as a basis to display pop-up text descriptions of the inputs I'm doing on my flight sim joystick and throttle controllers. First, do you filter the available controllers or is there a limitation on what SDL can interface with? Neither the joystick or throttle show up in the Input Overlay source, only my XBox controller. Second, I've been digging through the code on github and messing with the sample HTML that displays keyboard history. Do you currently even send SDL events over the websocket? console.log()ing every websocket message (in the on_data() function) doesn't show anything pressing buttons on my xbox controller or joysticks, but does log every keyboard and mouse action. I see a function in the websocket server code to dispatch SDL events but it doesn't seem to be sending them. I know that the sample HTML provided is only designed for keyboard inputs but I'm happy to adapt it myself as long as it can receive button presses from my controllers.

Thanks!

Edit: Just saw that there's a TODO in the gamepad hook helper about also registering joysticks and not just game controllers. That would be a welcome addition!
The browser source has access to gamepads (and probably joysticks) so you don't really need input overlay unless you have a two pc streaming setup. See https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API


This is an example page that renders input overlay gamepad presets and uses the gamepad API to retrieve inputs.
 
The browser source has access to gamepads (and probably joysticks) so you don't really need input overlay unless you have a two pc streaming setup. See https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API


This is an example page that renders input overlay gamepad presets and uses the gamepad API to retrieve inputs.
Ok I wasn't sure if that would work with the OBS browser host, I'll try that then, thanks.
 
The browser source has access to gamepads (and probably joysticks) so you don't really need input overlay unless you have a two pc streaming setup. See https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

So from the testing I've been able to do the Gamepad API is quite limited and not standardized. It seems like both in chrome and in the OBS browser source, it's limited to 4 controllers in a seemingly indeterminate order as well as limited in the number of buttons it can expose (32 buttons and 8 axes it seems like. I'm also having issues getting the browser source to believe it's in a secure context which is required to do anything other than listen for connection and disconnection events. I'm not sure if these limitations are present in SDL2 either but it means that one of my controllers isn't showing up and the one that does only has a portion of its buttons recognized.
 
Hello!
First thanks a bunch for this plugin!
Ive got a dual PC setup so Id like to send though the inputs so I dont have to send a whole NDI for the overlay.
Ive had some trouble getting the websocket server running

When I try to start the server I receive:
error: Failed to connect to server
info: network stopped
What could be the cause here?
Ive tried on 5.0.4 and 5.0.2 to see if it was a version issue.

Server is enabled in input overlay and logging enabled but I cant see anything logged either.

Im new to websocket servers so do I need the websocket plugin enabled also? Or is that separate?
I have tried with both.

Not sure what Im missing here.

Thanks for the help!
Hayden
 
Could be multiple things. Are you using the right IP address? Is the websocket server actually started (The obs websocket is something different and not needed for the plugin)? Did you follow the instructions in the video on the resource page? I also need a full obs studio log.
 
Could be multiple things. Are you using the right IP address? Is the websocket server actually started (The obs websocket is something different and not needed for the plugin)? Did you follow the instructions in the video on the resource page? I also need a full obs studio log.
Im connecting from my gaming rigs 192.168.1.39 to my steaming PCs 192.168.1.38 so that should be fine. cmd Pinging each-other works fine.
I disabled firewalls to confirm that its not a port issue.
Trying to start using: io_client -a ws://192.168.1.38 -k -m -n gaming_pc
WAIT
I DID IT!
dwadawdaddawda
Yoooo thats sick!

As I didnt see the port in your example I thought it might default to your 16899 but I figured wrong!
Brilliant, love it!
Really appreciate the help and all the work you've put in!
Hope you enjoy the day :)
 
I created a version of the mouse and qwerty keyboard that displays nothing when no buttons are pressed. so unused buttons are not taking up screenspace.

the green screen masking feature of OBS wasn't working that great for me so i made these.
 

Attachments

  • mouse invisible.png
    mouse invisible.png
    29.4 KB · Views: 182
  • qwerty invisible.png
    qwerty invisible.png
    61.7 KB · Views: 190
I created a version of the mouse and qwerty keyboard that displays nothing when no buttons are pressed. so unused buttons are not taking up screenspace.

the green screen masking feature of OBS wasn't working that great for me so i made these.
Thats kinda sick I might give it a go, Thanks for the idea, and for sharing!
I think itd need a new feature to have the whole keyboard dissipate after a set time not used but that would be nice
But there may there be a way to have it dissipate with Obs detecting no inputs or overlay changes. I'll look into it.
 
I made a few alternate versions of wasd-extended-numeric-alternate that I'll share. Feel free to add them to the presets.

There is one without the Keys while active.
I Magic erased the shadows as they assume the other layer is present so some shadows overlap without fully removing them.
And re-added a shadow so they highlight better.

And one with the keys at lower Translucencies compared to the activated keys.
50% 60% 70% and 85% so you can decide which you like. My preference is 85% but I also have a 0.65% opacity filter in OBS.

Hope someone likes them :)

Oh and would there be a way I can change the ALT to Capslock and swap its position with shift?
I use Caps as duck
I should be able to handle the Image if you provide the Font details :)
 

Attachments

  • wasd-extended-numeric-red-Fade v2 95%.png
    wasd-extended-numeric-red-Fade v2 95%.png
    116 KB · Views: 191
  • wasd-extended-numeric-red-OpacityChange 50%.png
    wasd-extended-numeric-red-OpacityChange 50%.png
    241.8 KB · Views: 258
  • wasd-extended-numeric-red-OpacityChange 60%.png
    wasd-extended-numeric-red-OpacityChange 60%.png
    246.9 KB · Views: 176
  • wasd-extended-numeric-red-OpacityChange 70%.png
    wasd-extended-numeric-red-OpacityChange 70%.png
    250.6 KB · Views: 174
  • wasd-extended-numeric-red-OpacityChange 85%.png
    wasd-extended-numeric-red-OpacityChange 85%.png
    254.9 KB · Views: 192
Last edited:
Hey guys,
So I have been using this overlay and with the dualsense controller it works perfectly fine, but i setup a second overlay for the Hyperkin Xenon (Xinput controller) and the overlay doesn't respond at all.
if i select the dualsense with the xbox overlay it responds, so the overlay itself is working but just wont detect Xinput at all.
 
Feels great to struggle for something as simple of having this in azerty

Haven't tested it yet but it seems like a really good plugin

(the first is sarcasm not the second)
 
Hi all! Please help with solution how to highlight sticks in gamepad skin?
Stick change color only when they are pressed, but not moved.
I ask about how to change sticks color when stick are moving?
Thanks!
 
Hey everyone!
I'm trying to run two instances of OBS so i can use one layout for streaming and one for replay buffer. In the first instance the mouse direction arrow pointer and all inputs work just fine but in the second instance of OBS none of the inputs are shown. So far I've tried using different profiles, different scenes different sources, different folder locations, different names for the .json files and all these together. Is it possible to run two instances of OBS where both instances have a working input overlay and if so how would I manage that?
Thanks!
 
Unsure how to fix this but it seems my mouse arrow is locked moving right even when not moving. The result is it tries to snap to that direction constantly and spasms when I move it in other directions. This happens for all settings of sensitivity and deadzone, as well as in fullscreen applications, windows or display captures without anything interfering with the mouse. This does not happen with the dot version of the default mouse presets.
 
Back
Top