How do I make command blocks that teleports players away from an area, like 2 blocks or so, repeatedly, when they don't have a specific item? I'm trying to make an adventure map that would require certain items to proceed to the next portion of the map.

I want the command blocks to search players inventory for a diamond. If they have a diamond nothing happens. If they do not have diamond it teleports the player backwards 2 blocks. The issue is the first block is a repeating block that searches the players inventory within 2 block range. The second block is a chain block for testforblock (repeating block) successcount:0. Third block tp's ~ ~ ~2. I want the teleport to happen once unless the player reenters the radius. As it is, it teleports infinitely backwards and I have to disable command blocks to fix it.

  • You added the "minecraft-feed-the-beast" tag. Does that mean you're playing with mods? Then you should say that in the question. – Fabian Röling Nov 15 '17 at 8:27
  • Can it happen that multiple players are in the area and some have the item, some not, so that only the ones without the item should get teleported? – Fabian Röling Nov 15 '17 at 8:38
  • Would it be acceptable for you to update your Minecraft version to one of the latest snapshots? That would make it much easier, but of course they are unstable and buggy, so you might not want to run an important world in it. – Fabian Röling Nov 15 '17 at 8:39
  • @Fabian if the tag indicates the mod, then there is no need to also say so in the body. With that said, there are an awful lot of unnecessary tags here =) – Oak Nov 15 '17 at 8:53
  • "minecraft" was actually useful, because it indicated the Java Edition. – Fabian Röling Nov 15 '17 at 8:57

This is a good place to use scoreboard tags. This will allow you to tag any player that has diamond and use that tag to target them within the tp command.

Use 3 command blocks in a chain. The first command block removes the tag from all players. The second command block tags any players who have a diamond in their inventory. The third command block teleports any player within the boundaries of the target selector who do not have the tag.

These command blocks have to remain loaded. I recommend putting them in the spawn chunk. I also recommend stopping command block output to prevent chat spam for op players. Use command:

/gamerule commandBlockOutput false

The first command block is RepeatUnconditionalAlways Active with command:

scoreboard players tag @a remove Obtained

The second command block is ChainUnconditionalAlways Active with command:

scoreboard players tag @a add Obtained {Inventory:[{id:"minecraft:diamond"}]}

The Third command block is ChainUnconditionalAlways Active with command:

tp @a[x=X,y=Y,z=Z,r=R,tag=!Obtained] ~ ~ ~2

Replace X, Y, and Z with the coordinates of your gate area. Replace R with the desired radius for that area.

|improve this answer|||||
  • Thank you for this information its been super helpful!!! – Endless_Forrest Nov 18 '17 at 4:28
  • Glad I could help. If the answer solved your problem, feel free to accept the answer by clicking the checkmark next to the answer. This lets future visitors with the same problem know that it solved your problem. If it did not solve your problem, I recommend editing your question with the extra details in order to get the exact solution you are looking for. – IronAnvil Nov 18 '17 at 6:18

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.