Every race is a single JSON file placed at data/<namespace>/storytime/races/<id>.json.

Top-level fields

display_name

Type: string
Required: yes

The name shown in the character selection screen. Supports Minecraft formatting codes.

"display_name": "Stonewarden"

description

Type: string
Required: yes

A short description shown in the character selection screen. Supports Minecraft formatting codes.

"description": "Ancient guardians of the deep, slow but immovable."

icon

Type: string (resource location)
Required: yes

Path to the icon texture shown in the character selection screen. The texture must be present in your datapack or resource pack.

"icon": "my-races:textures/gui/races/stonewarden.png"

attribute_modifiers

Type: array of attribute modifier objects
Default: []

A list of stat changes applied to the player when they select this race. See Attribute modifiers for supported attributes and operations.

"attribute_modifiers": [
  {
    "attribute": "minecraft:generic.max_health",
    "amount": 6,
    "operation": "add_value"
  }
]

entity_height

Type: number (blocks)
Default: not set (uses vanilla player height of 1.8)

Scales the player's collision box and model height. Values above 1.8 make the player taller; values below make them shorter.

"entity_height": 2.5

entity_width

Type: number (blocks)
Default: not set (uses vanilla player width of 0.6)

Scales the player's collision box and model width.

"entity_width": 0.9

traits

Type: array of trait objects
Default: []

A list of passive traits applied to the player. Each trait runs continuously while the race is active. You can apply multiple traits of the same or different types.

Each trait object has:

  • type โ€” the trait type resource location
  • parameters โ€” a map of configuration values specific to that trait type
"traits": [
  {
    "type": "storytime:scare_entities",
    "parameters": {
      "entities": ["minecraft:creeper"],
      "radius": 16.0
    }
  }
]

See Trait types for all built-in types.


ability

Type: ability object
Default: not set (race has no active ability)

The race's single active ability, triggered by the player pressing R.

Field Type Required Description
type string yes Ability type resource location
parameters object yes Parameters specific to the ability type
cooldown integer yes Cooldown in ticks (20 = 1 second)
display_name string yes Name shown in the UI
description string yes Description shown in the UI
icon string no Resource location of an ability icon texture
"ability": {
  "type": "storytime:spell_cast",
  "parameters": {
    "spell_mode": "self",
    "effects": [
      { "effect": "minecraft:strength", "amplifier": 1, "duration": 400 }
    ]
  },
  "cooldown": 1200,
  "display_name": "Battle Surge",
  "description": "Flood your body with strength for 20 seconds."
}

See Ability types for all built-in types.

See also