đšī¸ 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
ageproperty to track their growth stage - Doors need a
hingeproperty 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 Name | Property Type | Required |
|---|---|---|
| facing | direction | yes |
| waterlogged | boolean | no |
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
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.