Use SignChangeEvent Example: PHP: public function onSignChange(SignChangeEvent $e){ $e->setLine(1, "First line"); $e->setLine(2, "Second line"); $e->setLine(3, "Third line"); $e->setLine(4, "Fourth line");} For more information about SignChangeEvent take a look at here: https://github.com/pmmp/PocketMine-MP/blob/master/src/pocketmine/event/block/SignChangeEvent.php
i know this but not what i wanted to do, what i was trying to say is when i place a sign it will automatically set message each lines
BlockPlaceEvent and cancel it PHP: /** @var BlockPlaceEvent $e */if($e->getItem()->getId() === Item::SIGN_POST){ $pos = $e->getBlockAbove(); $pos->getLevel()->setBlock($pos, Block::get(Block::SIGN_POST));//RIP wall signs... Tile::create tile("Sign", $pos->getLevel(), new CompoundTag("", [ new StringTag("id", Tile::SIGN), new IntTag("x", $pos->x), new IntTag("y", $pos->y), new IntTag("z", $pos->z), new StringTag("Text1", "line 1 text"), new StringTag("Text2", "line 2 text"), new StringTag("Text3", "line 3 text"), new StringTag("Text4", "line 4 text"), ]))->spawnToAll();}