Skip to main content

Deck authoring

Guide

Build a starting deck or reward pool from card references and copy counts, then verify every place that uses it

After Card authoring, add verified GameCard assets to a GameDeck. Before editing, enable at least one Deck Database on the current scene's GameCardManager. Database setup determines which decks Game Card Editor can list, create, and edit.

Open Game Card Editor:

Tools > TinyGiants > GCS > Game Card Editor

Select Deck at the top, then locate the deck in List.

Deck mode in Game Card Editor, with List on the left, Inspector in the center, and Preview on the right

The window above shows the complete authoring view for Iron Resolve. List on the left selects the deck. Inspector in the center sets its identity and card composition. Preview on the right converts those entries into card counts, types, tags, and a cost curve. The same GameDeck can be a player's Starting Deck or an Encounter's Reward Deck. The runtime meaning of its copy counts changes with the reference field.

Select the deck to edit

List operations

OperationMethod and result
Select databaseSelect the target Deck Database under Database. Later creation, paste, and sorting operations affect this database
Create+ creates a sub-asset with NewDeck as the base name
CopyThe copy button preserves all fields and card entries. The copy initially keeps the original Name. Setting a new nonempty name renames the sub-asset as well, updating the name used by List display, search, and sorting
Delete deletes the current deck after confirmation
Search and filterSearch and name sorting read the deck sub-asset name. Tags filtering reads GameDeck.Tags
Sort and dragThe sort button cycles through database order, name ascending, and name descending. Dragging a List row changes only authoring order in the database
Batch operationsSelect several decks with Ctrl/Cmd or Shift, then use Duplicate, Tag +, Tag −, or Delete in the batch bar
Copy across databasesPress Ctrl/Cmd+C with one deck selected, switch to another enabled Deck Database, then press Ctrl/Cmd+V to paste a copy

Each List row counts valid DeckEntry Card references and adds their Copies. You can compare unique entries and total copies without opening Inspector.

Deck List showing PresetDeckDatabase, 16 decks, filters, and Iron Resolve selected

The current PresetDeckDatabase contains 16 included decks. Iron Resolve has 7 unique card entries and 17 cards in total. See Game Card Editor for other List interactions and Demo content index for the remaining decks and their uses.

Configure deck identity

Basic

Basic stores the deck's own name, description, and project classification. This data identifies and locates the deck. It does not replace card entries or change draw behavior directly.

FieldConfiguration
NameDisplay name used by List and Preview. A nonempty edit also changes the sub-asset name. Player deck selectors read the updated sub-asset name, while project UI can read this field directly
DescriptionShort text that describes the deck's role, expected play style, or reward purpose
TagsDeck labels used by List filters and project classification. GCS does not attach battle rules to them automatically

Set Name to Iron Resolve, keep the description for the novice starting deck, and add Warrior and Novice.

The Basic configuration for Iron Resolve, including Name, Description, and Warrior and Novice tags

The name, description, and two tags now identify Iron Resolve as the Warrior novice deck. Use Visual to assign an icon that the Editor can display and project UI can read.

Visual

Icon appears directly in the Editor deck list, Display preview, and Deck card in Player mode. Project UI can read the field and display it itself. GCS does not draw it into custom UI automatically.

tip

This icon presents the deck itself. It does not replace card backs, card Templates, or individual card artwork. If the game displays decks in its UI, read this asset field directly.

Select Deck_Warrior_Start for Iron Resolve.

The Visual configuration for Iron Resolve, with Deck_Warrior_Start as Icon

With deck identity and Icon ready, List and Preview can display Iron Resolve consistently. The references and copy counts under Cards determine what the deck contains.

Set cards and copy counts

Click the edit icon beside the Cards heading to open the Edit Deck selector. Left-click a card to add one copy, and right-click to remove one. When Copies reaches 0, the entry is removed from the deck. The selector supports name search and places selected cards at the front of their database group. When several nonempty Card Databases are Active, cards are grouped by database. With one database, they appear in a flat list. Only when no database is available does the selector fall back to all GameCard assets in the project.

Back in Inspector, each card block shows its icon, name, Copies, and base EnergyCost. Left-click a card block to switch directly to Card mode and edit the asset.

The Cards configuration for Iron Resolve, with 7 card entries and 17 total copies

Iron Resolve contains 4 Strike, 4 Defend, 2 each of Insight, Bandage, Slash, and Shield Bash, plus 1 Channel, for 17 copies across 7 entries. Cards has no reorder control, and saved Entries order does not determine draw order. The draw pile is shuffled at battle start, then Innate cards receive opening-hand priority. See Cards, hand, and piles for opening-hand, draw-direction, and discard-reshuffle rules.

Distinguish starting decks from reward pools

Card references and copies are stored in the same GameDeck, but the field that references it determines the runtime meaning of Copies.

UseCopies and runtime result
Starting DeckWhen the persistent Master Deck is empty, Copies determines the number of battle card instances. The runtime then builds and shuffles the initial draw pile
Reward DeckCopies is the draw weight of the corresponding DeckEntry. Candidates are drawn without replacement by entry, and the selected card adds 1 copy to the Master Deck

GamePlayerUnit.StartingDeck stores the character's starting deck. GameEncounter.RewardDeck and BattleRules.CardRewardCount store the Encounter's reward deck and requested candidate count.

BattleRules.CardRewardCount requests 3 candidates by default. The runtime treats the minimum as 1, and the final count cannot exceed the number of valid entries.

tip

When the deck reference is missing, the deck is empty, or it contains no valid cards, the reward can contain 0 candidates.

Before referencing the deck, use Preview to check its static composition. See Player authoring and Encounter authoring for the fields that assign starting and reward decks.

Inspect the deck preview

Preview recalculates after card references or copy counts change. It shows the authored data currently stored in GameDeck. It does not simulate upgrades, cost modifiers, FlowGraph, Hooks, or actual draw results.

Display information

Display combines Icon, Name, and Description into a visible deck card. Cards shows the number of distinct GameCard references, while Copies adds the copies from every valid entry.

The Display preview for Iron Resolve, showing deck identity, Cards 7, and Copies 17

Cards 7 and Copies 17 match the composition above. The Edit Deck selector stores every copy of the same card in one entry.

tip

If external serialization or an old asset leaves duplicate references, Cards in Preview deduplicates by GameCard. The List row still counts every entry with a valid Card reference.

After identity and totals match, Distribution shows the types, rarities, and card tags that make up these 17 copies.

Card distribution

Distribution reads Type, Rarity, and Tags from each card according to Copies. Four copies contribute four counts to the matching classifications. It does not read the deck's own GameDeck.Tags or count card Keywords.

The Distribution preview for Iron Resolve, showing Type, Rarity, and card-tag composition

Iron Resolve contains Basic 8, Skill 4, and Support 5. All 17 copies are Common. Tags are Attack 8, Armor 4, Card 2, HP 2, and Energy 1.

These classifications explain what the deck contains. Whether the cards can be used each turn also depends on the distribution of their base costs.

Cost curve

Energy Bar counts each card's authored base EnergyCost according to Copies.

Costs 0 through 4 enter matching bars. Costs of 5 or higher all enter the last bar labeled 5. The summary below groups them as Low (0-1), Mid (2-3), and High (4+).

tip

This statistic does not calculate upgraded forms, Master Deck CostDelta, effective cost after Hooks, or Encounter rules. Evaluate the curve together with the player's energy per turn and the actual battle flow.

The Energy Bar for Iron Resolve, showing five 0-cost cards, twelve 1-cost cards, and Low 17

The deck contains five 0-cost copies and twelve 1-cost copies. All 17 are Low, and the share of 1-cost cards reaches the threshold used by Insights.

Composition insights

Insights checks the current static statistics against fixed thresholds. It does not read card Behaviors or evaluate real synergies in the project.

InsightTrigger
Cost N dominatesAny cost bucket reaches 50% of total copies
No low-cost cardsTotal copies are at least 6, with no 0-1 cost cards
No high-cost cardsTotal copies are at least 6, with no 4+ cost cards
Type-focusedOne Type reaches 70% of total copies
Tag only N cardsAny card tag appears 2-4 times. The panel treats 5 as its fixed target threshold
Curve looks balancedTotal copies are at least 6, and no other insight applies

Insights for Iron Resolve, showing cost concentration, no high-cost cards, and three tag-count messages

Cost 1 makes up 71% of Iron Resolve, and the deck contains no 4+ cost card. Those values produce the first two messages.

Armor 4, Card 2, and HP 2 all fall in the 2-4 range and produce three more tag messages.

The panel shows five heuristic observations in total. They help review design direction and are not structural validation errors. When total copies are below 6 and no other rule applies, Insights does not appear. After reviewing Preview, handle the data-structure problems from Validation.

Handle validation issues

The Issue Badge in Game Card Editor counts every deck in the selected Deck Database, not only Iron Resolve.

LevelTrigger
ErrorName is empty
WarningDescription is empty
WarningEntries is null or contains no entries
ErrorA nonnull DeckEntry has an empty Card reference
ErrorAny DeckEntry.Copies is less than 1

These problems do not block saving, deletion, or Play Mode. An Issue entry only locates the affected deck or field. Review responsibilities outside automatic validation separately.

Unchecked scopeManual check
Deck presentationIcon and deck Tags follow project conventions
Card compositionThere are no duplicate entries, and referenced cards are complete
UseStarting Deck and Reward Deck assignments match their intended roles
Design resultThe cost curve, actual draws, and battle result match the design

See Game Card Editor for automatic-check boundaries and Issue navigation.

After clearing structural issues, open Used By and confirm whether the GameDeck is currently a Starting Deck or Reward Deck.

Inspect asset references

Used By scans the Player Unit and Encounter Databases enabled on the current scene's GameCardManager. Player results correspond to StartingDeck, while Encounter results correspond to RewardDeck.

tip

This check does not cover disabled databases, other scenes, or Prefabs. It does not scan project code, private fields, runtime lookup, or custom indirect references, and it does not protect a deck from deletion. Check these project-level references before replacing or deleting an asset.

Used By for Iron Resolve, showing Squire using it as Starting deck

Squire above references Iron Resolve through StartingDeck. This reference determines the initial card source for battle, but the runtime does not modify the GameDeck asset.

Deck behavior after battle starts

GameDeck is a reusable content definition. A player can use it as a Starting Deck, and an Encounter can use it as a Reward Deck. After battle starts, GCS creates independent card instances from the persistent Master Deck or Starting Deck and places them in Draw, Hand, Discard, and Exhaust.

While editing a deck, confirm its cards, copy counts, and reference role. See Card and pile lifecycle for cross-battle initialization, battle-pile changes, and rewards entering the persistent deck. When project code needs to read decks or manage the Master Deck, see GCSApi guide.

You can verify the complete path from opening hand through post-battle rewards in First battle. To continue authoring, switch to Player at the top of Game Card Editor and select Squire. Keep Iron Resolve assigned, then use Player authoring to configure health, energy, the battle Prefab, and Encounter dependencies so the character can bring this deck into battle.