Display your controller inputs in a highly customizable display, PS4, Xbox and Switch buttons available, works with most controllers. To remove the background for your stream use the Chroma Key options in your streaming software and crop any unnecessary edges.

Press ? in control menu to see controls (right click to show menu when hidden) or read that information below:

- Close menu with cross
- Reopen with right click + m
- Select which object to recolor (then recolor with color picker above). NOTE buttons are always written as if they are playstation buttons
- Select the appearance of your input display
- Decide whether your displayed buttons have an unpressed display, FALSE means they will be invisible until pressed
STREAM I/R (input/release)
- Your inputs are displayed one after another as text, this appears by default in the bottom left of the screen. Changing this setting will change how these are output (press and release, press only or hidden). NOTE the stream can be manipulated when edit mode is enabled if S is held on the keyboard
- Decide whether your Input Stream will align left, center or right of its window
- Enable to use a custom font
- To set your custom font, open the save file location and go up one folder
- Paste your font here and name it 'font'
- Enable to make the background of the window transparent
- Ensure the background color A (Alpha) is set to 0
- Enable to hide the window bar and edges
- Left and Right checkboxes when ticked will stop the stick from hiding when no inputs are detected, aka the active state will always be visible
- L and R Deadzone are the deadzones for your left and right analogue sticks, settings this higher means your stick will only activate when it is pushed further
- L and R Multiplier adjusts the distance the stick will move when it is pushed in a direction, setting this higher means your stick will move further when pushed
- The speed at which animated buttons will play (this will only apply to your custom buttons as all others are not animated)
- Changing the text in the boxes below will change the text of its corresponding button press in the stream (for example, putting JUMP in the box labeled CROSS will output 'JUMP pressed' if other Stream settings are default) NOTE buttons are always written as if they are playstations buttons by default
- Disable a button output by having "-" alone in its custom name box
- Press a button below followed by a physical input (keyboard only) to change the trigger for the pressed button to that new input
- Your Input Stream will recognise this change
- Press Default to reset all rebound buttons to their original state
- Mouse over a button to see its current bind
- Using the name entered in the text field, save the current layout of your buttons, stream, button names etc. this is loaded using 'Load layout' NOTE this feature is disabled in the HTML version
- Load the layout selected from the drop down NOTE this feature is disabled in the HTML version
- Manipulate the objects on screen when true
- While true
- - Hold a controller button (Move the corresponding object to the mouse position)
- - Hold a controller button + left mouse button (Rotate the corresponding object)
- - Hold a controller button + right mouse button (Scale the corresponding object)
- - Manipulate stream  while S is held on keyboard
- - Move control menu while M is held on keyboard NOTE cannot be manipulated except for position
- While 'Edit layout' is true, objects will be adjusted by steps of the number set (for instance, if set to 20, objects will be moved 20 pixels)
- To delete your layouts, open this and delete the desired file
- Open the save file location and go up one folder, then open the custom folder
- Place PNG images within the last folder of each and they will be imported to be used as buttons in Input Display
- If you place more than 1 PNG in a folder, they will be loaded into the same button and be animated in alphabetical order
- You can adjust the speed of your animated buttons by changing the Anim Speed option
- An 'Example Custom Folder' is available on the Input Display Itch.io page :)
- Open the save file location and go up one folder
- Place the font you want the input stream to use here and rename it Font
- The font will be loaded when the application is started

Some features (Saving and Loading and Custom buttons) are available only in the downloadable version.

Custom Costume:

Remember to Rate (Top right of Itch.io page)

Check out more of my stuff: Moonspod

PlatformsWindows, Linux, HTML5
Release date Jun 18, 2020
Rated 4.9 out of 5 stars
(12 total ratings)
Made withGodot
TagsButtons, Controller, display, gamepad, input, ps4, stream, twitch, viewer, xbox
Average sessionA few seconds
InputsKeyboard, Xbox controller, Playstation controller, Joy-Con, Gamepad (any)
AccessibilityConfigurable controls


Download NowName your own price

Click download now to get access to the following files:

InputDisplayWIN1.0.4.zip 15 MB
InputDisplayLINUX1.0.4.zip 15 MB
InputDisplayLINUX1.0.3.zip 15 MB
InputDisplayWIN1.0.2.zip 15 MB
InputDisplayLINUX1.0.2.zip 15 MB
InputDisplayWIN1.0.1.zip 14 MB
InputDisplayLINUX1.0.1.zip 15 MB
InputDisplayWIN1.0.0.zip 14 MB
InputDisplayLINUX1.0.0.zip 15 MB
Example Custom Folder 470 kB

Development log

View all posts


Log in with itch.io to leave a comment.

can I have some help with the tool? its not reading stick inputs but it used to

do you know what version you used originally or the date you downloaded it. Nothing should have changed to stop it working

(1 edit)

I'm using version 1.0.4 or rather the latest one on itch and to test it myself I redownloaded it two days ago roughly so the 25th

Do you remember what version or the date you downloaded it when i was last working?

I do actually it was the 21st of march this year you can see it working in my stream VOD "half assing breath of the wild modded VOD" but the stream after that it fails and I have been trying for a while to fix it myself it stops working on stream on the 8th of april in my VOD "Kiryu doing sick backflips the sequal"

Thats weird, i didnt change anything between that time, iv made public the past versions if you want to try those, they are listed in the same place as the newest versions download. If none are working it may be something on your end.

My antivirus isn't liking this file, can you confirm that it's safe and that it doesn't start to mine bitcoins in the background or smth?

it is only what it is, not a bitcoin miner or anything nefarious 

Hey I just found this and its really great. One thing that would be awesome though is if the analog stick lighting up was reserved for when you were clicking in LS or RS rather than when its moving. This way its clear if you're doing both at the same time, or just one or the other.

I went through the trouble of making an Series controller style preset if anyone else wants to use it:



The most amazing thing i discovered today. Works just flawlessly.

the version on this web page works fine, but the exe sends itself really fast random inputs when my controller's plugged in. i've tried both exes and i'm not sure what's wrong with my switch pro controller :/

good tool

can u do a video showing what it looks like with the fast random inputs? does it happen without you pressing anything?

yeah it's uhh

if you're not busy, can you try running this and let me know if it still does the input spam? its the HTML version but for desktop~  https://moonspod.itch.io/input-display-test/download/6I_NRUK0vGNkISB1_iW7R2UEy6Q...

just woke up, downloaded this, and it did the same thing :(


aah i really dont know why this is happening, it sucks, try one last thing, grasping at straws, there is another download for an fps locked version https://moonspod.itch.io/input-display-test/download/VhOznDZIN3XO8bceLF47pSxPATd...

if this doesnt work, which i doubt it will, i wont be able to help sadly, sorry

Has anyone else had a problem with their analog stick (my left one specifically) staying highlighted when not in use as if it is? I do not have show inactive stick checked, and it resets until i touch the stick again whenever i move the inputdisplay window.

have you tried setting the deadzone for that stick higher? 


yo thanks silly mistake by me i accidentally turned it to 0. Appreciate it!

(4 edits)

I have a dual pc, screen mirror setup, so obs is on the laptop to stream while i game on my main, that being said, is there a way to remove everything, like a see through/minimized mode so i can see it but placed in the corner on my main pc without the background?  i know obs has plugins for url links to remote display overlay, but yours is the only one that displays inputs which is golden.  thank you so much for this amazing software and your time, youre a hero. 

(1 edit)

Unfortunately the window needs to not be minimized in order for it to update, I've looked for a workaround but couldn't find any. 

I can make the window go transparent, would this work? I'll also add a button for making the window borderless so it has a clean edge. Transparent window does hit performance apparently though I'm not noticing any difference, also, if the window were to be captured by OBS while transparent, it must be done so with Game Capture with Allow Transparency enabled, else the background will appear black in OBS.


Cool, I'll get this up today :)


i am so sorry, if there is  something im missing please let me know. Everything is perfect except 1 thing, I made the program smaller and cut it so it doesnt have black edges, its see through, i see the input history and buttons, everythings perfect. Except when i hit borderless, i cant move it. I was going to put it in the left corner, in my head, the flush finish you did take away the options menu and leave just the input box buttons and input history. So i said ill just put in on the right side and have the options off screen, but i cant move the program once borderless is on and have no way to turn borderless once its set in the right hand corner with the options cut. I did just think of using a second monitor as extended, have it partially show on the 2nd one and then click transparent, so ill try that *UPDATE, I tried it, and i cant, as soon as i turn off extended, it forces the program fully back into the screen . This would work if I kept a 2nd monitor on and extended, but i dont have 2 monitors, I extended my laptop on obs as to it being mirrored and captured as a temporary workaround.  I understand its meant for obs and im using it outside of its purposeful realm, and thank you for helping me with that, its all greatly appreciated. i will donate for your time with me, let alone the program itself.

(1 edit)

You can move the options list when edit mode is on by holding m i believe, you can move it to the left side of the window, put the window where you like it, enable borderless and hide the menu by pressing the cross, right click returns it. If im understanding the problem you are having correct that should help?

*EDIT: i realise that would mean when you right click to return the menu it will be offscreen again, ill update so the menu appears where your mouse is when you right click while holding m instead of to a set position.  Also ill change how stretching the window works so the black bars won't show at the edges.

Hello! I was wondering if it's possible to edit the 'STREAM I/R' section so it resembles more like the input history of a fighting game training mode, instead of seeing 'dpad right released', 'square pressed' and so on? You'd instead see the arrow and button icons scrolling down, and also see diagonal inputs as well when 2 directions are held?

Thanks either way.

I've had a mess around to see if I can figure something out, the way I'm doing things currently diagonals are awkward and don't really work properly, if I ever remake this I'll keep this stuff in mind.

As for input stream visuals, while alt codes don't seem to work, if you enable custom font while using this websites font, then copy paste the symbols into the appropriate input name, you can sort of get this effect of button prompts? (you can use custom font by opening the save file location, going up one folder, pasting your font there and renaming font).

Hello! I'm having trouble creating a custom controller stick.
I'm not sure how to set the stick's image outer movement range (not the deadzones), and while I have the same image in the 'pressed' and 'unpressed' folders, the image won't show up.

Is there something I may be doing wrong?

I'm not sure which area you mean with the first part of the question, are you asking for a way to increase/decrease the distance the stick travels when it's moved? I've checked and the images should be importing correctly for pressed and unpressed sticks, both left and right (although the naming of those folders actually means stick and under stick) if you are changing the image with the application open it wont update, you'll need to close and reopen whenever an image is changed.

Sorry for being unclear!
Yeah, customizable travel distance for the stick(s) is what I had in mind.
Also thank you, restarting the software did the trick!

Awesome! I'll add customizable travel distance for sticks in a new version later, it will mean the save file may not be compatible with the new version. :))

Thank you so much for considering it!

I've found something else in the meantime, and wanted to ask if that's intended, or if my computer is acting up...
The graphic for the stick (only the stick, not the base in the 'unpressed' folder' vanishes in these scenarios:

  • tabbing out of / minimizing the application;
  • pressing the stick's button (briefly, when releasing the button);
  • the corresponding deadzone slider is greater than 0 and the stick isn't moved outside of the deadzone range

Here's a reference video of the above.
Feel free to tell me if/when you want it to be deleted!

I think its a quirk of the engine that they reset when you tab back in, ill add an option to always show the stick while its idle. Its intended that it shows then hides when the stick is clicked in to show there was an input and that it hides also when outside the dead zone. But yea, adding that now is easy enough :) did you have any other ideas that might be easy for me to quickly add?

Love what's being done here, but my controller's sticks aren't being registered as inputs. Using a Mayflash Gamecube Adapter. Any possibility that the sav file could be directly writable and I could input those manually?

There is a workaround to this that I have found, which is to use x360ce to map the controller to a normal Xbox 360 controller. A direct solution would be appreciated, but this will work in place of that!

you can edit the .sav with notepad if you choose 'open with', it should be readable for the most part, some bits will be the 'no symbol' symbol, unfortunately i don't know how to add more controllers, it supports whatever controllers Godot engine supports, definitely xinput and dualshock

(1 edit)

Renaming the "circle" input makes the log write the name twice when pressed both in the downloaded and browser version
So "CIRCLE pressed CIRCLE released" becomes "TESTTEST pressed TEST released"
Luckily I have little use of the log but it's a silly bug to not have been squashed

the silly bug has been squashed, new version available ~!

Hello I'm looking to hire someone to write the code for changing a frame/image when a particular button is hit like this.
I have the frames/images I want to attach to all the buttons.

this is actually doable with this, you can rebind the buttons to be whatever they need to be attached too and use the custom controller appearance, placing your images in the folders as needed, there is a video showing where and how this works on the itchio page (not the right hand bar but page body) if this isn't good enough you can email me on the email in my itch profile :))

Hi! I'm having an issue where my inputs from the keyboard aren't displayed while the Input Display window is unfocused, while controller inputs are displayed. Is there a way I can make it work somehow,  or is the program controller-specific?

unfortunately i cant find a way to get gamepad inputs while unfocused for some games aaand it sounds like keyboard inputs are lost completely while unfocused which i was unaware of :((

have to rebind the shoulder buttons even with layout saved, this works great otherwise but that's kind of a dealbreaker ngl

so, it looks like as it is currently it will save and load rebound keyboard buttons but rebinds to another controller button won't be loaded correctly, if i can figure out how to get it to work for controller binds, ill update, sorry ~

Hey, this should be fixed as far as i can test. Your layout saves from the previous version may not be compatible with the latest version however.

This looks awesome, and I have a question about licensing. Is this available under a FOSS license?

Looks great! Unfortunately cant seem to find a way to send inputs to this unless its the focused window? Could be as I'm using vjoy rather than standard controller. Any ideas

sometimes the game will stop inputs being received by Input Display, i've only had it twice do that though. I haven't tested other controllers than the one that i have which is official x360 sorry :x

How do you make the background transparent and how do you make the thing work while playing games?

To make the background transparent, capture the window with your streaming software, if you're using OBS add the filter Chromakey, else add Chromakey however it is done for you, set the key colour the same as the background of your Input Display. It should run and capture get inputs while not focused as long as it is not minimized


This is really handy! I've tried out a bunch of different input display tools, but the button layouts were always just a tiny bit off. This is the first option I've found that gives you complete control over button placement/size/orientation. Not sure if I'll ever be able to go back! 

It might just be me being dumb, but is there a way to have the program automatically load a specific save file on startup? It's a minor complaint, but having to manually load my profile each time is just a tiny bit inconvenient. Sorry if this is just me overlooking something obvious!

It would also be nice if you could change the highlight color of the active buttons separate from the button colors themselves. Having black buttons that light up green when active, for example. And being able to resize the application window would be handy too, though these last two would just be icing on the cake.

But nitpicks aside, this is absolutely fantastic. Thanks for your hard work! <3

(1 edit) (+1)

Quickly enabled the resizing just now, not sure why i turned it off to begin with, might do automatic load later, changing highlight colour is a bit more complicated because of how im changing their colours to begin with.


Hell yeah, thanks! And I wouldn't worry about the highlight color if it's too much of a pain. The default already has pretty good contrast to begin with, so readability is perfectly fine. 


Autoload should be in on non HTML versions :))


Hey, this is a really cool tool. I've been wanting a input display tool that showed input history.


So I've been playing with it more. I was wondering if it's possible to remove inputs that aren't being used? I like this tool a lot for fighting game streams(especially since this is the first input display tool that actually tracks history), so being able to get rid of the analog sticks would be awesome. But I did find a work around. Just moving them into a corner and cropping that section out in OBS.

(1 edit) (+1)

yea! you can shrink their size to 0 when editing your layout or change their alpha channel on the recolor option to 0. :)) updated today to add text alignment and ability to disable unwanted inputs from input stream