Reference

World settings

The living world: other players' careers (sponsors, darts, youngsters, retirements, rivalries, form) and how much of it makes the news. Every field is optional; a field left out keeps the game's default. Several mods can supply one: they apply in load order, later fields winning. Chances are per tracked player per month unless they say otherwise. See The living world.

Content type
world
Files
data/world.json
Shape
One settings object (a file may hold the object itself)
Patch target
world:<id>, for example world:core.world
In the base game
1 record
Guide
The living world

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.

FieldTypeRequiredDefaultNotes
ididYesNamespaced id, e.g. "core.player.rory-calder"
enabledtrue or falsefalse switches the living world off: no AI moves, no world stories.
trackedobjectWho the world follows closely: tiers up to tierMax, and the top rank on the Order of Merit.
tracked.tierMaxwhole number, 0 to 5
tracked.rankwhole number, 0 to 1000
newsobject
news.perWeekwhole number, 0 to 20World stories published in a normal week (the strongest candidates).
news.maxPerWeekwhole number, 0 to 30Most a week, counting must-run stories.
news.mustRunnumber, 0 to 100A story this important always runs (up to maxPerWeek).
news.minWeightnumber, 0 to 100Stories weaker than this never run (they still go on the player's timeline).
news.socialChancenumber, 0 to 1Chance a published story also gets a social post.
news.link.rivalnumber, 0 to 10
news.link.nationnumber, 0 to 10
news.link.tiernumber, 0 to 10
news.weightsmap (key: value)Importance of each story kind (see WORLD_STORY_KINDS), 0 = never news.
sponsorsobject
sponsors.signChancenumber, 0 to 1No main sponsor: chance to sign one.
sponsors.dropChancenumber, 0 to 1Their level has fallen below the sponsor's: chance they part ways.
sponsors.upgradeChancenumber, 0 to 1A bigger brand fits them now and they're winning: chance of a move.
sponsors.renewChancenumber, 0 to 1A deal running out at the end of the season: chance it's renewed.
sponsors.newsRankwhole number, 0 to 1000Moves by players ranked up to this make the news (others: timeline only).
dartsobject
darts.switchChancenumber, 0 to 1Their darts brand no longer fits their level: chance they switch.
darts.slumpChancenumber, 0 to 1In a slump: chance they change darts (and dip in form while they settle).
darts.signatureRankwhole number, 0 to 1000Ranked this high without a signature range: a brand may launch one.
darts.signatureChancenumber, 0 to 1
darts.dipnumber, 0 to 0.5Form lost while getting used to new darts.
darts.newsRankwhole number, 0 to 1000
youthobject
youth.maxAgewhole number, 14 to 30Oldest age counted as a youngster.
youth.featureswhole number, 0 to 10"One to watch" features a season.
youth.minGainnumber, 0 to 20Least off-season rating gain for a feature.
retirementobject
retirement.announceMonthwhole number, 0 to 12Month when veterans announce they'll retire at the season's end (1–12; 0 = never announce).
retirement.newsRankwhole number, 0 to 1000Retirements of players ranked up to this make the news (named players always do).
retirement.comebackChancenumber, 0 to 1Per season, for a recently retired player still good enough: chance of a comeback.
retirement.comebackMaxAgewhole number, 20 to 80
rivalryobject
rivalry.seedFinalnumber, 0 to 1Rivalry heat added when two tracked players meet in a final.
rivalry.seedClosenumber, 0 to 1…or in a close televised knockout match (quarter-finals on).
rivalry.aiGrowthnumber, 0 to 2Scales how fast rivalries between computer players grow at each meeting.
rivalry.bornHeatnumber, 0 to 1Heat at which a rivalry is born (and news).
rivalry.newsHeatnumber, 0 to 1Heat at which a meeting in a big match is a "grudge match" story.
formobject
form.windowwhole number, 2 to 12Recent events looked at for streaks.
form.hotTitleswhole number, 1 to 10Titles within the window for a hot streak.
form.slumpExitswhole number, 2 to 20Early exits in a row for a slump.
form.cooldownWeekswhole number, 1 to 52Weeks before the same player can have another form story.
form.dartitisChancenumber, 0 to 1Slumping veteran (generated players only): chance of dartitis whispers.
form.coachChancenumber, 0 to 1Slumping (generated players only): chance of a coaching change.
form.injuryChancenumber, 0 to 0.2Per tracked generated player per week: chance of an injury.
agenciesobject
agencies.signChancenumber, 0 to 1
agencies.switchChancenumber, 0 to 1
agencies.newsRankwhole number, 0 to 1000
facesobjectHow generated players' library faces are picked: a face's score loses ageWeight a year of age gap, agePenaltyWeight more a year beyond agePenaltyAfter, and wearWeight for each player already wearing it; refreshAgeGap (0 = never) gives a player a new face at the season's turn once they've aged that many years past theirs (defaults 0.35, 0, 0, 50 and 0).
faces.ageWeightnumber, 0 to 100
faces.agePenaltyAfternumber, 0 to 80
faces.agePenaltyWeightnumber, 0 to 100
faces.wearWeightnumber, 0 to 1000
faces.refreshAgeGapwhole number, 0 to 80

Example#

A record from the base game’s data/world.json, shortened.

{
  "id": "core.world",
  "enabled": true,
  "tracked": {
    "tierMax": 2,
    "rank": 64
  },
  "news": {
    "perWeek": 2,
    "maxPerWeek": 3,
    "mustRun": 9,
    "minWeight": 3,
    "socialChance": 0.45,
    "link": {
      "rival": 2,
      "nation": 1.35,
      "tier": 1.2
    },
    "weights": {
      "sponsorSigned": 3,
      "sponsorSplit": 3.5,
      "sponsorSwitch": 4.5,
      "dartsSwitch": 4,
      "dartsChange": 2.5,
      "signatureRange": 5,
      "oneToWatch": 5,
      "firstTitle": 5,
      "youngCard": 4,
      "youngMajor": 9,
      "retiring": 6,
      "retired": 7,
      "farewell": 6,
      "comeback": 8,
      /* … 13 more fields */
    }
  },
  "sponsors": {
    "signChance": 0.03,
    "dropChance": 0.12,
    "upgradeChance": 0.03,
    "renewChance": 0.7,
    "newsRank": 48
  },
  "darts": {
    "switchChance": 0.04,
    "slumpChance": 0.35,
    "signatureRank": 8,
    "signatureChance": 0.08,
    "dip": 0.12,
    "newsRank": 48
  },
  "youth": {
    "maxAge": 23,
    "features": 3,
    "minGain": 2
  },
  "retirement": {
    "announceMonth": 9,
    "newsRank": 100,
    "comebackChance": 0.03,
    "comebackMaxAge": 55
  },
  "rivalry": {
    "seedFinal": 0.06,
    "seedClose": 0.035,
    "aiGrowth": 0.3,
    "bornHeat": 0.35,
    "newsHeat": 0.45
  },
  "form": {
    "window": 5,
    "hotTitles": 2,
    "slumpExits": 6,
    "cooldownWeeks": 12,
    "dartitisChance": 0.12,
    "coachChance": 0.3,
    "injuryChance": 0.0015
  },
  "agencies": {
    "signChance": 0.015,
    "switchChance": 0.004,
    "newsRank": 16
  },
  "faces": {
    "ageWeight": 0.6,
    "agePenaltyAfter": 8,
    "agePenaltyWeight": 6,
    "wearWeight": 12,
    "refreshAgeGap": 15
  }
}

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