Reference

Hub panels

A panel declared in data (data/ui/panels/*.json). Text may use the same {placeholders} as stories plus the panel ones (UI panels); number fields may be a placeholder like "{confidence}".

Content type
panels
Files
data/ui/panels.json, data/ui/panels/
Shape
A list of records, each with its own id
Patch target
panel:<id>, for example panel:core.example
In the base game
0 records
Guide
UI panels

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"
sectionone of the optionsYesOptions: home, calendar, bookings, training, staff, player, cards, rankings, analytics, media, sponsors, equipment, world, finances, legacy.
placementone of the options"end"Options: start, end.
sizeone of the options"normal"Options: normal, wide.
orderwhole number, -100 to 1000
titletext, up to 60 charactersYes
subtitletext, up to 120 characters
widgetslist, 1 to 8 itemsYes
widgets[]one of several shapesYes
When type is "text"
widgets[].typeexactly "text"Yes
widgets[].texttext, up to 600 charactersYes
widgets[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
When type is "stats"
widgets[].typeexactly "stats"Yes
widgets[].itemslist, 1 to 6 itemsYes
widgets[].items[].labeltext, up to 40 charactersYes
widgets[].items[].valueone of several shapesYes
Shape 1: text, up to 24 characters
Shape 2: number
widgets[].items[].subtext, up to 80 charactersA short line under the value.
widgets[].items[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
widgets[].items[].trendone of the optionsAn arrow next to the value. Options: up, down, flat.
When type is "meter"
widgets[].typeexactly "meter"Yes
widgets[].labeltext, up to 40 charactersYes
widgets[].valueone of several shapesYesA number, or in a data panel a {placeholder} that holds one.
Shape 1: number
Shape 2: text
widgets[].maxone of several shapesDefault 100.
Shape 1: number
Shape 2: text
widgets[].displaytext, up to 16 charactersShown instead of the value, e.g. "72%".
widgets[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
When type is "keyValue"
widgets[].typeexactly "keyValue"Yes
widgets[].itemslist, 1 to 12 itemsYes
widgets[].items[].labeltext, up to 40 charactersYes
widgets[].items[].valueone of several shapesYes
Shape 1: text, up to 80 characters
Shape 2: number
widgets[].items[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
Shape 1 (with player)
widgets[].items[].link.playertext, up to 80 charactersYesNames a player record.
Shape 2 (with event)
widgets[].items[].link.eventtext, up to 120 charactersYesNames a event record.
When type is "table"
widgets[].typeexactly "table"Yes
widgets[].columnslist, 1 to 6 itemsYes
widgets[].columns[].labeltext, up to 24 charactersYes
widgets[].columns[].alignone of the options"end" for numbers. Options: start, end.
widgets[].rowslist, up to 20 itemsYes
widgets[].rows[]list, up to 6 itemsYes
widgets[].rows[][]one of several shapesYesA table cell: text, a number, or text with a tone and a link.
Shape 1: text, up to 80 characters
Shape 2: number
Shape 3 (with text)
widgets[].rows[][].texttext, up to 80 charactersYes
widgets[].rows[][].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
widgets[].emptytext, up to 120 charactersShown when there are no rows.
When type is "list"
widgets[].typeexactly "list"Yes
widgets[].itemslist, up to 12 itemsYes
widgets[].items[].texttext, up to 160 charactersYes
widgets[].items[].subtext, up to 120 charactersA short line under the value.
widgets[].items[].metatext, up to 24 charactersA short tag on the right, e.g. a date or a score.
widgets[].items[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
Shape 1 (with player)
widgets[].items[].link.playertext, up to 80 charactersYesNames a player record.
Shape 2 (with event)
widgets[].items[].link.eventtext, up to 120 charactersYesNames a event record.
widgets[].emptytext, up to 120 charactersShown when there are no items.
When type is "chips"
widgets[].typeexactly "chips"Yes
widgets[].itemslist, 1 to 12 itemsYes
widgets[].items[].texttext, up to 24 charactersYes
widgets[].items[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
When type is "bars"
widgets[].typeexactly "bars"Yes
widgets[].itemslist, 1 to 12 itemsYes
widgets[].items[].labeltext, up to 32 charactersYes
widgets[].items[].valueone of several shapesYesA number, or in a data panel a {placeholder} that holds one.
Shape 1: number
Shape 2: text
widgets[].items[].displaytext, up to 16 characters
widgets[].items[].toneone of the optionsColour hint, drawn with the game's own palette. Options: good, bad, accent, muted.
widgets[].maxone of several shapesThe full-length value (default: the largest item).
Shape 1: number
Shape 2: text
When type is "sparkline"
widgets[].typeexactly "sparkline"Yes
widgets[].valueslist, 2 to 60 itemsYes
widgets[].labeltext, up to 40 characters
conditionobjectOnly shown while these hold (the story conditions; chance is ignored).
condition.tierMinwhole number, 1 to 5Best tier (1 = World Series) the player may be in
condition.tierMaxwhole number, 1 to 5Lowest tier the player may be in
condition.followersMinwhole number, at least 0
condition.followersMaxwhole number, at least 0
condition.confidenceMinnumber, 0 to 100
condition.confidenceMaxnumber, 0 to 100
condition.formMinnumber, -1 to 1
condition.formMaxnumber, -1 to 1
condition.moraleMinnumber, 0 to 100
condition.moraleMaxnumber, 0 to 100
condition.fatigueMinnumber, 0 to 1
condition.fatigueMaxnumber, 0 to 1
condition.cashMinwhole number
condition.cashMaxwhole number
condition.ageMinwhole number, at least 8
condition.ageMaxwhole number, at most 80
condition.tourCardtrue or falsetrue = must hold a Tour Card, false = must not
condition.rankMaxwhole number, at least 1Order of Merit rank at least this good
condition.monthslistOnly in these months
condition.dateFromtextOnly on or after this day of the year ("MM-DD", e.g. "10-30"); with dateTo, a window of days such as the week up to Fireworks Night Pattern: ^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
condition.dateTotextOnly on or before this day of the year ("MM-DD", e.g. "11-05"); a dateFrom later in the year than it makes the window run over the new year Pattern: ^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
condition.seasonPhaseone of the optionsearly = Jan–Apr, mid = May–Aug, late = Sep–Dec Options: early, mid, late.
condition.nationalitylist, at least 1 itemOnly for players from these countries
condition.livesInlist, at least 1 itemOnly while the player lives in one of these countries
condition.notLivesInlist, at least 1 itemNever while the player lives in one of these countries
condition.scenelist, at least 1 itemOnly while the player lives in one of these darts scenes (scene record ids; a country with no scene of its own is in the fallback record's)
condition.genderone of the optionsOptions: m, f.
condition.wontrue or falsematchEnd / eventEnd triggers: the result that just happened.
condition.tvtrue or false
condition.majortrue or false
condition.crowdMinnumber, 0 to 1
condition.againstRivaltrue or false
condition.vsGraduatetrue or false
condition.positionMaxwhole number, at least 0eventEnd: finishing position at most this (0 = winner, 1 = final, 2 = semi…).
condition.positionMinwhole number, at least 0eventEnd: finishing position at least this (0 = winner, 1 = final, 2 = semi…); with positionMax, the players out in one round.
condition.prizeMinwhole number, at least 0
condition.lastResultPositionMaxwhole number, at least 0Your most recent completed event: finishing position at most this.
condition.losingStreakMinwhole number, at least 1Consecutive match losses at least this many.
condition.winningStreakMinwhole number, at least 1
condition.minTitleswhole number, at least 0Career titles (events won) at least / at most this many.
condition.maxTitleswhole number, at least 0
condition.hasWalkontrue or false
condition.dayJobtrue or falsetrue: only while you keep a day job; false: only once you're full-time.
condition.hasCoachtrue or false
condition.hasStaffone of several shapesYou employ someone in this staff role (a role id like "core.staff.physio" or just "physio"); a list means any of them
Shape 1: text
Shape 2: list, at least 1 item
condition.lacksStaffone of several shapesYou employ nobody in this staff role (a role id or just "accountant"); a list means none of them
Shape 1: text
Shape 2: list, at least 1 item
condition.staffQualityMinwhole number, 1 to 5A staff member rated at least this many stars (in the hasStaff role, if given; otherwise anyone)
condition.staffQualityMaxwhole number, 1 to 5A staff member rated at most this many stars (in the hasStaff role, if given; otherwise anyone)
condition.negotiatedone of the optionsSomething that happened in a sponsor negotiation in the last 4 weeks: a sponsor walked away, two sponsors bid against each other, your agent closed a deal, or you signed one Options: walkedAway, biddingWar, agentDeal, signed.
condition.hasRivaltrue or falseA rivalry of real intensity (≥ 0.3) with someone
condition.rivalEdgeone of the optionsWho has the edge in your record against the story's rival: yours (you lead by the pack's edgeLead), theirs, or level Options: yours, theirs, level.
condition.rivalryMinMeetingswhole number, at least 1You and the story's rival have met at least this many times
condition.rivalLastResultone of the optionsThe last meeting with the story's rival: you won it, or lost it (never met: neither) Options: won, lost.
condition.flagone of several shapesEvery one of these story flags is set (a setFlag action set it); text variables such as {rival} are filled in the name
Shape 1: text
Shape 2: list, at least 1 item
condition.notFlagone of several shapesNone of these story flags is set
Shape 1: text
Shape 2: list, at least 1 item
condition.hasSponsortrue or falseAny active sponsorship contract
condition.sponsorCategoryone of the optionsAn active sponsor in this category Options: darts, apparel, drinks, boards, energy, travel, tech, local.
condition.injuredtrue or falseCarrying an injury from a story
condition.imageMinnumber, -100 to 100Public image (−100 … 100) at least this
condition.imageMaxnumber, -100 to 100
condition.hasEventWithinDayswhole number, 0 to 60You are entered in (or automatically in) an event starting within this many days
condition.noEventWithinDayswhole number, 0 to 60Nothing on your calendar for this many days
condition.nextTriplist, at least 1 itemThe journey to your next event is one of these travel steps (ids from the travel settings)
condition.triplist, at least 1 itemAfter a match or an event: the journey to it was one of these travel steps (ids from the travel settings)
condition.seasonMonthslist, at least 1 itemOnly in these months of the weather's year, as a northern-hemisphere year has them (shifted for a southern scene)
condition.exhibitionKindlist, at least 1 itemexhibitionEnd only: the night was one of these kinds (clubNight, holidayPark, charity…)
condition.hasBookingtrue or falsetrue: you have an exhibition booked in the next 4 weeks; false: nothing booked
condition.loadMinnumber, 0 to 100Your workload (0–100, see Travel load and burnout) at least this: 60 tired, 75 overloaded, 90 burnout
condition.loadMaxnumber, 0 to 100Your workload (0–100) at most this
condition.hasKittextYou have something equipped in this kit slot ("darts", "charm"…) Pattern: ^[a-z][a-z0-9-]*$
condition.kitNewMaxnumber, 0 to 1Your darts are this familiar at most (0–1): e.g. 0.5 = still new in the hand
condition.developingtrue or falsetrue: a signature item is in development in your workshop; false: none is
condition.hasSignaturetrue or falseYou have launched a signature item
condition.kitProtectMaxnumber, 0 to 100Your travel case protects your kit by at most this % (0 without one)
condition.chancenumber, 0 to 1Probability of firing per check once the conditions hold
condition.seasonsMinwhole number, at least 1Seasons of your career, counting the one in progress, at least this many
condition.seasonsMaxwhole number, at least 1Seasons of your career, counting the one in progress, at most this many
condition.squadobjectYour standing in a squads league you play for (the county league, a youth league): every listed check must hold, and you must be in one of its squads
condition.squad.tourtextYesThe tour of the league: its squads events count (core.tour.county for the county league) Pattern: ^[a-z0-9][a-z0-9-]*(\.[a-z0-9][a-z0-9-]*)+$
condition.squad.capsMinwhole number, at least 0Days the league has picked you for, at least this many
condition.squad.capsMaxwhole number, at least 0Days the league has picked you for, at most this many (0: never picked yet)
condition.squad.seasonsMinwhole number, at least 1League seasons you have been picked in, at least this many
condition.squad.rankMaxwhole number, at least 1Your place on your squad's own average table this season at least this good (1 = its best), last season's until you have played
condition.squad.averageMinlist, at least 1 itemYour three-dart average in the league's games this season at least this; a list gives one bar a division (top division first, the last one for any lower)
condition.squad.firstSidetrue or falsetrue: your last pick was for your squad's first side (its A team); false: for another side
condition.squad.pickedtrue or falsetrue: the last day your squad played picked you; false: it left you out
condition.squad.droppedtrue or falsetrue: the last day your squad played left you out after the one before picked you

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