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 examplekitSettings: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.
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
id | id | Yes | Namespaced id, e.g. "core.player.rory-calder" | |
familiarity | object | |||
familiarity.start | number, 0 to 1 | Where a new item starts (0–1). | ||
familiarity.signature | number, 0 to 1 | Where your own signature item starts (you tested the prototypes). | ||
familiarity.decay | number, 0 to 1 | Lost per week an item sits unused. | ||
familiarity.floor | number, 0 to 1 | Once you've really known an item, it never fades below this. | ||
familiarity.match | number, 0 to 2 | Each match counts this share of a week's growth. | ||
familiarity.practiceHours | number, 1 to 80 | Training hours a week at which growth is 1× (more practice, faster). | ||
familiarity.legacyEquipped | number, 0 to 1 | Old saves: what you had equipped, and what was in the locker. | ||
familiarity.legacyOwned | number, 0 to 1 | |||
balance | object | |||
balance.front | map (key: value) | How front-loaded each barrel profile is (0–1). | ||
balance.area | map (key: value) | How much drag each flight shape gives (standard = 1). | ||
balance.weight | number, 10 to 40 | Barrel weight (g) that counts as neutral. | ||
balance.stem | number, 20 to 60 | Stem length (mm) that counts as neutral. | ||
balance.integratedTail | number, 0 to 1 | Integrated flights: the extra tail weight of the moulded shaft and boss (added to the tail). | ||
balance.balanced | number, 0 to 3 | Within this, balanced; beyond unstable, unstable. | ||
balance.unstable | number, 0 to 5 | |||
balance.balancedEffects | object | What an item (or a rule) does, per lever. Leave out what it doesn't touch. | ||
balance.balancedEffects.scoring | number, -100 to 100 | % tighter on trebles and singles. | ||
balance.balancedEffects.doubles | number, -100 to 100 | % tighter on doubles and the bull. | ||
balance.balancedEffects.consistency | number, -100 to 100 | % steadier day-to-day form and fewer cold streaks. | ||
balance.balancedEffects.bounce | number, -100 to 100 | % fewer bounce-outs. | ||
balance.balancedEffects.stamina | number, -100 to 100 | % slower fatigue build-up in a match. | ||
balance.balancedEffects.grip | number, -100 to 100 | % less loosening from fatigue and sweaty hands (doubled under TV lights). | ||
balance.balancedEffects.eyesight | number, -100 to 100 | Eyesight points on the oche (up to the ceiling in kitSettings). | ||
balance.balancedEffects.composure | number, -100 to 100 | Composure points on the oche. | ||
balance.balancedEffects.training | number, -100 to 100 | % more training gains. | ||
balance.balancedEffects.practice | number, -100 to 100 | % faster familiarity with new kit. | ||
balance.balancedEffects.insight | number, 0 to 1 | 0–1: reads fit like a (weaker) kit technician. | ||
balance.balancedEffects.travel | number, -100 to 100 | % lighter travel load. | ||
balance.balancedEffects.protect | number, -100 to 100 | % less chance of kit damage or loss on the road. | ||
balance.balancedEffects.followers | number, -100 to 100 | % more follower growth from events. | ||
balance.noseHeavyEffects | object | What an item (or a rule) does, per lever. Leave out what it doesn't touch. | ||
balance.noseHeavyEffects.scoring | number, -100 to 100 | % tighter on trebles and singles. | ||
balance.noseHeavyEffects.doubles | number, -100 to 100 | % tighter on doubles and the bull. | ||
balance.noseHeavyEffects.consistency | number, -100 to 100 | % steadier day-to-day form and fewer cold streaks. | ||
balance.noseHeavyEffects.bounce | number, -100 to 100 | % fewer bounce-outs. | ||
balance.noseHeavyEffects.stamina | number, -100 to 100 | % slower fatigue build-up in a match. | ||
balance.noseHeavyEffects.grip | number, -100 to 100 | % less loosening from fatigue and sweaty hands (doubled under TV lights). | ||
balance.noseHeavyEffects.eyesight | number, -100 to 100 | Eyesight points on the oche (up to the ceiling in kitSettings). | ||
balance.noseHeavyEffects.composure | number, -100 to 100 | Composure points on the oche. | ||
balance.noseHeavyEffects.training | number, -100 to 100 | % more training gains. | ||
balance.noseHeavyEffects.practice | number, -100 to 100 | % faster familiarity with new kit. | ||
balance.noseHeavyEffects.insight | number, 0 to 1 | 0–1: reads fit like a (weaker) kit technician. | ||
balance.noseHeavyEffects.travel | number, -100 to 100 | % lighter travel load. | ||
balance.noseHeavyEffects.protect | number, -100 to 100 | % less chance of kit damage or loss on the road. | ||
balance.noseHeavyEffects.followers | number, -100 to 100 | % more follower growth from events. | ||
balance.tailHeavyEffects | object | What an item (or a rule) does, per lever. Leave out what it doesn't touch. | ||
balance.tailHeavyEffects.scoring | number, -100 to 100 | % tighter on trebles and singles. | ||
balance.tailHeavyEffects.doubles | number, -100 to 100 | % tighter on doubles and the bull. | ||
balance.tailHeavyEffects.consistency | number, -100 to 100 | % steadier day-to-day form and fewer cold streaks. | ||
balance.tailHeavyEffects.bounce | number, -100 to 100 | % fewer bounce-outs. | ||
balance.tailHeavyEffects.stamina | number, -100 to 100 | % slower fatigue build-up in a match. | ||
balance.tailHeavyEffects.grip | number, -100 to 100 | % less loosening from fatigue and sweaty hands (doubled under TV lights). | ||
balance.tailHeavyEffects.eyesight | number, -100 to 100 | Eyesight points on the oche (up to the ceiling in kitSettings). | ||
balance.tailHeavyEffects.composure | number, -100 to 100 | Composure points on the oche. | ||
balance.tailHeavyEffects.training | number, -100 to 100 | % more training gains. | ||
balance.tailHeavyEffects.practice | number, -100 to 100 | % faster familiarity with new kit. | ||
balance.tailHeavyEffects.insight | number, 0 to 1 | 0–1: reads fit like a (weaker) kit technician. | ||
balance.tailHeavyEffects.travel | number, -100 to 100 | % lighter travel load. | ||
balance.tailHeavyEffects.protect | number, -100 to 100 | % less chance of kit damage or loss on the road. | ||
balance.tailHeavyEffects.followers | number, -100 to 100 | % more follower growth from events. | ||
eyesightCeiling | number, 50 to 100 | Eyewear never lifts eyesight above this. | ||
wear | object | |||
wear.match | number, 0 to 2 | Each match wears kit like this share of a week. | ||
wear.worn | number, 0 to 1 | Below this condition, kit counts as worn. | ||
shop | object | |||
shop.limitedChance | number, 0 to 1 | Chance each month that a limited edition drops. | ||
shop.limitedWeeks | whole number, 1 to 52 | Weeks a limited edition stays in the shop. | ||
designer | object | The kit designer: patterns, collars, fonts and fabrics (merged by id across records; a later entry with the same id replaces it). | ||
designer.printCost | whole number, 0 to 100,000 | What designing and printing a shirt costs, on top of its fabric. | ||
designer.placements | object | Follower growth % from each sponsor logo on your own shirt (chest, sleeve, back). | ||
designer.placements.chest | number, 0 to 20 | |||
designer.placements.sleeve | number, 0 to 20 | |||
designer.placements.back | number, 0 to 20 | |||
designer.patterns | list | Old pattern list: used only when no pack provides shirtPatterns. | ||
designer.patterns[].id | text, up to 30 characters | Yes | ||
designer.patterns[].name | text, up to 30 characters | Yes | ||
designer.patterns[].style | one of the options | Yes | Options: plain, panels, sleeveStripes, gradient, flames, chequer, swirl, pinstripe, hoops, sash, chevron. | |
designer.patterns[].scale | number, 0.25 to 4 | 1 | Size of the repeat (chequer, pinstripe, hoops): 0.5 = twice as fine, 2 = twice as bold. | |
designer.collars | list | |||
designer.collars[].id | text, up to 30 characters | Yes | ||
designer.collars[].name | text, up to 30 characters | Yes | ||
designer.collars[].style | one of the options | Yes | Options: crew, polo, button, vneck. | |
designer.collars[].cut | id | The shirt cut (shirtCuts id) it's drawn on; by default the cut listing this style. Names a shirt cut record. | ||
designer.fonts | list | |||
designer.fonts[].id | text, up to 30 characters | Yes | ||
designer.fonts[].name | text, up to 30 characters | Yes | ||
designer.fonts[].family | text, up to 120 characters | Yes | A CSS font-family stack (fonts the game ships, or generic families). | |
designer.fonts[].weight | whole number, 100 to 900 | 700 | ||
designer.fonts[].italic | true or false | false | Slanted lettering. | |
designer.fabrics | list | |||
designer.fabrics[].id | text, up to 30 characters | Yes | ||
designer.fabrics[].name | text, up to 30 characters | Yes | ||
designer.fabrics[].tier | one of the options | Yes | Options: budget, club, pro, elite. | |
designer.fabrics[].price | whole number, 0 to 100,000 | Yes | Price of the fabric (on top of the print cost). | |
designer.fabrics[].effects | object | {} | What an item (or a rule) does, per lever. Leave out what it doesn't touch. | |
designer.fabrics[].effects.scoring | number, -100 to 100 | % tighter on trebles and singles. | ||
designer.fabrics[].effects.doubles | number, -100 to 100 | % tighter on doubles and the bull. | ||
designer.fabrics[].effects.consistency | number, -100 to 100 | % steadier day-to-day form and fewer cold streaks. | ||
designer.fabrics[].effects.bounce | number, -100 to 100 | % fewer bounce-outs. | ||
designer.fabrics[].effects.stamina | number, -100 to 100 | % slower fatigue build-up in a match. | ||
designer.fabrics[].effects.grip | number, -100 to 100 | % less loosening from fatigue and sweaty hands (doubled under TV lights). | ||
designer.fabrics[].effects.eyesight | number, -100 to 100 | Eyesight points on the oche (up to the ceiling in kitSettings). | ||
designer.fabrics[].effects.composure | number, -100 to 100 | Composure points on the oche. | ||
designer.fabrics[].effects.training | number, -100 to 100 | % more training gains. | ||
designer.fabrics[].effects.practice | number, -100 to 100 | % faster familiarity with new kit. | ||
designer.fabrics[].effects.insight | number, 0 to 1 | 0–1: reads fit like a (weaker) kit technician. | ||
designer.fabrics[].effects.travel | number, -100 to 100 | % lighter travel load. | ||
designer.fabrics[].effects.protect | number, -100 to 100 | % less chance of kit damage or loss on the road. | ||
designer.fabrics[].effects.followers | number, -100 to 100 | % more follower growth from events. | ||
designer.fabrics[].description | text, up to 160 characters | |||
development | object | |||
development.slots | map (key: value) | Base cost per slot you can develop a signature item for. | ||
development.stages | list, 2 to 12 items | |||
development.stages[].id | text, up to 30 characters | Yes | ||
development.stages[].name | text, up to 40 characters | Yes | ||
development.stages[].kind | one of the options | Yes | Options: design, prototype, test, production, launch. | |
development.stages[].weeks | number, 0 to 26 | 0 | ||
development.stages[].lead | number, 0 to 4 | 0 | ||
development.stages[].cost | number, 0 to 1 | 0 | ||
development.stages[].text | text, up to 200 characters | Yes | ||
development.royalty | number, 0 to 1 | Monthly royalty per follower at a maker royalty of 1. | ||
development.hypeBoost | number, 0 to 10 | Launch hype: royalties × (1 + boost) at launch, fading over hypeMonths. | ||
development.hypeMonths | number, 0.5 to 36 | |||
development.pace | map (key: value) | Per slot: the stages' weeks × this (flights 0.5: quicker than darts). | ||
development.rounds | map (key: value) | Per slot: at most this many test rounds, whatever the maker offers. | ||
development.terms | map (key: value) | Per slot: a stage kind's name and timeline line for that slot ("Samples" for a shirt). | ||
development.terms.<key> | object | Yes | ||
development.terms.<key>.design | object | |||
development.terms.<key>.design.name | text, up to 40 characters | |||
development.terms.<key>.design.text | text, up to 200 characters | |||
development.terms.<key>.prototype | object | |||
development.terms.<key>.prototype.name | text, up to 40 characters | |||
development.terms.<key>.prototype.text | text, up to 200 characters | |||
development.terms.<key>.test | object | |||
development.terms.<key>.test.name | text, up to 40 characters | |||
development.terms.<key>.test.text | text, up to 200 characters | |||
development.terms.<key>.production | object | |||
development.terms.<key>.production.name | text, up to 40 characters | |||
development.terms.<key>.production.text | text, up to 200 characters | |||
development.terms.<key>.launch | object | |||
development.terms.<key>.launch.name | text, up to 40 characters | |||
development.terms.<key>.launch.text | text, 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."
}
}
}
}
}