Unreal Engine 5 · Blueprint → C++
Enhanced Input Trigger Events in Unreal Engine 5 C++UE Docs
ETriggerEvent selects when a bound function fires: Started on press, Triggered while held, and Completed on release. You bind the same UInputAction to different functions per event, which is the standard pattern for press-and-hold input like jumping.
Blueprint node & C++ equivalent
// ETriggerEvent values you bind against:
// ETriggerEvent::Started -> press / key down
// ETriggerEvent::Triggered -> while held / fires each tick
// ETriggerEvent::Completed -> release / key up
Input->BindAction(JumpAction, ETriggerEvent::Started, this, &AMyCharacter::StartJump);
Input->BindAction(JumpAction, ETriggerEvent::Completed, this, &AMyCharacter::StopJump);What are Enhanced Input trigger events?
Trigger events are the phases an Input Action passes through. ETriggerEvent::Started fires once on key down, ETriggerEvent::Triggered fires while the action is held and can repeat each tick, and ETriggerEvent::Completed fires once on key up. Choosing the right event decides whether your callback runs on press, during hold, or on release.
The C++ equivalent
Pass the event as the second argument to BindAction. To split a jump into start and stop, bind Input->BindAction(JumpAction, ETriggerEvent::Started, this, &AMyCharacter::StartJump) and Input->BindAction(JumpAction, ETriggerEvent::Completed, this, &AMyCharacter::StopJump). The same JumpAction drives both because the trigger event distinguishes press from release.
When to use each event
Use Started for one-shot actions on press, such as beginning a jump or firing once. Use Triggered for continuous input like movement that should update every frame the key is held. Use Completed for release logic, such as stopping a jump or ending a charge. A single action can bind all three to different functions.
Frequently asked questions
What is the difference between Started and Triggered in Enhanced Input?+
Started fires once when the action begins, on key down. Triggered fires while the action is active and can repeat each tick, which suits continuous movement input.
How do I detect key release with Enhanced Input in C++?+
Bind the action with ETriggerEvent::Completed. That event fires once when the key is released, making it the place to put stop or end logic like StopJump.
Can one Input Action bind to multiple trigger events?+
Yes. Call BindAction once per event with the same UInputAction and different handler functions, for example Started to StartJump and Completed to StopJump.