The Blocker type of input trigger is not working from UE 5.4

It is a problem about the input trigger of Enhanced Input system.

In the document, the Blocker type of input trigger is described as follow:

Blocker types cause the input to fail if the Input Trigger succeeds.

In UE 5.3, it works as intended.
However, from UE 5.4 (also and later 5.5, 5.6, and 5.7), it has lost its functionality.
This problem can be reproduced very easily.

  1. Create a custom input trigger by inheriting from the InputTrigger class.
  2. Override its GetTriggerType function, and set the return value as Blocker
  3. Override its UpdateState function, and set the return value as Triggered
  4. Add this custom input trigger to an input action or an input action in an input mapping context

In UE 5.3, the related event of the input action with the blocker trigger will not fire.
But in the later version, the input event can’t not be blocked.

Here are the images of debug messages which show the differences:


Does anyone have a solution or alternative?

The problem is due to this commit which changed the evaluation behavior.

Now the evaluation is based on the IsBlocking function.

Nevertheless, there’s nothing we can do in blueprint.
If we don’t override the IsBlocking in C++, it will always return false and never block anything, even if the blocker trigger is triggered.

Reckless changes. Lacking any consideration.
Classic Epic