Description

The root cause appears to be an order of operations change made for [Link Removed] (CL 18309493 in UE5/Main).
On EnhancedPlayerInput.cpp:238, the TriggerStateTracker is combined with state evaluated from the currently processed trigger. Then, line 239 sets the mapping state flag; however, it sets this irrespective of its prior value, leading to triggers on the IAs that are evaluated afterwards ignoring the mapping context state on line 501.

Steps to Reproduce

1. In a project using EnhancedInput, create a BP from the Input Trigger type
    a. Override UpdateState to return None
    b. Override GetTriggerType to return Blocker
2. Add the trigger to an IA
    a. IA_Jump is the fastest
3. In the mapping context, assign two or more keybinds to the action
    a. At least two should use the pressed trigger and one should be the last in the array
        i. Pressed is the easiest to test
        ii. Down will hide the issue as it’s the default
4. In gameplay, non-last keybinding will cause the player to constantly execute the input action, ignoring the Pressed Trigger
5. The last keybinding will act correctly

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-202771 in the post.

0
Login to Vote

By Design
ComponentUE - Gameplay - Input
Affects Versions5.3
Target Fix5.4
CreatedDec 15, 2023
ResolvedFeb 6, 2024
UpdatedApr 16, 2024