In 1.12, I had a command block to summon in minecarts on a single point. I then had another command to spread the minecarts out in a radius of 20 blocks, and a following chain command block to teleport them to the y level 64, because the spreadplayers command teleports entities to the highest solid block. The chained command was simply:

tp @e[type=minecart,r=30] ~ 64 ~

In 1.13, this now teleports all the minecarts to point point. I tried

execute at @e[type=minecart,distance=..30] as @e[type=minecart,distance=..30] run tp @s ~ 64 ~

but this does not work, it has the same effect (Teleporting them all on top of eachother). I also replaced @s with @e[type=minecart,distance=..30] to no avail. Any solutions here?


You're close, but the at @e[type=minecart,distance=..30] as @e[type=minecart,distance=..30] will execute at each minecart position, for each minecart. So each minecart is being teleported to each position in order (e.g: 8 minecarts would be 64 tp's total), all ending up at the last one.

Instead, you should use this:

execute as @e[type=minecart,distance=..30] at @s run tp @s ~ 64 ~

Which makes the minecarts all execute at themselves, to teleport themselves.

  • got the answer half way through reading your correction of me! great explanation - thank you very much
    – Xav
    Jul 19 '18 at 17:16

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.