Start here

Example packs

Each of these packs loads cleanly in game version 0.50.32. Download one, import it (Mods → Import a mod, or Data packs → Import a data pack on a phone), start a new career and see what it does, then open its files to see how.

The stage, the trophy and the dart parts are best copied into the mods folder on Windows rather than imported: an import leaves out 3D models in this version. Some of the packs include a German translation as an example of translating a pack; the game itself is in English.

Pub Legends##

Two pub legends for the county circuit, a sponsor of their own, and a sharper Dani Okafor.

acme.pub-legends · version 1.0.0 · 1 sponsor, 2 players, 1 patch

Download acme.pub-legends-1.0.0.zip (2 KB)

Files in the pack
  • mod.json
  • assets/sponsors/red-lion.png
  • data/sponsors.json
  • data/patches/core.patch.json
  • data/players/legends.json

Your own logo##

Replaces the game's logo (the game shirt's chest and back) and the main menu's title with a mod's own pictures.

example.brand · version 1.0.0 · 1 logo

Download example.brand-1.0.0.zip (140 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/logo-chest.png
  • assets/logo.png
  • assets/wordmark.png
  • data/brand.json
Read me

Replaces the game's own mark with a mod's pictures. Switch it on in Mods and go back to the main menu: the title is the mod's wordmark picture, and the game's shirt in the character creator carries the mod's logo on the chest and the back.

  • data/brand.json replaces the record core.brand.game (same id, so it takes the core pack's place).
  • assets/logo.png: the mark on a transparent ground (the shirt's back).
  • assets/logo-chest.png: the mark at 70 % inside a clear margin, so it sits inside a shirt's piping on the chest.
  • assets/wordmark.png: a wide title picture for the main menu, drawn as tall as the game's own title.

To change only one picture, patch the record instead: data/patches/brand.json with { "target": "brand:core.brand.game", "patch": { "wordmark": "assets/wordmark.png" } }. The league's mark is core.brand.league. The credits are not content and cannot be changed.

See Images in mods. The pictures here are flat shapes and the game's display font; use any picture of your own.

Your own dart part models##

Four dart part models from a mod (a barrel, a stem, a flight and a point) and a shop item drawn with each.

example.dartparts · version 1.0.0 · 4 kit items, 4 dart parts

Download example.dartparts-1.0.0.zip (706 KB)

Files in the pack
  • README.md
  • mod.json
  • darts/models/workshop-barrel.glb
  • darts/models/workshop-flight.glb
  • darts/models/workshop-point.glb
  • darts/models/workshop-stem.glb
  • data/dart-parts.json
  • data/equipment.json
Read me

Four dart part models shipped by a mod, and a shop item drawn with each. The contract (the part frame, how parts join, material names, file rules) is in Dart part models.

mod.json
data/dart-parts.json      the four parts: a barrel, a stem, a flight and a point
data/equipment.json       four shop items; each names its part in "look.model"
darts/models/*.glb        the models

The four .glb files here are copies of the game's own parts, so the example has something to load: workshop-barrel.glb is the bomb barrel with the aggressive grip, workshop-stem.glb the machined aluminium stem, workshop-flight.glb the kite flight and workshop-point.glb the diamond-cut point. Replace them with your own and change node, lods, length and stretch in data/dart-parts.json to match.

The items are given numbers that would pick a different part by themselves (a straight barrel, a nylon stem, a smooth point), so that what you see in the game is the model the item names, not the game's own pick.

Try it#

  1. Copy this folder into the game's mods folder and enable it on the Mods screen.
  2. Start a career. The four Workshop items are in the equipment shop at club level.
  3. Buy and fit them: the dart in Your setup, in the hand and in the board is drawn with these models.

When something is wrong#

  • A model that is missing, is not a .glb or is over 20 MB is refused when the mod loads; the Mods screen names the file and the reason, and the part is not used.
  • A model that loads but cannot be read when the dart is first drawn (Draco or meshopt compression, a node that is not in the file, no normals) is listed on the Mods screen with what was drawn instead; the game draws its own generated part.

None of these stops the game.

Pub Talk Interviews##

A data-only interview pack: new post-match questions, extra answers for the core pack's questions, one core answer toned down, one core question switched off, and a German translation.

example.interviews · version 1.0.0 · 2 interview questions, 3 interview answers, 2 patches

Download example.interviews-1.0.0.zip (4 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/icon.svg
  • data/media/interview-answers/core-extras.json
  • data/media/interviews/pub-talk.json
  • data/patches/interviews.patch.json
  • locale/de/patches/interviews.json
Read me

A post-match interview pack made of nothing but JSON. Copy this folder into your mods folder (Mods → Open mods folder) and press Reload mods. Interviews are flavour, so existing careers pick the pack up the next time they're opened.

  • mod.json: the manifest. New ids start with the mod id (example.interviews.).
  • data/media/interviews/pub-talk.json: two new questions. One comes up after a win in front of a home crowd; the other after a defeat despite a big average and plenty of 180s, and only analysts and veterans ask it. Field reference: the interviews field reference.
  • data/media/interview-answers/core-extras.json: this file changes the core pack's questions without copying them.
    • It adds a thank-your-sponsor answer to two of them.
    • It tones down the cocky answer to one.
    • It switches off the kebab joke ("replaces" with "weight": 0).
  • data/patches/interviews.patch.json: switches a core question off ("disabled": true) and lengthens another's cooldown.
  • locale/de/patches/interviews.json: the German text for everything above. Questions are translated with interview:<id>, and answers inside a question are matched by their id. An added answer is translated with interviewAnswer:<id>.

The full format is in Interviews.

Check it on the Mods screen: it lists any problem with its file and field.

The Faroe Islands##

A new nation with its own flag and players, a bigger Dutch sponsor market, and a kinder economy: a better-paid day job, cheaper comfort travel and sponsors who wait longer for an answer.

example.nations · version 1.0.0 · 1 name pool, 1 career rule set, 1 nation, 1 patch

Download example.nations-1.0.0.zip (3 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/flags/fro.svg
  • data/career-rules.json
  • data/nations.json
  • data/names/fro.json
  • data/patches/nations.patch.json
  • locale/de/patches/nations.json
Read me

A nations and economy pack made of JSON and one hand-drawn SVG. Copy this folder into your mods folder (Mods → Open mods folder) and press Reload mods. Nations and the economy are copied into a career's save, so start a new career to meet the Faroese (a career you load also picks up the installed packs' nations and rules).

  • mod.json: the manifest. New ids start with the mod id (example.nations.).
  • data/nations.json: a new nation, the Faroe Islands (FRO). It has a name, a demonym for the welcome letter, its own flag image, a sponsor market a little under the core's big darting nations, a face mix and avatar palette, and its travel geography (the Nordic area, Europe, UTC+0). See Nations.
  • assets/flags/fro.svg: the flag, drawn by hand on a 30×20 canvas (3:2 suits the game's flag tiles). Any image works; SVG stays sharp at every size.
  • data/names/fro.json: a name pool, so Faroese players turn up in new worlds (and a Faroese team at the Nations Cup once there are enough of them).
  • data/patches/nations.patch.json: a patch on a core nation. Dutch sponsors pay a quarter more than the game's baseline (market 1.25 instead of 1.15).
  • data/career-rules.json: a kinder economy. The day job pays 320 a week instead of 280, comfort travel costs 1.5 times the standard fare instead of 1.6, and sponsors' offers stay open for 35 days instead of 28. Fields left out keep the game's numbers. See the economy.
  • locale/de/patches/nations.json: the nation's German name, Färöer.

Check it on the Mods screen: it lists any problem with its file and field.

Form Guide##

Panels on the career hub: a form guide on Home and your rivals on your profile from a script, and a season card on Rankings from data alone.

example.panels · version 1.0.0 · 1 hub panel, a script

Download example.panels-1.0.0.zip (3 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/panels/season-card.json
  • locale/de/patches/panels.json
  • scripts/main.js
Read me

Mod panels on the career hub, from a script and from data. See UI panels.

  • mod.json: the manifest, with "entry": "scripts/main.js".
  • scripts/main.js: the panels hook builds a Form guide on Home (this season's numbers, your last five matches, each opening your opponent's profile, and a sparkline of your averages) and a Rivals table on your profile, with the head-to-head.
  • data/ui/panels/season-card.json: a panel with no script at all. It sits at the top of Rankings, and its {placeholders} fill in from your career: record, average, titles, confidence, your next event and your rival (a link to their profile).
  • locale/de/patches/panels.json: the data panel in German. Like any content, a panel is translated with a patch.

Check it on the Mods screen. Panels follow the installed mods: switch the mod off on the Mods screen and they leave the hub. Each panel can also be hidden on its own, from the × on the panel or the Mods screen.

County Characters##

A data-only example mod: four county-circuit players, one of them with a ready-made rivalry. No scripts, no code.

example.players · version 1.0.0 · 4 players

Download example.players-1.0.0.zip (5 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/banner.svg
  • assets/icon.svg
  • data/players/county.json
Read me

Four players for the county circuit, added with nothing but JSON. Copy this folder into your mods folder (Mods → Open mods folder), press Reload mods, then start a new career.

  • mod.json: the manifest. Every new record's id starts with the mod id (example.players.).
  • data/players/county.json: the players. Field reference: the players field reference.

No portraits are included, so the game gives each player a face from its library. To add your own, put a 512×512 image in assets/portraits/ and set "portrait": "assets/portraits/dot-hargreaves.webp".

Check it on the Mods screen: it lists any problem with its file and field.

House Rules##

A data-only rules pack: a retitled award and a new one with its own card, a harder Trial Week and a bigger Contender Tour, a faster training rate, sixty more lines of match commentary and a German translation.

example.rules · version 1.0.0 · 59 commentary lines, 1 card, 2 awards, 1 career rule set, 1 training setting, 4 patches

Download example.rules-1.0.0.zip (8 KB)

Files in the pack
  • README.md
  • mod.json
  • data/awards.json
  • data/cards.json
  • data/career-rules.json
  • data/training.json
  • data/commentary/more-lines.json
  • data/patches/rules.patch.json
  • locale/de/patches/rules.json
Read me

A rules pack made of nothing but JSON: it changes the season awards, the Tour Card ladder, training and the match commentary. Copy this folder into your mods folder (Mods → Open mods folder) and press Reload mods. Rules are copied into a career's save, so start a new career to play with them (a career you load also picks up the installed packs' rules).

  • mod.json: the manifest. New ids start with the mod id (example.rules.).
  • data/awards.json: two new season awards. Most Titles goes to whoever won the most titles, and mints its own card (cards). Sharpshooter of the Year is the best checkout rate over at least 200 attempts at a double, for players who won £5,000 or more. ceremony places them in the awards night. See Awards.
  • data/cards.json: the card Most Titles prints. Because the award lists it in cards, it mints for that award only; no conditions needed.
  • data/career-rules.json: a harder ladder. Trial Week hands out at most 24 cards, and you keep your card inside the top 72. See Tours and the Tour Card.
  • data/training.json: training 20% faster (rate 0.036 instead of 0.03), and bull practice now helps composure a little. Fields left out keep the game's numbers. See Training.
  • data/commentary/more-lines.json: 59 more lines of match commentary, for every moment the match calls. See Commentary.
  • data/patches/rules.patch.json: patches on core records.
    • It retitles Player of the Year.
    • It raises Best Newcomer's prize-money bar.
    • The Contender Tour hands out three cards instead of two.
    • One core commentary line is switched off ("weight": 0).
  • locale/de/patches/rules.json: the German text for the new awards, the card, the retitled award and every new commentary line.

Check it on the Mods screen: it lists any problem with its file and field.

Local Derby##

A scripted example mod: picks a local rival from your own country, builds up a derby before an event you've entered, and makes the news when you meet.

example.scripted · version 1.0.0 · 1 story, a script

Download example.scripted-1.0.0.zip (8 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/derby.svg
  • assets/icon.svg
  • data/events/narrative/derby.json
  • scripts/main.js
Read me

A story fired from a script. Before an event you've entered, scripts/main.js may pick a local rival (someone from your country near you in the rankings) and fire the Derby Day story. If you then meet that rival, the result makes the news, the winner's confidence goes up, and your post-match interview gets an extra answer.

  • mod.json: the manifest, with "entry": "scripts/main.js".
  • data/events/narrative/derby.json: the story. Its trigger is followUp, so it never fires on its own: only the script fires it, filling {derbyRival} and {derbyEvent}.
  • scripts/main.js: the hooks it uses are narrativeCheck, matchEnd, beforeInterview and seasonStart.

The script API is in Scripts. Scripts apply to new careers, like the rest of a mod's content; the Mods screen shows each script's log and any error for the loaded career.

Your own stage##

Adds a stage (a plain studio hall: deck, set wall, two screens, steps, walkway and 450 seats) and plays The Emerald Gauntlet on it.

example.stage · version 1.0.0 · 1 stage, 1 patch

Download example.stage-1.0.0.zip (6 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/stages/studio.glb
  • assets/stages/studio.json
  • data/stages.json
  • data/patches/events.patch.json
Read me

Adds a stage and names it on an event. Switch it on in Mods, then play (or watch) The Emerald Gauntlet: the match is in a plain studio hall instead of the game's arena.

  • data/stages.json: the record example.stage.studio with its model and its layout.
  • assets/stages/studio.glb: the hall, in millimetres with the origin at the bull and the players' floor at y = -1730. Nine meshes, each with one of the game's material names (arena_carpet, arena_ledwall, arena_screen, arena_led and so on), so the set takes the event's colour, backdrop and name.
  • assets/stages/studio.json: the layout: where the deck, the steps and the walkway are, and a seat for each of the 450 spectators.
  • data/patches/events.patch.json: sets the event's stage field to the record's id.

The board, the oche, the players, the cameras and the lights are the game's and stay where they are; a stage is built around them.

If the stage cannot be used (the model does not load, or the layout fails its checks), the match plays on the game's own stage and the Mods screen says why on this mod.

See Stage models. The hall is a simple made-up model; use any model of your own, with a layout to match.

Baize & Brass theme##

A colour theme for the whole game: green with cream text and a brass accent. Switch it on, then pick Baize & Brass in Mods > Themes or Settings > Display.

example.theme.baize · version 1.0.0

Download example.theme.baize-1.0.0.zip (1 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/baize.json
Read me

Snooker-hall green with cream text and a brass accent.

Copy this folder into your mods folder, switch the mod on, then choose Baize & Brass in Mods > Themes or Settings > Display > Theme. The theme is the one file data/ui/themes/baize.json; Themes lists every colour a theme can set.

Black & Red theme##

A colour theme for the whole game: black with white text and a red accent. Switch it on, then pick Black & Red in Mods > Themes or Settings > Display.

example.theme.blackout · version 1.0.0

Download example.theme.blackout-1.0.0.zip (1 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/blackout.json
Read me

Pure black surfaces, white text and a hard red accent.

Copy this folder into your mods folder, switch the mod on, then choose Black & Red in Mods > Themes or Settings > Display > Theme. The theme is the one file data/ui/themes/blackout.json; Themes lists every colour a theme can set.

Daylight theme##

A light colour theme for the whole game, as an example of a theme mod. Switch it on, then pick Daylight in Mods > Themes or in Settings > Display.

example.theme.daylight · version 1.0.0

Download example.theme.daylight-1.0.0.zip (2 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/daylight.json
Read me

A theme mod is a mod with one or more theme files in data/ui/themes/. This one has daylight.json.

To use it: copy this folder into your mods folder (Mods > Open mods folder), switch the mod on, then choose Daylight in Mods > Themes or Settings > Display > Theme.

To make your own: in the game go to Mods > Themes, pick a theme to start from and press New theme from this. The game makes a mod folder for it and opens the editor; every colour changes the game as you edit.

A theme file sets a colour for each token. A token you leave out keeps the game's own colour. The full list, with what each one paints, is in Themes.

Deep Sea theme##

A colour theme for the whole game: dark teal with an aqua accent. Switch it on, then pick Deep Sea in Mods > Themes or Settings > Display.

example.theme.deep-sea · version 1.0.0

Download example.theme.deep-sea-1.0.0.zip (1 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/deep-sea.json
Read me

Dark teal water with an aqua accent.

Copy this folder into your mods folder, switch the mod on, then choose Deep Sea in Mods > Themes or Settings > Display > Theme. The theme is the one file data/ui/themes/deep-sea.json; Themes lists every colour a theme can set.

Midnight Blue theme##

A colour theme for the whole game: navy with an electric blue accent. Switch it on, then pick Midnight Blue in Mods > Themes or Settings > Display.

example.theme.midnight · version 1.0.0

Download example.theme.midnight-1.0.0.zip (1 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/midnight.json
Read me

Navy surfaces with an electric blue accent.

Copy this folder into your mods folder, switch the mod on, then choose Midnight Blue in Mods > Themes or Settings > Display > Theme. The theme is the one file data/ui/themes/midnight.json; Themes lists every colour a theme can set.

Nuke Purple theme##

A colour theme for the whole game: deep purple with a yellow accent. Switch it on, then pick Nuke Purple in Mods > Themes or Settings > Display.

example.theme.nuke · version 1.0.0

Download example.theme.nuke-1.0.0.zip (1 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/nuke.json
Read me

Deep purple with a bright yellow accent, after Luke Littler's colours.

Copy this folder into your mods folder, switch the mod on, then choose Nuke Purple in Mods > Themes or Settings > Display > Theme. The theme is the one file data/ui/themes/nuke.json; Themes lists every colour a theme can set.

Paper & Ink theme##

A colour theme for the whole game: a light theme: cream paper, brown ink, a red accent. Switch it on, then pick Paper & Ink in Mods > Themes or Settings > Display.

example.theme.paper · version 1.0.0

Download example.theme.paper-1.0.0.zip (1 KB)

Files in the pack
  • README.md
  • mod.json
  • data/ui/themes/paper.json
Read me

A warm light theme: cream paper, brown ink and a deep red accent.

Copy this folder into your mods folder, switch the mod on, then choose Paper & Ink in Mods > Themes or Settings > Display > Theme. The theme is the one file data/ui/themes/paper.json; Themes lists every colour a theme can set.

Your own trophy##

Adds a trophy model (a turned gold cup) and puts it on the pedestal at The Golden Mile Showdown.

example.trophy · version 1.0.0 · 1 trophy, 1 patch

Download example.trophy-1.0.0.zip (14 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/trophies/cup.glb
  • data/trophies.json
  • data/patches/events.patch.json
Read me

Adds a trophy and names it on an event. Switch it on in Mods, then play (or watch) The Golden Mile Showdown on its televised stage: the gold cup stands on the pedestal at stage right.

  • data/trophies.json: the record example.trophy.cup with its model.
  • assets/trophies/cup.glb: the model, in metres, standing on y = 0 with the origin at the centre of its foot (0.38 m tall, 0.22 m wide, 1,728 triangles, one gold material).
  • data/patches/events.patch.json: sets the event's trophy field to the record's id.

To replace one of the game's own trophies everywhere it is used, give your record its id instead (core.trophy.world-championship); no patch is needed then.

If the model cannot be used (not a .glb, over 20 MB, over 100,000 triangles, or larger than 0.6 x 0.6 x 0.8 m after units and scale), the match plays with the game's own trophy for that event, or none, and the Mods screen says why on this mod.

See Trophy models. The cup is a simple made-up model; use any model of your own.

Showcase: Oche Tales##

A tour of what mods can do, set on a fictional stretch of coast. Six new players with nicknames, bios, walk-ons and rivalries; the four-stop Coastal Classic Series with its own Order of Merit and an invitation-and-ranking Finals; two sponsors, a darts brand's kit and signature workshop; a new staff role and agency; two exhibition nights; a three-part storyline and other stories; interview questions, a press outlet and pundit, social accounts, commentary and cards; a German translation; and a script (API 3) that writes a weekly Pundit's Corner for the news and the Home screen, puts a form guide on your profile and a season review on Rankings, reacts to your matches and your Coastal Classic results, adds interview answers, fires the storyline, brings in the fish bar's sponsorship and asks you to write a newspaper column, all in English or German.

showcase · version 1.0.0 · 1 tour, 4 venues, 5 events, 2 sponsors, 5 kit items, 1 nickname list, 4 commentary lines, 8 stories, 2 walk-on tracks, 6 players, 1 media outlet, 2 journalists and pundits, 7 media lines, 4 social accounts, 13 social posts, 4 interview questions, 2 interview answers, 1 staff role, 1 agency, 2 exhibition formats, 4 cards, 2 kit rules, 1 workshop, a script

Download showcase-1.0.0.zip (52 KB)

Files in the pack
  • README.md
  • mod.json
  • assets/banner.svg
  • assets/icon.svg
  • data/nicknames.json
  • data/sponsors.json
  • data/tours.json
  • data/venues.json
  • data/walkons.json
  • data/cards/oche-tales.json
  • data/commentary/coastal.json
  • data/equipment/tidewater.json
  • data/events/calendar/coastal.json
  • data/events/narrative/coastal-life.json
  • data/events/narrative/keepers-darts.json
  • data/exhibitions/coastal.json
  • data/kit/makers.json
  • data/kit/rules.json
  • data/media/outlets.json
  • data/media/people.json
  • data/media/interview-answers/core-extras.json
  • data/media/interviews/coastal.json
  • data/media/lines/coastal.json
  • data/players/coast.json
  • data/social/accounts.json
  • data/social/posts/coastal.json
  • data/staff/agencies.json
  • data/staff/roles.json
  • locale/de.json
  • locale/en.json
  • locale/de/patches/media.json
  • locale/de/patches/stories.json
  • locale/de/patches/world.json
  • scripts/main.js
Read me

A tour of what a mod can do today, in one pack. It's set on a fictional stretch of coast: a lighthouse keeper's daughter, a ferryman with a grudge, a Dutch metronome, a teenage prodigy, a Scottish fog and a Welsh landlord. They have their own four-stop series, a newspaper, a storyline, sponsors and kit. A script ties it together every week.

Mod id showcase, so every new record's id starts with showcase.. To try it, copy this folder into your mods folder (Mods → Open mods folder), press Reload mods and start a new career. Stories, interviews, the press and the social feed also reach existing saves. Players, events, sponsors, kit and the script only reach careers started after the mod is installed.

Import it on the Mods screen and start a new career; the Mods screen lists any problem with its file and field.

What each part shows, and where to see it#

FeatureFilesDocsWhere to see it in-game
Players with nicknames, bios, walk-ons and rivalriesdata/players/coast.jsongetting startedRankings and the player pages. The series Finals invites all six: three as legends, three as local wildcards. Marguerite Penhallow and Declan Rourke are rivals, and so are Priya Chandra and Hamish McIlwraith.
Walk-on tracksdata/walkons.jsonNamed on the four players who use them.
Venuesdata/venues.jsonCalendar and event pages.
A tour with its own Order of Meritdata/tours.jsoncalendarRankings gets a new Coastal tab.
Calendar events: four Sunday stops (weekday 0, so they never clash with the Saturday circuit) and a Finals night filled by entry routes: the series top 5 (seeded), three invited legends, three local wildcards, then a filldata/events/calendar/coastal.jsoncalendarCalendar from May. The Finals card explains how you qualify ("Coastal Classic Series top 5").
Sponsors: a local fish bar and a darts branddata/sponsors.jsonagentsSponsors, as offers. One story brings the fish bar in on purpose.
Equipment: darts with a dartDesign, flights with a flightDesign, stems, a shirt with a design, and a lucky charm. There are no picture files: the game draws the darts, flights and shirt itselfdata/equipment/tidewater.jsonequipmentEquipment → shop (Tidewater items, the Coastal Classic shirt, the Harbour Pebble).
Kit rules: two synergies (a Tidewater darts-and-flights set, and the pebble with the series shirt)data/kit/rules.jsonEquipment → Your setup: the active rules.
Signature workshopdata/kit/makers.jsonEquipment → Workshop: Tidewater Works, once you're tier 4 or better with 1,500 followers.
Staff role: the Club Chalker (practice, a morale floor, recovery)data/staff/roles.jsonstaffTeam → market.
Agency specialising in exhibitionsdata/staff/agencies.jsonagentsAgents in the Team market from Lighthouse Management.
Exhibition formats: a charity Lifeboat Night (no agent needed) and a Pier-End Showdown (pairs, needs an agent)data/exhibitions/coastal.jsonexhibitionsBookings: offers arrive monthly.
A three-part storyline, The Keeper's Darts, with random outcomes, modifiers, a rivalry, news, a social post, a follower surge and follow-ups. All three parts are followUp stories, so only the script can start the arcdata/events/narrative/keepers-darts.jsonstoriesInbox, after your first Coastal Classic (or by August), then two more parts over the next two months.
Other stories on four different triggers: weekly (gull, fish bar, chalker), exhibitionEnd (the lifeboat bucket) and matchEnd (Benny's lecture). They use staff, sponsor, event and exhibition conditionsdata/events/narrative/coastal-life.jsonstoriesInbox.
Interview questions with conditions, styles, a claim and effects, plus answers added to core questions. One is tied to the series with a tours conditiondata/media/interviews/coastal.json, data/media/interview-answers/core-extras.jsoninterviewsPost-match interviews after TV matches and quarter-finals onwards.
Press pack: a local paper, a pundit and a journalist, and their linesdata/media/outlets.json, people.json, lines/coastal.jsonpress packMedia and News: the Saltmarsh Gazette's headlines and Wilf Trevaskis's takes.
Social accounts and posts on ten triggers; one only for the Finals (an events condition)data/social/accounts.json, data/social/posts/coastal.jsonsocialMedia → social feed.
Commentary linesdata/commentary/coastal.jsonThe match screen's commentary.
Cards: a set of four, one keyed on the series' event tag, and a script card (Front Page) only the script mintsdata/cards/oche-tales.jsoncardsCards: a new set on the checklist.
Nicknames for generated playersdata/nicknames.jsonGenerated players' nicknames.
German translation of the stories, interviews, social posts, press lines, commentary, tour, Finals, exhibitions, staff role, two kit items, two bios and a cardlocale/de/patches/*.jsonlocalisationChoose Settings → Language → Deutsch.
The script's own strings, in English and German, under the mod's own keys (showcase.*), read with dtj.tlocale/en.json, locale/de.jsonlocalisationEverything the script writes, in the language you play in.
A script (API 3) on eleven hooks, with panels on three screensscripts/main.jsscripting, UI panelsSee below.

The script#

scripts/main.js uses script API 3. It shows up on the home screen's Inbox and Latest news panels, on its own panels (Home, your profile and Rankings), in your card collection and in your finances. Every word it writes comes from locale/en.json or locale/de.json through dtj.t, so it reads in German when you play in German. Money is written as {money:N}, so it shows in your currency.

  • **weekTick**
    • Week one: a welcome letter in the inbox.
    • Every week: Pundit's Corner, a column from Wilf Trevaskis built from real queries, credited to him at the Saltmarsh Gazette (byline):
      • the week's biggest climber in the top 100 (it keeps last week's table in dtj.state);
      • which of the mod's players is in form;
      • your next event, or the next Coastal Classic you could enter;
      • the ranking milestone you're chasing, and how much money it would take;
      • your season so far (dtj.query.seasonStats).
    • Every eight weeks: The Gazette wants a column, an inbox message with three choices. The choices carry their own effects (morale and reputation for writing it straight; confidence, a little morale and some image for stirring things up), shown as chips before you choose.
  • **inboxChoice**: runs your column in the news. Stir things up also fires up one of the coast regulars and sharpens your rivalry with them (dtj.effects.rivalry). Too busy just logs.
  • **matchEnd**: reacts to your matches, at most two stories a match and one of each kind an event:
    • giant-killings and shocks by Order of Merit rank (from ctx.ranks), with confidence and morale nudges;
    • ton-plus averages, and personal bests;
    • meetings with the mod's six players, with the head-to-head from dtj.query.headToHead and their own reactions.
  • **beforeInterview**: adds one answer that knows the context: something about the specific character you just played, your big average, or the sea air after a Coastal Classic match.
  • **narrativeCheck**: fires The Keeper's Darts with ctx.fire, passing {coastalEvent} into the story text. It fires once per career, after you've played a Coastal Classic match, or in August if you never do.
  • **seasonStart**: a news story listing the new season's Coastal Classic dates.
  • **eventEnd: after each Coastal Classic stop you play, a round-up by Nia Pengelly with your placing and the winner. Win it and you make the front page: a Front Page** card (dtj.effects.mintCard, the mod's own script design) and supper money from the fish bar (dtj.effects.money). Reach the semi-finals and the Gull & Anchor Fish Bar makes you a sponsorship offer (dtj.effects.sponsorOffer, once a season, if your tier suits it).
  • **sponsorSigned**: the Gazette reports it when you sign with the fish bar.
  • **awards**: Wilf's take on the Player of the Year.
  • **seasonEnd**: Wilf's verdict on your season, in the news and kept for the Rankings panel.
  • **panels**:
    • Home: this week's Pundit's Corner, with links to the players and events it mentions.
    • Your profile: Form on the coast: your season's record, average and 180s, your last six matches, your record against each coast regular you've met, and your rivals (seasonStats, matches, headToHead, rivals).
    • Rankings: Wilf's review of last season, until April.

The Mods screen shows the script's log for the loaded career: column answers, interview answers added, meetings with the cast, the front-page card, the fish bar's offer and when the story fired.

Room to grow#

  • Mod icon. Another change is adding mod icons, banners and images. When it lands, the icon goes in assets/ (e.g. assets/icon.webp) and is named in mod.json as that feature documents. Nothing else in the mod needs to change.

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