Guide
Cards
Every title the player wins mints a numbered autograph card, and so do milestones: a first 180, a 170 finish, a nine-darter, a climb up the rankings. The biggest wins over the biggest names mint dual autos signed by both players. Cards live in the Cards section of the hub (a binder and a set checklist), and a title card is revealed on the event summary.
Two kinds of file drive it:
data/cards/*.json(ordata/cards.json): the card designs, an array of records. Each one says when it mints, how rare it is and what it shows. Editor schema: the cards reference.data/card-parallels.json: the card settings, one object (or an array of them): the brand, the parallels, the upgrade chances and the prestige rules for title cards. Editor schema: the card parallel settings reference.
Both follow the installed packs in existing saves, like the social feed. A save from before cards replays its history when it first sees them (see Old saves).
A card design#
{
"id": "acme.card.hat-trick",
"set": "milestones",
"name": "Hat-Trick",
"title": "Three in a Row",
"subtitle": "Three 180s against {opponent} at {event}.",
"trigger": "match",
"conditions": { "n180": { "min": 3 } },
"once": true,
"parallel": "blue",
"stat": "n180",
"icon": "maximum",
"order": 200
}| Field | What it does |
|---|---|
set | The checklist set: core has titles, milestones and duals. A new name starts a set of your own. Designs outside titles appear on the checklist. |
name | The name on the checklist (no placeholders). |
title | What's printed on the card. Placeholders allowed. Default: the name. |
subtitle | A flavour line for the card back and the viewer. Placeholders allowed. |
trigger | When it's considered (below). |
conditions | What must be true (below). All the ones you give must hold. |
once | true (default): mints once a career. false: every time it happens (a nine-darter is a card of its own each time). |
parallel | The base parallel's key, e.g. "gold". "prestige" uses the event's prestige rules (titleWin and eventEnd cards only). |
upgrades | Upgrade chances for this card. The fields you give replace the settings' ones. |
stat | The stat printed big on the front: average, checkout, n180, score, rank, wins, titles, prize or award. |
icon | The badge in the corner: trophy, maximum, nine, checkout, star, ranking, card, crown, target, flame, handshake or bolt. |
badge | Your own badge image instead (an asset path in your mod). |
layout | single (default) or dual: you and your opponent side by side, two autographs. Dual cards need the match trigger. |
group | At most one card per group mints from one moment: the first by order. The core dual autos share the group dual, so a big final mints one dual card. |
order | Checklist order within the set. |
Title cards and dual autos show the event's logo in the corner; milestones show their badge.
Triggers#
| Trigger | When |
|---|---|
titleWin | The player wins an event (qualifiers and league nights aren't titles). |
match | After each of the player's matches. |
eventEnd | The player's event is over, whatever the result (qualifiers aside). |
tourCard | The player wins a Tour Card (Trial Week or a season's ranking). |
ranking | Each week, from the player's Order of Merit rank (unranked: never). |
award | The player wins a season award at the end-of-season awards night. |
script | Never by the game: only a mod's script mints it, with dtj.effects.mintCard (see Scripts). Only the mod that owns the design can mint it, and {detail} is the script's own text. |
Award cards (core has one per award, in the awards set) usually set "once": false: each season's win is a card of its own. {award} is the award's name, and the award stat prints the winning number (prize money, maximums, the average or the checkout).
Conditions#
Ranges look like { "min": 100 }, { "max": 4 } or both, inclusive.
| Condition | Meaning | Triggers |
|---|---|---|
won | The player won the match (or the event). | match, titleWin, eventEnd |
tv | A televised event. | match, titleWin, eventEnd |
major | A major. false means "not a major". | match, titleWin, eventEnd |
tier | The event's tour tier, 1 (Elite Series) to 5 (County). | match, titleWin, eventEnd |
tags | The event has one of these tags, e.g. ["worldChampionship"]. | match, titleWin, eventEnd |
events | The event is one of these event template ids. | match, titleWin, eventEnd |
tours | The event is on one of these tours (tour ids). | match, titleWin, eventEnd |
stage | early, late (quarters and semis) or final. | match |
margin | whitewash, decider (won by one), close (by two) or comfortable. | match |
average | The player's three-dart average in the match. | match |
n180 | The player's 180s in the match. | match |
checkout | The player's highest checkout in the match. | match |
nineDarter | The player hit a nine-darter. | match |
oppRank | The opponent's Order of Merit rank. | match |
rivalry | Rivalry with the opponent, 0 to 1 (0.75 is "Bitter"). | match |
rank | The player's Order of Merit rank. | ranking, match, tourCard |
wins | Career match wins, this one included. | match |
titles | Career titles, this one included. | titleWin |
tvTitles | Televised titles, this one included. | titleWin |
position | Where the player finished: 0 won it, 1 runner-up, 2 semi-finals and so on. | eventEnd |
award | Which awards, e.g. ["playerOfYear"] (below). | award |
The awards: playerOfYear, youngPlayer (23 and under), newcomer (a first season earning on the Pro Circuit or Elite Series, £10,000 or more), most180s, bestAverage and bestCheckout.
Placeholders#
{event} {year} {opponent} {score} {round} {average} {checkout} {n180} {rank} (the player's) {oppRank} {wins} {titles} {item} (a signature item) {award} (an award card) {detail} (a script card: the script's own words; a script can fill the others too). A placeholder the game doesn't know drops the card with a warning. Counting milestones print their own number: a wins card with "wins": { "min": 50 } always reads 50.
Card settings#
{
"id": "acme.cards",
"parallels": {
"green": {
"name": "Green Refractor",
"print": 50,
"colours": { "light": "#c8ffd9", "mid": "#2fbf6a", "deep": "#06301a" },
"pattern": "waves"
},
"gold": { "print": 3 }
},
"upgrades": { "superfractor": 0.01 }
}brand: the card brand on every card (core: Oche Mirror, our own).parallels: by key. A new key adds a parallel and needsname,printandcolours(light, mid, deep). An existing key changes only the fields you give.patternis the refractor texture:rays,mosaic,waves,swirl,superfractor,prismorsparkle.holo(0 to 1) is how strong the rainbow is. Rarity is the print run: parallels are ranked byprint, fewest first, so a green /50 sits between orange /25 and purple /75.upgrades: the upgrade chances (below). The fields you give replace the earlier ones.prestige: which parallel a title prints. The first rule whosewhenmatches wins (tags,major,tv,tier). Givingprestigereplaces the whole list.
Settings records apply in load order, like load and population settings.
The core parallels#
| Parallel | Title cards from | |
|---|---|---|
| Superfractor | 1/1 | The World Championship |
| Gold Refractor | /5 | The other majors |
| Red Refractor | /10 | TV finals nights (the Circuit Finals, league play-offs) |
| Orange Refractor | /25 | Other televised events |
| Purple Mosaic | /75 | Pro Circuit |
| Blue Refractor | /99 | Contender Tour |
| Silver Refractor | /199 | Prospects Tour |
| Refractor | /499 | The county and pub circuit |
Rare prints#
After a card's base parallel is set, one roll per card can upgrade it. One outcome per roll, never below the base:
| Outcome | Core chance |
|---|---|
| Straight to the rarest parallel (1/1) | 0.5% |
| Three parallels rarer | 1% |
| Two parallels rarer | 4% |
| One parallel rarer | 15% |
About one card in five prints rarer than its base. Majors and televised events roll with bigEventBoost (1.5×) on every chance. The World Championship is already the 1/1. Those cards are marked "Rare print" and say so in the inbox.
The roll and the serial number come from the save's seed and the moment (the design and the event or match), so they never change.
Autographs#
A title card carries the signature the player puts on that event's trophy (signing one signs both). Other cards take the player's latest signature (on a trophy, or a card signed in the collection) when they mint; until the player has signed anything they're unsigned, and they can be signed from the collection. On a dual auto the opponent's autograph is generated from their name, handwriting-style, and is the same for that player every time.
Frozen cards#
A card is a snapshot. Everything on it (the stat, the rating, the portrait, the names, the event, the date, the opponent and their rating) is stored when it mints and never changes, however the career goes on.
Old saves#
When a save first sees card designs, it replays its history, oldest first: every title, every event result, every match the player played (with the win count as it stood), the weekly rankings and the first Tour Card. Milestones reached before cards existed mint with the moment they happened (win 50 is dated to that match, with the rating that week). Rank, rivalry and dual-auto conditions aren't known for old matches, so those cards only mint from now on. Backfilled cards don't go to the inbox.