Describe the project you are working on
A game that allows remapping a joypad
Describe the problem or limitation you are having in your project
I'd like to present the player with a different mapping menu for joypads focusing on available buttons/axis:

or even

instead of the less easy to read and use action-based list menu:

Describe the feature / enhancement and how it helps to overcome the problem or limitation
Exposing the joypad's abilities would suffice creating other menu types.
Pros of the joypad menu over a list menu:
- it's easier to see which button/axis is mapped to which action
- super helpful to remember what you can do, especially when you stopped playing a game for a while
- which button/axis is still umapped
- reserved buttons/axis can be visually communicated, so the player won't even need to think about binding them
- no need to reserve a cancel button, or rely on a timer, to cancel a pending assignment
- when choosing a mapping for a button, the list of possible actions can be limited to those which make sense
furthermore:
- If the player uses a joypad which is not compatible with a selected mapping, a warning notification can be shown. Or even disable such a mapping profile outright. And even provide the means to create a copy of one mapping with just the valid mappings
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Example implementation: godotengine/godot#100791
If this enhancement will not be used often, can it be worked around with a few lines of script?
No it can't, the two joypad ability centered menus cannot be implemented reliably w/o this (or an equivalent).
Currently, I see two undesirable options:
option 1:
It's possible to do the street fighter menu by simply listing all JoyButton/JoyAxis that Godot supports,
but then the player might try to bind JOY_BUTTON_MISC1, which their joypad doesn't have, or any JOY_BUTTON_PADDLE*, or mix up JOY_BUTTON_GUIDE with JOY_BUTTON_BACK.
It's improper to expect every player to fully understand joypads, especially when some joypads have their own little gimmick buttons that are not sent to the computer (or engine).
If an option is listed, it should be available…
option 2:
One can attempt to implement joypad ability centered menus by relying on joypad names, like this PR.
Sadly, the names vary depending on platform, driver and even version.
The PR mentioned above would fall flat for the JOY_BUTTON_PADDLE* buttons. As well as any joypad not created by a major brand.
Is there a reason why this should be core and not an add-on in the asset library?
At the moment, it's not possible to create a joypad ability centered menu that won't cause confusion. Or preventing to select a mapping profile that's incompatible with a joypad. The necessary, and already existing feature, is not exposed by Godot
Describe the project you are working on
A game that allows remapping a joypad
Describe the problem or limitation you are having in your project
I'd like to present the player with a different mapping menu for joypads focusing on available buttons/axis:
or even

instead of the less easy to read and use action-based list menu:

Describe the feature / enhancement and how it helps to overcome the problem or limitation
Exposing the joypad's abilities would suffice creating other menu types.
Pros of the joypad menu over a list menu:
furthermore:
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Example implementation: godotengine/godot#100791
If this enhancement will not be used often, can it be worked around with a few lines of script?
No it can't, the two joypad ability centered menus cannot be implemented reliably w/o this (or an equivalent).
Currently, I see two undesirable options:
option 1:
It's possible to do the street fighter menu by simply listing all
JoyButton/JoyAxisthat Godot supports,but then the player might try to bind
JOY_BUTTON_MISC1, which their joypad doesn't have, or anyJOY_BUTTON_PADDLE*, or mix upJOY_BUTTON_GUIDEwithJOY_BUTTON_BACK.It's improper to expect every player to fully understand joypads, especially when some joypads have their own little gimmick buttons that are not sent to the computer (or engine).
If an option is listed, it should be available…
option 2:
One can attempt to implement joypad ability centered menus by relying on joypad names, like this PR.
Sadly, the names vary depending on platform, driver and even version.
The PR mentioned above would fall flat for the
JOY_BUTTON_PADDLE*buttons. As well as any joypad not created by a major brand.Is there a reason why this should be core and not an add-on in the asset library?
At the moment, it's not possible to create a joypad ability centered menu that won't cause confusion. Or preventing to select a mapping profile that's incompatible with a joypad. The necessary, and already existing feature, is not exposed by Godot