How can I differentiate three different blocks that look exactly the same from each other? I want to have command blocks be able to tell them apart because they have different data, and I cannot use their location as the different data factor, because I need the command blocks to find them no matter where they are in the world. I want them all to look exactly the same. I am also open to suggestions of things that don't necessarily get this accomplished, but still allows command blocks to tell them apart without changing the appearance of the blocks. Overall, I want command blocks to be able to tell three different blocks apart from each other that are all Yellow Wool blocks. I do not want the appearance of any of the blocks to be changed in any way.

  • So you're looking for a command that can identify three physically identical blocks, regardless of location? I'm not sure, because you can change the Name of a block in an anvil, but this gets wiped when you place it. So perhaps there is another tag you can use to identify them? – Ben May 28 '16 at 11:32
  • A better headline pls – Simon Meusel May 28 '16 at 12:00
  • @SimonMeusel you can edit it yourself. – Ben May 28 '16 at 12:08
  • @Ben Yes, I do need them to be physically identical, but I want a command block to be able to tell them apart without using their location. – Fez_Master May 28 '16 at 12:10
  • You could use diffrent block but make their textures the same with a resource pack – Simon Meusel May 28 '16 at 12:41

You can visually simulate a block using FallingSand, as well as a Shulker to simulate the bounding box of the block. The host entity would have the unique identifiers while there still appears to be a block.

Unfortunately if the FallingSand is too close to the ground, it will land. But in the latest 1.10 snapshot (16w21b), the NoGravity tag has been extended to all entities, and allows the FallingSand to be above the ground without landing.

For example, given the following arrangement of an armor stand host that has a Shulker and FallingSand as its passengers:

/summon ArmorStand ~ ~1 ~ {Tags:["wool1"],Passengers:[{id:"FallingSand",Block:"minecraft:wool",Data:4,Time:-2147483648,NoGravity:1b},{id:"Shulker",NoAI:1b,Silent:1b,Invulnerable:1b,ActiveEffects:[{Id:14b,Duration:2147483647,ShowParticles:0b}]}],Invisible:1b,Marker:1b}

The "wool1" tag indicates that this host is the first yellow wool. You would create copies of this entity while changing that tag to be different:

/summon ArmorStand ~ ~1 ~ {Tags:["wool2"],Passengers:[{id:"FallingSand",Block:"minecraft:wool",Data:4,Time:-2147483648,NoGravity:1b},{id:"Shulker",NoAI:1b,Silent:1b,Invulnerable:1b,ActiveEffects:[{Id:14b,Duration:2147483647,ShowParticles:0b}]}],Invisible:1b,Marker:1b}
/summon ArmorStand ~ ~1 ~ {Tags:["wool3"],Passengers:[{id:"FallingSand",Block:"minecraft:wool",Data:4,Time:-2147483648,NoGravity:1b},{id:"Shulker",NoAI:1b,Silent:1b,Invulnerable:1b,ActiveEffects:[{Id:14b,Duration:2147483647,ShowParticles:0b}]}],Invisible:1b,Marker:1b}

And you can then target those specific hosts:

/execute @e[type=ArmorStand,tag=wool2] ~ ~ ~ /setblock ~ ~2 ~ minecraft:stone

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.