How-To: Author a Combo

Goal: chain three abilities into a light-light-heavy string that a player drives with two input actions, authored in a graph rather than in code.

Prerequisites
How-To: Get the Building Blocks step 7 (the combo system must be enabled), How-To: Wire Combo Input (the input catalog is declared and the controller on your pawn is routing your actions), and at least three UCrimsonGameplayAbility subclasses to use as steps - see Quick Start.

1. Create the combo graph asset

Content Browser -> right-click -> Crimson -> Ability System -> Crimson Combo Graph Asset. Double-click to open the graph editor.

The combo graph editor with the entry node, three step nodes and their transitions.
  • The Entry node is the starting handshake. Set its Input.Action, Direction and Kind - this is what starts the combo from a rooting ability. It can carry Modifier Alternatives exactly like a transition (see How-To: Wire Combo Input).
  • Add Step nodes (right-click -> Combo Step Node) and point each StepAbilityClass at one of your abilities.
  • Drag a wire between two steps; the schema inserts a Transition edge node. Click it to set its input, fire mode, priority and conditional augments.
  • Each step shows five tracks. Startup, Active and Recovery are that step's phase boundaries: at runtime they drive the step's live phase, a Combo.Phase.* tag on the owner's ability system, and the two phase event hooks. Transition Window is the track that gates input - a follow-up press chains during it. Input Buffer is a read-only look-back band showing how early a press still counts toward that window. Drag the bars or type exact values.
  • Phases are opt-in per step. Set Recovery End to 0 and that step reports no phase, applies no phase tag and fires no phase hook. A step node you add starts with boundaries already authored, so opting out is a deliberate edit. Full recipe: How-To: Drive Behavior from Step Phases.
  • The asset compiles on save. IsDataValid catches missing targets, ambiguous transitions and inputs that are not in the catalog.
Retiming an animation is safe
Phase and window values are authored in seconds against a specific montage. If that montage's length changes, the plugin rescales every boundary proportionally so they stay on the poses you tuned them against - whether the retime happens with the combo editor open or closed.
Verify
Save. The asset reports no validation errors and each step node draws its montage timeline.

2. Root the combo on an ability

The graph describes what comes after the entry. A rooting ability declares which combos it can start and when its own cancel window is open.

Open the ability that should start the combo. In Class Defaults, find the Crimson | Combo category and expand Combo Extension:

  • Add an entry to Default Combos and set Combo to your graph asset. Leave Start Unlocked ticked unless the combo is progression-gated.
  • Transition Open / Transition Close are the seconds within this ability during which the combo's starting handshake can fire.
No Combo category?
The whole category is hidden until the combo system is enabled. See How-To: Get the Building Blocks step 7.
Verify
Select the rooting ability. Default Combos lists your graph asset.
Verify
Play In Editor. Press the rooting ability's input, then the transition input inside the window - the second ability activates and the first is canceled. (Input not arriving? Recheck How-To: Wire Combo Input.)

Then Play As Client with 2 players and repeat on the client. The chain must run there too: the client predicts each step and the server confirms it.

See also

  • How-To: Wire Combo Input - the catalog, routing, direction and chords this graph relies on.
  • How-To: Gate Combo Branches with Conditions - only chain if the player actually connected.
  • How-To: Tune Combo Input Feel - fire modes, tap/hold, buffering.
  • How-To: React to Combo Events - cues, messages and gameplay events per step.
  • Concept: Combo System - the model behind the graph.