Enhanced Input key with modifier?

I am trying to use the Enhanced Input plugin but I can’t find a way to add a mapping for a keyboard key with a modifier to the input mapping context. For example I want to add two separate input actions and use shift+A and alt+A for them respectively.


So I actually found out how to do this but I’m not a big fan of this approach since the whole idea behind input actions is that they are input method/key binding agnostic.

I noticed the “Chorded Action” trigger and this basically allows you to have an action only triggered when another one is triggered. Using these I created separate input actions for my keyboard modifier keys. They all have the same properties. I unchecked “Consume input” but this depends on your needs.

I then created two input mapping contexts. I add the keyboard modifier action mappings to the keyboard mapping context so that I can just always have that mapping loaded and make use of those actions in other mappings.

Then I added some actions that have the same key assigned to them but only one of them triggers based on the keyboard modifier because of the “Chorded Action” trigger.

I added the context mappings and added event handlers for the input actions. Note that I had to use a branch to check for the action value when coming from the Started exec pin because the started event may be called with a false value. I don’t know why but I guess this is just how it comes together. If you use the triggered exec pin it seems you can go without it. I used Started here because i like to have a single event instead of all the time but this depends on your use case.

I also used a higher priority for the keyboard action mapping context so make sure it gets the input first and together with the “Consume Input” being false I can still later use any modifier key for any other key binding.

Now I can press Shift+1 to activate ability 1 and Alt+1 to activate ability 2!


WOW, this is actually so annyoing, especially with widgets. Hope this will get addressed.