Quirks - GarwelGarwel/KerbalHealth GitHub Wiki

When a kerbal levels up, there is a 25% chance (by default) that he or she will acquire a quirk. The chance sometimes depends on Courage and Stupidity values and some quirks are incompatible with one another. Kerbals can have up to 2 quirks.

Another way to acquire quirks is to have your kerbals discover anomalies (easter eggs left by Squad on the surfaces of most celestial bodies). These free quirks are not limited to two per kerbal. If several kerbals make the discovery simultaneously (while in the same vessel), only one of them will get the quirk.

If you install the mod mid-game, kerbals will "catch up" with their quirks. If you don't want them to suddenly acquire something nasty during a mission, make sure the default setting "Award on Missions" is on.

Default Quirks

Acrobat

50% Microgravity factor effect

Adventurous

Incompatible with Lonely

More likely for Courageous kerbals

  • 60% Assigned factor effect when in interplanetary space
  • 40% Assigned factor effect when in a SOI of another planet or moon (except Mun or Minmus)
  • 50% Home factor effect

Asketic

90% Crowded factor effect

Astronaut's Health

Minimum experience level required: 3

+10% max HP

Claustrophobic

Less likely for Courageous kerbals

  • 110% Crowded factor effect
  • 50% EVA factor effect

Endurant

Minimum experience level required: 2

Incompatible with Unstable

Exhausted condition starts at 50% of its normal health level (which is 20% of HP by default)

Game Addict

More likely for Stupid kerbals

Health Decay of 0.5% for the first 30 days on a mission

Health Reserves

Health Recuperation of 0.5% after the first 100 days on a mission

Heartbreaker

  • 80% Crowded factor effect when a kerbal of opposite gender is on the same vessel
  • 200% Loneliness factor effect

Homely

Less likely for Courageous kerbals

Incompatible with Adventurous

  • 200% KSC factor effect
  • 200% Home factor effect
  • 50% Assigned factor effect when in Kerbin's SOI
  • 150% Assigned factor effect when in outside Kerbin's SOI

Lead Skin

50% Radiation Exposure

Loner

  • 0% Loneliness factor effect (i.e. immunity from it)
  • 110% Crowded factor effect

Sickly

Incompatible with Strong Immunity

200% chance of becoming Sick

Strong Immunity

Incompatible with Sickly

  • 50% chance of becoming sick
  • Twice as long average period of sickness immunity

Talkative

More likely for Stupid kerbals

Incompatible with Loner

  • 150% Connected factor effect
  • 200% Loneliness factor effect

Unlucky

200% Accident chance

Unstable

Minimum experience level required: 2

Incompatible with Endurant

Less likely for Courageous kerbals

  • 200% Panic Attack chance
  • Exhausted condition starts and ends at 125% of its normal health level (which is 20% and 25% of HP by default, respectively)

Workaholic

  • 50% Assigned factor effect
  • 50% KSC factor effect

Custom Quirks

You can add, change or remove quirks either by editing the KerbalHealth.cfg file or with Module Manager patches (recommended). Quirks are defined in HEALTH_QUIRK nodes. The following keys are allowed:

  • name (required) - the internal name of the quirk, must be unique
  • title - displayed name of the quirk, defaults to name if skipped
  • description - textual in-game description of the quirk
  • visible - whether quirk is displayed in the Health Monitor and the messages (default is true)
  • minLevel - minimum experience level required to get the quirk
  • incompatibleWith (can be used multiple times) - the quirk can't be awarded to the kerbal, who already has one of the incompatible ones
  • courageWeight - a kerbal with 100% Courage has this time more chances of getting the quirk than a kerbal with 0% Courage (default = 1); it doesn't affect average probability of the quirk
  • stupidityWeight - a kerbal with 100% Stupidity has this time more chances of getting the quirk than a kerbal with 0% Courage (default = 1); it doesn't affect average probability of the quirk

Effects

Inside the HEALTH_QUIRK node, there should be one or more EFFECT nodes that define what the quirk actually does. These are the possible effects (most of them are multipliers and are 1 by default):

  • maxHP - max HP multiplier
  • maxHPBonus - max HP additive (0 by default)
  • exhaustedStart - multiplier of threshold for start of Exhaustion condition
  • exhaustedEnd - multiplier of threshold for end of Exhaustion condition
  • exposure - radiation Exposure multiplier
  • hpChangePerDay - raw change of HP per day (0 by default)
  • recuperation - Health Recuperation, in percentage points (0 by default)
  • decay - Health Decay, in percentage points (0 by default)
  • multiplier - health factor multiplier, applied after all multipliers provided by vessel parts
  • multiplyFactor - name of the factor, to whcih the multiplier is applied (default is 'All')
  • space - additional living space (0 by default)
  • shielding - additional radiation shielding (affects Exposure, but is additive, 0 by default)
  • radioactivity - additional radiation (0 by default)
  • accidentChange - Accident event chance multiplier
  • panicAttackChance - Panic Attack event chance multiplier
  • sicknessChance - getting infected and sick event chance multiplier
  • cureChance - sickness cure event chance multiplier
  • loseImmunityChance - loss of sickness immunity event chance multiplier

Logic

Each of the effects is applied independently from the others and can have its own logic. For instance, one effect will only apply in a SOI of a particular body, another one during a specific period of time and the third one will apply in all cases (this is the default). It means that you should have at least three EFFECT nodes, one for each of these effects.

In order to define conditions (or "logic") for an effect, you can use a set of nested LOGIC nodes inside EFFECT nodes. The EFFECT node itself is also treated as a LOGIC node.

Note: You may include as many LOGIC nodes as you want and for any depth, but keep in mind performance considerations: each of the conditions is checked for every kerbal with the given quirk at every health update (normally every 10 seconds).

The following are keys that define logic:

  • inSOI - the kerbal is in a Sphere of Influence of a particular body; use 'Home' to define the home body for compatibility with modded planetary systems
  • kerbalStatus - the kerbal has a specific roster status ('Available', 'Assigned', 'Missing' or 'Dead')
  • missionTime - the mission has begun at least this number of seconds ago (note that KSP resets time on undocking, EVA and in some other cases)
  • genderPresent - at least one kerbal of the specified gender is in the same vessel (allowed values: 'Female', 'Male', 'Same', 'Other')
  • operator - whether all the conditions are required (use 'all' or 'and', this is default) or just one of them (use 'any' or 'or') for the effect to be applied
  • inverse - whether to invert the logic (a logical 'not' operator, default is 'false')

Example

HEALTH_QUIRK
{
	name = Adventurous
	incompatibleWith = Homely
	courageWeight = 2
	EFFECT
	{
		multiplyFactor = Assigned
		multiplier = 0.6
		inSOI = Sun
	}
	EFFECT
	{
		multiplyFactor = Assigned
		multiplier = 0.4
		operator = Or
		inverse = True
		LOGIC
		{
			inSOI = Sun
		}
		LOGIC
		{
			inSOI = Home
		}
		LOGIC
		{
			inSOI = Mun
		}
		LOGIC
		{
			inSOI = Minmus
		}
	}
	EFFECT
	{
		multiplyFactor = Home
		multiplier = 0.5
	}
}

In this example, the quirk called 'Adventurous' cannot be assigned to a kerbal that has a 'Homely' quirk. A kerbal with 100% Courage is also 2x as likely to get this one than one with 0% Courage.

This quirk has three effects:

  • 'Assigned' factor is multiplied by 0.6 (i.e. 60%), when the kerbal is in the SOI of the Sun
  • 'Assigned' factor is multiplied by 0.4 (i.e. 40%), when one of the following (note operator = Or) is false (note inverse = True): the kerbal is in the SOI of the Sun, of the home planet (i.e. Kerbin or Earth if you play in the Solar System), of the Mun or Minmus. In other words, this quirk is applied everywhere except these SOIs.
  • 'Home' factor is multiplied by 0.5, always.