Players able to change key bindings via Blueprint?

Hey!

I have achieved almost everything I wanted with my game via Blueprint, except being able to change the ini values that define the input mappings and video settings. The video settings I can change via console command that executes through a Blueprint, so I’m not too worried about that (even though it would be fantastic to be able to set resolution in the ini itself via Blueprint to stop monitors from flickering after launching the game)…

Anyway my question is this: HOW or WHEN will I be able to change input keys via Blueprint? Are Epic at all trying to adress this at any time? Or do I have to use third party plug ins to do this? Putting out a quality PC game nowadays requires an option for the player to change input keyboard and mouse controls in the settings and this seems to be impossible via Blueprint right now. If Epic would add this feature, this would finally make the usage of BP complete.

Or is this feature already there and I haven’t found it?
Just to make this clear: YES I know Rama made a plug in, but this for some reason crashes my engine and I don’t want to rely on third party software. I would love to see a solution from Epic for this missing feature! Thank you very much!

Rama published his code on Github. You can copy the important files into your project (don’t forget to read the “licence”). Then you don’t need to take all plugin files (no crashes) and you can edit the source like you want to solve your problems.

If I were a programmer that would know how to do all that, I wouldn’t have to rely on a Blueprint solution, would I? :wink:

Also I’ve tried Rama’s method and it seems unpolished and a bug prevents it from being useful to end users. (To reproduce, simply bind an Axis with -1 and 1 scale to the same key and notice how the axis scale will not save as intended but instead it will save both axis with the same value, rendering the system broken beyond repair since you cannot recreate or restore axis only change existing ones)

For others that are looking for the same thing, a quick explanation of what is involved to support this functionality.

The user input bindings are stored in a file named saved/config/Windows/Input.ini and the only way to change them is to either use the editor or manually/programmatically change the file contents. Rama’s plugin wraps file access and input mapping in way that makes it possible to read/write input bindings from/to the file from a blueprint.

See this forum post for current links to the plugin:
https://forums.unrealengine.com/development-discussion/blueprint-visual-scripting/4014-39-rama-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required

Tip: Once the plugin is installed, you are looking for blueprint functions named VictoryRebindAxisKey and VictoryRebindActionKey. Good luck!