Skip to main content

JSON Data Formats

This section documents the JSON format of every datapack registry the mod provides. Definitions are plain JSON files loaded by the vanilla datapack registry system and become immutable after loading. Basic value shapes shared by all definitions are listed in Shared Data Types.

File Paths

Definition files go in data/<namespace>/mxt/<registry>/ within your datapack:

data/<namespace>/mxt/<registry>/<path>.json

The filename corresponds to the entry ID. For example, data/example/mxt/ability/fireball.json has the ID example:fireball.

Tags use the vanilla tag directory:

data/<namespace>/tags/mxt/<registry>/<name>.json

Every registry also supports the mxt:disabled tag. Because the tag id itself is mxt:disabled, the file always lives in the mxt namespace:

data/mxt/tags/mxt/<registry>/disabled.json
Disabling entries

Entries listed in disabled are not used by the corresponding service, but they stay in the registry, so other definitions can safely hold their Holder. Tag value order is never gameplay order; quality order is handled by the quality reading interface through the vanilla tag order.

Registries

The table below lists the 32 datapack registries the mod registers. Each one has its own page in this section. mxt:alchemy is listed as well even though it is a vanilla recipe type rather than a datapack registry, because its JSON is documented here too.

RegistryDirectoryPurpose
resourcemxt/resourceEntity resources such as cultivation progress, spirit power and stamina, plus inline resource bars.
badgemxt/badgeReserved badge metadata.
realm_stagemxt/realm_stageLinear realm chains and breakthrough.
elementmxt/elementElement relations and aura kinds.
spirit_rootmxt/spirit_rootA spirit root bound to a single element.
physiquemxt/physiquePhysique bonuses that are independent of elements.
abilitymxt/abilityActive, passive and triggered abilities.
cursemxt/curseCurse definitions that can be referenced.
forging_methodmxt/forging_methodA single forging strike method.
forging_blueprintmxt/forging_blueprintForging targets and quality settlement.
tool_bindingmxt/tool_bindingForging methods provided by tool items.
blueprint_bindingmxt/blueprint_bindingForging blueprints provided by blueprint items.
cultivation_techniquemxt/cultivation_techniqueCultivation technique definitions.
cultivate_actionmxt/cultivate_actionThe cultivation process and its environment requirements.
item_archetypemxt/item_archetypeArtifact archetypes and abilities.
spirit_herbmxt/spirit_herbSpirit herb metadata for existing items.
alchemy_reciperecipeVanilla recipe type (mxt:alchemy), not a datapack registry.
formationmxt/formationFormation lifecycle and aura overrides.
tribulationmxt/tribulationTribulation stages.
creature_profilemxt/creature_profileCreature profiles and entity binding conditions.
contract_typemxt/contract_typeContract lifecycle.
titlemxt/titleTitles and passive attributes.
sectmxt/sectSect ranks, tasks and exchanges.
realm_instancemxt/realm_instanceRealm instance strategies.
currencymxt/currencyItem currency denominations and exchange.
item_bindingmxt/item_bindingBindings from existing items to action arrays.
weapon_bindingmxt/weapon_bindingWeapon attributes and actions for existing items.
pill_bindingmxt/pill_bindingPill and pill toxicity rules for existing items.
technique_bindingmxt/technique_bindingBindings from existing items to cultivation technique learning.
aura_zonemxt/aura_zoneEnvironment aura templates.
block_auramxt/block_auraAura provided by blocks.
item_auramxt/item_auraCultivation fuel provided by held items.
item_qualitymxt/item_qualityShared quality and quality conditions.

Built-in Type Dispatch

The following fields use MapCodecs from Java built-in registries. A datapack may only supply the type and the parameters of that type; datapacks cannot add new type values.

Data TypeDispatch FieldPurpose
Abilityability.typeThe top-level field is named ability; the type inside that nested object selects the ability lifecycle and trigger style.
CurseTypetypeHow a curse persists and expires.
EntityActiontypeEntity actions.
BiEntityActiontypeBi-entity actions.
BlockActiontypeBlock actions.
ItemActiontypeItem actions.
EntityConditiontypeEntity conditions.
BiEntityConditiontypeBi-entity conditions.
BlockConditiontypeBlock conditions.
ItemConditiontypeItem conditions.
DamageConditiontypeDamage conditions.
ResourceValueProvidertypeResource value sources read by resource bars and extensions, including environment and actual aura concentration.
ResourceBarRenderertypeResource bar renderers.
ResourceBarVisibilitytypeResource bar visibility conditions.
BadgetypeBadge structures.

Action and condition arrays are shorthand: every element is executed in order, and an array of conditions means that all of them must be satisfied.

"entity_action": [
{"type": "mxt:heal", "amount": 2},
{"type": "mxt:apply_curse", "curse": "example:burning", "stacks": 1}
]

The concrete fields of every action follow the built-in type codecs. Built-in types are registered in groups by classes such as MxtEntityActions, MxtBiEntityActions, MxtBlockActions, MxtItemActions and MxtEntityConditions; reloading a datapack never adds entries to these built-in registries.

See the type reference for the available action and condition types, and Datapack Overview for loading, overriding, reference and disabled-tag rules. Advancements and loot tables are plain vanilla JSON rather than datapack registries; the types the mod adds for them are in Loot and Advancement Criteria.