Wiki 9Minecraft Wiki 9Minecraft

Entity Vanilla Usage Components

How vanilla entities configure health, movement, collision, and basic stats in behavior packs.

5Sections
2Code examples
3Known errors

In Minecraft Bedrock behavior packs, components are the building blocks that define how an entity interacts with the world. Before writing complex AI goals or event state machines, you must assemble a baseline of core attribute and mechanics components—often referred to as vanilla usage patterns—so your custom entity can spawn, move, take damage, and collide with terrain properly. Reaching for the right combination of these standard components ensures your mob behaves like a native inhabitant of the game rather than a static, floating model.

Core Physical and Movement Components

Every mobile entity in the base game relies on a standard quartet of components to exist and navigate on land. Without them, an entity will either fall through the world, pass through solid walls, or fail to execute pathfinding goals.

When setting up a standard land-based mob, you almost always pair physics and collision with a movement speed attribute, a movement mechanic, a jump mechanic, and a navigation type. Even if an entity has AI behaviors telling it to stroll or chase a player, those behaviors do nothing unless the underlying movement and navigation components are present to translate AI intent into physical motion.

ComponentWhat it doesNotes
minecraft:physicsApplies gravity and handles solid block collisions.Almost all entities need this with default settings ({}).
minecraft:collision_boxSets the width and height of the entity's bounding box in blocks.Affects hitboxes, suffocation, and how wide a doorway the mob needs.
minecraft:movementDefines the base movement speed attribute of the entity.Typically set between 0.2 and 0.35 for normal walking mobs.
minecraft:movement.basicProvides the standard ground-based movement controller.Required for land mobs to actually use their movement speed.
minecraft:navigation.walkGenerates pathfinding routes across solid ground.Supports flags like can_pass_doors, avoid_water, and can_float.
minecraft:jump.staticAllows the entity to jump up single-block steps while pathfinding.Without this, walking entities get stuck on 1-block ledges.
minecraft:pushableDetermines if the entity can be pushed by other entities or pistons.Uses is_pushable and is_pushable_by_piston boolean flags.

Baseline Vanilla Mob Template

When inspecting vanilla behavior files, you will notice that almost every passive or hostile land animal shares the same foundational block of components inside the main components object. Putting these together gives you a stable starting point for any custom creature.

The example below sets up a durable, land-walking custom boar that avoids water, floats if pushed into a river, and wanders around randomly. Notice how the behavior components at the bottom depend entirely on the mechanical components above them.

BP/entities/custom_boar.json
{
  "format_version": "1.20.40",
  "minecraft:entity": {
    "description": {
      "identifier": "my_pack:custom_boar",
      "is_spawnable": true,
      "is_summonable": true,
      "is_experimental": false
    },
    "components": {
      "minecraft:type_family": {
        "family": [ "boar", "mob" ]
      },
      "minecraft:health": {
        "value": 20,
        "max": 20
      },
      "minecraft:collision_box": {
        "width": 0.9,
        "height": 0.9
      },
      "minecraft:movement": {
        "value": 0.25
      },
      "minecraft:movement.basic": {},
      "minecraft:jump.static": {},
      "minecraft:navigation.walk": {
        "can_path_over_water": true,
        "avoid_water": true
      },
      "minecraft:physics": {},
      "minecraft:pushable": {
        "is_pushable": true,
        "is_pushable_by_piston": true
      },
      "minecraft:breathable": {
        "total_supply": 15,
        "suffocate_time": 0
      },
      "minecraft:behavior.float": {
        "priority": 0
      },
      "minecraft:behavior.random_stroll": {
        "priority": 1,
        "speed_multiplier": 1.0
      }
    }
  }
}

Family Types, Health, and Damage

Beyond movement, vanilla entities rely on attribute components to govern combat and environmental survival. The most important of these for cross-entity interaction is the type family component. Vanilla mobs use families like monster, undead, arthropod, player, and villager to decide who to attack and how enchantments like Smite or Bane of Arthropods calculate bonus damage. Always include mob in your entity's family list if you want standard vanilla behaviors to recognize it as a living creature.

For survival mechanics, health and breathability dictate how the entity takes damage over time. The breathable component not only handles drowning underwater, but can also be inverted for aquatic mobs like fish and squid so they suffocate when exposed to air instead.

ComponentWhat it doesNotes
minecraft:type_familyAssigns classification tags to the entity.Used by filters (test: is_family) and target selection components.
minecraft:healthSets current and maximum health points.1 heart equals 2 health points.
minecraft:attackDefines base melee damage dealt by the entity.Required if the entity uses melee attack AI behaviors.
minecraft:breathableControls air supply, drowning, and air/water breathing rules.Set breathes_water: true and breathes_air: false for fish.
minecraft:fire_immunePrevents the entity from taking fire or lava damage.Used on Nether mobs and non-living entities like boats.
minecraft:scaleMultiplies the visual size and collision box of the entity.Often used inside baby component groups with a value of 0.5.

Player Interaction and Inventory Usage

When a player clicks on or defeats a vanilla entity, a specific subset of usage components handles the response. Loot is tied to the entity using the loot component, which points to a path inside your behavior pack's loot_tables folder. If you want the player to ride, tame, or feed the entity, you combine interaction components with component groups.

A very common vanilla pattern is using the interact component to listen for a specific held item, play a sound, transform the item (such as filling an empty bucket with milk), or trigger an event that adds a new component group to the mob.

BP/entities/custom_goat.json
{
  "format_version": "1.20.40",
  "minecraft:entity": {
    "description": {
      "identifier": "my_pack:custom_goat",
      "is_spawnable": true,
      "is_summonable": true
    },
    "components": {
      "minecraft:loot": {
        "table": "loot_tables/entities/custom_goat.json"
      },
      "minecraft:nameable": {
        "allow_name_tag_renaming": true,
        "always_show": false
      },
      "minecraft:leashable": {
        "soft_distance": 4.0,
        "hard_distance": 6.0,
        "max_distance": 10.0
      },
      "minecraft:interact": {
        "interactions": [
          {
            "on_interact": {
              "filters": {
                "all_of": [
                  { "test": "is_family", "subject": "other", "value": "player" },
                  { "test": "has_equipment", "domain": "hand", "subject": "other", "value": "minecraft:bucket" }
                ]
              }
            },
            "use_item": true,
            "transform_to_item": "minecraft:milk_bucket",
            "play_sounds": "milk",
            "interact_text": "action.interact.milk"
          }
        ]
      }
    }
  }
}

Grouping Components for Vanilla State Changes

Vanilla entities rarely keep all of their components active at the same time. Instead, static components like physics, collision, and base health stay in the main components block, while state-dependent components—like baby scaling, tamed following, or hostile targeting—are placed inside component_groups.

When the entity spawns, the minecraft:entity_spawned event fires and selects which initial component group to apply. Following this vanilla architecture keeps your entities lightweight and allows you to swap out movement speeds, scales, or entire AI behaviors on the fly without duplicating the core physical setup.

Which versions this applies to

Applies to Minecraft Bedrock 1.16.0 through 1.21+. All core vanilla usage components covered on this page are stable and do not require any experimental toggles.

When it does not work

What you seeWhyThe fix
Entity spawns and plays walk animations in place, but never actually moves across the ground.The entity has AI goals like minecraft:behavior.random_stroll and a speed value in minecraft:movement, but is missing either the movement controller (such as minecraft:movement.basic) or the pathfinder (minecraft:navigation.walk).Add both "minecraft:movement.basic": {} and "minecraft:navigation.walk": {} to the entity's main components list, along with "minecraft:jump.static": {} so it can step up blocks.
Content Log Error: [Json][error] Failed to parse entity description or component 'minecraft:behavior.melee_attack' crashes/fails to deal damage.Vanilla combat behaviors rely on the minecraft:attack attribute component to know how much damage to inflict on contact. If minecraft:attack is omitted, the melee behavior cannot resolve its damage calculation.Add "minecraft:attack": { "damage": 3 } to the components block or to the same component group that holds the melee attack behavior.
Entity gets stuck on every 1-block hill or sinks to the bottom of lakes and drowns immediately.Walking navigation calculates paths up 1-block steps, but the entity cannot execute the jump without a jump mechanic, nor can it swim without the float AI goal.Include "minecraft:jump.static": {} for stepping up terrain, and add "minecraft:behavior.float": { "priority": 0 } alongside "can_path_over_water": true inside minecraft:navigation.walk.

Reference, straight from the game files

Read out of the game itself, so the ids match the version you are building for.