Private
constructorReadonly
afterReturns a collection of after-events for system-level operations.
Readonly
Beta
beforeReturns a collection of before-events for system-level operations.
Readonly
currentRepresents the current world tick of the server.
Beta
The job ID returned from System.runJob.
Cancels the execution of a job queued via System.runJob.
Cancels the execution of a function run that was previously scheduled via System.run.
import { system } from "@minecraft/server";
const runId = system.run(() => {
console.log("Running callback function...");
});
// Clear the run, so it will not run again.
system.clearRun(runId);
Function callback to run when the tickDelay time criteria is met.
An opaque identifier that can be used with the clearRun
function to cancel the execution of this run.
Runs a specified function at a future time. This is frequently used to implement delayed behaviors and game loops.
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();
import { system } from "@minecraft/server";
const runId = system.run(() => {
console.log("Running callback function...");
});
Functional code that will run when this interval occurs.
Optional
tickInterval: numberAn interval of every N ticks that the callback will be called upon.
Optional
An opaque handle that can be used with the clearRun method to stop the run of this function on an interval.
Runs a set of code on an interval.
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);
Beta
The instance of the generator to run.
An opaque handle that can be used with System.clearJob to stop the run of this generator.
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.
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));
});
Functional code that will run when this timeout occurs.
Optional
tickDelay: numberAmount of time, in ticks, before the interval will be called.
Optional
An opaque handle that can be used with the clearRun method to stop the run of this function on an interval.
Runs a set of code at a future time specified by tickDelay.
import { TicksPerSecond, system } from "@minecraft/server";
system.runTimeout(() => {
console.log("Running callback function after delay...");
}, TicksPerSecond * 5); // Tick delay of 5 seconds
A class that provides system-level events and functions.