Open Perryplats opened 3 months ago
Can't open the MRP, since it is missing a project.godot
file. It does still have the .godot
folder. When uploading, you're supposed to keep the .godot file and delete the folder.
I don't think this is a bug. To test this behavior, all you need is a Control scene with two buttons to navigate between. Select one of the buttons with mouse or with grab_focus()
. You can test controller inputs by using the d-pad to navigate the buttons. MRP: mrp-controller-bug.zip
I tested first-party ps5 and xbox controllers on this simple scene in 4.2.2 and 4.3. In all cases, if a single controller is plugged in, it works whether launched from the project manager or the editor itself. Tested on Windows 10.
@Perryplats, do you have multiple controllers plugged in at once?
Most of the default controller UI inputs are bound to Device 0
only, not all devices. So a given controller will work or not, depending on whether it gets flagged as Device 0. Which controller gets flagged as Device 0 may differ between editor and running from project manager; I haven't tested. Which controller is flagged as Device 0 may have also changed between 4.2 and 4.3, or you simply may not have been paying attention to the order controllers were plugged in.
As long as your project is singleplayer, I would recommend changing controller inputs to use all devices, not device 0.
Hey sorry about the upload mistake, I'm new to Godot and using Github for something other than downloads, I will update with the correct file.
as for the controllers, I only had one controller connected at a time and all of the inputs are set as all devices
I think I've narrowed it down a bit: in 4.3, when launching from the editor, the xbox controller does not work. in 4.3, when launching from the project manager, the xbox controller does work. in 4.2, the xbox controller works when launching from either. in 4.3 and 4.2, the ps5 controller works when launching from either.
However, I have found that the issue seems to be steam input messing with it (I am using the steam version), when I disable steam input the xbox controller works fine regardless if its launched from the project manager or the editor
(thanks to @thorncreature for helping me with this on discord!)
Assuming we can reproduce this, we might want to add a note in the docs somewhere to warn about using steam input with the steam version of godot.
I suggest installing ValvePlug and setting the Steam Input profile to Off in the Godot properties on Steam (right-click it in the library).
Unfortunately, Valve doesn't provide a way for games/applications to opt out of Steam input by default.
I'm having the same issue. I'm not sure I can help, but I found out many potential hints.
My wired controller is perfectly recognized by Linux, KDE, the Godot editor (native binary from website), Steam (native package) and controller test websites. It is a Gulikit KingKong Pro 2. I know it's not failing because I just bought it today and played other games just fine. I tried with another generic controller and it is affected too.
I've checked the Input Map (part of project.godot) and it doesn't seem to be wrong. All entries are correct and they are indeed being updated if I add/remove actions. These are also detected in-game as long as they're keyboard/mouse bindings.
Control nodes ignore the D-Pad input, even though, calling the following code proves the game does know about the controller:
func _ready() -> void:
for joypad in Input.get_connected_joypads():
print(Input.get_joy_info(joypad))
(In "Switch Mode"):
{ "vendor_id": 1406, "product_id": 8201, "raw_name": "Nintendo Co., Ltd. Pro Controller" }
(In "Xbox/Windows Mode"):
{ "vendor_id": 1118, "product_id": 654, "raw_name": "Microsoft X-Box 360 pad" }
Vibration, by calling Input.start_joy_vibration(0, 1, 1, 5)
works without any issues on 4.3.
Strangely, it appears that _events like Input.get_vector() or Input.is_actionpressed() in any part of the code are never triggered by controller input. But checking for controller input vaguely (by checking the class of the event) does work?:
func _unhandled_input(event: InputEvent) -> void:
var move_dir = Input.get_vector("move_left", "move_right", "move_forward", "move_back")
print(move_dir)
if event is InputEventJoypadMotion:
print("Moved stick")
Moved stick (0, 0) Moved stick (0, 0)
(The vector assigned on joystick input always remains as (0, 0). It should assign a normalized direction unless input wasn't detected at all)
This is the output by triggering the "move_x" actions with keyboard:
(-0.707107, 0.707107) (0, 1) (0.707107, 0.707107) (1, 0)
I think this issue is specific to Godot 4.3, as I never had it some weeks ago when running 4.2. I downloaded the 4.2.stable binary from the official website, and that specific code snippet does work as intended:
Moved stick (0.887326, -0.27069) Moved stick (0.912093, -0.355541)
Also, previous backups with the 4.2 project detect joypad input perfectly. I'm not sure this could be related to Steam, though. I tried many times with the Steam client open/closed and with Steam Input Enabled/Disabled. Same results. Making the Input actions detect the controller "0" or all doesn't solve the issue.
My System Info:
Godot v4.3.stable - Fedora Linux 40 (KDE Plasma) - Wayland - Vulkan (Forward+) - dedicated AMD Radeon RX 6600 (RADV NAVI23) - 12th Gen Intel(R) Core(TM) i5-12600KF (16 Threads)
Tested versions
Bug occurs in 4.3, doesn't appear 4.2
System information
Godot v4.3.stable (77dcf97d8) - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 (NVIDIA; 32.0.15.6070) - AMD Ryzen 7 7800X3D 8-Core Processor (16 Threads)
Issue description
So I made a basic game following a tutorial, before the update controller worked fine both when launched from project manager and from the editor, but in 4.3 it runs fine from the project manager, but inputs aren't detected from the editor.
keyboard works fine regardless in 4.3
I am using an xbox series controller for this
*Edit, tried this with a ps5 controller and this issue doesn't occur with it
The input mapper does detect the controller, but it doesn't seem to effect it in-game
edit I think I've narrowed it down a bit: in 4.3, when launching from the editor, the xbox controller does not work. in 4.3, when launching from the project manager, the xbox controller does work. in 4.2, the xbox controller works when launching from either. in 4.3 and 4.2, the ps5 controller works when launching from either.
Steps to reproduce
Run the game with a controller and try to use it from the editor (in this case with d-pad or the left joystick)
Minimal reproduction project (MRP)
2d-project-start.zip