Custom Content
Define content identities, registry-backed entries, entities, attributes, animations and processing data without writing experience-specific Java.
Content Identity Folders
| Kind | Folder | Use |
|---|---|---|
| Item | dai_items | General item identity and behavior metadata. |
| Block | dai_blocks | Block identity and optional native registry entry. |
| Weapon / Armor | dai_weapons / dai_armor | Equipment-oriented metadata. |
| Effects / Potions | dai_effects / dai_potions | Status and consumable identities. |
| Projectile / Particle | dai_projectiles / dai_particles | Projectile and visual-effect definitions. |
| Enchantment | dai_enchantments | Enchantment identity metadata. |
| Entity | dai_entities | Entity dimensions, rendering metadata, behavior sequence and natural spawn policy. |
Native Entities vs Legacy Carriers
Legacy definitions can still use a vanilla or modded carrier. In 3.0 a registry-backed DAI entity may omit carrier entirely (or use dai:native) and become a native DAI physical entity.
width/height are baked into the EntityType at registry bootstrap, so changing physical dimensions requires a restart. Behavior JSON remains reload-oriented.Native Entity Definition
{
"display_name": "Native Hunter",
"registry_backed": true,
"native_registry": "entity",
"native_attributes": {
"minecraft:max_health": 30.0,
"minecraft:movement_speed": 0.28,
"minecraft:attack_damage": 5.0,
"minecraft:follow_range": 32.0
},
"entity": {
"category": "monster",
"width": 1.15,
"height": 1.35,
"tracking_range": 10,
"update_interval": 3,
"behavior_sequence": "my_pack:native_hunter_ai",
"behavior_interval": 2,
"vanilla_ai": false,
"spawning": { "natural": false }
}
}The entity is a real my_pack:* EntityType. It does not need to masquerade as a Spider, Zombie or Skeleton. A custom visual rig/resource-pack renderer can be layered on top without globally replacing vanilla mob textures.
JSON Entity Behavior
Native mobs can make species-specific decisions through DAI behavior sequences rather than inheriting vanilla goal selectors.
{
"sequence": [
{ "type": "target_player", "conditions": [
{ "type": "entity_has_target", "operator": "is_false" }
]},
{ "type": "move_to_target", "value": 1.15, "conditions": [
{ "type": "entity_target_distance", "operator": "greater_than", "number_value": 3.0 }
]},
{ "type": "melee_attack", "value": 3.0, "conditions": [
{ "type": "entity_target_distance", "operator": "less_than_or_equal", "number_value": 3.0 },
{ "type": "entity_can_see_target", "operator": "is_true" }
]}
]
}target_playerAcquire a player target.look_at_targetFace the current target.move_to_targetNavigate/chase toward the target.melee_attackPerform a server-side mob attack.flee_playerMove away from nearby players.wanderIdle roaming behavior.Attributes & Animations
Attributes use dai_attributes with default/minimum/maximum values. Animations use dai_animations and can define duration, channel, priority, markers, marker actions and keyed body-part tracks.
{
"default": 100.0,
"minimum": 0.0,
"maximum": 100.0
}Processing Recipes & Other Data
DAI processing recipes live in dai_recipes. Screen profiles, reaction event definitions, menu systems and arbitrary Minecraft datapack JSON can live in the same pack. The Creator's Universal Files workspace exists specifically so the UI never becomes a limitation.
Native Item Data Components
Registry-backed item definitions may include components or native_components. The key is a registered Minecraft Data Component ID; the value is decoded using that component's own codec.
{
"registry_backed": true,
"native_registry": "item",
"components": {
"minecraft:max_stack_size": 1,
"minecraft:enchantment_glint_override": true
}
}Use config/decisions_and_impulses/capabilities.json to inspect the Data Components discovered by the running Minecraft version.
Natural Custom Entity Spawning
"entity": {
"spawning": {
"natural": true,
"biomes": ["#minecraft:is_forest"],
"dimensions": ["minecraft:overworld"],
"placement": "on_ground",
"weight": 2500,
"min_group": 1,
"max_group": 3,
"min_light": 0,
"max_light": 7,
"min_y": -64,
"max_y": 128,
"min_radius": 24,
"max_radius": 48,
"cap_per_player": 6,
"interval_ticks": 80,
"attempts_per_player": 2
}
}Actor behavior sequences can use the native entity vocabulary including target_player, chase_target, melee_attack, wander, flee_player, look_at_target and target/distance conditions.
DAI 3.0 Native Exposure Pass II
Content definitions now have type-specific specialization objects: block, projectile, particle, effect, potion and entity. Native registry targets include item, block, entity, effect, potion and particle.