Enum Reference
Target modes, battle phases, stack rules, pile scopes, and the other option sets behind GCS authoring dropdowns.
For anyone staring at a dropdown and wondering what the third option actually does in play.Most GCS dropdowns are backed by small enums. This page lists the ones you meet while authoring cards, statuses, and encounters, plus the runtime values you read back through GCSApi. Node-specific dropdowns (sort orders, math operators, filter fields) live with their nodes in the Built-In Node Library.
CardTargetModeโ
Set on every GameCard. It decides whether playing the card asks the player to pick a target.
| Value | Choose it when |
|---|---|
None | The card needs no selected target. |
SingleEnemyUnit | The player should click one enemy before the card resolves. |
AllEnemyUnits | The card affects every enemy without a selection step. |
Self | The card affects the player unit. |
Only SingleEnemyUnit pauses play for a click. The other three resolve the moment the card is played, and GCSApi.RequiresTarget returns true only for SingleEnemyUnit. The demo shows all three styles: Poison Arrow asks for one enemy with SingleEnemyUnit, Arcane Nova sweeps with AllEnemyUnits, and Defend stays on Self.
UnitSourceโ
The standard "who does this apply to" dropdown on FlowGraph nodes.
| Value | Meaning |
|---|---|
Self | The acting or owning unit. |
Opponent | The natural opposing unit, usually the selected enemy. |
AllEnemies | Every enemy unit valid in the current context. |
AllUnits | The player and all enemies together. |
CardSourceโ
The standard "which cards" dropdown on FlowGraph nodes.
| Value | Meaning |
|---|---|
ThisCard | The card currently resolving. |
HandPile | Cards currently in hand. |
DrawPile | Cards in the draw pile. |
DiscardPile | Cards in the discard pile. |
ExhaustPile | Cards in the exhaust pile. |
AllPiles | Every runtime pile together. |
HandPile means the hand at the moment the node runs. Cards drawn later in the same turn are not retroactively included.
BattlePhaseโ
The value behind GCSApi.Phase. The phase machine cycles through the middle four phases each turn.
| Value | Meaning |
|---|---|
None | No active battle. |
Initialize | The runtime is building battle state from the encounter. |
PlayerTurnStart | Start-of-turn rules are resolving: armor decay, energy refill, turn draws. |
PlayerPhase | The player can play cards. TryPlayCard only succeeds here. |
PlayerTurnEnd | End-of-turn cleanup: hand discard, status decay, delayed triggers. |
EnemyPhase | Enemy intents execute. |
BattleWon | Victory reached. Reward flow can begin. |
BattleLost | Defeat reached. |
The two end states are not tied to a fixed spot in the cycle. The battle jumps to BattleWon or BattleLost as soon as a side is wiped, whichever phase that happens in.
Battle rulesโ
These live on a GameEncounter under Rules and show up as chips in the Workbench Encounter mode.

| Option | Values | Meaning |
|---|---|---|
ArmorDecayRule | ResetOnTurnStart, Persist | Whether armor clears at the start of each turn or carries over. |
HandDiscardRule | DiscardOnTurnEnd, Persist | Whether the hand is discarded at turn end or kept. |
EnemyIntentDisplayMode | Hidden, IconOnly, Full | How much of an enemy's declared intent the player sees: nothing, the icon alone, or the complete intent. |
Persistent armor and a persistent hand suit games where defense and hand planning carry across turns. The reset and discard defaults give the classic deckbuilder rhythm.
Status rulesโ
Set per GameStatus in the Workbench Status mode.
| Option | Values | Meaning |
|---|---|---|
StatusStackRule | Additive, Max, Replace | How a re-applied status combines with existing stacks. |
StatusDecayRule | PerTurn, Never | PerTurn removes one stack at the end of the holder's turn; Never leaves stacks until something else changes them. |
Use Additive for Poison-style accumulation, Max when only the strongest application should count, and Replace when the latest application defines the value.
FlowGraph timing and pilesโ
Options shared across several built-in nodes.
| Option | Values | Where you meet it |
|---|---|---|
WaitMode | Seconds, Animation | Wait nodes: pause for a fixed duration or until animations release the gate. |
DelayedTickPhase | PlayerTurnEnd, PlayerTurnStart, EnemyPhaseEnd | Delayed triggers: which phase boundary counts a tick. |
PileScope | Hand, Draw, Discard, Exhaust, Master, All | Card moves and pile queries. |
DrawMode | Count, ToHandLimit | Draw nodes: draw a fixed number or fill the hand to its limit. |
ChoiceMode | Exactly, UpTo | Choice nodes: force a full selection or allow fewer picks. |
DrawPilePosition | Top, Bottom, Random | Card-creation and card-move nodes: where the card enters the draw pile. |
ModifierDuration | ThisTurn, ForNTurns, WholeBattle | The Modify Card Cost node: how long the cost change lasts. |
Pick the value that matches the card text. "Choose up to 2" is UpTo; "draw until your hand is full" is ToHandLimit.
PileScope reads and moves are not symmetric, so its last two values deserve a closer look:
| Value | As a read scope | As a move destination |
|---|---|---|
Hand, Draw, Discard, Exhaust | Returns that single pile. | Places the card in that pile. A full hand overflows to discard. |
Master | Returns the run-level master deck, read-only, regardless of where each card currently sits. | Removes the card from every battle pile. The master deck itself is untouched. |
All | Returns every card in all four battle piles, exhaust included. | Removes the card from every battle pile, same as Master. |
IntentKindโ
The category of an enemy's declared intent, set in enemy pattern nodes. It decides which icon family the intent widget shows above the enemy.
Attack, Defend, Buff, Debuff, Heal, Special, Multi, Hidden
Multi marks a combined intent, and Hidden declares an intent the player is not allowed to read.
When you read intents back through GCSApi.CurrentIntentTag, you get the sibling enum IntentTag. It mirrors IntentKind value for value, with one twist: an authored Hidden intent reports as IntentTag.Unknown, because the runtime never leaks what a hidden enemy is planning.
RewardChoiceโ
The value you pass to GCSApi.ApplyReward when the victory screen resolves.
| Value | What the player gets |
|---|---|
Card | The picked card joins the run's master deck, unupgraded. Pass the chosen GameCard alongside this value. |
Energy | The run's per-turn energy rises by 1 for every later battle in the run. |
Cost | Every card currently in the master deck gets a permanent cost reduction of 1. |
Card is the only value that uses the second argument. For Energy and Cost, pass null.
ArgSourceโ
Used by event nodes to fill an outgoing event argument.
| Value | Meaning |
|---|---|
Fixed | Use the fixed field value on the node. |
SourceUnitId | The source unit's id. |
DefaultTargetUnitId | The selected target unit's id. |
AttackerUnitId | The attacker unit's id. |
LastDamage | The most recent damage amount. |
LastArmor | The most recent armor amount. |
LastHeal | The most recent heal amount. |
CardInstanceId | The current card instance id. |
CardSourceGuid | The current card definition GUID. |
BattleTurnNumber | The current turn number. |
PlayerEnergy | The player's current energy. |
ValuePointโ
ValuePoint names a hookable value. A status hook entry registered on one of these points can rewrite the value before it lands:
OnDealDamage, OnTakeDamage, OnGainArmor, OnLoseArmor, OnResetArmor,
OnGainHp, OnLoseHp, OnGainEnergy, OnLoseEnergy, OnEnergyPerTurn,
OnInflictStatus, OnReceiveStatus, OnPlayCard, OnDrawCards,
OnHandSizeLimit, OnCardPlayable, OnTakeAttack, OnStatusDamage
A Strength status, for example, hooks OnDealDamage and adds its stacks to the outgoing amount. Entries and hooks explains the hook pipeline in full.