Skip to content

Booster Packs

Before doing this guide, please check the getting started guide if you haven't already.

You can create new booster pack types by creating a file in GameData/BoosterPacks/NAME/NAME.json. This feature is available from version 31 onwards.

A booster pack file looks like this:

{
    "name": "PACK_STD",
    "displayName": "STRING_AOF_BOOSTER_TITLE",
    "filters": [
        {
          "type": "Set",
          "comparison": "Equal",
          "setCodes": [
            "STD",
            "AOF"
          ]
        }
    ],
    "packImage": "Textures/AOF/CardPackFront.png",
    "priceGold": 100,
    "description": "STRING_AOF_BOOSTER_DESCRIPTION"
}

Reference

Name Description
name The internal identifier of the pack
displayName The title of the pack. It will be automatically translated if it's a translation key.
filters A list of filters so we can calculate the available cards for this booster pack
packImage A path to the sprite to present to the user as the pack image
priceGold How much the pack costs to buy
description The pack's description. It will be automatically translated if it's a translation key.

Filters

There are several filters you can use to calculate the available cards for a pack.

Filters work in an exclusive way: Each filter removes invalid cards each time. Meaning you can't have two Set filters with different sets, since they'll remove all cards.

Filters have a type, comparison, and specific fields depending on the type.

Comparisons are one of Bigger, BiggerEqual, Equal, NotEqual, Smaller, SmallerEqual, and they define how to validate the filter. For most filters, you'll want the Equal or NotEqual comparisons.

Set Filters

Set Filters can have one or more sets in the setCodes field, which is a list of set codes to filter.

Example

        {
          "type": "Set",
          "comparison": "Equal",
          "setCodes": [
            "STD",
            "AOF"
          ]
        }

Characteristic Filters

Characteristic Filters allow you to find specific characteristics in a card. If a card doesn't have that characteristic, it's considered as valid either way.

The specific fields it uses are:

Name Description
characteristic The name of the characteristic
boolValue The boolean value of the characteristic if it's a bool type (true or false)
intValue The integer value of the characteristic if it's an int type (Number with no decimals, like 123)
stringValue The string value of the characteristic if it's a string value (Text)

Example

        {
          "type": "Characteristic",
          "comparison": "Equal",
          "characteristic": "GUARDIAN",
          "boolValue": true
        }

Tag Filters

Tag Filters allow you to find cards with a specific tag. If a card has one or more of those tags, it's considered valid. You can chain multiple tag filters if you want to combine tag searches.

Example

        {
          "type": "Tags",
          "comparison": "Equal",
          "tags": [
            "ABILITY"
          ]
        }

Template Filters

Template Filters allow you to select specific cards. Each template name must be in the form of SETCODE|NAME or NAME.

Example

        {
          "type": "Template",
          "comparison": "Equal",
          "templates": [
            "AOF|CARD_THULARI_MERCENARY"
          ]
        }