Skip to main content

Enum Reference

GCS ยท 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.

ValueChoose it when
NoneThe card needs no selected target.
SingleEnemyUnitThe player should click one enemy before the card resolves.
AllEnemyUnitsThe card affects every enemy without a selection step.
SelfThe 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.

ValueMeaning
SelfThe acting or owning unit.
OpponentThe natural opposing unit, usually the selected enemy.
AllEnemiesEvery enemy unit valid in the current context.
AllUnitsThe player and all enemies together.

CardSourceโ€‹

The standard "which cards" dropdown on FlowGraph nodes.

ValueMeaning
ThisCardThe card currently resolving.
HandPileCards currently in hand.
DrawPileCards in the draw pile.
DiscardPileCards in the discard pile.
ExhaustPileCards in the exhaust pile.
AllPilesEvery 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.

ValueMeaning
NoneNo active battle.
InitializeThe runtime is building battle state from the encounter.
PlayerTurnStartStart-of-turn rules are resolving: armor decay, energy refill, turn draws.
PlayerPhaseThe player can play cards. TryPlayCard only succeeds here.
PlayerTurnEndEnd-of-turn cleanup: hand discard, status decay, delayed triggers.
EnemyPhaseEnemy intents execute.
BattleWonVictory reached. Reward flow can begin.
BattleLostDefeat 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.

Workbench Encounter mode with the Battle Rules foldout and rule chips

OptionValuesMeaning
ArmorDecayRuleResetOnTurnStart, PersistWhether armor clears at the start of each turn or carries over.
HandDiscardRuleDiscardOnTurnEnd, PersistWhether the hand is discarded at turn end or kept.
EnemyIntentDisplayModeHidden, IconOnly, FullHow 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.

OptionValuesMeaning
StatusStackRuleAdditive, Max, ReplaceHow a re-applied status combines with existing stacks.
StatusDecayRulePerTurn, NeverPerTurn 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.

OptionValuesWhere you meet it
WaitModeSeconds, AnimationWait nodes: pause for a fixed duration or until animations release the gate.
DelayedTickPhasePlayerTurnEnd, PlayerTurnStart, EnemyPhaseEndDelayed triggers: which phase boundary counts a tick.
PileScopeHand, Draw, Discard, Exhaust, Master, AllCard moves and pile queries.
DrawModeCount, ToHandLimitDraw nodes: draw a fixed number or fill the hand to its limit.
ChoiceModeExactly, UpToChoice nodes: force a full selection or allow fewer picks.
DrawPilePositionTop, Bottom, RandomCard-creation and card-move nodes: where the card enters the draw pile.
ModifierDurationThisTurn, ForNTurns, WholeBattleThe 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:

ValueAs a read scopeAs a move destination
Hand, Draw, Discard, ExhaustReturns that single pile.Places the card in that pile. A full hand overflows to discard.
MasterReturns 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.
AllReturns 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.

ValueWhat the player gets
CardThe picked card joins the run's master deck, unupgraded. Pass the chosen GameCard alongside this value.
EnergyThe run's per-turn energy rises by 1 for every later battle in the run.
CostEvery 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.

ValueMeaning
FixedUse the fixed field value on the node.
SourceUnitIdThe source unit's id.
DefaultTargetUnitIdThe selected target unit's id.
AttackerUnitIdThe attacker unit's id.
LastDamageThe most recent damage amount.
LastArmorThe most recent armor amount.
LastHealThe most recent heal amount.
CardInstanceIdThe current card instance id.
CardSourceGuidThe current card definition GUID.
BattleTurnNumberThe current turn number.
PlayerEnergyThe 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.