Represents a block that can display text on it.

import { world, BlockPermutation, BlockSignComponent, BlockComponentTypes, DimensionLocation } from "@minecraft/server";
import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

function addSign(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
const players = world.getPlayers();

const dim = players[0].dimension;

const signBlock = dim.getBlock(targetLocation);

if (!signBlock) {
log("Could not find a block at specified location.");
return -1;
}
const signPerm = BlockPermutation.resolve(MinecraftBlockTypes.StandingSign, { ground_sign_direction: 8 });

signBlock.setPermutation(signPerm);

const signComponent = signBlock.getComponent(BlockComponentTypes.Sign) as BlockSignComponent;

signComponent?.setText(`Basic sign!\nThis is green on the front.`);
}
import { BlockPermutation, BlockSignComponent, SignSide, DyeColor, BlockComponentTypes, DimensionLocation } from "@minecraft/server";
import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

function addTwoSidedSign(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
const signBlock = targetLocation.dimension.getBlock(targetLocation);

if (!signBlock) {
log("Could not find a block at specified location.");
return -1;
}
const signPerm = BlockPermutation.resolve(MinecraftBlockTypes.StandingSign, { ground_sign_direction: 8 });

signBlock.setPermutation(signPerm);

const signComponent = signBlock.getComponent(BlockComponentTypes.Sign) as BlockSignComponent;

if (signComponent) {
signComponent.setText(`Party Sign!\nThis is green on the front.`);
signComponent.setText(`Party Sign!\nThis is red on the back.`, SignSide.Back);
signComponent.setTextDyeColor(DyeColor.Green);
signComponent.setTextDyeColor(DyeColor.Red, SignSide.Back);

// players cannot edit sign!
signComponent.setWaxed(true);
} else {
log("Could not find sign component.");
}
}
import { BlockSignComponent, BlockComponentTypes, DimensionLocation, RawMessage, RawText } from "@minecraft/server";

function updateSignText(targetLocation: DimensionLocation) {
const block = targetLocation.dimension.getBlock(targetLocation);
if (!block) {
console.warn("Could not find a block at specified location.");
return;
}

const sign = block.getComponent(BlockComponentTypes.Sign) as BlockSignComponent;
if (sign) {
// RawMessage
const helloWorldMessage: RawMessage = { text: "Hello World" };
sign.setText(helloWorldMessage);

// RawText
const helloWorldText: RawText = { rawtext: [{ text: "Hello World" }] };
sign.setText(helloWorldText);

// Regular string
sign.setText("Hello World");
} else {
console.warn("Could not find a sign component on the block.");
}
}
import { world, BlockPermutation, BlockSignComponent, BlockComponentTypes, DimensionLocation } from "@minecraft/server";
import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

function addTranslatedSign(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
const players = world.getPlayers();

const dim = players[0].dimension;

const signBlock = dim.getBlock(targetLocation);

if (!signBlock) {
log("Could not find a block at specified location.");
return -1;
}
const signPerm = BlockPermutation.resolve(MinecraftBlockTypes.StandingSign, { ground_sign_direction: 8 });

signBlock.setPermutation(signPerm);

const signComponent = signBlock.getComponent(BlockComponentTypes.Sign) as BlockSignComponent;

signComponent?.setText({ translate: "item.skull.player.name", with: [players[0].name] });
}

Hierarchy (View Summary)

Constructors

Properties

block: Block

Block instance that this component pertains to.

isValid: boolean

Returns whether the component is valid. A component is considered valid if its owner is valid, in addition to any addition to any additional validation required by the component.

isWaxed: boolean

Whether or not players can edit the sign. This happens if a sign has had a honeycomb used on it or setWaxed was called on the sign.

This property can throw when used.

typeId: string

Identifier of the component.

componentId: "minecraft:sign" = 'minecraft:sign'

Methods