Use non-default input mappings when using Play In Editor

I’m working on a first-person game, and I want the default input mappings to be a pretty standard WASD control scheme. But I personally use a different control scheme. If I have the defaults in my project Input settings set to my personal controls, then when I package the game or other developers work on it, they get my controls as the defaults. But if I have the typical WASD input be the defaults, then I personally have to use bindings I don’t prefer while I’m actually developing the game.

And if I customize my controls via some in-game UI when running via PIE, using Add Axis Mapping and Add Action Mapping nodes, those strangely update the default controls, which doesn’t seem like it should even be possible (why would I want in-game code to overwrite my actual stored project defaults? it would be like if changing the gravity at runtime also overwrote my whole project’s default gravity) – I’d expect that to either only affect that play session, or save them to a personal config somewhere.

Is this possible somehow?

You have to setup a controller class which uses the inputs and than you have to define the controller class as default in the world settings or your project settings.

Check out the ue4 documentation for the controller class.

Sadly, neither of those are solutions to my problem. I already have both a custom controller and a key rebinding UI. My problem, as I described, is that I want my project’s default input bindings to be different from the ones I personally use when I Play In Editor.