Reference
Cards
A card design: when it mints and how it looks. Text placeholders: {event} {year} {opponent} {score} {round} {average} {checkout} {n180} {rank} (yours) {oppRank} {wins} {titles} {item} {award} {detail}. See Cards.
- Content type
cards- Files
data/cards.json,data/cards/- Shape
- A list of records, each with its own
id - Patch target
card:<id>, for examplecard:core.card.dual-grudge- In the base game
- 33 records
- Guide
- Cards
Fields#
Indented fields belong to the field above them. [] marks the items of a list. A field that is not required may be left out; the default is used.
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
id | id | Yes | Namespaced id, e.g. "core.player.rory-calder" | |
set | text | "milestones" | Checklist set: core has "titles", "milestones" and "duals"; a mod can start its own. Pattern: ^[a-z][a-z0-9-]*$ | |
name | text, up to 40 characters | Yes | The name on the checklist (no placeholders). | |
title | text, up to 60 characters | The title printed on the card (placeholders allowed). Default: the name. | ||
subtitle | text, up to 160 characters | A flavour line for the card back (placeholders allowed). | ||
trigger | one of the options | Yes | When a card can mint:
- titleWin: you win an event (qualifiers and league nights aside)
- match: after each of your matches
- eventEnd: your event is over, whatever the result
- tourCard: you win a Tour Card
- ranking: each week, from your Order of Merit rank
- award: you win a season award at the awards night ({award} is its name) Options: titleWin, match, eventEnd, tourCard, ranking, signature, award, script. | |
conditions | object | {} | Every condition is optional; all the ones given must hold. | |
conditions.won | true or false | You won the match (match trigger). | ||
conditions.tv | true or false | |||
conditions.major | true or false | |||
conditions.tier | object | The event's tour tier. | ||
conditions.tier.min | number | |||
conditions.tier.max | number | |||
conditions.tags | list, at least 1 item | The event has one of these tags. | ||
conditions.events | list, at least 1 item | The event is one of these (event template ids). | ||
conditions.tours | list, at least 1 item | The event is on one of these tours (tour ids). | ||
conditions.stage | list, at least 1 item | The round: early, late (quarters and semis) or the final. | ||
conditions.margin | list, at least 1 item | whitewash (loser scored nothing), decider (won by one), close (by two), comfortable. | ||
conditions.average | object | Your three-dart average in the match. | ||
conditions.average.min | number | |||
conditions.average.max | number | |||
conditions.n180 | object | Your 180s in the match. | ||
conditions.n180.min | number | |||
conditions.n180.max | number | |||
conditions.checkout | object | Your highest checkout in the match. | ||
conditions.checkout.min | number | |||
conditions.checkout.max | number | |||
conditions.nineDarter | true or false | You hit a nine-darter in the match. | ||
conditions.oppRank | object | Your opponent's Order of Merit rank (unranked never matches). | ||
conditions.oppRank.min | number | |||
conditions.oppRank.max | number | |||
conditions.rivalry | object | How fierce your rivalry with the opponent is, 0–1 (0.75 = bitter). | ||
conditions.rivalry.min | number | |||
conditions.rivalry.max | number | |||
conditions.rank | object | Your Order of Merit rank (unranked never matches). | ||
conditions.rank.min | number | |||
conditions.rank.max | number | |||
conditions.wins | object | Your career match wins, this one included. | ||
conditions.wins.min | number | |||
conditions.wins.max | number | |||
conditions.titles | object | Your career titles, this one included. | ||
conditions.titles.min | number | |||
conditions.titles.max | number | |||
conditions.tvTitles | object | Your televised titles, this one included. | ||
conditions.tvTitles.min | number | |||
conditions.tvTitles.max | number | |||
conditions.position | object | eventEnd: where you finished (0 = won it, 1 = runner-up, 2 = semi-finals…). | ||
conditions.position.min | number | |||
conditions.position.max | number | |||
conditions.award | list, at least 1 item | award: which season awards (any of them), by key ("playerOfYear") or id (awards content). | ||
once | true or false | true | Mint once a career (true), or every time it happens (false). | |
parallel | one of several shapes | "refractor" | Base parallel key, or "prestige" for the event's prestige rules. | |
| Shape 1: text | ||||
| Shape 2: exactly "prestige" | ||||
upgrades | object | Upgrade chances for this card instead of the settings' (the fields given replace them). | ||
upgrades.superfractor | number, 0 to 1 | |||
upgrades.steps | list, up to 10 items | |||
upgrades.steps[].steps | whole number, 1 to 10 | Yes | ||
upgrades.steps[].chance | number, 0 to 1 | Yes | ||
upgrades.bigEventBoost | number, 0 to 10 | |||
stat | one of the options | The stat shown big on the front. Options: average, checkout, n180, score, rank, wins, titles, prize, award. | ||
icon | one of the options | Built-in badge icons (or give badge, an image in your mod). Options: trophy, maximum, nine, checkout, star, ranking, card, crown, target, flame, handshake, bolt. | ||
badge | file path | Your own badge image instead of an icon (asset path, relative to the mod). | ||
layout | one of the options | "single" | single: you; dual: you and your opponent, two autographs (match trigger). Options: single, dual. | |
group | text, up to 40 characters | At most one card per group mints from one moment (the first by order). | ||
order | whole number | 0 | Checklist order within the set. | |
Example#
A record from the base game’s data/cards/duals.json.
{
"id": "core.card.dual-grudge",
"set": "duals",
"name": "Grudge Match",
"subtitle": "Beat your fiercest rival, {opponent}, {score} in the {round}. Neither of you smiled for this one.",
"trigger": "match",
"conditions": {
"won": true,
"rivalry": {
"min": 0.75
},
"stage": [
"late",
"final"
]
},
"once": false,
"parallel": "red",
"stat": "score",
"layout": "dual",
"group": "dual",
"order": 60
}In your pack the record’s id starts with your pack’s id instead of core, unless you mean to replace this one.