{ }Blueprint → C++

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

C++
// 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.

Related Input (Enhanced Input) nodes

View all Input (Enhanced Input) nodes →