Contains a set of events that will be raised for a block. This object must be bound using the BlockRegistry.

import { world } from "@minecraft/server";

world.beforeEvents.worldInitialize.subscribe((initEvent) => {
initEvent.blockComponentRegistry.registerCustomComponent("custom:block", {
beforeOnPlayerPlace: (event) => {
const { player, block, face, permutationToPlace, dimension } =
event;
event.cancel = true; // include this if canceling block placement
// Your code here
},
onEntityFallOn: (event) => {
const { entity, block, fallDistance, dimension } = event;
// Your code here
},
onPlace: (event) => {
const { block, dimension, previousBlock } = event;
// Your code here
},
onPlayerDestroy: (event) => {
const { player, block, dimension, destroyedBlockPermutation } =
event;
// Your code here
},
onPlayerInteract: (event) => {
const { player, block, dimension, face, faceLocation } = event;
// Your code here
},
onRandomTick: (event) => {
const { block, dimension } = event;
// Your code here
},
onStepOff: (event) => {
const { entity, block, dimension } = event;
// Your code here
},
onStepOn: (event) => {
const { entity, block, dimension } = event;
// Your code here
},
onTick: (event) => {
const { block, dimension } = event;
// Your code here
},
});
});
interface BlockCustomComponent {
    beforeOnPlayerPlace?: (
        arg: BlockComponentPlayerPlaceBeforeEvent,
    ) => void;
    onEntityFallOn?: (arg: BlockComponentEntityFallOnEvent) => void;
    onPlace?: (arg: BlockComponentOnPlaceEvent) => void;
    onPlayerDestroy?: (arg: BlockComponentPlayerDestroyEvent) => void;
    onPlayerInteract?: (arg: BlockComponentPlayerInteractEvent) => void;
    onRandomTick?: (arg: BlockComponentRandomTickEvent) => void;
    onStepOff?: (arg: BlockComponentStepOffEvent) => void;
    onStepOn?: (arg: BlockComponentStepOnEvent) => void;
    onTick?: (arg: BlockComponentTickEvent) => void;
}

Properties

beforeOnPlayerPlace?: (arg: BlockComponentPlayerPlaceBeforeEvent) => void

This function will be called before a player places the block.

onEntityFallOn?: (arg: BlockComponentEntityFallOnEvent) => void

This function will be called when an entity falls onto the block that this custom component is bound to.

onPlace?: (arg: BlockComponentOnPlaceEvent) => void

This function will be called when the block that this custom component is bound to is placed.

onPlayerDestroy?: (arg: BlockComponentPlayerDestroyEvent) => void

This function will be called when a player destroys a specific block.

onPlayerInteract?: (arg: BlockComponentPlayerInteractEvent) => void

This function will be called when a player sucessfully interacts with the block that this custom component is bound to.

onRandomTick?: (arg: BlockComponentRandomTickEvent) => void

This function will be called when a block randomly ticks.

onStepOff?: (arg: BlockComponentStepOffEvent) => void

This function will be called when an entity steps off the block that this custom component is bound to.

onStepOn?: (arg: BlockComponentStepOnEvent) => void

This function will be called when an entity steps onto the block that this custom component is bound to.

onTick?: (arg: BlockComponentTickEvent) => void

This function will be called when a block ticks.