Skip to main content

đŸ•šī¸ Block Behaviors

Introduction​

A block behavior defines the unique mechanics and physics of a block — how it grows, falls, opens, spreads, or reacts to its neighbors. Vanilla Minecraft hardcodes these mechanics into specific blocks; CraftEngine lets you attach the same mechanics to any block through configuration.

Some behaviors rely on specific block properties to function. For example:

  • Crop blocks need an age property to track their growth stage
  • Doors need a hinge property to decide which side the hinge sits on

Every behavior page that follows opens with a property table like the one below, listing the property names and types the behavior expects, and whether each one is required.

Property NameProperty TypeRequired
facingdirectionyes
waterloggedbooleanno
info

Future versions may support custom property names. For now, property names are hardcoded to keep configuration simple. See the Properties page for the full list of types and reserved names.

Assigning a behavior​

You attach a behavior to a block under its behavior or behaviors field:

blocks:
default:fairy_flower:
behavior:
type: bush_block
bottom_block_tags:
- minecraft:dirt
- minecraft:farmland

Composite behaviors​

List multiple entries under behaviors to combine them into a composite block. The example below makes a block that both behaves like concrete powder (turns solid on contact with water) and falls like sand:

blocks:
default:gunpowder_block:
behaviors:
- type: concrete_powder_block
solid_block: default:solid_gunpowder_block
- type: falling_block
warning

Combining behaviors — keep in mind:

  • Merge required properties. Each behavior lists the properties it needs; when combining, your block must satisfy all of them, or some behaviors won't work as expected.
  • Some combinations conflict. Certain behaviors don't play well together and may behave unexpectedly. If something seems off, reach out to support and we will help resolve it.