Skip to main content

Class: BlockSignComponent

Represents a block that can display text on it.

Examples

// A function the creates a sign at the specified location with text on both sides and dye colors
import {
DimensionLocation,
BlockPermutation,
BlockSignComponent,
BlockComponentTypes,
DyeColor,
SignSide,
} from '@minecraft/server';
import { MinecraftBlockTypes } from '@minecraft/vanilla-data';

function createSignAt(location: DimensionLocation) {
const block = location.dimension.getBlock(location);
if (!block) {
console.warn('Could not find a block at specified location.');
return;
}
const signPerm = BlockPermutation.resolve(MinecraftBlockTypes.StandingSign, {
ground_sign_direction: 8,
});
block.setPermutation(signPerm);
const sign = block.getComponent(BlockComponentTypes.Sign);

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

// players cannot edit sign!
sign.setWaxed(true);
} else {
console.warn('Could not find a sign component on the block.');
}
}
import {
BlockComponentTypes,
DimensionLocation,
RawMessage,
RawText,
} from '@minecraft/server';

// Function which updates a sign blocks text to raw text
function updateSignText(signLocation: DimensionLocation) {
const block = signLocation.dimension.getBlock(signLocation);
if (!block) {
console.warn('Could not find a block at specified location.');
return;
}

const sign = block.getComponent(BlockComponentTypes.Sign);
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.');
}
}
// A function the creates a sign at the specified location with the specified text
import { DimensionLocation, BlockPermutation, BlockComponentTypes } from '@minecraft/server';
import { MinecraftBlockTypes } from '@minecraft/vanilla-data';

function createSignAt(location: DimensionLocation) {
const signBlock = location.dimension.getBlock(location);

if (!signBlock) {
console.warn('Could not find a block at specified location.');
return;
}

const signPerm = BlockPermutation.resolve(MinecraftBlockTypes.StandingSign, { ground_sign_direction: 8 });
signBlock.setPermutation(signPerm); // Update block to be a sign

// Update the sign block's text
// with "Steve's Head"
const signComponent = signBlock.getComponent(BlockComponentTypes.Sign);
if (signComponent) {
signComponent.setText({ translate: 'item.skull.player.name', with: ['Steve'] });
}
}

Extends

Constructors

new BlockSignComponent()

private new BlockSignComponent(): BlockSignComponent

Returns

BlockSignComponent

Overrides

BlockComponent . constructor

Properties

block

readonly block: Block

Remarks

Block instance that this component pertains to.

Inherited from

BlockComponent . block


isWaxed

readonly isWaxed: boolean

Remarks

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.

Throws

This property can throw when used.


typeId

readonly typeId: string

Remarks

Identifier of the component.

Inherited from

BlockComponent . typeId


componentId

static readonly componentId: "minecraft:sign" = 'minecraft:sign'

Methods

getRawText()

getRawText(side?): RawText

Parameters

ParameterTypeDescription
side?SignSideThe side of the sign to read the message from. If not
provided, this will return the message from the front side
of the sign.

Returns

RawText

Remarks

Returns the RawText of the sign if setText was called with a RawMessage or a RawText object, otherwise returns undefined.

Throws

This function can throw errors.


getText()

getText(side?): string

Parameters

ParameterTypeDescription
side?SignSideThe side of the sign to read the message from. If not
provided, this will return the message from the front side
of the sign.

Returns

string

Remarks

Returns the text of the sign if setText was called with a string, otherwise returns undefined.

Throws

This function can throw errors.


getTextDyeColor()

getTextDyeColor(side?): DyeColor

Parameters

ParameterTypeDescription
side?SignSideThe side of the sign to read the dye from. If not provided,
this will return the dye on the front side of the sign.

Returns

DyeColor

Remarks

Gets the dye that is on the text or undefined if the sign has not been dyed.

Throws

This function can throw errors.


isValid()

isValid(): boolean

Returns

boolean

Whether the component is valid.

Inherited from

BlockComponent . isValid

Remarks

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.


setText()

setText(message, side?): void

Parameters

ParameterTypeDescription
messagestring | RawText | RawMessageThe message to set on the sign. If set to a string, then
call getText to read that string. If set to a RawMessage,
then calling getRawText will return a RawText. If set to a
RawText, then calling getRawText will return the same
object that was passed in.
side?SignSideThe side of the sign the message will be set on. If not
provided, the message will be set on the front side of the
sign.

Returns

void

Remarks

Sets the text of the sign component.

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

Throws

Throws if the provided message is greater than 512 characters in length.

Example

import {
BlockComponentTypes,
DimensionLocation,
RawMessage,
RawText,
} from '@minecraft/server';

// Function which updates a sign blocks text to raw text
function updateSignText(signLocation: DimensionLocation) {
const block = signLocation.dimension.getBlock(signLocation);
if (!block) {
console.warn('Could not find a block at specified location.');
return;
}

const sign = block.getComponent(BlockComponentTypes.Sign);
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.');
}
}

setTextDyeColor()

setTextDyeColor(color?, side?): void

Parameters

ParameterTypeDescription
color?DyeColorThe dye color to apply to the sign or undefined to clear the
dye on the sign.
side?SignSideThe side of the sign the color will be set on. If not
provided, the color will be set on the front side of the
sign.

Returns

void

Remarks

Sets the dye color of the text.

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

Throws

This function can throw errors.


setWaxed()

setWaxed(waxed): void

Parameters

ParameterType
waxedboolean

Returns

void

Remarks

Makes it so players cannot edit this sign.

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

Throws

This function can throw errors.