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
Open an Action Set on its canvas
Double-click theDA_ActionSet_Gruntyou created on the Action System page and it opens as cards.Double-click to openDA_ActionSet_GruntThis is the canvas that opens, not a details panel: an orange card per action, chained where one is meant to follow another.TreeSingleAttackBT Sequence (1)Weight1Cooldown15sBest range50 to 150 cmScorers1Gates1AbilityDashAbility: GA_SEC_DodgeBack_CWeight1Cooldown15sBest range0 to 150 cmScorers2TreeDoubleAttackBT Sequence (1)Weight1Cooldown20sBest range150 to 500 cmScorers1Gates1x1.5»TreeDisabled ActionBT Sequence (1)Weight1Cooldown20sBest range250 to 500 cmScorers2The 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
Add a card
Right-click the empty canvas and choose Add Action. A card lands where you clicked, namedAction_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 asLightAttack. - 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▾ExecutionAbility ClassNoneMontageNone▾One card selected, one action in the panel. - 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 AttackTreeQuick Attackx1.5Dragging 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
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.
| Row | Shows |
|---|---|
| Chip | Which family of execution method runs it: Ability, By Tag, Burst, Tree, Custom, or Unset. |
| Title | The action's Action ID. |
| Execution line | The execution method's own name, such as the ability class it runs. Red when nothing usable is set. |
| Weight, Cooldown | Selection Weight, and Cooldown Duration in seconds. Cooldown reads none at 0. |
| Best range | The sweet spot of the action's Distance Scorer, in centimetres. Absent when the action carries no Distance Scorer, which means it ignores distance. |
| Risk, Repeats | Risk Penalty when it is something other than 1, and Max Consecutive Uses when one is set. |
| Scorers, Gates | How many of each the action carries. |
| Recovery, Hook | Its 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.
AdvancedA link naming an action that does not exist
A chain link whose target no action defines draws no wire and raises a warning on the card. The link is kept rather than dropped, because deleting it would throw away something you authored.
This happens when an Action ID is renamed from the raw Actions array instead of the card or the ID row. Fix it by pointing the link at the new name, or by deleting the link.
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.