Start here

Images, sound and models

A pack carries its own files: a logo for a sponsor, a portrait for a player, a backdrop for a venue, a picture above a story, walk-on music, a trophy for the stage. Every field that takes a file works the same way.

Pointing at a file#

A file is a path inside your pack, from the folder that holds mod.json, with forward slashes:

"logo": "assets/sponsors/oche-optics.webp"
  • ./assets/x.webp works too. Any folder layout is fine; assets/ is the custom.
  • No .., no absolute paths (/…, C:/…), no backslashes and no %2e-style encoding.
  • No web addresses or other links: https://…, file://… and data: are refused.
  • To use a file from another pack, usually the base game, give its full address: dtj-asset://core/assets/venues/core.venue.irwell-dome.webp. The Mod Studio writes these when you copy a base game record into your pack.

The game only ever reads a pack’s files from that pack’s own folder.

File types and sizes#

KindUseLargest
Pictures.webp, .png, .jpg / .jpeg8 MB each
Sound.mp3, .ogg, .wav48 MB each
3D models.glb20 MB; a stage up to 64 MB
Data a record points at.json (a stage’s layout)4 MB
mod.json picturesas pictures; the icon and banner may also be .svgicon 1 MB; banner and each screenshot 4 MB
  • WebP is what the base game uses for nearly everything: small files, with transparency. PNG for pictures that need to be exact; JPEG for photographs.
  • A transparent ground suits logos and player cut-outs. Backdrops and story pictures fill their frame.
  • Make pictures about the size they are shown at. A 4000-pixel logo costs memory on every screen that shows it, which matters on phones.
GIF, AVIF and SVG

The pack checks accept .gif, .avif and .svg pictures, but in this version the game draws SVG only for a pack’s icon and banner on the Mods screen and for the game’s wordmark, and does not draw GIF or AVIF at all. Anywhere else such a picture shows the game’s own art in its place. Use WebP, PNG or JPEG for content.

An SVG must only draw: one with <script>, on…= handlers, <foreignObject>, entity declarations, or links to other files (href or url(…) to anything but # ids and embedded PNG, JPEG, WebP or GIF data) is refused.

When something is wrong#

A missing, refused or oversized file is a warning, never an error: the field is dropped, the game draws its own (a monogram, an event mark, initials, the base game’s art) and the rest of the pack loads. The Mods screen lists each one with its file and field:

warning  data/sponsors.json [2].logo  Asset paths can’t leave the mod folder (".."): ../x.png
warning  mod.json screenshots[0]  Asset too large: assets/shot.png (5.2 MB; 4 MB at most)

Your pack’s own pictures#

  • icon: square, on the pack’s card, its row in the table and its details. 256 by 256 looks best. Without one, the Mods screen draws your initials on a colour taken from your id.
  • banner: wide, about 3 to 1 (1200 by 400, say), across the top of the card and the details.
  • screenshots: up to eight, in the pack’s details; each opens full size.

These show for packs that are switched off too.

Every field that takes a file#

Patches can set these fields too; the file is read from the patching pack’s folder.

ContentFields that take a file
Tourslogo
Venuesbackdrop
Eventslogo
Sponsorslogo
Kit itemsasset
Storiesimage
Walk-on tracksasset
Playersportrait
Facesfile
Media outletslogo
Journalists and punditsportrait
Social accountsavatar
Agencieslogo
Cardsbadge
Workshopslogo
Shirt cutsfrontImage, backImage
Shirt patternstexture
Menu backgroundsimage
Nationsflag
Logoslogo, chest, wordmark
Broadcast lookslogo
Trophiesmodel
Stagesmodel, layout
Dart partsmodel
Organisationslogo

Walk-on music#

A walk-on track is a walk-on record: a title, an artist, a mood and, optionally, an asset that is a sound file in your pack. A player takes it through their walkonId. With a sound file the game plays the track’s opening as the player walks on; without one (as for every base game track) it plays a stinger in the track’s mood. Sound files must be .mp3, .ogg or .wav: the pack checks also accept .m4a, .flac and .opus, but the game does not play them in this version and plays the mood’s stinger instead.

3D models#

Trophies, stages and the parts of a dart can be models of your own, as .glb files. Each has its own guide: trophy models, stage models and dart models.

Models and zips

Installing a pack from a zip (Import on the Mods screen, and on phones) leaves out .glb files in this version, so a pack’s own models only arrive when its folder is copied into the mods folder on Windows. Without them the game uses its own models.

The game’s own logos#

The game’s marks are content too: two brand records in the base game’s data/brand.json.

RecordWhat it isWhere it shows
core.brand.gamethe game’s logothe chest and back of the game’s shirt in the character creator; with a wordmark, the main menu’s title
core.brand.leaguethe league’s logothe league shirt
  • logo (required): the mark on a transparent ground, square or near it; 1024 pixels is plenty.
  • chest: the mark with a clear margin round it, so it sits inside a shirt’s piping. Without it the logo is used.
  • wordmark (core.brand.game only): a wide title picture on the main menu in place of the drawn title, light lettering on a transparent ground. An SVG is drawn as shapes, sharp at every size; a PNG is shown as it is.
  • Replace a record with one of the same id in your data/brand.json, or change one picture with a patch: { "target": "brand:core.brand.game", "patch": { "wordmark": "assets/wordmark.png" } }.

The example-brand pack does all of this.

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