Minecraft – How to make a mob ride an arrow

minecraft-commandsminecraft-java-edition

I am trying to make a command in Minecraft 1.12.1 where a pig can ride an arrow, but I keep running into problems.

The first problem is, that when a mob is riding an arrow, it gets damaged and causes the arrow to stop moving.

I want to make the arrow continue moving without hurting the mob.

The commands I am using (in a repeating command block) are as follows:

/execute @e[type=arrow] ~ ~ ~ tp @e[type=pig] ~ ~2 ~

And the problem with that command is that the pig is only constantly being teleported up 2 blocks from where it was as long as the arrow exists.

The second command is:

/tp @e[type=pig] @e[type=arrow]

And the problem is basically the pig is damaged and the arrow doesn't go anywhere.

I've tried them both together and separately but they just won't work. Any ideas?

Best Answer

The first thing I thought of was to use the /summon command.

There is a parameter in the data tag that allows you to add passengers to an entity, so if you summon an arrow with a pig riding it, it won't be harmed. If you change the Motion tag, you can make the arrow go in a specific direction. The full command is as follows:

/summon arrow ~ ~ ~ {Motion:[0.0,0.0,0.0],Passengers:[{id:"minecraft:pig"}]}

Another approach to this also uses the data tag but it can be performed on an arrow fired from a dispenser for example. This would be executed like this:

/entitydata @e[type=arrow] {Passengers:[{id:"minecraft:pig"}]}