Skip to main content

Action Nodes

GCS ยท Built-In Node Library

Action nodes are the nodes that change battle state. The 27 built-ins cover damage, HP, armor, energy, cards, statuses, units, turns, variables, and hook writes.

For graph authors deciding which state change a card, status, or enemy behavior actually needs.

Action nodes sit on the main control path, usually right after an Entry, Branch, Loop, or Choice. Everything else in a graph exists to serve them: Get nodes feed them targets and values, FX nodes show what they did.

Poison Arrow is the pattern at its smallest. Two Action nodes carry the whole design: Deal Damage applies 3 to the opponent, then Change Status adds 2 Poison. The entry starts the graph and the effect blocks make the result visible; neither touches state.

Poison Arrow's graph with Deal Damage and Change Status doing the gameplay work between the entry and the effect blocks

Menu group vs. base class

These nodes live under Action in the Add Node menu. MutatorNode, the extension base class behind them, only appears when you write custom nodes in C#.


Damage, HP, armor, energy, and statusโ€‹

NodePurposeInputs and settingsOutputsUse withAvoid when
Deal DamageApply damage through the damage pipeline.Target, TargetSource, Amount, IgnoreArmor.Dealt.Opponent Unit, All Enemies, Damage Dealt Hook, Show Floating Text.The design is healing or a direct HP change; use Change HP.
Change HPHeal, or directly change current or max HP.Target, TargetSource, Affect Current or Max, Mode Delta or Set, Amount.Changed.Unit Info, HP Gain Hook, HP Loss Hook, heal floating text.The change should count as damage; use Deal Damage.
Change ArmorAdd, remove, or set armor.Target, TargetSource, Mode, Amount.Changed.Armor Gain Hook, Armor Loss Hook, Show Floating Text.The value is a card cost or status stacks.
Change EnergyAdd, spend, or set player energy.Mode, Amount.Changed.Player Energy, Energy Gain Hook, Energy Spend Hook.Card cost should change instead; use Modify Card Cost or Card Cost Hook.
Change StatusAdd, remove, or set stacks of a status.Target, TargetSource, Status, Mode, Amount.Changed.All Enemies, Unit Status Stacks, status hooks.You need to remove a collection of specific status instances; use Remove Statuses.
Remove StatusesRemove status instances from one or more units.Target, Statuses, TargetSource.None.Filter, Status Info, cleanse effects.You only need to decrease stacks; use Change Status.
Reapply StatusRe-run the application behavior of an existing status.Status.None.Status lifecycle graphs.You are creating stacks from scratch; use Change Status.

The demo status Poison shows this table working inside a status graph as well as on cards. On Turn Start, Deal Damage targets Self, pulls its Amount from Status Info.Stacks, and has IgnoreArmor checked so the tick bypasses armor. The effect block afterwards reads Dealt for its floating number:

Poison's status graph: Deal Damage with Ignore Armor checked, its Amount wired from Status Info stacks, feeding Dealt into the effect block


Cards and pilesโ€‹

NodePurposeInputs and settingsOutputsUse withAvoid when
Draw CardsDraw by count, or up to the hand limit.Mode Count or ToHandLimit, Count.Drawn.Draw Count Hook, Cards Drawn This Turn, draw presentation.You are creating cards; use Add Cards.
Add CardsAdd a card asset to a pile.CardId, Pile, Position.Added.Upgrade Cards, Move Cards, generated-card recipes.You are moving an existing card instance; use Move Cards.
Move CardsMove existing cards to a pile.Cards, CardsSource, Pile, Position.None.Card Piles, Filter, Take, discard and exhaust effects.You are creating a new card instance.
Play CardPlay a card instance through the normal card play behavior.Card, Target, CardSource, TargetSource.None.Pick Element, Card Piles, replay-style effects.You only want the card's behavior without normal play handling; use Replay Card.
Replay CardRun a card's behavior again.Card, CardSource.None.This Card, combo effects.The card should be paid for and moved like a normal play.
Transform CardTurn a card instance into another card.Card, CardSource, NewCard.None.This Card, Card Piles, upgrade trees.You want a temporary cost or stat modifier.
Upgrade CardsUpgrade existing cards.Cards, CardsSource.None.Card Piles, Filter, reward effects.You are adding a new, already-upgraded card.
Remove CardsRemove existing card instances.Cards, CardsSource.None.Filter, Take, exhaust or purge mechanics.The cards should go to exhaust or discard; use Move Cards.
Modify Card CostAdd a timed cost modifier to cards.Cards, CardsSource, Mode, Amount, Duration, Turns.None.Card Cost Hook, Filter, combo cards.Cost depends on state at every playability check; use Card Cost Hook.
Shuffle Draw PileShuffle the current draw pile.None.None.On Draw Pile Shuffled, card pile recipes.You want to reorder a temporary collection; use Shuffle.

Units and turnsโ€‹

NodePurposeInputs and settingsOutputsUse withAvoid when
Spawn UnitCreate a unit during battle.Unit, MaxOnField.Spawned.On Unit Spawned, summon effects.You are reviving a defeated unit; use Revive Unit.
Despawn UnitRemove a unit without death semantics.Target, TargetSource.None.Summon cleanup, temporary units.A player-facing death or kill reward should happen.
Kill UnitKill one or more units.Target, TargetSource.None.On Unit Died, execute effects.You want temporary removal without death triggers.
Revive UnitRevive a defeated unit.Target, TargetSource, HPPercent.None.On Unit Spawned, resurrection effects.You are creating a new unit; use Spawn Unit.
Skip Next TurnMake a unit skip its next turn.Target, TargetSource.None.Change Status, stun effects.You need to change the current turn order immediately.
End TurnEnd the current turn.None.None.Emergency battle rules, scripted encounters.Ordinary card resolution should continue normally.
Extra TurnGrant an additional turn.None.None.Rare boss or player power effects.A simple energy or draw bonus would do.

Variables and hooksโ€‹

NodePurposeInputs and settingsOutputsUse withAvoid when
Set VariableStore a named value.Name, Kind, Mode, BattleScope, value fields.None.Variable, Branch, state shared across entries.The value is read once; wire it directly instead.
Write HookWrite the replacement value for the active hook.Kind, Value, BoolValue.None.Any hook entry, math and condition nodes.The graph started from a normal entry.
Cancel HookCancel the active hook, where the hook supports it.None.None.Card Playable Hook, prevention mechanics.You only need to change a number; use Write Hook.

State first, feedback secondโ€‹

The default ordering for any graph with a state change:

  1. Select or calculate targets.
  2. Run the Action node.
  3. Read its result output.
  4. Show floating text, VFX, SFX, animation, or camera feedback based on that result.

A graph that plays its feedback before the action runs will happily show a success animation for a change that never happened. Result outputs such as Dealt and Changed exist so presentation reads the committed value, not the configured one.


When an action silently does nothingโ€‹

Most Action nodes skip their state change when the required target, card, status, or unit cannot be resolved. That keeps a running battle stable, but it also means a broken graph fails quietly. When an effect refuses to show up, check the resolution chain before the node itself:

SymptomCheck
Damage does nothing.Target is empty, the wrong team is selected, or the amount is zero after hooks.
A status never appears.The Status field is unset, or the target collection is empty.
Card movement does nothing.CardsSource points at a pile with no matching cards.
A cost modifier never shows.The duration expired, or the card collection was empty.
A hook value does not change.The graph did not start from a hook, or Write Hook.Kind is wrong.

The Game Card Monitor's Flow tab shows which nodes executed, which is usually faster than inspecting behavior by trial.