Skip to main 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.

A booster pack file looks like this:

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

Reference

NameDescription
nameThe internal identifier of the pack
displayNameThe title of the pack. It will be automatically translated if it's a translation key.
filtersA list of filters so we can calculate the available cards for this booster pack
packImageA path to the sprite to present to the user as the pack image
priceGoldHow much the pack costs to buy
descriptionThe 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:

NameDescription
characteristicThe name of the characteristic
boolValueThe boolean value of the characteristic if it's a bool type (true or false)
intValueThe integer value of the characteristic if it's an int type (Number with no decimals, like 123)
stringValueThe 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"
]
}