A class that wraps the state of a world - a set of dimensions and the environment of Minecraft.

Constructors

Properties

afterEvents: WorldAfterEvents

Contains a set of events that are applicable to the entirety of the world. Event callbacks are called in a deferred manner. Event callbacks are executed in read-write mode.

beforeEvents: WorldBeforeEvents

Contains a set of events that are applicable to the entirety of the world. Event callbacks are called immediately. Event callbacks are executed in read-only mode.

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

function customCommand(targetLocation: DimensionLocation) {
const chatCallback = world.beforeEvents.chatSend.subscribe((eventData) => {
if (eventData.message.includes("cancel")) {
// Cancel event if the message contains "cancel"
eventData.cancel = true;
} else {
const args = eventData.message.split(" ");

if (args.length > 0) {
switch (args[0].toLowerCase()) {
case "echo":
// Send a modified version of chat message
world.sendMessage(`Echo '${eventData.message.substring(4).trim()}'`);
break;
case "help":
world.sendMessage(`Available commands: echo <message>`);
break;
}
}
}
});
}
gameRules: GameRules

The game rules that apply to the world.

isHardcore: boolean
scoreboard: Scoreboard

Returns the general global scoreboard that applies to the world.

structureManager: StructureManager

Returns the manager for Structure related APIs.

Methods

  • Beta

    Deletes a string from dynamic properties.

    Parameters

    • propertyName: string

      The name of the property the string is saved under.

    Returns void

    If propertyName is not a string.

  • Beta

    Parameters

    • identifier: string

      The property identifier.

    Returns string | number | boolean | Vector3

    Returns the value for the property, or undefined if the property has not been set.

    Returns a property value.

    Throws if the given dynamic property identifier is not defined.

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

    function incrementDynamicProperty(
    log: (message: string, status?: number) => void,
    targetLocation: DimensionLocation
    ) {
    let number = world.getDynamicProperty("samplelibrary:number");

    log("Current value is: " + number);

    if (number === undefined) {
    number = 0;
    }

    if (typeof number !== "number") {
    log("Number is of an unexpected type.");
    return -1;
    }

    world.setDynamicProperty("samplelibrary:number", number + 1);
    }
    import { world, DimensionLocation } from "@minecraft/server";

    function incrementDynamicPropertyInJsonBlob(
    log: (message: string, status?: number) => void,
    targetLocation: DimensionLocation
    ) {
    let paintStr = world.getDynamicProperty("samplelibrary:longerjson");
    let paint: { color: string; intensity: number } | undefined = undefined;

    log("Current value is: " + paintStr);

    if (paintStr === undefined) {
    paint = {
    color: "purple",
    intensity: 0,
    };
    } else {
    if (typeof paintStr !== "string") {
    log("Paint is of an unexpected type.");
    return -1;
    }

    try {
    paint = JSON.parse(paintStr);
    } catch (e) {
    log("Error parsing serialized struct.");
    return -1;
    }
    }

    if (!paint) {
    log("Error parsing serialized struct.");
    return -1;
    }

    paint.intensity++;
    paintStr = JSON.stringify(paint); // be very careful to ensure your serialized JSON str cannot exceed limits
    world.setDynamicProperty("samplelibrary:longerjson", paintStr);
    }
  • Beta

    Retrieves a concatenated string from dynamic properties based on the provided property name.

    Parameters

    • propertyName: string

      The base name of the dynamic property to retrieve the string from.

    • OptionalzeroLengthPlaceholder: string

      A placeholder string to return if the length of the dynamic property is zero. Defaults to an empty string.

    Returns string

    The concatenated string from the dynamic properties, or the zeroLengthPlaceholder if the length is zero.

    If the provided propertyName is not a string.

  • Beta

    Parameters

    Returns void

    Plays a particular music track for all players.

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

    This function can throw errors.

    import { world, MusicOptions, WorldSoundOptions, PlayerSoundOptions, DimensionLocation } from "@minecraft/server";

    function playMusicAndSound(targetLocation: DimensionLocation) {
    const players = world.getPlayers();

    const musicOptions: MusicOptions = {
    fade: 0.5,
    loop: true,
    volume: 1.0,
    };
    world.playMusic("music.menu", musicOptions);

    const worldSoundOptions: WorldSoundOptions = {
    pitch: 0.5,
    volume: 4.0,
    };
    world.playSound("ambient.weather.thunder", targetLocation, worldSoundOptions);

    const playerSoundOptions: PlayerSoundOptions = {
    pitch: 1.0,
    volume: 1.0,
    };

    players[0].playSound("bucket.fill_water", playerSoundOptions);
    }
  • Beta

    Parameters

    Returns void

    Plays a sound for all players. DEPRECATED: Use Dimension.playSound.

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

    An error will be thrown if volume is less than 0.0. An error will be thrown if fade is less than 0.0. An error will be thrown if pitch is less than 0.01. An error will be thrown if volume is less than 0.0.

    import { world, MusicOptions, WorldSoundOptions, PlayerSoundOptions, DimensionLocation } from "@minecraft/server";

    function playMusicAndSound(targetLocation: DimensionLocation) {
    const players = world.getPlayers();

    const musicOptions: MusicOptions = {
    fade: 0.5,
    loop: true,
    volume: 1.0,
    };
    world.playMusic("music.menu", musicOptions);

    const worldSoundOptions: WorldSoundOptions = {
    pitch: 0.5,
    volume: 4.0,
    };
    world.playSound("ambient.weather.thunder", targetLocation, worldSoundOptions);

    const playerSoundOptions: PlayerSoundOptions = {
    pitch: 1.0,
    volume: 1.0,
    };

    players[0].playSound("bucket.fill_water", playerSoundOptions);
    }
  • Beta

    Saves a string to dynamic properties, optionally clearing old properties first and splitting the string into chunks.

    Parameters

    • string: string

      The string to save to dynamic properties.

    • propertyName: string

      The name of the property to save the string under.

    • OptionalclearOldProperties: boolean

      Whether to clear old properties before saving the new string. Defaults to true.

    • OptionalchunkSize: number | bigint

      The size of each chunk to split the string into. Defaults to 32760.

    Returns void

    If propertyName is not a string.

    If clearOldProperties is not a boolean.

  • Beta

    Parameters

    • identifier: string

      The property identifier.

    • Optionalvalue: string | number | boolean | Vector3

      Data value of the property to set.

    Returns void

    Sets a specified property to a value.

    Throws if the given dynamic property identifier is not defined.

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

    function incrementDynamicProperty(
    log: (message: string, status?: number) => void,
    targetLocation: DimensionLocation
    ) {
    let number = world.getDynamicProperty("samplelibrary:number");

    log("Current value is: " + number);

    if (number === undefined) {
    number = 0;
    }

    if (typeof number !== "number") {
    log("Number is of an unexpected type.");
    return -1;
    }

    world.setDynamicProperty("samplelibrary:number", number + 1);
    }
    import { world, DimensionLocation } from "@minecraft/server";

    function incrementDynamicPropertyInJsonBlob(
    log: (message: string, status?: number) => void,
    targetLocation: DimensionLocation
    ) {
    let paintStr = world.getDynamicProperty("samplelibrary:longerjson");
    let paint: { color: string; intensity: number } | undefined = undefined;

    log("Current value is: " + paintStr);

    if (paintStr === undefined) {
    paint = {
    color: "purple",
    intensity: 0,
    };
    } else {
    if (typeof paintStr !== "string") {
    log("Paint is of an unexpected type.");
    return -1;
    }

    try {
    paint = JSON.parse(paintStr);
    } catch (e) {
    log("Error parsing serialized struct.");
    return -1;
    }
    }

    if (!paint) {
    log("Error parsing serialized struct.");
    return -1;
    }

    paint.intensity++;
    paintStr = JSON.stringify(paint); // be very careful to ensure your serialized JSON str cannot exceed limits
    world.setDynamicProperty("samplelibrary:longerjson", paintStr);
    }