Skip to content

Clarify the usage of controller echo events#11950

Open
Nintorch wants to merge 1 commit intogodotengine:masterfrom
Nintorch:joypad-echo-events
Open

Clarify the usage of controller echo events#11950
Nintorch wants to merge 1 commit intogodotengine:masterfrom
Nintorch:joypad-echo-events

Conversation

@Nintorch
Copy link
Copy Markdown
Member

@Nintorch Nintorch commented Apr 25, 2026

This PR modifies the controller input tutorial to refer to the new project settings to enable the controller echo events. See the linked PR for more details.

@Nintorch Nintorch added this to the 4.x milestone Apr 25, 2026
@Nintorch Nintorch requested review from a team as code owners April 25, 2026 09:47
@Nintorch Nintorch added area:manual Issues and PRs related to the Manual/Tutorials section of the documentation topic:input waiting on pr merge PRs that can't be merged until an engine PR is merged first labels Apr 25, 2026
@AThousandShips AThousandShips removed this from the 4.x milestone Apr 25, 2026
at regular intervals. This can be accomplished
with the help of a :ref:`class_Timer` node.
Unlike keyboard input, holding down a controller button such as a D-pad direction or
moving a controller axis over a specified deadzone will **not** by default
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although now that I think about it, this will conflict with the way the main project setting is set up for new projects:

  • input_devices/joypads/joypad_echo_events/send: If true, the engine will send joypad echo events after the user has pressed the joypad buttons or moved the joypad axes for long enough, false by default for existing projects and true by default for newly created projects;

We'll have to discuss it, maybe we can disable this project setting for newly created projects too.

Comment thread tutorials/inputs/controllers_gamepads_joysticks.rst Outdated
This PR modifies the controller input tutorial to refer to the new project settings to enable the controller echo events.
@Nintorch Nintorch force-pushed the joypad-echo-events branch from 074b336 to 79821de Compare April 28, 2026 11:51
Comment on lines +211 to +215
Unlike keyboard input, holding down a controller button such as a D-pad direction or
moving a controller axis over a specified deadzone will **not** by default
generate repeated input events at fixed intervals (also known as "echo" events).
This is because the operating system never sends "echo" events for controller input
in the first place, and in Godot controller echo events are sent by the engine code.
Copy link
Copy Markdown
Member

@Calinou Calinou May 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explain why echo events are sometimes desired:

Suggested change
Unlike keyboard input, holding down a controller button such as a D-pad direction or
moving a controller axis over a specified deadzone will **not** by default
generate repeated input events at fixed intervals (also known as "echo" events).
This is because the operating system never sends "echo" events for controller input
in the first place, and in Godot controller echo events are sent by the engine code.
Unlike keyboard input, holding down a controller button such as a D-pad direction or
moving a controller axis over a specified deadzone will **not** by default
generate repeated input events at fixed intervals (also known as "echo" events).
This can be an issue for user interfaces with sliders or long lists, as they
become harder to navigate.
This occurs because the operating system never sends "echo" events for controller
input in the first place, and in Godot controller echo events are sent by the
engine code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:manual Issues and PRs related to the Manual/Tutorials section of the documentation topic:input waiting on pr merge PRs that can't be merged until an engine PR is merged first

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants