Skip to content

Instantly share code, notes, and snippets.

@arbron
Last active July 4, 2024 06:37
Show Gist options
  • Save arbron/c4410825ef4c198d0a71f863a3563f31 to your computer and use it in GitHub Desktop.
Save arbron/c4410825ef4c198d0a71f863a3563f31 to your computer and use it in GitHub Desktop.

D&D 5e Race Data Model

"race": {
  "templates": ["itemDescription"],
  "type": ["humanoid"],
  "size": {
    "choices": ["med"],
    "selected": "med"
  },
  "movement": {
    "burrow": 0,
    "climb": 0,
    "fly": 0,
    "swim": 0,
    "walk": 30,
    "units": "ft",
    "hover": false
  },
  "abilityScores": {
    "default": {},
    "additional": 0,
    "selected": {}
  },
  "languages": {
    "default": ["common"],
    "additional": 0,
    "value": ["common"],
    "custom": ""
  }
},

Notes

  • The additional field in abilityScores is the number of other ability scores that can be increased by one each (in variant Human and Half-Elf this would be 2).
  • The additional field in languages is the number of additional languages the player can select.

Issues

General Design

The new Race item in 5e should split all racial traits into two groups:

  1. Core Traits: These properties are used by many or all races and should be represented by the core Race item (e.g. ability score increases, speed, size)
  2. Feature Traits: These properties are very specialized to specific races and should be introduced as seperate features which are automatically granted when the race is added to a PC (e.g. Dragonborn Breath Weapon, Halfling Lucky)

The question is what features are grouped into which of theses groups. For example, a number of races introduce additional weapon proficiencies, should these be part of the race object or as seperate features?

Racial Variants

Should variants of the various races be listed as player-selectable options within the main race or should they each be a seperate Item? Seperating them out allows the Race Item to remain much simpler from a technical standpoint at the expense of adding complexity on the player side.

Customizing Your Origin

How much of the ability to customize your origin introduced in Tasha's should be included in the Race item? If ability scores and languages are represented by the Race Item, it would be relatively simple to customize the interface to add a Customize Origin feature that allows the player to select ability scores and languages in accordance with the rules in Tasha's, or disable these features entirely if their DM has some other way of granting these items in mind.

"abilityScores": {
  "default": {"int": 1, "cha": 2},
  "additional": 0,
  "selected": [],
  "custom": {"str": 2, "cha": 1}
},

Gothic Lineages

The recently release Gothic Lineages Unearthed Arcana content includes options to choose your creature type (e.g. Humainoid or Undead for Dhampir, Fey or Humanoid for Hexblood) and size (Medium or Small for all three). Should multiple options for size and type be represented as an array or a semicolon-seperated list?

"type": "humanoid;fey" or "type": ["humanoid", "fey"]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment