Input Action Mapping Not Firing From Second Assigned Key

I have created a system that allows players to assign keys to do certain actions, say turn a wheel clockwise. There can be multiple wheels, and the player can assign different keys to turning the wheel clockwise, so “W” to rotate wheel 1 clockwise and “A” to rotate wheel 2 clockwise.

The way this is achieved is by dynamically changing the Action mappings so that both W and A can trigger a RotateWheel input event that the Wheel actors can listen out for. They can then see which key W or A triggered the event, and only rotate if its W for wheel 1 or A for wheel 2.

The problem is that after holding down W, causing wheel 1 to spin, it seems that pressing down on A no longer triggers any new RotateWheel input events, until after W is released. It seems that input action events are only triggered once when the correct key is hit, and consequent key hits won’t trigger any new input action events until the first one is released. Is this the intended behaviour for INput Action Mappings or am I doing something wrong?

Hello! You are right, if Input Action is in Pressed state, then another input for same Input Action do nothing. However if you have two pressed input keys and play with them behaviour is a little bit joky. You can implement selective logic with load params instead of Key
comparison, take a look at this Input Action Binding which also pass FString param:

		FInputActionBinding ActionBindingOneParam("Block", IE_Released);
		FInputActionHandlerSignature OneParamActionHandler;
		OneParamActionHandler.BindUObject(this, &AMyCharacter::OnMyCharacterActionReleased, FString("Block"));
		ActionBindingOneParam.ActionDelegate = OneParamActionHandler;
		PlayerInputComponent->AddActionBinding(ActionBindingOneParam);