Controller Is Passing extra keyboard inputs

Godot Version

4.2.1

Question

I’m running into a strange issue adding both controller and keyboard support for my game.
I have a 3 player coop game, where you can play either using WASD, Arrows, and mouse, or with 3 controllers.
I’m trying to implement the controller support now and the issue I’m running into is that the controllers are automatically passing in keyboard inputs as I use them.
For example, using the left joystick is both detected as gamepad inputs, and as normal keyboard arrow keys. The A button gets detected as enter, etc.
This means that the character that is usually controlled by arrow keys is recieving arrow key inputs any time any controller uses its joystick.
Confirmed the issue by going to a keyboard testing site, and confirmed the controller was passing Keyboard inputs to the computer.

Any ideas on how to address this issue? Can I block the controllers from sending in keyboard inputs? Seems like strange behavior.

Extra Info

I’m using a gulikit king kong 2, but I think most controllers behave this way on windows

(i also think that maybe there should be an input tag for topics on the forum)

This is a relatively common issue when using third party Joystick middleware, like Joy2Key, DS4Windows, or the most likely culprit: Steam. Do you have any such software installed or running in the background? Check your Steam big-picture settings for desktop input and verify that it isn’t configured to translate joystick inputs to keyboard inputs.

Hope this helps to resolve your issue.

Regards,

1 Like

Thanks For the input (no pun intended)

Steam is in fact the culprit. This puts me in a tough spot though, because if I’m running into this problem, then players are most likely going to run into it too. I’ll have to figure out if the players are using controllers and shut off the arrow key inputs in that case. Bummer because I was really hoping I’d be able to keep things stupid simple and just not care whether the player was using a controller, and just listen to inputs from both. I’ll update once I have a solution working

1 Like