Origin JSON Format
An Origin defines a selectable origin that grants players special abilities.
File Location
Origin JSON files go in data/<namespace>/origins/origin/ within your data pack.
The filename corresponds to its ID. For example, data/origins/origins/origin/avian.json has the ID origins:avian.
Fields
| Field | Type | Default | Description |
|---|---|---|---|
name | Text Component | optional | The display name of the origin. Use translation key origin.<namespace>.<path>.name is more recommended |
description | Text Component | optional | The description shown in the origin's tooltip. Use translation key origin.<namespace>.<path>.description is more recommended |
powers | ReferenceOrTagList | [] | Power IDs or tags granted by this origin. Use "origins:xxx" or "#origins:tag_name" |
icon | Item Stack | optional | The item displayed as the origin's icon in the selection screen |
unchoosable | Boolean | false | If true, this origin won't appear in selection screens, but can still be assigned via commands or upgrades |
order | Integer | Integer.MAX_VALUE | Sort order in the selection screen; lower numbers appear first |
impact | Integer | 0 | Impact level: 0 = NONE, 1 = LOW, 2 = MEDIUM, 3 = HIGH |
upgrades | List of Upgrade objects | [] | Origin upgrade configuration list |
Examples
{
"powers": [
"#origins:avian"
],
"icon": {
"id": "minecraft:feather"
},
"order": 0,
"impact": 1
}
An Avian origin using a power tag:
{
"powers": [
"example:my_power",
"#origins:common_powers"
],
"icon": {
"id": "minecraft:player_head"
},
"order": 5,
"impact": 2,
"unchoosable": false
}
note
Key differences from the old (Fabric) version:
loading_priorityfield removedimpactuses an integer instead of a string enumpowerssupports tag references (#namespace:tag)
Upgrade Format
An Upgrade defines how an origin transforms into another origin upon achieving a specific advancement.
| Field | Type | Default | Description |
|---|---|---|---|
condition | Identifier | required | The advancement ID that triggers this upgrade |
origin | Identifier | required | The target origin ID to upgrade to |
announcement | Text Component | optional | A chat notification shown when the upgrade occurs |
Example
Used inside an Origin JSON's upgrades field:
{
"powers": [...],
"icon": {"id": "minecraft:diamond"},
"upgrades": [
{
"condition": "minecraft:end/kill_dragon",
"origin": "origins:elytrian",
"announcement": "You have slain the Ender Dragon! You have evolved into an Elytrian."
},
{
"condition": "minecraft:nether/brew_potion",
"origin": "origins:blazeborn"
}
]
}
If announcement is omitted, no notification message will be displayed.