Missing test property in C++ implementation of Remove Axis Mapping node

There is a missing test in the “InputSettings.cpp” located inside “Engine\Source\Runtime\Engine\Private\UserInterface”.

It’s located inside the RemoveAxisMapping method :

The scale is not tested and this can causes a bug in some cases when we try to remove an axis inside the same input name with different scales but with the same key.

All axis with the same key are removed no matter what the axis scale is when we send the InputAxisMapping struct to the method.

I have the same issue !

When I remove a key mapping with the same axis name and the same key but differents scales (MoveForward = Positive axis scale 1 .0 / MoveBackward = Negative axis scale -1.0) it doesn’t work as it should.

When I look in the engine source code in the method RemoveAxisMapping I see that the if condition is missing “KeyMapping.Scale == InKeyMapping.Scale”.

Steps to reproduce :

  • Create a new project

  • Create a PlayerController set it as default player controller in gamemode

  • Create 1 Axis Mapping and inside it create 2 entries with the same key but differents scales in input settings

  • Bind a key to RemoveAxisMapping and create an InputKeyMappingAxis struct with the data of one of the two keys created in input settings in the player controller

  • Launch the project and press the key

  • Close the project and look at the input settings, all of the keys with the same key are removed no matter what is the scale.

Please it’s possible to fix that ?

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://epicsupport.force.com/unrealengine/s/

Thanks

There is the bug report : Unreal Engine Issues and Bug Tracker (UE-76794)

Thanks to Ryokath to report this bug !