Script API - v1.21.90.25
    Preparing search index...

    Represents a block in a dimension. A block represents a unique X, Y, and Z within a dimension and get/sets the state of the block at that location. This type was significantly updated in version 1.17.10.21.

    import {
    Vector3Utils,
    VECTOR3_NORTH,
    VECTOR3_WEST,
    VECTOR3_EAST,
    VECTOR3_SOUTH,
    } from "@minecraft/math";
    import { Entity } from "@minecraft/server";
    import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

    const VECTOR3_NORTHWEST = Vector3Utils.add(VECTOR3_NORTH, VECTOR3_WEST);
    const VECTOR3_NORTHEAST = Vector3Utils.add(VECTOR3_NORTH, VECTOR3_EAST);
    const VECTOR3_SOUTHWEST = Vector3Utils.add(VECTOR3_SOUTH, VECTOR3_WEST);
    const VECTOR3_SOUTHEAST = Vector3Utils.add(VECTOR3_SOUTH, VECTOR3_EAST);

    /**
    * Get the blocks from player surroundings and set to obsidian
    */
    export function createWallAroundEntity(entity: Entity) {
    const location = entity.location;
    const block = entity.dimension.getBlock(location);
    if (!block) return;
    const blockNorth = block.north();
    const blockSouth = block.south();
    const blockEast = block.east();
    const blockWest = block.west();
    const blockNorthWest = block.offset(VECTOR3_NORTHWEST);
    const blockNorthEast = block.offset(VECTOR3_NORTHEAST);
    const blockSouthWest = block.offset(VECTOR3_SOUTHWEST);
    const blockSouthEast = block.offset(VECTOR3_SOUTHEAST);
    const blocks = [
    blockNorth,
    blockSouth,
    blockEast,
    blockWest,
    blockNorthWest,
    blockNorthEast,
    blockSouthWest,
    blockSouthEast,
    ];
    // Check if the player have contact with cactus or sweet berry bush
    for (const block of blocks) {
    if (!block) continue;
    block.setType(MinecraftBlockTypes.Obsidian);
    }
    }
    Index

    Constructors

    Properties

    dimension: Dimension

    Returns the dimension that the block is within.

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

    // Block explodes when player break block
    world.afterEvents.playerBreakBlock.subscribe((event) => {
    event.block.dimension.createExplosion(event.block.location, 1);
    });
    isAir: boolean

    Returns true if this block is an air block (i.e., empty space).

    This property can throw when used.

    LocationInUnloadedChunkError

    LocationOutOfWorldBoundariesError

    import { world, system, BlockPermutation } from "@minecraft/server";

    // bridge egg
    world.afterEvents.entitySpawn.subscribe(({ entity }) => {
    if (entity.typeId === "minecraft:egg") {
    const id = system.runInterval(() => {
    const block = entity.dimension.getBlock(entity.location).below();
    if (block.isAir)
    block.setPermutation(
    BlockPermutation.resolve("minecraft:wool"),
    );
    else system.clearRun(id);
    });
    }
    });
    isLiquid: boolean

    Returns true if this block is a liquid block - (e.g., a water block and a lava block are liquid, while an air block and a stone block are not. Water logged blocks are not liquid blocks).

    This property can throw when used.

    LocationInUnloadedChunkError

    LocationOutOfWorldBoundariesError

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

    // Block at (0, 0, 0)
    const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
    if (block.isLiquid) {
    console.warn("block is liquid");
    }
    isValid: boolean

    Returns true if this reference to a block is still valid (for example, if the block is unloaded, references to that block will no longer be valid.)

    isWaterlogged: boolean

    Returns or sets whether this block has water on it.

    This property can throw when used.

    LocationInUnloadedChunkError

    LocationOutOfWorldBoundariesError

    location: Vector3

    Coordinates of the specified block.

    This property can throw when used.

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

    // Block at (0, 0, 0)
    const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
    block.dimension.createExplosion(block.location, 10);
    permutation: BlockPermutation

    Additional block configuration data that describes the block.

    This property can throw when used.

    LocationInUnloadedChunkError

    LocationOutOfWorldBoundariesError

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

    // Block at (0, 0, 0)
    const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
    console.warn(block.typeId, JSON.stringify(block.permutation.getAllStates()));
    type: BlockType

    Gets the type of block.

    This property can throw when used.

    LocationInUnloadedChunkError

    LocationOutOfWorldBoundariesError

    typeId: string

    Identifier of the type of block for this block. Warning: Vanilla block names can be changed in future releases, try using 'Block.matches' instead for block comparison.

    This property can throw when used.

    LocationInUnloadedChunkError

    LocationOutOfWorldBoundariesError

    x: number

    X coordinate of the block.

    y: number

    Y coordinate of the block.

    z: number

    Z coordinate of the block.

    Methods

    • Parameters

      • Optionalsteps: number

        Number of steps below to step before returning. Defaults to: 1

      Returns Block

      Returns the Block below this block (negative in the Y direction).

      // Script by WavePlayz

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

      // Subscribe to the event that triggers when a player places a block
      world.afterEvents.playerPlaceBlock.subscribe((eventData) => {
      // Extract the player and block objects from the event data
      const { player, block } = eventData;

      // Get the block that is directly below the block that was just placed
      const blockBelowThePlacedBlock = block.below(1);

      // Get the type of the block that is below the placed block
      const blockBelowThePlacedBlockType = blockBelowThePlacedBlock.type;

      // Set the type of the newly placed block to be the same as the block below it
      block.setType(blockBelowThePlacedBlockType);
      });
    • Returns Vector3

      Returns the Vector3 of the center of this block on the X and Z axis.

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block is removed when touched by liquid.

      Returns whether this block is removed when touched by liquid.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block can have a liquid placed over it.

      Returns whether this block can have a liquid placed over it, i.e. be waterlogged.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

    • Returns Vector3

      Returns the Vector3 of the center of this block on the X, Y, and Z axis.

    • Type Parameters

      • T extends string

      Parameters

      • componentId: T

        The identifier of the component (e.g., 'minecraft:inventory'). If no namespace prefix is specified, 'minecraft:' is assumed. Available component IDs are those in the BlockComponentTypes enum and custom component IDs registered with the BlockComponentRegistry.

      Returns BlockComponentReturnType<T>

      Returns the component if it exists on the block, otherwise undefined.

      Gets a component (that represents additional capabilities) for a block - for example, an inventory component of a chest block.

      import { BlockPermutation, ItemStack, world } from "@minecraft/server";

      // Chest Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      block.setPermutation(BlockPermutation.resolve("minecraft:chest"));

      const inventory = block.getComponent("inventory").container;
      inventory.addItem(new ItemStack("minecraft:cobblestone", 64));
      import {
      BlockPermutation,
      ItemStack,
      SignSide,
      world,
      } from "@minecraft/server";
      import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

      // Chest Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      block.setPermutation(
      BlockPermutation.resolve(MinecraftBlockTypes.BirchHangingSign),
      );

      const sign = block.getComponent("minecraft:sign");
      sign.setText("back", SignSide.Back);
      sign.setText("front", SignSide.Front);
      import { BlockPermutation, ItemStack, world } from "@minecraft/server";
      import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

      // Chest Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      block.setPermutation(
      BlockPermutation.resolve(MinecraftBlockTypes.DarkoakStandingSign),
      );

      const sign = block.getComponent("minecraft:sign");
      sign.setText("lol");
      import { BlockPermutation, ItemStack, world } from "@minecraft/server";
      import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

      // Chest Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      block.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.Piston));

      const piston = block.getComponent("piston");
      console.warn(piston.state, JSON.stringify(piston.getAttachedBlocksLocations()));
    • Parameters

      • Optionalamount: number

        Number of instances of this block to place in the item stack. Defaults to: 1

      • OptionalwithData: boolean

        Whether additional data facets of the item stack are included. Defaults to: false

      Returns ItemStack

      An itemStack with the specified amount of items and data. Returns undefined if block type is incompatible.

      Creates a prototype item stack based on this block that can be used with Container/ContainerSlot APIs.

    • Returns number

      Returns undefined if redstone power is not applicable to this block.

      Returns the net redstone power of this block.

      // Script by WavePlayz

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

      /**
      * Function to check if a given block is powered by redstone
      * @param {import('@minecraft/server').Block} block
      * @returns true if a given block is powered by redstone
      */
      function isBlockPowered(block) {
      // Get the redstone power level of the block
      // The 'getRedstonePower' method returns a number representing the power level
      // If the power level is greater than 0, it means the block is powered
      return block.getRedstonePower() > 0;
      }
    • Parameters

      • tag: string

        Tag to check for.

      Returns boolean

      Returns true if the permutation of this block has the tag, else false.

      Checks to see if the permutation of this block has a specific tag.

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

      function checkBlockTags(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
      // Fetch the block
      const block = targetLocation.dimension.getBlock(targetLocation);

      // check that the block is loaded
      if (block) {
      log(`Block is dirt: ${block.hasTag("dirt")}`);
      log(`Block is wood: ${block.hasTag("wood")}`);
      log(`Block is stone: ${block.hasTag("stone")}`);
      }
      }
    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block stops liquid from flowing.

      Returns whether this block stops liquid from flowing.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      • flowDirection: Direction

      Returns boolean

      Whether liquid can flow into the block from the provided direction, or flow out from the provided direction when liquid is placed into it with a bucket

      Returns whether liquid can flow into the block from the provided direction, or flow out from the provided direction when liquid is placed into it with a bucket.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

    • Parameters

      • liquidType: Water

        The type of liquid this function should be called for.

      Returns boolean

      Whether this block is removed and spawns its item when touched by liquid.

      Returns whether this block is removed and spawns its item when touched by liquid.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

    • Parameters

      • blockName: string

        Block type identifier to match this API against.

      • Optionalstates: Record<string, string | number | boolean>

        Optional set of block states to test this block against.

      Returns boolean

      Returns true if the block matches the specified criteria.

      Tests whether this block matches a specific criteria.

      // Script by WavePlayz

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

      /**
      * Function to check if a given block is red wool
      * @param {import('@minecraft/server').Block} block
      * @returns true if a given block is red wool
      */
      function isRedWool(block) {
      // Define the type id of block we are checking for
      let typeId = "wool";

      // Define the block state we are looking for
      // In this case, we want the color to be red
      let states = { color: "red" };

      // Check if the block matches the specified type and states
      // The 'matches' method returns true if the block is of the specified type and has the specified states
      return block.matches(typeId, states);
      }
    • Parameters

      • Optionalsteps: number

        Number of steps to the north to step before returning. Defaults to: 1

      Returns Block

      Returns the Block to the north of this block (negative in the Z direction).

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

      // Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      const blockAtNorth = block.north();
    • Parameters

      • offset: Vector3

        The offset vector. For example, an offset of 0, 1, 0 will return the block above the current block.

      Returns Block

      Block at the specified offset, or undefined if that block could not be retrieved (for example, the block and its relative chunk is not loaded yet.)

      Returns a block at an offset relative vector to this block.

    • Parameters

      • permutation: BlockPermutation

        Permutation that contains a set of property states for the Block.

      Returns void

      Sets the block in the dimension to the state of the permutation.

      This function can't be called in read-only mode.

      import { BlockPermutation, world } from "@minecraft/server";
      // Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      if (block.typeId === "minecraft:bedrock") {
      block.setPermutation(BlockPermutation.resolve("minecraft:air"));
      }
    • Parameters

      • blockType: string | BlockType

        Identifier of the type of block to apply - for example, minecraft:powered_repeater.

      Returns void

      Sets the type of block.

      This function can't be called in read-only mode.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

      // Script by WavePlayz

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

      // Get all available block types in the game
      const blockTypes = BlockTypes.getAll();

      // Function to get a random block type from the list of block types
      const getRandomBlockType = () =>
      blockTypes[Math.floor(blockTypes.length * Math.random())];

      // Subscribe to the event that triggers when a player places a block
      world.afterEvents.playerPlaceBlock.subscribe((eventData) => {
      // Destructure the player and block objects from the event data
      const { player, block } = eventData;

      // Get a random block type
      const randomBlockType = getRandomBlockType();

      // Send a message to the player indicating the type of block they placed
      player.sendMessage("You placed the " + randomBlockType.id + " block, xD");

      // Change the type of the placed block to the random block type
      block.setType(randomBlockType);
      });
    • Parameters

      • isWaterlogged: boolean

        true if the block should have water within it.

      Returns void

      Sets whether this block has a water logged state - for example, whether stairs are submerged within water.

      This function can't be called in read-only mode.

      This function can throw errors.

      Error

      LocationInUnloadedChunkError

      LocationOutOfWorldBoundariesError

    • Parameters

      • Optionalsteps: number

        Number of steps to the south to step before returning. Defaults to: 1

      Returns Block

      Returns the Block to the south of this block (positive in the Z direction).

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

      // Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      const nearbyBlock = block.south();
    • Parameters

      • Optionalsteps: number

        Number of steps to the west to step before returning. Defaults to: 1

      Returns Block

      Returns the Block to the west of this block (negative in the X direction).

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

      // Block at (0, 0, 0)
      const block = world.getDimension("overworld").getBlock({ x: 0, y: 0, z: 0 });
      const blockAtWest = block.west(10);