Skip to content

Deck building ​

Deck building panel

Everything under deckBuilding: which formats are offered when a player builds a deck, and what legality rules apply to each. This is the part of the file read before a match starts.

S stringN numberB boolean[] array{} object

Deck building ​

Everything that happens before a game starts: which formats are offered and how deck legality is enforced.

FieldTypeRequiredDescriptionExample
mainFilters[]requiredFilter that appears below the search bar without having to open the filter menu. ["type", "cost", "aspects"]
costCurveIgnoredTypes[]optionalCard types excluded from the cost curve chart. ["Land"]
formats[]requiredOne entry per playable format. Each entry is a full object, see "formats[] entry" below. [{ "title": "Standard", ... }]
deckRulesets{}optionalDictionary of deck-building rulesets, keyed by name and referenced by formats[].deckRuleset. Optional, a format without a matching ruleset simply has no min/max enforcement. { "Standard": { ... } }
json
"deckBuilding": {
  "mainFilters": ["type", "cost", "color"],
  "formats": [
    { "title": "Constructed", "gameplay": "Standard" },
    { "title": "Limited", "gameplay": "Standard" }
  ]
}

A format doesn't need a ruleset

deckRuleset and deckRulesets are both optional. Some games define two formats that share the same gameplay block and skip deck-building restrictions entirely.

Formats ​

Each element of deckBuilding.formats is a mode offered to the player, independent from the others.

One playable format, offered to the player when building a deck.

FieldTypeRequiredDescriptionExample
titleSrequiredDisplay name in the format picker. "Standard format"
customCategories[]optionalDeck categories specific to this format (e.g. a separate "Extra deck" or "Leader" slot). ["Extra deck"]
legalityCodeSoptionalCode used to filter which cards are legal in this format. "COR"
gameplaySrequiredMust match a key under the top-level gameplay object. This determines the gameplay used when playing with this deck "Standard"
deckRulesetSoptionalMust match a key under deckBuilding.deckRulesets. Omit if the format has no ruleset restrictions. "Classic"
json
{
  "title": "Constructed",
  "legalityCode": "STD",
  "gameplay": "Standard",
  "deckRuleset": "Standard"
}

Reusing a gameplay block across formats

Several formats can share one gameplay block. If "Constructed", "Historic" and "Legacy" only differ in which cards are legal, give them the same "gameplay": "Standard" and "deckRuleset": "Standard", and vary only title and legalityCode. No need for a new gameplay block per format when the match rules are identical.

Deck rulesets ​

Not an array. An object keyed by ruleset name, referenced by formats[].deckRuleset.

Construction rules referenced by one or more formats.

FieldTypeRequiredDescriptionExample
checkCardLegalityBoptionalIf true, checks that every card carries the format's legalityCode. true
general.min / maxNoptionalTotal number of cards allowed in the main deck. { "min": 60 }
general.maxPerCardNoptionalMaximum copies of a single card allowed. 4
categories[]optionalAn array of card types or custom categories to which specific rules apply (e.g. exactly 1 to 2 Leader cards). [ { "category": "Leader", "min": 1, "max": 2 } ]
json
"deckRulesets": {
  "Limited": {
    "general": { "min": 40, "maxPerCard": 4 },
    "categories": [
      { "category": "Sideboard", "min": 0, "max": 15 }
    ]
  }
}

Continue with Gameplay → or Sections & layout →.