Guide

The living world

Everybody else has a career too. Computer players sign and lose sponsors, change darts, break through, slump, pick up injuries, retire (and now and then come back), fall out with each other and hit milestones. It's all deterministic from the save's seed and cheap enough to run every week.

What happens goes on the player's timeline (their profile page). The best of it makes the news: a few stories a week, weighted by how big a story it is, how big a name, and how close the player is to you (your rivals, your nation, your tier). Some stories get a social post too. The World section's Living world tab shows the rising stars, who's in and out of form, the hottest rivalries, sponsor and darts moves, and the farewells.

Three kinds of content drive it:

  • data/world.json: the settings (rates, thresholds, how much news). This page.
  • Media lines with world.* slots: the headlines, story text and pundits' takes. See Media lines.
  • Social posts with world* triggers: see Social feed.

Who the world follows#

The world follows the top tiers (tracked.tierMax, default 2: Elite Series and Pro Circuit) and the top of the Order of Merit (tracked.rank, default 64). Only they have sponsors, darts, form and rivalries in the world simulation. Retirement, youth and milestone stories reach further (see below).

Settings#

The file holds one object (an array of them also works). Every field except id is optional. A field you leave out keeps the game's default. The core pack's data/world.json lists every field with its default value.

{
  "id": "acme.world",
  "news": { "perWeek": 3, "weights": { "grudgeMatch": 7 } },
  "retirement": { "comebackChance": 0.1 }
}

Chances are per tracked player per month unless the table says otherwise.

FieldDefaultWhat it does
enabledtruefalse switches the living world off (retirements are reported the old way).
tracked.tierMax2Tiers the world follows.
tracked.rank64…plus the top this many on the Order of Merit.
news.perWeek2Stories published in a normal week (the strongest candidates).
news.maxPerWeek3Most in any week, must-run stories included.
news.mustRun9A story at least this important runs even when the week is full (up to maxPerWeek).
news.minWeight3Weaker stories never run (they still go on the timeline). A strong story that misses out waits a week or two.
news.socialChance0.45Chance a published story also gets a social post.
news.link.rival / nation / tier2 / 1.35 / 1.2Weight multipliers for stories about your rivals, your compatriots and players in your tier.
news.weightsbelowImportance of each story kind (0 = never news).
sponsors.signChance0.03No main sponsor: chance to sign one.
sponsors.dropChance0.12Their level has fallen below the sponsor's: chance they part ways.
sponsors.upgradeChance0.03Winning, and a bigger brand fits: chance of a move (a bigger darts brand too).
sponsors.renewChance0.7A deal that ran out and still fits: chance it's renewed.
sponsors.newsRank48Sponsor moves by players ranked up to this make the news.
darts.switchChance0.04Their darts brand no longer fits their level: chance they switch.
darts.slumpChance0.35In a slump: chance they change darts (and lose dip form while they settle).
darts.signatureRank / signatureChance8 / 0.08Ranked this high without a signature range: chance a brand launches one.
darts.dip0.12Form lost to new darts (form runs −1 … 1).
darts.newsRank48Darts changes by players ranked up to this make the news.
youth.maxAge23Oldest age counted as a youngster.
youth.features3"One to watch" features a season: the off-season's biggest risers, spread over the first half of the season.
youth.minGain2Least off-season rating gain for a feature.
retirement.announceMonth9Veterans say this season will be their last during this month and the next two (0 = never announce).
retirement.newsRank100Retirements of players ranked up to this make the news (named players and tiers 1–2 always do).
retirement.comebackChance0.03Per season, for someone who retired in the last three and can still play: chance of a comeback.
retirement.comebackMaxAge50Too old to come back after this.
rivalry.seedFinal0.06Rivalry heat (0–1) added when two tracked players meet in a final.
rivalry.seedClose0.035…or in a televised knockout match (quarter-finals on) decided by a leg.
rivalry.aiGrowth0.3Scales how fast rivalries between computer players grow at each meeting (yours grow at the normal rate).
rivalry.bornHeat0.35Heat at which a rivalry is born (a story, and it shows on both profiles).
rivalry.newsHeat0.45Heat at which a meeting in a final or a televised semi-final is a "grudge match" story (at most every 6 weeks).
form.window / hotTitles5 / 2A hot streak: this many titles in their last window tier 1–2 events.
form.slumpExits6A slump (top 32 only): this many early exits (before the last 16) in a row.
form.cooldownWeeks12Weeks before the same player has another form story.
form.dartitisChance0.12A slumping veteran (33+): chance of dartitis whispers. Generated players only.
form.coachChance0.3A slumping player hires a coach (a small confidence lift). Generated players only.
form.injuryChance0.0015Per tracked player per week: an injury (withdrawn from events). Generated players only; see below.
agencies.signChance / switchChance0.015 / 0.004Top-32 players sign with (or move between) the agencies in data/staff/agencies.json.
agencies.newsRank16Agency moves by players ranked up to this make the news.

Injuries use the same injury types as yours (Injuries and treatment): the weekly chance is form.injuryChance × the same wear factor you have (poor Fitness and age raise it, 1 on average), the injury is picked from the types with "ai": true (weighted by age, and eyesight for the eyes), and they're out for as long as the type and its severity take to rest (at least two weeks: the minor ones they play through).

Nothing is ever invented about a named player's health or staff (injuries, dartitis whispers and coaching changes are for generated players only), and their "first title" and title-count milestones are left out too: the game only knows their record since the career began. Retirement tributes say "since 2026" for the same reason.

Story kinds and weights#

A story's weight is weights[kind] × how big a name (1.8 for the top 4 on the Order of Merit down to 0.5 unranked) × any link to you × a boost some stories carry (a first major, a signature range, a record).

KindWeightWhat
sponsorSigned3Signs with a main (shirt) sponsor
sponsorSplit3.5Parts ways with one (their level dropped, or the deal ran out)
sponsorSwitch4.5Leaves one sponsor for a bigger one
agency2Signs with (or moves to) an agency
dartsSwitch4New darts brand
dartsChange2.5New range or weight (usually after a slump)
signatureRange5A brand launches their signature range
oneToWatch5A youngster feature
firstTitle5A generated player's first title (tiers 1–3)
youngCard4Youngsters (21 and under) win Tour Cards
youngMajor9A major at 23 or under: the youngest since the career began, or a first major
retiring6"This season will be my last" (autumn)
retired7A tribute (the three biggest names get their own, the rest a round-up)
farewell6A retiring player's last major
comeback8Out of retirement
rivalryBorn4.5A rivalry between two computer players is born
grudgeMatch5Rivals meet again in a final or on TV
feudWords5Two computer players fall out: words after a meeting
feudBustUp6.5The hothead loses a close one and loses the head: a fine from the governing body
feudGrudge6The grudge match that follows the bust-up, whoever wins it
feudCooled3The feud is over: nobody fed it for world.feud.coolWeeks, or the heat went
hotStreak4Titles in a row
slump3Early exits in a row
dartitis3Whispers about the release
coach2.5A new coach
injury3Out injured
titleMilestone510, 25, 50 or 100 titles, or a first major

Media lines#

Each kind has a world.<kind>.headline and a world.<kind>.body slot, and each group has a pundit's take (world.take.sponsor, kit, rising, retirement, rivalry (the rivalry and feud stories), form (a hot streak), slump (a slump, dartitis, a new coach, an injury), milestone). The feud lines can use {round}, {event}, {score} and {h2hText} like the rivalry ones, and feudCooled has {since}, the year the feud began. They're ordinary media lines: add your own in data/media/lines/.

  • Lines without styles are the neutral copy the story is written with.
  • Lines with styles are a writer's own voice: when a journalist with that style gets the story, their line can replace the headline. Takes need a style (the pundit's).
  • A line is skipped when one of its placeholders has nothing to fill it, and lines that use a story's particulars ({record}, {names}, {majors}, {oldWeight}, {oldSponsor}, {oldBrand}, {average}, {why}) are preferred when the story has them.

Every line can use {subject} {subjectFirst} {subjectLast} {subjectNick} (who the story is about) and, for stories about two players, {other} {otherLast}. The story's own words:

KindsPlaceholders
sponsorSigned sponsorSwitch{sponsor} {category} {seasons} ("two seasons") {deal} ("two-season"), {oldSponsor} on a switch
sponsorSplit{oldSponsor} {why} ("when the deal ran out")
agency{agency}, {oldAgency} on a move
dartsSwitch dartsChange{brand} {item} (the range) {weight}, maybe {oldWeight} {oldBrand} {why}
signatureRange{brand} {item} {weight}, maybe {oldBrand}
oneToWatch{age} {tour}, maybe {gain} {rank}
firstTitle youngMajor titleMilestone{event} {age} {titles}; {record} {since} (youngMajor), {milestone}
youngCard{age} {via} {names} ("Ann Bloggs (19) and …") {count}
retiring retired{age} {titles} {since}, maybe {titleWords} ("a title", "12 titles"; none: left out) {majors} {average} {bestYear}; a round-up has {names} {count} (its lines must use one of them)
farewell{event} {round} (how far they got) {result}
comeback{age} {titles}
rivalryBorn grudgeMatch{event} {round} {score} {h2h} (the winner's head to head, "5–3")
hotStreak{titles} {count} {event}
slump dartitis coach{count} {rank} {age}, {coach}
injury{weeks} {injury} ("tennis elbow")

With no world lines at all (a pack that removes them), stories fall back to plain built-in copy.

Saves#

The settings are copied into a save when the career is created, and follow the installed packs when a save is loaded (like the press pack). A save from before the living world starts it the first time it's loaded: the players it follows get their sponsors and darts quietly, and nothing that happened before is reported. Stories and timelines begin from that week.

Checking the rates#

The schema is the world settings reference.

Written for Darts Player Simulator 0.50.32. Built from the game's own schemas and its base pack.