Skip to main content

Class: System

A class that provides system-level events and functions.

Constructors

new System()

private new System(): System

Returns

System

Properties

afterEvents

readonly afterEvents: SystemAfterEvents

Remarks

Returns a collection of after-events for system-level operations.


beforeEvents

Beta

readonly beforeEvents: SystemBeforeEvents

Remarks

Returns a collection of before-events for system-level operations.


currentTick

readonly currentTick: number

Remarks

Represents the current world tick of the server.

Methods

clearJob()

Beta

clearJob(jobId): void

Parameters

ParameterTypeDescription
jobIdnumberThe job ID returned from System.runJob.

Returns

void

Remarks

Cancels the execution of a job queued via System.runJob.


clearRun()

clearRun(runId): void

Parameters

ParameterType
runIdnumber

Returns

void

Remarks

Cancels the execution of a function run that was previously scheduled via System.run.


run()

run(callback): number

Parameters

ParameterTypeDescription
callback() => voidFunction callback to run when the tickDelay time criteria is
met.

Returns

number

An opaque identifier that can be used with the clearRun function to cancel the execution of this run.

Remarks

Runs a specified function at a future time. This is frequently used to implement delayed behaviors and game loops.

Example

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

function printEveryMinute() {
try {
// Minecraft runs at 20 ticks per second.
if (system.currentTick % 1200 === 0) {
world.sendMessage('Another minute passes...');
}
} catch (e) {
console.warn('Error: ' + e);
}

system.run(printEveryMinute);
}

printEveryMinute();

runInterval()

runInterval(callback, tickInterval?): number

Parameters

ParameterTypeDescription
callback() => voidFunctional code that will run when this interval occurs.
tickInterval?numberAn interval of every N ticks that the callback will be
called upon.

Returns

number

An opaque handle that can be used with the clearRun method to stop the run of this function on an interval.

Remarks

Runs a set of code on an interval.

Example

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

const intervalRunIdentifier = Math.floor(Math.random() * 10000);

system.runInterval(() => {
world.sendMessage('This is an interval run ' + intervalRunIdentifier + ' sending a message every 30 seconds.');
}, 600);

runJob()

Beta

runJob(generator): number

Parameters

ParameterTypeDescription
generatorGenerator<void, void, void>The instance of the generator to run.

Returns

number

An opaque handle that can be used with System.clearJob to stop the run of this generator.

Remarks

Queues a generator to run until completion. The generator will be given a time slice each tick, and will be run until it yields or completes.

Example

import { BlockPermutation, DimensionLocation, world, ButtonPushAfterEvent, system } from '@minecraft/server';

// A simple generator that places blocks in a cube at a specific location
// with a specific size, yielding after every block place.
function* blockPlacingGenerator(blockPerm: BlockPermutation, startingLocation: DimensionLocation, size: number) {
for (let x = startingLocation.x; x < startingLocation.x + size; x++) {
for (let y = startingLocation.y; y < startingLocation.y + size; y++) {
for (let z = startingLocation.z; z < startingLocation.z + size; z++) {
const block = startingLocation.dimension.getBlock({ x: x, y: y, z: z });
if (block) {
block.setPermutation(blockPerm);
}
yield;
}
}
}
}

// When a button is pushed, we will place a 15x15x15 cube of cobblestone 10 blocks above it
world.afterEvents.buttonPush.subscribe((buttonPushEvent: ButtonPushAfterEvent) => {
const cubePos = buttonPushEvent.block.location;
cubePos.y += 10;

const blockPerm = BlockPermutation.resolve('minecraft:cobblestone');

system.runJob(blockPlacingGenerator(blockPerm, { dimension: buttonPushEvent.dimension, ...cubePos }, 15));
});

runTimeout()

runTimeout(callback, tickDelay?): number

Parameters

ParameterTypeDescription
callback() => voidFunctional code that will run when this timeout occurs.
tickDelay?numberAmount of time, in ticks, before the interval will be
called.

Returns

number

An opaque handle that can be used with the clearRun method to stop the run of this function on an interval.

Remarks

Runs a set of code at a future time specified by tickDelay.