Guide
The Nations Cup (team events)
A team event is an event template with a teams block. The field is nations: each nation sends its best players on a ranking, and the teams play pairs matches and, in the rounds you choose, ties of singles and pairs rubbers. The base game's version is The Nations Cup (core.event.nations-cup, the old Nations Cup, kept under the same id so saves carry on); the Real World Pack reshapes it into the real PDC World Cup of Darts.
The base game plays the real event's matches on a field that suits a career world: 32 nations (a world has about 30 with players), 8 groups of three (best of 7 legs, the winner through) and the top 8 seeds straight into the last 16. Every match is a pairs match: the last 16 to the semi-finals best of 15 legs, the final best of 19. The prize money is the real event's.
The real event (researched September 2026, based on the 2026 edition)#
| 2026 (and 2024–2025) | |
|---|---|
| Field | 40 nations, two players each |
| Selection | Each nation's two highest-placed Tour Card holders on the PDC Order of Merit at the cut-off. A nation with one Tour Card holder adds its best-placed non-holder; regional tours (Asian Tour, Nordic & Baltic, Latin American & Caribbean qualifier) and wild cards fill the rest |
| Seeding | By the pair's combined Order of Merit position. Seeds 1–4 go straight to the last 16 |
| Groups | The other 36 in 12 groups of three, round-robin pairs, best of 7 legs; the group winner goes through |
| Knockout | Last 16, quarter-finals, semi-finals: pairs, best of 15 legs. Final: pairs, best of 19 |
| Prize money (per team) | £500,000 in all: winners £100,000, runners-up £48,000, semi-finalists £30,000, quarter-finalists £20,000, last 16 £10,000, group runners-up £6,000, group thirds £5,000 (the pair share it) |
| Ranking | Not ranking (prize money doesn't count towards the Order of Merit) |
| Dates, venue | 11–14 June 2026 (Thursday–Sunday), Eissporthalle, Frankfurt, Germany (the usual host) |
| Result | England (Luke Littler and Luke Humphries) beat the Netherlands 10–5 in the final |
Older formats, which the engine also supports: 2010–2013 had 24 nations; 2014–2022 had 32 nations in a straight knockout where, from the second round, a tie was two singles (best of 7) with a pairs decider if they split 1–1, and the final was first to 3 points (up to four singles, then the pairs). Since 2024 the whole event is pairs.
Has a nation ever played with one player? No. When a player withdraws (Gerwyn Price in 2024, Michael van Gerwen in 2023) the nation calls up its next player (Jim Williams, Dirk van Duijvenbode), and when a nation can't come at all it's replaced (Uganda by Gibraltar in 2026, after visa problems). A nation always has two players because the PDC can dig into its non-Tour Card holders and regional rankings. A game world can't: it only has the players it has.
The missing partner rule#
A saved world may have nations with only one player. The rule the game uses:
- A nation enters if it has at least
minPlayersactive players (the World Cup uses1). Its team is its bestsize(2) players, so a nation with one player enters short-handed. - For seeding, a short-handed team's empty place counts as an unranked player (one place below the last ranked player), so these teams seed last and are the first to miss the cut when there are more nations than places.
- In a pairs match (
missingPartner):"solo"(the default, and what both calendars use): the lone player throws every visit for their side. So that a strong lone player isn't better off than a pair, they start each legsoloHandicappoints further back (the Nations Cup uses 40, so they start on 541)."bye": the team concedes its pairs matches (a walkover). It's still in the draw, but it acts as a bye for the teams it meets.
- In a singles rubber against a missing player, the other team wins by a walkover (a singles rubber with both players missing isn't played).
- The team's prize money is split between the players it has, so a lone player takes the whole team prize.
If you, the human, are the only player from your nation, you still play: your nation enters short-handed and you play the pairs alone (or, under "bye", you only play singles).
Configuring it#
{
"id": "mymod.event.world-cup",
"tourId": "core.tour.world",
"name": "The Nations Cup",
"venueId": "mymod.venue.big-hall",
"month": 6,
"week": 2,
"weekday": 4,
"days": 4,
"fieldSize": 40, // nations (count × size + byes when there are groups)
"entry": "invitation",
"seeds": 16, // seeds 1–4 get the byes, 5–16 head the groups
"groups": {
"count": 12,
"size": 3,
"advance": 1,
"byes": 4, // the top 4 seeds skip the groups
"format": { "bestOfLegs": 7 },
},
"rounds": [
// log2(count × advance + byes) knockout rounds
{ "bestOfLegs": 15 },
{ "bestOfLegs": 15 },
{ "bestOfLegs": 15 },
{ "bestOfLegs": 19 },
],
"prizes": [100000, 48000, 30000, 20000, 10000, 6000, 5000],
"ranked": false,
"tv": true,
"tags": ["teams", "worldCup"],
"teams": {
"kind": "nations",
"size": 2,
"ranking": "oom", // or "tour:<tourId>", "season:<tourId>" (as entry routes)
// optional: nations whose teams an affiliate tour's list picks: players within keepTop on "ranking" first,
// then the nation's best on this list, then the usual pick for places still open
"nationRankings": [{ "ranking": "season:core.tour.norrsken-pro", "nations": ["SWE", "NOR", "DEN"], "keepTop": 128 }],
"minPlayers": 1, // default = size: nations short of players stay out
"missingPartner": "solo", // or "bye"
"soloHandicap": 40, // start-score handicap for a lone player in pairs
"host": "venue", // or a nation code: the host is always in
"prizeSplit": "share", // "each" (default): every player gets the listed prize
"ties": [
// optional: rounds played as ties (1 = first knockout round)
{
"from": 1,
"to": 3,
"toWin": 2,
"rubbers": [
{ "kind": "singles", "a": 1, "b": 1 },
{ "kind": "singles", "a": 2, "b": 2 },
{ "kind": "pairs" },
],
},
{
"from": 4,
"toWin": 3,
"rubbers": [
{ "kind": "singles", "a": 1, "b": 1 },
{ "kind": "singles", "a": 2, "b": 2 },
{ "kind": "singles", "a": 1, "b": 2 },
{ "kind": "singles", "a": 2, "b": 1 },
{ "kind": "pairs" },
],
},
],
},
}- Prizes by position:
prizes[0]winner,[1]runner-up,[2]semi-finalist, …[rounds]first knockout round loser, then (team events with groups) the group finishes:[rounds + 1]second in the group,[rounds + 2]third. With"prizeSplit": "share"these are per team. - Groups: the seeds after the byes head one group each; the rest are drawn. Groups are always pairs. A group's table is wins, then leg difference, legs won, head to head. Group winners join the byes in the knockout, seeded so the byes and group winners are kept apart (seed 1 meets the last group's winner).
- Ties: rubbers are played in order and stop once a team has
toWinpoints (the rest are marked not needed). Each rubber uses its round's format.aandbare the teams' players by rank (1 = the team's best ranked). A round without a tie rule is one pairs match. If walkovers leave a tie level with nothing left to play, rubber points, then legs, settle it. - Pairs: partners alternate visits, and the teams alternate who opens each leg with the other partner: leg 1 goes A1, B1, A2, B2, A1…; leg 2 (B to throw first) goes B2, A2, B1, A1, B2…
- Ranking:
"ranked": falsekeeps it off the Order of Merit (like the real event); set ittrueto count the money. - Team events can't use
entryRoutes,entryStages,qualifiesorleague.
The core Nations Cup uses 32 nations (8 byes, 8 groups of three), because the base world only has around 30 nations; ties from the last 16 (two singles and a pairs decider; the final first to 3). The Real World Pack uses the real 2026 format above, all pairs.
The teams are the nations the world's players come from: a nation a mod adds (with a name pool, or named players) fields a team as soon as it has minPlayers active players, under its own name and flag.
In a career#
- Qualifying: you're in automatically when you're among your nation's best two (on the ranking) and your nation makes the field. The calendar shows "Qualified" with your nation and partner; if you're not in, it says who plays for your nation instead.
- Playing: the event lobby shows your team against theirs and the tie's rubbers. You play your own singles rubbers and the pairs (your partner's visits are thrown by the AI in between yours), or simulate them. Rubbers you're not in are simulated.
- Watching: the Event Centre shows the groups, the bracket with each tie's rubbers, and a Teams tab.
- News: a preview when the event is drawn, a group-stage round-up, and the champions' story; if you play, your team's social posts. The copy is data:
| What | Where | Placeholders |
|---|---|---|
| Preview story | media lines, slots teams.preview.headline / teams.preview.body | {event} {city} {venue} {nations} {favourites} {favouritePlayers} {contenders} {formatLine} {hostLine} {shortLine} |
| Group round-up | teams.groups.headline / teams.groups.body | {event} {groupWinners} {groupWinnersShort} {groupWinnersCount} {shockLine} |
| Champions | teams.champions.headline / teams.champions.body | {event} {city} {winners} {winnerPlayers} {runnersUp} {runnerUpPlayers} {score} {prize} |
| Pundits' takes on those stories | teams.take.preview, teams.take.groups, teams.take.champions | the same as the story they go with |
| Your team's posts | social posts, triggers teamPreview, teamWin, teamExit | the usual post placeholders plus {team} and {partner} (and {round} on exit) |
{prize} is the champions' prize money, already shown in the player's currency: write "They share {prize}", not "£{prize}" (see Money).
Teams that are not nations: squads and pairs#
teams.kind has two more values. Both play exactly as nation teams do (pairs matches, and ties of singles and pairs rubbers in the rounds you choose), and both are teams of two. The preview, round-up and champions' stories and the team posts are written for nations and are not used for them.
**"squads"**: the event names its squads and a player belongs to one of them for good.
"teams": {
"kind": "squads",
"size": 2,
"squads": ["Northern Shires", "Pennine Shires", "Midland Shires", "Eastern Shires"],
"ranking": "season:core.tour.junior",
"minPlayers": 1,
"ties": [{ "from": 1, "rubbers": [{ "kind": "singles", "a": 1, "b": 1 }, { "kind": "singles", "a": 2, "b": 2 }, { "kind": "pairs" }], "toWin": 2 }]
}- Every player the event's
restrictallows is in one squad, worked out from the player's id: the same squad in every event that lists the same squads, and nothing is saved. A squad's name is also its team id (team:Northern Shires), so keep the names distinct, and keep the list the same across the events of a league. - Each squad fields its best
sizeonranking(unranked players by level); a squad with fewer thanminPlayerseligible players stays at home. Squads are seeded by their players' combined rank. "pick": "turns"makes a squad take turns in place of fielding its best: those who have played fewest days of the series this season go first (the series istable.series, below), andranking, then level, decides between equals. Use it for a children's league, where everyone should get a game. Without atablethere is no series to count, and the squad's best play."turnsFromAge": 14, with turns: the youngest age that takes them. A class has only an upper age (restrict.maxAge), so a younger player may be eligible; that player gets a place only when the squad has one left over after those of the class's own ages (the best such player first), and never takes a turn from one of them."sides": 3makes the squads the sides of clubs, made up on the day. The first (squads / sides) names are the clubs and the rest their further sides, one block of clubs apart:["North", "South", "North B", "South B"]with"sides": 2. A player belongs to a club; the club's players are picked together (bypick) and dealt into its sides best with weakest, as many whole sides as there are players for; whoever is left over goes first next time. With"minPlayers": 2nobody plays alone. The count of squads must divide bysides, or the event is dropped. The league table is still by side name.- Up to 64 squads. Without
sidesa squad is a fixed share of the eligible players, so with many squads and few players some will be short of a partner on some days (the missing partner rule above then applies): count the players the restriction leaves before adding squads. The core's league keeps this to about one side in ten. - Nobody enters a squads event. You play if your squad picks you; otherwise the calendar says who was picked, and with turns whether it was the others' turn or the places went on merit (texts
engine-teams.explain-squad-entry.turnsand.merit). - The core pack's Shires Youth League is made this way, in three age classes with a table each (under-12, under-14 and the oldest, eight match days each): eight shires, each fielding three or four sides in a class (
Northern Shires,Northern Shires B, ...), the list ordered so that a child is in the same shire in every class.
A league table across the events of a series. Add table to the teams of every event that belongs to the series:
"table": {
"series": "core.series.shires-youth-league",
"win": 2,
"loss": 0,
"order": ["points", "rubberDiff", "rubbersFor", "wins", "name"]
}- Every event of a league year that names the same
seriescounts (the calendar year, unlessfromsays otherwise, below). Each finished tie counts for both teams: played, won or lost, rubbers for and against, andwinorlosspoints. orderis the tie-break order, first key first:points,wins,rubberDiff(rubbers won less rubbers lost),rubbersFor,name(A to Z). Teams level on every key you list are ordered by name.- The table is shown in the event centre (the Table tab) and in the lobby, with your team marked. It is worked out from the saved draws of the series' events, so nothing extra is stored and it starts again each league year.
- A tie cannot be drawn (a tie is won by the first team to
toWinrubbers), so there is no column for draws. - A career keeps the events it was started with: a table added to the pack later appears in new careers only.
Fixtures, tiers and promotion. A squads league can be played as home-and-away fixtures in tiers, with sides going up and down at the end of each league year. All four fields are optional:
"teams": {
"kind": "squads", "size": 3, "squads": ["Dorset", "Essex", "..."],
"tier": 1,
"fixtures": { "round": 3 },
"table": {
"series": "core.series.inter-county-league", "win": 2, "loss": 0, "order": ["points", "rubberDiff", "name"],
"tiers": [["Dorset", "Essex", "..."], ["Cornwall", "Gwent", "..."], ["Cambridgeshire", "Cheshire", "..."]],
"move": 2,
"from": 9
}
}fixtures.roundmakes the day one round of a double round robin between the day's squads, in place of a knockout. Rounds 1 to n - 1 are the first leg and n to 2n - 2 the return leg, with home and away swapped (n sides, rounded up to an even number; with an odd number one side rests each round). Each pairing is a tie played with the event'sties. The tie's winners are paidprizes[0]and its losersprizes[1], as on a league night. The home side is listed first. Give the league one event per round. Fixtures do not mix withsides; a round beyond 2n - 2, orsides, drops the event.table.tierslists the league's tiers at the start, top first. Each tier is a list of squad names. Every event keeps the fullsquadslist, so a player stays in one county or club for good, and names itstier(1 = top). A day fields only the squads in its tier. Each squad may be in one tier only, and every name must be one of the event's squads, or the event is dropped. Put the sametierson every event of the series.table.move(default 0): when a league year ends, the bottommoveof each tier and the topmoveof the tier below change places, by that year's tables. A promoted side takes the relegated side's place in its tier's list. A career keeps its own tiers in the save, so a pack edit does not reshuffle a career under way. A new career, or a league a career has not met before, starts from the pack'stiers. A league year that nobody played moves nobody.table.from(a month, 1-12, default 1) starts the league year in that month. With 9 the league runs from September to the summer, across the new year: the table, the turns count and the promotion go by league year. The season builder still places each event by its ownmonthandweek.- The core pack's Inter-County League is made this way: the 46 real counties of England and Wales in their 2026/27 divisions (Premier 9, Championship 10, Divisions One, Two and Three 9 each). Each division plays a single round robin, rounds 1 to 9 on nine Sundays from September to May (a division of nine has a bye each round), and two go up and two down. The days of one Sunday each have their own venue: a second event of the same tour at a venue already taken that day moves on a day.
Counties. "county": true makes the squads counties: the human plays for the county they registered with (their Player page; a change waits for the close season), else the one where they live gives.
"teams": {
"kind": "squads", "county": true, "size": 3, "squads": ["Dorset", "Essex", "Glamorgan", "..."],
"regions": { "east": "Essex", "south-east": "London", "WAL": "Glamorgan" },
"homes": { "ENG": ["Dorset", "Essex", "..."], "WAL": ["Glamorgan", "Gwent", "Clwyd", "Gwynedd", "Breconshire", "..."] },
"ranking": "average:core.tour.county"
}homeslists each country's counties (by nation code). Every player who lives there belongs to one of them, worked out from their id over that list, so give every county event of a country the same list in the same order: a player then has one county in all of them (the core's Welsh players are in the same county in the league and in the Welsh Inter County Championship). A county inhomesthat is not one of the event's squads has no side in it: its players sit that event out. A player whose country has no list has no county (the core has none for Northern Ireland).regionsnames the county where the human lives gives them, by region id, or by nation code for a country without regions."ranking": "average:<tour>"picks each county's side on the county table: every player's three-dart average this league year in the tour's events (the league's singles and its individual events), with their Super League average, the one their level throws, counted forcounty.superLeagueLegslegs beside it (tuning).- A data update that changes a county league's days, or drops some, holds the whole set while a county season is under way (a county day played this league year and one still to come) and brings it in on the first day of the next league year. The days the pack dropped are kept in the career for their history, marked
"discontinued": true(never on a calendar again), the season's days still to come are put on the calendar afresh, the league's tiers start again from the pack's, and a registration with a county the pack no longer has lapses.
**"pairs"**: an open event whose entrants are drawn out of a hat into teams.
"entry": "open",
"fieldSize": 16,
"teams": { "kind": "pairs", "size": 2 }fieldSizeis the number of pairs. The entrants are found as for any open event offieldSize×sizeplayers (your entry counts as in a singles event), then drawn into pairs at random. A pair is named after its players ("Hale & Booth"). With an odd number, the last one out of the hat stays at home, never you.- You are told your partner when the event is drawn.
- The core pack's Jamboree Pairs (the Sunday of the Junior Darts Jamboree) is made this way.
Sources#
- 2026 PDC World Cup of Darts (Wikipedia): 40 teams, byes for the top 4, 12 groups of 3, best of 7 / 15 / 19, prize money, dates, venue, result, Uganda replaced by Gibraltar.
- 2025 PDC World Cup of Darts and 2024 PDC World Cup of Darts (Wikipedia): the same format; regional qualifiers and wild cards; the Price / Williams replacement.
- 2023 PDC World Cup of Darts (Wikipedia): Order of Merit, Asian Tour and Nordic & Baltic selection; the van Gerwen / van Duijvenbode replacement.
- PDC World Cup of Darts (Wikipedia): the format by era (24 → 32 → 40 teams; singles and pairs ties 2014–2022).
- PDC Nordic & Baltic: World Cup of Darts: the 2026 team selection rules (Tour Card holders by Order of Merit, the best non-holder for a nation with one).