Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Extends
Represents a block that can display text on it.
Properties
isWaxed
read-only 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.
Type: boolean
Notes:
- This property can throw errors when used.
Methods
getRawText
getRawText(side?: SignSide): RawText | undefined
Returns the RawText of the sign if setText
was called with a RawMessage or a RawText object, otherwise returns undefined.
Parameters
side?: SignSide =
0
The 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 | undefined
Notes:
- This function can throw errors.
getText
getText(side?: SignSide): string | undefined
Returns the text of the sign if setText
was called with a string, otherwise returns undefined.
Parameters
side?: SignSide =
0
The 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 | undefined
Notes:
- This function can throw errors.
getTextDyeColor
getTextDyeColor(side?: SignSide): DyeColor | undefined
Gets the dye that is on the text or undefined if the sign has not been dyed.
Parameters
side?: SignSide =
0
The 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 | undefined
Notes:
- This function can throw errors.
setText
setText(message: RawMessage | string, side?: SignSide): void
Sets the text of the sign component.
Parameters
message: RawMessage | string
The message to set on the sign. If set to a string, then call
getText
to read that string. If set to a RawMessage, then callinggetRawText
will return a RawText.side?: SignSide =
0
The 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.
Notes:
- This function can't be called in read-only mode.
- This function can throw errors.
- Throws if the provided message is greater than 512 characters in length.
setTextDyeColor
setTextDyeColor(color?: DyeColor, side?: SignSide): void
Sets the dye color of the text.
Parameters
color?: DyeColor =
null
The dye color to apply to the sign or undefined to clear the dye on the sign.
side?: SignSide =
0
The 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.
Notes:
- This function can't be called in read-only mode.
- This function can throw errors.
setWaxed
setWaxed(waxed: boolean): void
Makes it so players cannot edit this sign.
Parameters
- waxed: boolean
Notes:
- This function can't be called in read-only mode.
- This function can throw errors.
Constants
componentId
static read-only componentId = "minecraft:sign";
Type: string
Examples
addSign.ts
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.`);
}
(preview) Work with this sample on the MCTools.dev code sandbox.
addTwoSidedSign.ts
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.");
}
}
(preview) Work with this sample on the MCTools.dev code sandbox.
updateSignText.ts
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.");
}
}
(preview) Work with this sample on the MCTools.dev code sandbox.
addTranslatedSign.ts
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] });
}
(preview) Work with this sample on the MCTools.dev code sandbox.