Guide

Injuries and treatment

An injury sits on a body part, and each part hurts a different part of your game. It heals week by week at a speed set by the treatment you choose and your physio. You can rest it (and miss events), or play on through it at the risk of making it worse. The Medical panel on your profile shows each injury: what it does to your game, how far it has healed, when you'll be fit, and the treatments you can switch between. New injuries, setbacks and the "fit to play?" call also arrive in the inbox with the choices.

Everything is tunable in data/medical.json: one settings object (or an array of them). The editor schema is the medical settings reference. Every field is optional: a field you leave out keeps the game's default. Several mods can supply one. They apply in load order, and later fields win (per key for parts, severities, injuries and treatments. An injury or treatment given again replaces the old one whole). Like load settings, medical settings follow the installed packs in existing saves too.

Body parts#

parts has one entry per part: shoulder, elbow, wrist, back, knee, foot, eyes. Each has a name, its effects at moderate severity, and optionally wear: the mark it leaves if you make it worse by playing on it.

EffectMeaningIn the throw model
scoring% wider on trebles and singlesThe kit scoring lever
doubles% wider on doubles and the bullThe kit doubles lever
rhythm% streakier: tempo and rhythm come and go moreThe kit consistency lever
stamina% faster in-match fatigueThe kit stamina lever
eyesightEyesight points lost on the ocheEyesight, as eyewear adds it
composureComposure points lost on the ocheComposure, as a heavy workload takes
fatigueFloorFatigue never drops below thisStarting fatigue
trainingShare of training gains lost (0.5 = half)Training gains

The game's parts:

PartDefault effectsWear (if aggravated)
shoulderscoring 3, doubles 2.5, stamina 15, training 0.5Stamina −1
elbowscoring 3, doubles 2, rhythm 20, training 0.5
wristscoring 2, doubles 4, rhythm 12, training 0.5
backscoring 1.5, doubles 1.5, stamina 20, fatigue floor 0.2, composure 1, training 0.6Fitness −1
kneestamina 15, rhythm 6, fatigue floor 0.15, training 0.3Fitness −1
footstamina 12, rhythm 8, fatigue floor 0.1, training 0.25
eyeseyesight 10, doubles 1.5, composure 1, training 0.1Eyesight −1

severities scales them: effects (× the part's effects), weeks (× the injury type's weeks) and recovery (× the healing speed). Defaults: minor 0.6 / 0.5 / 1, moderate 1 / 1 / 1, serious 1.7 / 2.2 / 0.8.

As an injury heals its effects fade: by rehab.taper (default 0.6) of them at fully healed, so a wrist that's 80% better bites about half as hard as a fresh one.

Injuries only touch the injured player: nobody else's throw changes, so the calibration targets are untouched.

Injury types#

injuries maps an id to an injury type:

FieldMeaningDefault
nameAs the physio says it ("Tennis elbow")required
partThe body partrequired
weeksWeeks to heal at moderate severity with plain rest (a number or [min, max])required
severityWeights for minor, moderate, serious when it happens6 / 3 / 1
weightHow often it's this one, among types with the same cause1
ageWeightExtra weight per year of age over 30 (− for injuries of the young)0
causesWhich of wear, training, load can bring it on["wear"]
aiComputer players in the living world can get it tootrue
descriptionA line for the Mod Studio

Eye types are also likelier the poorer your Eyesight (up to twice as likely at Eyesight 20), and Eyesight itself declines from 36 (see the development rules), so eye trouble is mostly a veteran's problem.

{
  "id": "acme.medical",
  "injuries": {
    "acme.injury.trigger-finger": {
      "name": "Trigger finger",
      "part": "wrist",
      "weeks": [2, 4],
      "weight": 1,
      "ageWeight": 0.04,
      "causes": ["training", "wear"]
    }
  }
}

Treatments#

treatments maps an id to a treatment. The inbox and the Medical panel list the ones that suit the injury, by order.

FieldMeaningDefault
nameAs it appears in the listrequired
descriptionA line explaining the trade-off
costPaid once, when you start it0
weeklyPaid each week while it lasts0
physioFreeA physio on your staff does it: no weekly costfalse
sitOutYou miss events while on it (entries refunded; league nights still go ahead)false
recoveryHealing speed (1 = plain rest)1
biteHow hard the injury bites while on it (0.4 = 40% of its effects)1
aggravationChance each week you play on it that it gets worse0
severitiesOnly for these severitiesany
partsOnly for these partsany
safeReturnComing back from it carries no extra risk of doing it againfalse
orderWhere it sits in the list0

The game's treatments:

TreatmentCostRest?SpeedOther
Optician: new prescription (eyes)£150No3Bites half as hard; safe return
Manage it and play onFreeNo0.76% a week it gets worse
Take medicine£300No0.5Bites 40%; 12% a week it gets worse; not serious
Physio programme£140/wk (free with a physio)Yes1.5
Specialist and rehab plan£650Yes1.8Moderate and serious; safe return
Complete restFreeYes1.1
Surgery£3,500Yes2Serious only; safe return

defaults sets the treatment you start on for each severity until you choose (minor: core.treatment.manage, moderate and serious: core.treatment.rest). A story can ask for rest or play instead (its sitOut).

strain says which injury a strain from the workload is: { "minor": "core.injury.overuse", "moderate": "core.injury.worn-shoulder" } in the core pack. The injury's own name and body part are used. sitOut is the treatment that means sitting out (core.treatment.rest).

Healing, setbacks and coming back#

Each week an injury heals recovery × the severity's recovery × (1 + your team's injuryRecovery hook) ÷ its weeks. On a treatment you play on, it may get worse instead: the treatment's aggravation, more for a moderate (×1.2) or serious (×1.5) injury and the more matches you played that week, less by your team's injuryChance hook. A setback costs rehab.setback (default 0.25) of the healing, makes it one step more severe and leaves the part's wear mark.

Resting, once it's rehab.returnAt healed (default 75%) the physio asks whether you want to play now or finish the rehab. Come back before it's fully healed (then or any time from the Medical panel) on a treatment without safeReturn, and for risk.reinjuryWeeks after it clears everyday wear is risk.reinjury times as likely, mostly to that same part.

A decision you leave alone never blocks the week: the treatment marked "for now" carries on.

How likely an injury is#

On top of stories and the workload's strains (Travel load and burnout, overloaded and burnout), each week without an injury rolls for one from three causes:

CauseChance a week
wearrisk.base × Fitness (each point under 50 adds risk.fitness, each over takes it off) × age (each year over risk.ageFrom adds risk.perYear)
trainingEach practice hour a week (rest not counted) over risk.overtrainHours adds risk.perHour
loadrisk.tired while your workload is tired or worse

Both wear and training grow when you're tired: by up to risk.fatigue (default 60%) as fatigue goes from risk.fatigueFrom (0.5) to full. The total is capped at risk.max a week. For risk.graceWeeks (default 8) after an injury clears, everyday wear leaves you be. A physio's injuryChance hook may catch it early: one step milder, and a minor one never happens.

SettingDefaultMeaning
base0.005Everyday wear a week for a fit-enough 30-year-old
fitness0.012Per Fitness point from 50
ageFrom30
perYear0.05
overtrainHours24The default plan is 14 hours of practice
perHour0.0015
fatigueFrom0.5
fatigue0.6
tired0.004
graceWeeks8
max0.06
reinjury2.5
reinjuryWeeks8

The game's tuning: a 30-year-old with average Fitness and a sensible plan picks up an injury from everyday wear about once every four seasons, most of them minor; stories (a twinge in the wrist, a bad back) and a heavy schedule bring the total to roughly one a season. A 40-year-old with Fitness 35 who practises 30 hours a week gets about three and a half times as many from wear and over-training.

{
  "id": "acme.gentle-medical",
  "risk": { "base": 0.003, "overtrainHours": 28 },
  "treatments": {
    "core.treatment.physio": {
      "name": "Physio programme",
      "weekly": 90,
      "physioFree": true,
      "sitOut": true,
      "recovery": 1.5,
      "order": 30
    }
  }
}

The living world#

Generated computer players get injuries from the same types (those with "ai": true): their weekly chance is the world's form.injuryChance (The living world) × the same wear factor (Fitness and age), and they're out for as long as the type and severity take to rest (at least two weeks). Named players never are.

Stories#

The injury story action (Stories) starts an injury through all of this: give it a part (or an injury type id) and weeks. Stories can check "injured": true / false.

Old saves#

A career from before treatment keeps any story injury it was carrying: it becomes an injury on the part its label names, healing to the same date, and picks up the medical settings from the installed packs.

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