Skip to content

Game Data Format Reference

The following is a detail of the data format for the game data. This is a work in progress.

Tree structure

    Avatars
        (1 JSON per avatar, inside a folder with the same name)
    BoosterPacks
        (1 JSON per booster pack, inside a folder with the same name)
    BoardLayout.json
    CardBacks
        (1 JSON per card back)
    Card Back Cosmetics
        (1 JSON per card back, inside a folder with the same name)
    CardStyles
        (1 JSON per card style, inside a folder with the same name)
    CardTypes
        (1 JSON per card type)
    DefaultDecks
        <Game Mode Name>
            (1 JSON per deck)
    DefaultModes
        (1 JSON per game mode)
    GameModes
        (1 JSON per game mode)
    GameZones
        (1 JSON per game zone)
    LayoutTemplates
        (1 JSON per layout template)
    Playmats
        (1 JSON per playmat, inside a folder with the same name)
    RewardBundles
        (1 JSON per reward bundle)
    Scenarios
        (1 JSON per scenario, inside a folder with the same name)
    Sets
        <Set Short Code>
            SetInfo.json
            (1 Card Template JSON per card)
    Translations
        Reminders.json
        (1 JSON per language in iso-code format)
    Tutorials
        (1 JSON per in-menu tutorial, although these are not very moddable)
    PlayerCharacteristics.json

Characteristics

A lot of data uses the card characteristic or card parameter data structures. These structures use a name, data type, and a specific value key, depending on the type.

CardCharacteristic

  • n (String): The name
  • c (String): The comment of this characteristic (if any)
  • dt (Int): The data type of this characteristic.
    • 0: Bool (bv)
    • 1: Int (iv)
    • 2: String (sv)

CardParameter

  • n (String): The name
  • c (String): The comment of this parameter (if any)
  • r (String): Whether it's a required value
  • dt (Int): The data type of this parameter.
    • 0: Bool (bv)
    • 1: Int (iv)
    • 2: Float (fv)
    • 3: String (sv)
    • 4: Card (Int) (cv) - Card ID
    • 5: Card Type (String) (ctyv) - Card Type Name
    • 6: Card Template (String) (ctev) - A string in the format of "|"
    • 7: Player (Int) (pv) - Player ID

Avatars

To make a new avatar you need to make a JSON file containing the avatar data:

{
    "texturePath": "Textures/Avatars/Anthe_Ringwarden.png",
    "cost": 0
}

You can set the cost to a specific value to buy it through gold rather than unlock it by default.

Booster Packs

Check here for a guide

Board layout

Configuration file specifying the location, size, type, and more, of each game zone for a player.

Card Back Cosmetics

You can set custom card backs that can be used in-game.

{
  "name": "CARDBACK_ARFACTUS",
  "cost": 200
}

You can set the cost to a specific value to buy it through gold rather than unlock it by default.

Card backs

You can create custom card backs here.

The suggested way of doing this is copying an existing card back and renaming it, then editing the name, displayName, and each Image field's image property.

These card backs won't automatically be available in-game, you need to make a cosmetic first.

Card Styles

Check here for a guide

Card Types

Game Data detailing a card's data and card frames. You can create new ones by copying an existing one and modifying it.

Default Decks

Default decks for specific game modes. You can easily create one by copying a deck to the clipboard, in which case the player log (on PC) will have the JSON code for this.

Remember to enable the READ_ONLY field so the player can't delete it.

Default modes

Custom game modes using existing internal game modes. This is different from internal game modes because they're customizable in several aspects. You can just copy a similar game mode and modify the parameters.

Game modes

Internal game modes that the game uses. You can still modify or create new ones, but beware this can significantly break the game.

Game Zones

Info on game zones belonging to the player or globally. Modifying this can significantly break the game.

Layout Templates

Each file here contains data on how a card component appears visually. Use this to modify how cards look.

Playmats

Check here for a guide

Reward Bundles

These bundles contain multiple items as part of buying them in the shop.

{
  "name": "STRING_FLAMINGO_BUNDLE",
  "description": "STRING_FLAMINGO_BUNDLE_DESCRIPTION",
  "rewards": [
    {
      "a": 1,
      "t": "CardStyle",
      "rn": "AOF|CARD_KING_OF_BEASTS|FlamingoBundle"
    },
    {
      "a": 1,
      "t": "CardStyle",
      "rn": "STD|CARD_LION_CUB|FlamingoBundle"
    },
    {
      "a": 1,
      "t": "CardStyle",
      "rn": "AOF|CARD_ARFACTUS_REALITY_SHAPER|FlamingoBundle"
    }
  ],
  "icon": "Textures/Avatars/Baby_Flamingo.png",
  "rewardName": "FlamingoBundle",
  "cost": "500",
  "unlockType": "Gold"
}

This bundle unlocks three card styles. You can modify a for the amount, t for the type, and rn for the reward name.

t can be any of:

  • Avatar
  • Card
  • Pack
  • Gold
  • Fame
  • GoldAndFame
  • CardStyle
  • Playmat
  • Mastery
  • CardBack

Other fields you can modify include:

  • sa - Secondary Amount (used for GoldAndFame)
  • cid - Content ID (Used for booster packs, avatars, playmats, card backs, and cards)
  • gm - Game Mode that should get the reward

Scenarios

To Do (but you can see a few of them for how they work)

Sets

Contains card data for each Set, one folder per set, named with the set's short code

SetInfo.json

  • name (String)
  • code (string): The short code of the set, used to find cards. Should be the same as the folder this is in

Card Template (Card Set item)

  • name (String): The Unique ID for the template in the set
  • displayName (String): The user-friendly name of the card. This will be used if there's no translation for the card.
  • comment (String): Comment of the card.
  • cardType (String): The card type to use for this card. This define the card's data.
  • cardFrame (String): The card frame in the card type we want to use. This defines how the card looks.
  • setCode (String): The set this card belongs to. This must always equal the set we're using right now.
  • targetCount (Int): How many targets this card requires before it can be played
  • collectorNumber (String): The collector number for this card. Can have letters as well as numbers, such as tokens having a "B" suffix.
  • scoreBonus (Int): The amount of extra score the CPU should give to this card. Use this to hint to the CPU that this card is powerful (or less powerful)
  • characteristics (Array of CardCharacteristic): Defines the card data for this template
  • abilities (Array of CardAbilityInfo): Defines which abilities this card uses
  • scoreCalculatorName (String): The score calculator to use to calculate the score for this card.
  • tags (String): A list of tags this card has.
  • reminders (Array of String): A list of the keyword reminders that this card should present when zoomed.

CardAbilityInfo (Card Template)

  • name (String): The name we want to give to this ability
  • abilityName (String): The type name of the ability that we should load. See a list here
  • description (String): Presented to the user if we activate this card. This will be translated automatically if you provide a translation string.
  • parameters: (Array of CardParameter): List of parameters for this ability, to set it up in a card-specific way.

Translations

Contains translations per language iso-code, as well as a Reminders.json file.

Each language has a Base.json file containing most language strings, but you can make separate files with specific strings that will be merged with it.

Reminders.json

  • text (String): The identifier of this reminder. You may provide a translated string ID.
  • description (String): The description of this reminder. You may provide a translated string ID.

Language json

  • name (String): The name of the language
  • isoCode (String): The iso code of the language
  • translatedString (Array of LanguageString): The list of translated strings

LanguageString

  • key (String): The translated string key
  • value (String) The translated string value

PlayerCharacteristics.json

  • characteristics (Array of CardCharacteristic)