How-To: React to Combo Events

Goal: play a cue when a step starts, tell the UI when a transition window opens, and fire a gameplay event when the combo completes - without writing controller code.

Prerequisites
How-To: Author a Combo.

1. Pick a hook

Every event object subscribes to one or more of six hooks via its Hook Mask bitmask.

HookFires when
StepEnteredThe step ability activated.
StepExitedThe step ended - carries whether it was cancelled.
TransitionWindowOpenedElapsed time crossed the step's Transition Open. Use for "press now" cues.
TransitionWindowMissedThe window closed with nothing queued.
TransitionFiredA transition was taken out of this step.
ComboCompletedAn End node was reached - the clean-finish path, distinct from a timeout reset.

2. Attach an event to a node

In the combo graph, right-click a Step or End node and add a sub-node. Four shipped event types cover most needs.

Event typeDoes
UCrimsonComboEvent_GameplayCueExecute, add or remove a GameplayCue. Can auto-remove on step exit.
UCrimsonComboEvent_GameplayMessageBroadcast an FCrimsonComboEventMessage on a message channel - the UI-facing option.
UCrimsonComboEvent_GameplayEventCall HandleGameplayEvent on the ASC, so abilities with a matching trigger activate.
UCrimsonComboEvent_AugmentGrant or remove augments with a lifetime and stacking mode.

Select the sub-node and set Hook Mask to the hooks you want, then fill in the type-specific fields. b Fire On Simulated Proxies controls whether remote clients run it - leave it on for cosmetics, off for anything authoritative.

Verify
Add a GameplayMessage event on StepEntered and listen for the channel. It fires once per entry into that step.

3. Scale damage as the string continues

This is the common request and it needs no condition. Use an augment event with a lifetime and potency stacking - each transition re-grants, StackCount increments, and the augment's level scales as BaseLevel + (StackCount - 1).

  • Add a UCrimsonComboEvent_Augment on StepEntered.
  • Set Lifetime to UntilComboEnds so it survives the whole string.
  • Set Stack Mode to Potency.
Conditions are the other half
This scales whenever the player presses in time. To scale only when they actually connected, gate the grant with a transition condition - see How-To: Gate Combo Branches with Conditions.
Verify
Run a three-step combo and print the augment level at each step. It climbs 1, 2, 3.

4. Add events at runtime

Progression systems can overlay events onto a baked graph without editing the asset.

Call Add Dynamic Event To Node on the combo controller with the combo, the node id, an event instance and a Source Tag you can later revoke by. Remove Dynamic Events By Source clears a whole perk in one call.

Verify
Add a dynamic event, then Play As Client. The event runs and survives a rejoin because it is replicated, not local.

See also

  • How-To: Author a Combo
  • How-To: Gate Combo Branches with Conditions
  • How-To: Create and Equip an Augment