Hi everyone,
I recently noticed these bugs/problems and would like to avoid ripping everything out of our project files. Does Somebody know workarounds to these problems?
Problem 1:
Enhanced input may not execute on fast button taps (press+release).
On low framerates this can causes problems with registering a double click.
I tested it on UE 5.6 in a packaged game with low frame rates (~5 FPS) by spawning thousands of Actors simulating a workload.
But it’s the same with capping the framrate with the console command t.maxFPS.
Problem 2:
Started and Completed event won’t execute in same frame/tick. Between them is always at least one frame delay.
This may causes a unnecessary delay, if I want something to trigger on button release.
Problem 3:
get action value nodes are updated too late by one frame. If print on started the action value is false on completed it is true. the next frame it is false again.
The old Keyboard Events don’t seem to have these problems and execute all buffered inputs for a button in the same frame. Even multiple button down/up events.
I’m not really familiar with hardware input management, but I would propose different input modes in the project settings:
mode 1: the problematic way that it is now (for legacy compatability)
mode 2: adds a new execution pin that executes once and we get ActionValue + ActionCounters
ActionValue: a bool to represent the latest state
ActionCounters: 2 integers that count how many presses and releases each have been registered during calculation of the last frame
mode 3: all buffered inputs will actually execute the Started and Completed event, like the old input events do
====================================
Update - 07.08.2025
I setup a Trigger Blueprint and printed out the IsActuated bool + the events of enhanced/depricated input + the tick (that executes after the inputs)
The Trigger Blueprint only executes when I press the button.
Good thing is: It actually executes when I press/release during one frame.
Bad thing is: It gives me the value false, which I assume is the latest state. Also, strangely it executes the frame after again, even though the state doesn’t change.
So I would derive that it actually registers a press/release in their system, but doesn’t forward it correctly into Blueprints.
Outputlog:
double click in one frame
####### Tick #######
####### Tick #######
TriggerValue: false
Depricated_Press
Depricated_Release
Depricated_Press
Depricated_Release
####### Tick #######
TriggerValue: false
####### Tick #######
####### Tick #######
holding mouse button for 3 frames
####### Tick #######
####### Tick #######
TriggerValue: true
Enhanced_started
Enhanced_trigger
Depricated_Press
####### Tick #######
TriggerValue: true
Enhanced_trigger
####### Tick #######
TriggerValue: true
Enhanced_trigger
####### Tick #######
TriggerValue: false
Enhanced_completed
Depricated_Release
####### Tick #######
####### Tick #######