Origin JSON Format

This is the format of a JSON file describing an origin. Origins are used to give players special abilities, which can alter the player's gameplay.

Origin JSON files need to be placed inside the data/<namespace>/origins folder of your datapack. The said files can be referenced as namespace:path/to/origin (data/namespace/origins/path/to/origin.json) in the origins field of an Origin Layer (JSON) file.


Field Type Default Description
powers Array of Identifiers optional The namespace and IDs of the powers this origin should have.
icon Item Stack optional The item stack which is displayed as the icon for the origin in the top-left corner of the choose/view origin screen.
unchoosable Boolean false If set to true, this origin will not show up in any origin layer to choose it, but it will still be able to be set for that layer with a command or via an origin upgrade.
order Integer optional Specifies the position of this origin in the choose origin screen among the other origins with the same impact in the layer. If not specified, will be a really large number - basically adding it in the end.
impact Integer 0 Specifies the impact of this origin with a number from 0 (none) to 3 (high).
name Text Component optional The display name of the origin.
description Text Component optional The description of the origin.
upgrades Array of Upgrades optional A list of upgrades for this origin, specifying which advancements turn this origin into which other origin.
loading_priority Integer 0 Specifies when this origin is loaded. Higher numbers mean it's loaded later, which means it will override those with lower loading priorities which share the same ID.


    "powers": [],
    "icon": {
        "item": "minecraft:zombie_head"
    "order": 3,
    "impact": 2,
    "name": "Zombie",
    "description": "Raah, brains..."

This example will add an origin that has a Zombie Head item as its icon.