Reference

Kit settings

Kit tuning (settings, like load): later records win per field.

Content type
kitSettings
Files
data/kit/settings.json
Shape
One settings object (a file may hold the object itself)
Patch target
kitSettings:<id>, for example kitSettings:core.kit
In the base game
1 record
Guide
Equipment, kit and signature development

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"
familiarityobject
familiarity.startnumber, 0 to 1Where a new item starts (0–1).
familiarity.signaturenumber, 0 to 1Where your own signature item starts (you tested the prototypes).
familiarity.decaynumber, 0 to 1Lost per week an item sits unused.
familiarity.floornumber, 0 to 1Once you've really known an item, it never fades below this.
familiarity.matchnumber, 0 to 2Each match counts this share of a week's growth.
familiarity.practiceHoursnumber, 1 to 80Training hours a week at which growth is 1× (more practice, faster).
familiarity.legacyEquippednumber, 0 to 1Old saves: what you had equipped, and what was in the locker.
familiarity.legacyOwnednumber, 0 to 1
balanceobject
balance.frontmap (key: value)How front-loaded each barrel profile is (0–1).
balance.areamap (key: value)How much drag each flight shape gives (standard = 1).
balance.weightnumber, 10 to 40Barrel weight (g) that counts as neutral.
balance.stemnumber, 20 to 60Stem length (mm) that counts as neutral.
balance.integratedTailnumber, 0 to 1Integrated flights: the extra tail weight of the moulded shaft and boss (added to the tail).
balance.balancednumber, 0 to 3Within this, balanced; beyond unstable, unstable.
balance.unstablenumber, 0 to 5
balance.balancedEffectsobjectWhat an item (or a rule) does, per lever. Leave out what it doesn't touch.
balance.balancedEffects.scoringnumber, -100 to 100% tighter on trebles and singles.
balance.balancedEffects.doublesnumber, -100 to 100% tighter on doubles and the bull.
balance.balancedEffects.consistencynumber, -100 to 100% steadier day-to-day form and fewer cold streaks.
balance.balancedEffects.bouncenumber, -100 to 100% fewer bounce-outs.
balance.balancedEffects.staminanumber, -100 to 100% slower fatigue build-up in a match.
balance.balancedEffects.gripnumber, -100 to 100% less loosening from fatigue and sweaty hands (doubled under TV lights).
balance.balancedEffects.eyesightnumber, -100 to 100Eyesight points on the oche (up to the ceiling in kitSettings).
balance.balancedEffects.composurenumber, -100 to 100Composure points on the oche.
balance.balancedEffects.trainingnumber, -100 to 100% more training gains.
balance.balancedEffects.practicenumber, -100 to 100% faster familiarity with new kit.
balance.balancedEffects.insightnumber, 0 to 10–1: reads fit like a (weaker) kit technician.
balance.balancedEffects.travelnumber, -100 to 100% lighter travel load.
balance.balancedEffects.protectnumber, -100 to 100% less chance of kit damage or loss on the road.
balance.balancedEffects.followersnumber, -100 to 100% more follower growth from events.
balance.noseHeavyEffectsobjectWhat an item (or a rule) does, per lever. Leave out what it doesn't touch.
balance.noseHeavyEffects.scoringnumber, -100 to 100% tighter on trebles and singles.
balance.noseHeavyEffects.doublesnumber, -100 to 100% tighter on doubles and the bull.
balance.noseHeavyEffects.consistencynumber, -100 to 100% steadier day-to-day form and fewer cold streaks.
balance.noseHeavyEffects.bouncenumber, -100 to 100% fewer bounce-outs.
balance.noseHeavyEffects.staminanumber, -100 to 100% slower fatigue build-up in a match.
balance.noseHeavyEffects.gripnumber, -100 to 100% less loosening from fatigue and sweaty hands (doubled under TV lights).
balance.noseHeavyEffects.eyesightnumber, -100 to 100Eyesight points on the oche (up to the ceiling in kitSettings).
balance.noseHeavyEffects.composurenumber, -100 to 100Composure points on the oche.
balance.noseHeavyEffects.trainingnumber, -100 to 100% more training gains.
balance.noseHeavyEffects.practicenumber, -100 to 100% faster familiarity with new kit.
balance.noseHeavyEffects.insightnumber, 0 to 10–1: reads fit like a (weaker) kit technician.
balance.noseHeavyEffects.travelnumber, -100 to 100% lighter travel load.
balance.noseHeavyEffects.protectnumber, -100 to 100% less chance of kit damage or loss on the road.
balance.noseHeavyEffects.followersnumber, -100 to 100% more follower growth from events.
balance.tailHeavyEffectsobjectWhat an item (or a rule) does, per lever. Leave out what it doesn't touch.
balance.tailHeavyEffects.scoringnumber, -100 to 100% tighter on trebles and singles.
balance.tailHeavyEffects.doublesnumber, -100 to 100% tighter on doubles and the bull.
balance.tailHeavyEffects.consistencynumber, -100 to 100% steadier day-to-day form and fewer cold streaks.
balance.tailHeavyEffects.bouncenumber, -100 to 100% fewer bounce-outs.
balance.tailHeavyEffects.staminanumber, -100 to 100% slower fatigue build-up in a match.
balance.tailHeavyEffects.gripnumber, -100 to 100% less loosening from fatigue and sweaty hands (doubled under TV lights).
balance.tailHeavyEffects.eyesightnumber, -100 to 100Eyesight points on the oche (up to the ceiling in kitSettings).
balance.tailHeavyEffects.composurenumber, -100 to 100Composure points on the oche.
balance.tailHeavyEffects.trainingnumber, -100 to 100% more training gains.
balance.tailHeavyEffects.practicenumber, -100 to 100% faster familiarity with new kit.
balance.tailHeavyEffects.insightnumber, 0 to 10–1: reads fit like a (weaker) kit technician.
balance.tailHeavyEffects.travelnumber, -100 to 100% lighter travel load.
balance.tailHeavyEffects.protectnumber, -100 to 100% less chance of kit damage or loss on the road.
balance.tailHeavyEffects.followersnumber, -100 to 100% more follower growth from events.
eyesightCeilingnumber, 50 to 100Eyewear never lifts eyesight above this.
wearobject
wear.matchnumber, 0 to 2Each match wears kit like this share of a week.
wear.wornnumber, 0 to 1Below this condition, kit counts as worn.
shopobject
shop.limitedChancenumber, 0 to 1Chance each month that a limited edition drops.
shop.limitedWeekswhole number, 1 to 52Weeks a limited edition stays in the shop.
designerobjectThe kit designer: patterns, collars, fonts and fabrics (merged by id across records; a later entry with the same id replaces it).
designer.printCostwhole number, 0 to 100,000What designing and printing a shirt costs, on top of its fabric.
designer.placementsobjectFollower growth % from each sponsor logo on your own shirt (chest, sleeve, back).
designer.placements.chestnumber, 0 to 20
designer.placements.sleevenumber, 0 to 20
designer.placements.backnumber, 0 to 20
designer.patternslistOld pattern list: used only when no pack provides shirtPatterns.
designer.patterns[].idtext, up to 30 charactersYes
designer.patterns[].nametext, up to 30 charactersYes
designer.patterns[].styleone of the optionsYesOptions: plain, panels, sleeveStripes, gradient, flames, chequer, swirl, pinstripe, hoops, sash, chevron.
designer.patterns[].scalenumber, 0.25 to 41Size of the repeat (chequer, pinstripe, hoops): 0.5 = twice as fine, 2 = twice as bold.
designer.collarslist
designer.collars[].idtext, up to 30 charactersYes
designer.collars[].nametext, up to 30 charactersYes
designer.collars[].styleone of the optionsYesOptions: crew, polo, button, vneck.
designer.collars[].cutidThe shirt cut (shirtCuts id) it's drawn on; by default the cut listing this style. Names a shirt cut record.
designer.fontslist
designer.fonts[].idtext, up to 30 charactersYes
designer.fonts[].nametext, up to 30 charactersYes
designer.fonts[].familytext, up to 120 charactersYesA CSS font-family stack (fonts the game ships, or generic families).
designer.fonts[].weightwhole number, 100 to 900700
designer.fonts[].italictrue or falsefalseSlanted lettering.
designer.fabricslist
designer.fabrics[].idtext, up to 30 charactersYes
designer.fabrics[].nametext, up to 30 charactersYes
designer.fabrics[].tierone of the optionsYesOptions: budget, club, pro, elite.
designer.fabrics[].pricewhole number, 0 to 100,000YesPrice of the fabric (on top of the print cost).
designer.fabrics[].effectsobject{}What an item (or a rule) does, per lever. Leave out what it doesn't touch.
designer.fabrics[].effects.scoringnumber, -100 to 100% tighter on trebles and singles.
designer.fabrics[].effects.doublesnumber, -100 to 100% tighter on doubles and the bull.
designer.fabrics[].effects.consistencynumber, -100 to 100% steadier day-to-day form and fewer cold streaks.
designer.fabrics[].effects.bouncenumber, -100 to 100% fewer bounce-outs.
designer.fabrics[].effects.staminanumber, -100 to 100% slower fatigue build-up in a match.
designer.fabrics[].effects.gripnumber, -100 to 100% less loosening from fatigue and sweaty hands (doubled under TV lights).
designer.fabrics[].effects.eyesightnumber, -100 to 100Eyesight points on the oche (up to the ceiling in kitSettings).
designer.fabrics[].effects.composurenumber, -100 to 100Composure points on the oche.
designer.fabrics[].effects.trainingnumber, -100 to 100% more training gains.
designer.fabrics[].effects.practicenumber, -100 to 100% faster familiarity with new kit.
designer.fabrics[].effects.insightnumber, 0 to 10–1: reads fit like a (weaker) kit technician.
designer.fabrics[].effects.travelnumber, -100 to 100% lighter travel load.
designer.fabrics[].effects.protectnumber, -100 to 100% less chance of kit damage or loss on the road.
designer.fabrics[].effects.followersnumber, -100 to 100% more follower growth from events.
designer.fabrics[].descriptiontext, up to 160 characters
developmentobject
development.slotsmap (key: value)Base cost per slot you can develop a signature item for.
development.stageslist, 2 to 12 items
development.stages[].idtext, up to 30 charactersYes
development.stages[].nametext, up to 40 charactersYes
development.stages[].kindone of the optionsYesOptions: design, prototype, test, production, launch.
development.stages[].weeksnumber, 0 to 260
development.stages[].leadnumber, 0 to 40
development.stages[].costnumber, 0 to 10
development.stages[].texttext, up to 200 charactersYes
development.royaltynumber, 0 to 1Monthly royalty per follower at a maker royalty of 1.
development.hypeBoostnumber, 0 to 10Launch hype: royalties × (1 + boost) at launch, fading over hypeMonths.
development.hypeMonthsnumber, 0.5 to 36
development.pacemap (key: value)Per slot: the stages' weeks × this (flights 0.5: quicker than darts).
development.roundsmap (key: value)Per slot: at most this many test rounds, whatever the maker offers.
development.termsmap (key: value)Per slot: a stage kind's name and timeline line for that slot ("Samples" for a shirt).
development.terms.<key>objectYes
development.terms.<key>.designobject
development.terms.<key>.design.nametext, up to 40 characters
development.terms.<key>.design.texttext, up to 200 characters
development.terms.<key>.prototypeobject
development.terms.<key>.prototype.nametext, up to 40 characters
development.terms.<key>.prototype.texttext, up to 200 characters
development.terms.<key>.testobject
development.terms.<key>.test.nametext, up to 40 characters
development.terms.<key>.test.texttext, up to 200 characters
development.terms.<key>.productionobject
development.terms.<key>.production.nametext, up to 40 characters
development.terms.<key>.production.texttext, up to 200 characters
development.terms.<key>.launchobject
development.terms.<key>.launch.nametext, up to 40 characters
development.terms.<key>.launch.texttext, up to 200 characters

Example#

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

{
  "id": "core.kit",
  "familiarity": {
    "start": 0.15,
    "signature": 0.55,
    "decay": 0.03,
    "floor": 0.35,
    "match": 0.2,
    "practiceHours": 20,
    "legacyEquipped": 0.95,
    "legacyOwned": 0.4
  },
  "balance": {
    "front": {
      "straight": 0,
      "torpedo": 1,
      "bomb": 0.5,
      "scallop": 0.2
    },
    "area": {
      "slim": 0.45,
      "kite": 0.6,
      "pear": 0.75,
      "vortex": 0.9,
      "standard": 1,
      "fantail": 1.15
    },
    "weight": 22,
    "stem": 41,
    "integratedTail": 0.08,
    "balanced": 0.3,
    "unstable": 0.9,
    "balancedEffects": {
      "consistency": 3,
      "scoring": 0.4
    },
    "noseHeavyEffects": {
      "scoring": -1,
      "consistency": -4
    },
    "tailHeavyEffects": {
      "doubles": -1,
      "consistency": -3
    }
  },
  "eyesightCeiling": 92,
  "designer": {
    "printCost": 180,
    "placements": {
      "chest": 3,
      "sleeve": 1.5,
      "back": 2
    },
    "patterns": [
      {
        "id": "plain",
        "name": "Plain",
        "style": "plain"
      },
      {
        "id": "panels",
        "name": "Side panels",
        "style": "panels"
      },
      /* … 9 more */
    ],
    "collars": [
      {
        "id": "polo",
        "name": "Polo",
        "style": "polo"
      },
      {
        "id": "crew",
        "name": "Crew neck",
        "style": "crew"
      },
      /* … 2 more */
    ],
    "fonts": [
      {
        "id": "block",
        "name": "Block",
        "family": "'Barlow Condensed', 'Arial Narrow', sans-serif",
        "weight": 800
      },
      {
        "id": "sport",
        "name": "Sport italic",
        "family": "'Barlow Condensed', 'Arial Narrow', sans-serif",
        "weight": 800,
        "italic": true
      },
      /* … 2 more */
    ],
    "fabrics": [
      {
        "id": "budget",
        "name": "Club cotton",
        "tier": "budget",
        "price": 30,
        "effects": {
          "stamina": 0.5
        },
        "description": "Cheap and cheerful. Warm under the lights."
      },
      {
        "id": "pro",
        "name": "Pro performance",
        "tier": "pro",
        "price": 140,
        "effects": {
          "stamina": 2.5
        },
        "description": "Light, wicking fabric cut for throwing."
      },
      /* … 1 more */
    ]
  },
  "wear": {
    "match": 0.15,
    "worn": 0.25
  },
  "shop": {
    "limitedChance": 0.35,
    "limitedWeeks": 6
  },
  "development": {
    "slots": {
      "darts": 15000,
      "flights": 1500,
      "shirt": 4500
    },
    "stages": [
      {
        "id": "brief",
        "name": "Design brief",
        "kind": "design",
        "weeks": 2,
        "cost": 0.15,
        "text": "The workshop turns your brief into drawings and a spec."
      },
      {
        "id": "prototype",
        "name": "Prototypes",
        "kind": "prototype",
        "lead": 1,
        "cost": 0.2,
        "text": "A batch of prototypes is made to the spec."
      },
      /* … 3 more */
    ],
    "royalty": 0.02,
    "hypeBoost": 1.5,
    "hypeMonths": 4,
    "pace": {
      "flights": 0.5,
      "shirt": 0.7
    },
    "rounds": {
      "flights": 2,
      "shirt": 2
    },
    "terms": {
      "flights": {
        "design": {
          "text": "The workshop draws up your flights: the shape, the material and the print."
        },
        "prototype": {
          "name": "Prototype flights",
          "text": "A short run of prototype flights is cut and printed."
        },
        "test": {
          "name": "Test throws",
          "text": "You throw them in practice and say how they fly."
        },
        "production": {
          "name": "Production run",
          "text": "The print screens, the first production run and the packs."
        }
      },
      "shirt": {
        "design": {
          "text": "The studio turns your design into patterns and a tech pack."
        },
        "prototype": {
          "name": "Samples",
          "text": "Sample shirts are cut, printed and stitched."
        },
        "test": {
          "name": "Sample fitting",
          "text": "You wear the samples in practice and read the studio’s notes."
        },
        "production": {
          "name": "Production",
          "text": "The fabric order, the first production run and the swing tags."
        }
      }
    }
  }
}

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