Action Set Editor

Documentation Unreal Engine AI Actions Debugging

Lay a moveset out as cards, wire the combos between them, and watch a live enemy score every card while the fight runs.


One canvas for the whole moveset: a card per move, a wire per combo, and live scores drawn on those same cards while a real enemy fights.

Set it up

60 seconds
  1. 1

    Open an Action Set on its canvas

    Double-click the DA_ActionSet_Grunt you created on the Action System page and it opens as cards.
    DA_ActionSet_Grunt
    Double-click to open
    This is the canvas that opens, not a details panel: an orange card per action, chained where one is meant to follow another.
    TreeSingleAttack
    BT Sequence (1)
    Weight1
    Cooldown15s
    Best range50 to 150 cm
    Scorers1
    Gates1
    AbilityDash
    Ability: GA_SEC_DodgeBack_C
    Weight1
    Cooldown15s
    Best range0 to 150 cm
    Scorers2
    TreeDoubleAttack
    BT Sequence (1)
    Weight1
    Cooldown20s
    Best range150 to 500 cm
    Scorers1
    Gates1
    TreeDisabled Action
    BT Sequence (1)
    Weight1
    Cooldown20s
    Best range250 to 500 cm
    Scorers2
    x1.5»
    The Action Set editor's own canvas. SingleAttack chains into Dash with an x1.5 bonus, and into DoubleAttack on an Immediate link, which the double arrow marks. Each dot opens that one link for editing. An unchecked Enabled box grays a card out without deleting it.
  2. 2

    Add a card

    Right-click the empty canvas and choose Add Action. A card lands where you clicked, named Action_1, already carrying a Gameplay Ability execution method.
    Select it and press F2 to rename it to something you will recognise in a log, such as LightAttack.
  3. 3

    Fill in the panel on the right

    With one card selected, the Details panel shows that action alone. Set Ability Class to GA_SEC_MontageAbility, then set the Montage on the payload that appears under it.
    DA_ActionSet_Grunt
    Execution
    Ability ClassNone
    Montage
    None
    One card selected, one action in the panel.
  4. 4

    Wire a combo

    Drag from the right edge of one card to the left edge of another. The first action prefers the second as its follow-up, at a Bonus Multiplier of 1.5.
    TreeFake Attack
    TreeQuick Attack
    x1.5
    Dragging from Fake Attack's right pin to Quick Attack's left pin: the feint opens the guard, and Quick Attack gets a score bonus for a short window after. The dot on the wire reads the bonus, and clicking it edits that link on its own.
  5. 5

    Press Play and watch it decide

    The Watching picker above the canvas lists every AI running this Action Set and latches onto the first one it finds. Cards light up as the fight runs: green on the move executing, amber on the one that scored highest, a countdown on anything cooling down.
The Watching picker fills from AI whose active Action Set is this asset. An enemy reaches this set through its Enemy AI Config, an equipped weapon, a runtime override, or the Default Action Set on its Action Set component. A picker stuck on None while the game runs means nothing resolved to this asset. See Action System and Getting Started.

Reading a Card

One card stands for one action, and everything on it comes from that action's settings.
RowShows
ChipWhich family of execution method runs it: Ability, By Tag, Burst, Tree, Custom, or Unset.
TitleThe action's Action ID.
Execution lineThe execution method's own name, such as the ability class it runs. Red when nothing usable is set.
Weight, CooldownSelection Weight, and Cooldown Duration in seconds. Cooldown reads none at 0.
Best rangeThe sweet spot of the action's Distance Scorer, in centimetres. Absent when the action carries no Distance Scorer, which means it ignores distance.
Risk, RepeatsRisk Penalty when it is something other than 1, and Max Consecutive Uses when one is set.
Scorers, GatesHow many of each the action carries.
Recovery, HookIts own recovery time when it overrides the config's, and whether a lifecycle hook is attached.
Rows appear only when they have something to say, so a plain attack card stays short. Hover the card for its execution method, selection weight and cooldown as sentences, its risk penalty and repeat limit when either is set, and one line per chain link with the bonus that follow-up receives.
A card greys out when Enabled is unticked. A warning triangle appears when something about the action would stop it working, and hovering the triangle names which:
  • No execution method, or one missing a field it needs to run.
  • A chain link naming an action this set does not define.
  • Selection set to Manual Only on a card that something wires into, since a chain into it changes nothing.
  • Selection set to Chain Only on a card nothing wires into, which leaves automatic selection no way to reach it.
A card set to Chain Only says so on the wire that feeds it: select that link and the details panel adds a note naming the chain as the only route automatic selection has into that action.
AdvancedZoom, layout, and where card positions live
The fine rows drop away as you zoom out, leaving the chip and the title, so a large moveset stays readable at a distance.
Card positions are editor data saved on the asset. An Action Set opened on the canvas for the first time gets a grid layout, and you can drag cards anywhere from there. Nothing about how the AI runs depends on where a card sits, so a layout is free to be about readability.

Adding and Removing Actions

Right-click empty canvas and choose Add Action. A card appears where you clicked and a matching entry is added to the asset, seeded with an ability execution method so it runs as soon as you pick an ability.
Right-click a card for Rename, Toggle Enabled and Delete. Toggle and delete apply to the whole selection, so switching a group of openers off is one action. A mixed selection switches all of them on first, which makes a second use switch the group off together.
Deleting a card removes the action from the asset and strips every chain link that named it, so no combo is left pointing at a missing action.
Copy, cut, paste and duplicate work as they do in any Unreal graph. A pasted card gets a fresh Action ID and its own copies of the original's scorers, gates, hook and execution method, so editing the copy leaves the original alone.
Right-click also offers Add Comment, or Add Comment around selection when cards are selected. A comment box groups cards under a label and changes nothing about how the AI runs.
Copying a card from one Action Set and pasting into another carries only the name. An action's settings live in the asset that holds it and cannot travel on the clipboard, so the pasted card arrives as a new empty action and says so in the message log. To reuse a tuned action across sets, copy its settings across in the details panel.

Editing One Action

Select a card and the details panel shows that action on its own, its groups laid out flat instead of nested inside an array row. Select nothing, or several cards, and the panel goes back to the hint, keeping the full Actions list under Advanced for reordering or editing several actions at once.
The Action ID row renames the action. Every chain link that named the old ID follows the rename, across the whole set, in one undo step. An empty name, or one another action already uses, is refused with the reason shown as you type. Renaming a card title on the canvas does the same thing.
Action ID is what a chain link names and what cooldown tracking keys on. Renaming through the card or the ID row keeps those in step. Renaming through the raw Actions array leaves any link that named the old ID pointing at nothing, which the card then flags with a warning.

Building a Combo

Drag from the right edge of one card to the left edge of another. The wire means the first action prefers the second as its follow-up: once the first one finishes, the second gets a score bonus for a short window.
An action can prefer several follow-ups, each with its own bonus, and it can wire into itself to repeat a swing. The wire thickens and brightens as the bonus rises, so a strong combo pull is visible across the whole canvas without opening anything.
Chaining
Target Action ID
HeavyFinisher
Bonus Multiplier
1.5
Pacing
Score Only
Target Action ID names the follow-up. Bonus Multiplier is what that follow-up's score is multiplied by while the window is open: 1.5 makes it half again as likely, 2.0 doubles it, 3.0 gives a strong pull, and 1.0 keeps the link without changing the score.
Every wire carries a dot showing what that link does. Click it to edit that one link, and the wire redraws as you type.
x1.5
Bonus onlyPacing: Score Only
Bonus Multiplier raises the follow-up's score while the window is open. The follow-up still waits out the recovery breather like any other action.
»
No recovery waitPacing: Immediate
The follow-up starts the moment the first action ends, so a combo runs straight through the breather that would otherwise hold it.
Wiring a card writes the link with the default bonus and Score Only pacing. Deleting a card takes its dots with it.

A combo the player can break

A chain bonus raises a score, it does not force a move. If the player rolls out of range before the follow-up would land, its distance scorer drops it and the AI picks something else. The combo bends instead of swinging at air.

AdvancedWindow length, and why a bonus is not a guarantee
The window comes from Chain Followup Window Seconds on the Action Evaluation component, measured from the moment the first action ends. Default is 0.6 seconds. Set it to 0 to switch chaining off for that AI.
Inside the window, a link set to Immediate bypasses the post-action recovery gate, which is how a combo continues while other offence stays held back. A Score Only link waits for recovery like anything else. Everything else about the follow-up applies either way: its cooldown, its Max Consecutive Uses, a cooldown its ability applies to itself, its gates, its own scorers. A bonus multiplies a score that has already survived all of them.
The window arms on a clean completion. An interrupt or a cancel disarms it, so a parried enemy cannot combo through its own recovery.

Watching the AI Decide

Press Play and the canvas starts following a live enemy. The picker above the canvas lists every AI running this Action Set and latches onto the first one it finds, so a single enemy needs no setup at all.
The cards you author on are the cards that light up. There is no second window to read and no separate view to switch to, so a score you disagree with is one click from the setting that produced it.
RUNNING
Executing right now
One card at a time. Outranks every other look, so a running action still reads as running.
OFF
Switched off in the asset
Enabled is unticked, so nothing considers it. A switched-off action sitting on a cooldown still reads OFF.
COOLDOWN
Waiting out its cooldown
The card counts down the seconds left, and the bar fills back up as it recovers.
BLOCKED
A gate refused it
The card names the gate that said no: a missing tag, no line of sight, not enough stamina.
TOP PICK
Scored highest this round
What the AI would pick next if it picked at this moment. Tested last, so a card only reads TOP PICK when nothing above applies.
Each card carries a bar showing how it scored against the best action that round, with the time left on its cooldown drawn behind the fill. Under the bar the card prints what it is doing: ready in 1.4s while a cooldown runs, the reason a gate refused it, or its score, with chain x1.5 beside the score when a combo bonus is in play.
While the AI sits in its post-action recovery window, the bar above the canvas reads Recovering, 0.4s before the next action and counts down, which explains a pause where every card looks available and nothing fires.

Switching Enemies

Pick another entry from Watching to follow a different enemy mid-fight. Two enemies running the same Action Set will often be scoring it differently, and comparing them is the fastest way to see a role or a distance band doing its job.
If the enemy you are watching dies, or a role change moves it to a different Action Set, the canvas attaches to another one running this set, or falls back to None when there are none left.
Tuning weights, ranges, tag multipliers and chain bonuses while the game runs is safe and takes effect on the next decision. Adding, deleting or renaming an action mid-play is not: a running action holds a reference into the action list. The editor warns you once per session in the message log when you do it, and the fix is to restart Play In Editor.
MultiplayerMultiplayer and dedicated servers
Action selection runs wherever the AI's decisions are made, so the canvas follows the authoritative copy of each enemy. Under Play As Client the picker lists the server's enemies rather than the client's, which is why an enemy visible on your screen and the entry you are watching are the same AI seen from the side that decides.
A dedicated server launched as its own process cannot be inspected from the editor, because it has no world in the editor's process. Run the server in-process to watch its enemies.
AdvancedWhat the live view costs
Recording the per-action reasoning is asked for by the open editor and released when it closes, so an AI nobody is watching carries none of that cost.
None of it exists in a packaged game. The recording, the picker and the canvas are editor-only, so a shipped build carries no part of this.

Debug It

The canvas covers one enemy at a time. For a record you can scroll back through, or for an AI the canvas cannot reach:
SEC.Debug.Scoring 1              // Score list above each enemy, highest first
SEC.Debug.Actions 1              // Cooldown list above each enemy
SEC.Debug.LogActionDecisions 1   // Why each action scored what it did
SEC.Debug.LogActionExecution 1   // Starts, ends and cooldowns
SEC.Debug.ScoringRows sets how many rows the score list keeps, 5 by default and 0 for all of them. SEC.Debug.All 1 turns every overlay on at once, and SEC.Debug.WatchPawn <name> narrows them to one enemy.
Saving the asset runs validation into the Asset Check message log, which names any action that has nothing to run.
AdvancedReading the same numbers from Blueprint
Get All Score Breakdowns on the Action Evaluation component returns the per-action figures the canvas draws, as an array you can feed into a debug widget of your own. It scores every action on the spot, so call it for a debug view rather than per tick.
Each enemy's Action Evaluation component carries its own Debug Log Decisions, Debug Log Execution and Debug Overlay Scoring checkboxes, which turn the same output on for that one enemy without touching the console.