Newly added input mapping is not available when player updates game

So here’s the thing. Recently we’ve added a new input mapping in our game, which overlaps with other input mappings but is used in completely different context. After upgrade is pushed some players who have changed their input bindings in game were not able to use newly added mappings.

I’ve done a bit investigation in a separate project and here’s my results.

I’ve created an actor which manages input and placed in the world

Input mappings are following:

338359-mapping.png

I’ve played the game once and pressed space key. It rebound my test mapping to Right Mouse Button and saved config in Saved/Config/Windows/Input.ini

[/Script/Engine.InputSettings]
ActionMappings=(ActionName=“TestMapping1”,bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=RightMouseButton)

Backed up input.ini

Added a new mapping to the game:

338360-newmapping.png

Added a logic in my actor to print “Something else” when pressed.

At this point Saved/Config/Windows/Input.ini is empty.

So let’s assume I’m pushing this update to a player which already played the game and changed mappings. It means their Input.ini is not empty. I can’t wipe it, as it will break custom mappings set by user (which is bad).

To simulate it, I’ve closed the editor and copied input.ini from backup

When opening the game, I can’t see newly added mapping in input settings. And obviously pressing that key won’t do anything. As far as I understand, UE finds out changes done by user and do not load default input. Or otherwise it loads default and overrides it with user created one while wiping anything new. The issue is that it seems it does this based on the actual mapped key and not the action name, thus my newly added mapping never gets to end user.

Am I doing something wrong? Is there a way to overcome that issue other than creating a custom solution (or never adding a new mapping?). Any help is appreciated.

Thanks for the help. Actually that’s what I’ve originally thought too. But my experiment above shown opposite result. I believe there is a case, for which it’s made like that, but I can’t figure out it.
I think, what you’ve describe counts as a custom, as I’d have to save custom binding somewhere else and load them when game starts. I hoped that I’m doing something wrong. Regardless, thanks again for help.

I’m pretty sure the mapping is based on name, because you can have everything mapped to one key if you want.

I spent quite a long time fiddling with this stuff on my game, and came up with a combination of config files and the save game. It’s the best of both worlds because you can add an extra layer of flexibility.

I don’t know if that counts as custom.