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 "<SetCode>|<TemplateName>"
- 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
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
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
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 setdisplayName
(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 playedcollectorNumber
(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 ofCardCharacteristic
): Defines the card data for this templateabilities
(Array ofCardAbilityInfo
): Defines which abilities this card usesscoreCalculatorName
(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 abilityabilityName
(String): The type name of the ability that we should load. See a list heredescription
(String): Presented to the user if we activate this card. This will be translated automatically if you provide a translation string.parameters
: (Array ofCardParameter
): 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 languageisoCode
(String): The iso code of the languagetranslatedString
(Array ofLanguageString
): The list of translated strings
LanguageString
key
(String): The translated string keyvalue
(String) The translated string value
PlayerCharacteristics.json
characteristics
(Array ofCardCharacteristic
)