Minecraft – How to make a true ghost sign

minecraft-commandsminecraft-java-edition

btw, "Impossible" is not an answer. This just shows you aren't thinking outside the box.
With that said, here's the question:


So, what I want to do is make a "ghost" or "floating" sign. Something that looks like this:

A sign on a barrier block (hidden)

However, it's not as easy as that, since I've cheated and went ahead and used a Barrier Block:

A sign on a barrier block (shown)

What I want to do however, is make a true "ghost" or "floating" sign; one that does not need to rest on any sort of block as you cannot walk through that (unless it's water*, lava* or other signs).

It's possible to do so using WorldEdit by selecting a region and then doing //set wall_sign. However, this sign is rather blank.

*You can't rest a sign against any liquids anyway.

I used WorldEdit... Only that the sign is blank.

I remembered there was a trick that you could use to delete/add/modify blocks without triggering a block update (which is what causes a sign to break when it has no resting block). Any ideas?

You're free to use any server plugin (existing or a pointer in coding a new one) or a vanilla method. Just pop minecraft: to the front of your command… So /tp is now /minecraft:tp.


Bonus points if you can figure out a way that allows multiple signs side-by-side.

Best Answer

This is a so-called "invalid state", because the sign is not meant to be there in a normal situation. So you always have to abuse a bug or external editor to get it there and then be careful to not change anything on any of the six adjacent blocks ever again.

With commands, you can just use /setblock, because it doesn't update the block (MC-31100). But you have to specify everything about the sign. The one in your example can be set like this:

/setblock ~ ~ ~ oak_wall_sign[facing=north]{Text1:"{\"text\":\"\"}",Text2:"{\"text\":\"This is a\"}",Text3:"{\"text\":\"floating sign\"}",Text4:"{\"text\":\"\"}"}

You have to replace the north with south, east or west for the other directions.

Without commands, you'll likely have to use stack overflows for update suppression, since most other bugs that do it are fixed. For that, you can for example use a machine like this one.