# Race A playable race with stats and skills. ## Definitions ### Race (`Race`) A playable race with stats and skills. - **Type:** Object Key | Description | Details :-- | :-- | :-- `id` | The race's identifier. An unique, increasing integer. | See details `ap_value` | How many Adventure Points does the race cost during character creation? | See details `base_values` | The race’s base values. | See details `attribute_adjustments` | Describes how to raise or lower maximum attribute values during character creation. | See details `automatic_advantages?` | A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection. | See details `strongly_recommended_advantages?` | A list of strongly recommended advantages. | See details `strongly_recommended_disadvantages?` | A list of strongly recommended disadvantages. | See details `weight` | Configuration for random weight generation. | See details `starting_age` | Defines the starting ages for the race. It depends on the selected experience level. | See details `variants` | A list of available race variants where one has to be selected. If no variants are to be selected, a single variant with no name has to be provided which will be used as the missing values for the base race. | See details `src` | | See details `translations` | All translations for the entry, identified by IETF language tag (BCP47). | See details #### `id` The race's identifier. An unique, increasing integer. - **Type:** Integer - **Minimum:** `1` #### `ap_value` How many Adventure Points does the race cost during character creation? - **Type:** Integer - **Minimum:** `0` #### `base_values` The race’s base values. - **Type:** BaseValues #### `attribute_adjustments` Describes how to raise or lower maximum attribute values during character creation. - **Type:** AttributeAdjustments #### `automatic_advantages?` A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection. - **Type:** List - **Items:** Race/automatic_advantages[] - **Minimum Items:** `1` #### `strongly_recommended_advantages?` A list of strongly recommended advantages. - **Type:** List - **Items:** Race/strongly_recommended_advantages[] - **Minimum Items:** `1` #### `strongly_recommended_disadvantages?` A list of strongly recommended disadvantages. - **Type:** List - **Items:** Race/strongly_recommended_disadvantages[] - **Minimum Items:** `1` #### `weight` Configuration for random weight generation. - **Type:** RandomWeightGeneration #### `starting_age` Defines the starting ages for the race. It depends on the selected experience level. - **Type:** List - **Items:** Race/starting_age[] - **Minimum Items:** `7` - **Maximum Items:** `7` #### `variants` A list of available race variants where one has to be selected. If no variants are to be selected, a single variant with no name has to be provided which will be used as the missing values for the base race. - **Type:** RaceVariants #### `src` - **Type:** PublicationRefs #### `translations` All translations for the entry, identified by IETF language tag (BCP47). - **Type:** LocaleMap<RaceTranslation> --- ### `Race/automatic_advantages[]` - **Type:** AdvantageReference --- ### `Race/strongly_recommended_advantages[]` - **Type:** CommonnessRatedAdvantageDisadvantage<AdvantageIdentifier> --- ### `Race/strongly_recommended_disadvantages[]` - **Type:** CommonnessRatedAdvantageDisadvantage<DisadvantageIdentifier> --- ### `Race/starting_age[]` - **Type:** StartingAgeConfigForExperienceLevel --- ### `BaseValues` The race’s base values. - **Type:** Object Key | Description | Details :-- | :-- | :-- `life_points` | The race’s life point base value. | See details `spirit` | The race’s Spirit base value. | See details `toughness` | The race’s Toughness base value. | See details `movement` | The race’s tactical movement rate. | See details #### `life_points` The race’s life point base value. - **Type:** Integer #### `spirit` The race’s Spirit base value. - **Type:** Integer #### `toughness` The race’s Toughness base value. - **Type:** Integer #### `movement` The race’s tactical movement rate. - **Type:** Integer - **Minimum:** `1` --- ### `AttributeAdjustments` Describes how to raise or lower maximum attribute values during character creation. - **Type:** Object - **Minimum Properties:** `1` Key | Description | Details :-- | :-- | :-- `fixed?` | The values by which the maximum of the respective attribute is modified. | See details `selectable?` | An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options. | See details #### `fixed?` The values by which the maximum of the respective attribute is modified. - **Type:** List - **Items:** AttributeAdjustments/fixed[] - **Minimum Items:** `1` #### `selectable?` An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options. The array only permits a single entry because no race specified more than one selectable attribute adjustment so far. But the schema allows for multiple entries to be future-proof. - **Type:** List - **Items:** AttributeAdjustments/selectable[] - **Minimum Items:** `1` - **Maximum Items:** `1` --- ### `AttributeAdjustments/fixed[]` - **Type:** FixedAttributeAdjustment --- ### `AttributeAdjustments/selectable[]` - **Type:** SelectableAttributeAdjustment --- ### `FixedAttributeAdjustment` A value by which the maximum of the respective attribute is modified. - **Type:** Object Key | Description | Details :-- | :-- | :-- `id` | The attribute the modifier applies to. | See details `value` | The value by which the specified attribute's maximum is modified (negative values will lower the maximum). | See details #### `id` The attribute the modifier applies to. - **Type:** AttributeIdentifier #### `value` The value by which the specified attribute's maximum is modified (negative values will lower the maximum). - **Type:** Integer --- ### `SelectableAttributeAdjustment` A value that will be added to the current maximum of the selected attribute that has been chosen from the listed attributes (negative values will lower the maximum). - **Type:** Object Key | Description | Details :-- | :-- | :-- `list` | A list of attributes the player has to choose from. | See details `value` | The value by which the selected attribute's maximum is modified (negative values will lower the maximum). | See details #### `list` A list of attributes the player has to choose from. - **Type:** List - **Items:** SelectableAttributeAdjustment/list[] - **Minimum Items:** `2` #### `value` The value by which the selected attribute's maximum is modified (negative values will lower the maximum). - **Type:** Integer --- ### `SelectableAttributeAdjustment/list[]` - **Type:** AttributeReference --- ### `RandomWeightGeneration` Configuration for random weight generation. - **Type:** Object Key | Description | Details :-- | :-- | :-- `base` | The base value used for random weight. The height subtrahend; in case of `Height - 110 + 2D6` it is `110`. | See details `random` | The dice used for random weight. | See details #### `base` The base value used for random weight. The height subtrahend; in case of `Height - 110 + 2D6` it is `110`. - **Type:** Integer - **Minimum:** `1` #### `random` The dice used for random weight. - **Type:** List - **Items:** RandomWeightGeneration/random[] - **Minimum Items:** `1` --- ### `RandomWeightGeneration/random[]` - **Type:** WeightDice --- ### `WeightDice` - **Type:** Object Key | Description | Details :-- | :-- | :-- `number` | Number of dice of the same type. Example: 2 in 2D6. | See details `sides` | Number of sides on every die. Example: 6 in 2D6. | See details `offset_strategy` | The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted. | See details #### `number` Number of dice of the same type. Example: 2 in 2D6. - **Type:** Integer - **Minimum:** `1` #### `sides` Number of sides on every die. Example: 6 in 2D6. - **Type:** DieType #### `offset_strategy` The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted. - **Type:** WeightDiceOffsetStrategy --- ### `WeightDiceOffsetStrategy` The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted. - **Type:** Union - **Cases:** WeightDiceOffsetStrategy'0 | WeightDiceOffsetStrategy'1 | WeightDiceOffsetStrategy'2 --- ### `WeightDiceOffsetStrategy'0` - **Constant:** `"Add"` --- ### `WeightDiceOffsetStrategy'1` - **Constant:** `"Subtract"` --- ### `WeightDiceOffsetStrategy'2` - **Constant:** `"AddEvenSubtractOdd"` --- ### `StartingAgeConfigForExperienceLevel` - **Type:** Object Key | Description | Details :-- | :-- | :-- `id` | The selected experience level's identifier. | See details `base` | The base value for the selected experience level. | See details `random` | The random value for the selected experience level. It is going to be added to the base value. | See details #### `id` The selected experience level's identifier. - **Type:** ExperienceLevelIdentifier #### `base` The base value for the selected experience level. - **Type:** Integer - **Minimum:** `1` #### `random` The random value for the selected experience level. It is going to be added to the base value. - **Type:** Dice --- ### `RaceVariants` A list of available race variants where one has to be selected. If no variants are to be selected, a single variant with no name has to be provided which will be used as the missing values for the base race. - **Type:** List - **Items:** RaceVariants[] - **Minimum Items:** `1` --- ### `RaceVariants[]` - **Type:** RaceVariant --- ### Race Variant (`RaceVariant`) - **Type:** Object Key | Description | Details :-- | :-- | :-- `id` | An unique, increasing integer. | See details `common_cultures` | The list of common cultures. | See details `common_advantages?` | A list of common advantages. | See details `common_disadvantages?` | A list of common disadvantages. | See details `uncommon_advantages?` | A list of uncommon advantages. | See details `uncommon_disadvantages?` | A list of uncommon disadvantages. | See details `hair_color` | An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color. | See details `eye_color` | An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color. | See details `height` | Configuration for random height generation. | See details `translations` | All translations for the entry, identified by IETF language tag (BCP47). | See details #### `id` An unique, increasing integer. - **Type:** Integer - **Minimum:** `1` #### `common_cultures` The list of common cultures. - **Type:** List - **Items:** RaceVariant/common_cultures[] - **Minimum Items:** `1` #### `common_advantages?` A list of common advantages. - **Type:** List - **Items:** RaceVariant/common_advantages[] - **Minimum Items:** `1` #### `common_disadvantages?` A list of common disadvantages. - **Type:** List - **Items:** RaceVariant/common_disadvantages[] - **Minimum Items:** `1` #### `uncommon_advantages?` A list of uncommon advantages. - **Type:** List - **Items:** RaceVariant/uncommon_advantages[] - **Minimum Items:** `1` #### `uncommon_disadvantages?` A list of uncommon disadvantages. - **Type:** List - **Items:** RaceVariant/uncommon_disadvantages[] - **Minimum Items:** `1` #### `hair_color` An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color. - **Type:** List - **Items:** RaceVariant/hair_color[] - **Minimum Items:** `20` - **Maximum Items:** `20` #### `eye_color` An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color. - **Type:** List - **Items:** RaceVariant/eye_color[] - **Minimum Items:** `20` - **Maximum Items:** `20` #### `height` Configuration for random height generation. - **Type:** Height #### `translations` All translations for the entry, identified by IETF language tag (BCP47). - **Type:** LocaleMap<RaceVariantTranslation> --- ### `RaceVariant/common_cultures[]` - **Type:** CultureReference --- ### `RaceVariant/common_advantages[]` - **Type:** CommonnessRatedAdvantageDisadvantage<AdvantageIdentifier> --- ### `RaceVariant/common_disadvantages[]` - **Type:** CommonnessRatedAdvantageDisadvantage<DisadvantageIdentifier> --- ### `RaceVariant/uncommon_advantages[]` - **Type:** CommonnessRatedAdvantageDisadvantage<AdvantageIdentifier> --- ### `RaceVariant/uncommon_disadvantages[]` - **Type:** CommonnessRatedAdvantageDisadvantage<DisadvantageIdentifier> --- ### `RaceVariant/hair_color[]` - **Type:** HairColorReference --- ### `RaceVariant/eye_color[]` - **Type:** EyeColorReference --- ### `Height` Configuration for random height generation. - **Type:** Object Key | Description | Details :-- | :-- | :-- `base` | The base value used for random height. | See details `random` | The dice used for random height. | See details #### `base` The base value used for random height. - **Type:** Integer - **Minimum:** `1` #### `random` The dice used for random height. - **Type:** List - **Items:** Height/random[] - **Minimum Items:** `1` --- ### `Height/random[]` - **Type:** Dice --- ### `RaceVariantTranslation` - **Type:** Object Key | Description | Details :-- | :-- | :-- `name?` | The race variant's name. If left empty, it defaults to the base race name. This can be used if the race has no (visible) variants so that a single variant has to be provided. | See details `common_advantages?` | The respective common advantages text from the source book. | See details `common_disadvantages?` | The respective common disadvantages text from the source book. | See details `uncommon_advantages?` | The respective uncommon advantages text from the source book. | See details `uncommon_disadvantages?` | The respective uncommon disadvantages text from the source book. | See details #### `name?` The race variant's name. If left empty, it defaults to the base race name. This can be used if the race has no (visible) variants so that a single variant has to be provided. - **Type:** NonEmptyString #### `common_advantages?` The respective common advantages text from the source book. - **Type:** NonEmptyString #### `common_disadvantages?` The respective common disadvantages text from the source book. - **Type:** NonEmptyString #### `uncommon_advantages?` The respective uncommon advantages text from the source book. - **Type:** NonEmptyString #### `uncommon_disadvantages?` The respective uncommon disadvantages text from the source book. - **Type:** NonEmptyString --- ### `RaceTranslation` - **Type:** Object Key | Description | Details :-- | :-- | :-- `name` | The race's name. | See details `attribute_adjustments` | The respective attribute adjustments text from the source book. | See details `automatic_advantages?` | The respective automatic advantages text from the source book. | See details `strongly_recommended_advantages?` | The respective strongly recommended advantages text from the source book. | See details `strongly_recommended_disadvantages?` | The respective strongly recommended disadvantages text from the source book. | See details `errata?` | | See details #### `name` The race's name. - **Type:** NonEmptyString #### `attribute_adjustments` The respective attribute adjustments text from the source book. - **Type:** NonEmptyString #### `automatic_advantages?` The respective automatic advantages text from the source book. - **Type:** NonEmptyString #### `strongly_recommended_advantages?` The respective strongly recommended advantages text from the source book. - **Type:** NonEmptyString #### `strongly_recommended_disadvantages?` The respective strongly recommended disadvantages text from the source book. - **Type:** NonEmptyString #### `errata?` - **Type:** Errata