How to make a rain of arrows in vanilla Minecraft using command blocks?

I'm trying to set up a series of command blocks that will make a rain of arrows around the player when a specific item is held.

The idea is that as soon as the player holds a specific item, command blocks will spawn arrows 10 blocks above him. Then I want to randomly spread out the arrows over a certain radius, excluding the block the player is standing on.

I've thought about using the /spreadplayers command;

/execute @a[score_Arrows_min=1] ~ ~ ~ /spreadplayers ~ ~ 0 5 false @e[type=Arrow]

However, this makes the arrows teleport to the ground, instead of placing them in the air. I'm also unable to exclude the block the player is standing on as location.

I've looked around for a way to randomize teleportation coordinates in order to replace the /spreadplayers command, but that doesn't seem to be possible.

Can someone with more experience help me out, please? Also, I'm trying to keep the amount of command block as low as possible because my PC isn't that powerful.


Solution 1:

The way I can think of this works rather well. It involves the "arrow storm" activator being in a specific inventory slot, as if like an option.

First, you set a loop command block to this:

/replaceitem entity @a[m=2] slot.hotbar.0 minecraft:arrow 1 0 {display:{Name:"Activate Arrow Storm",Lore:[Select this slot to activate an arrow storm!]}}

Then have another loop command block activating the following:

/execute @a[tag=SelectedItemSlot:0,m=0] ~ ~ ~ summon arrow ~ ~10 ~ {Life:1000,pickup:0}

Along with another loop that does this:

/execute @a[tag=SelectedItemSlot:0,m=0] ~ ~ ~ summon creeper ~ ~9.9 ~ {ignited:1,ExplosionRadius:1,Fuse:1,Silent:1b,NoAI:1b}

I added tags to the arrows so that they could not be picked up {pickup:0} and despawned after 200 ticks {Life:1000}

The creepers are so the arrows fly everywhere, while allowing for the safety of the buildings if the command

/gamerule mobGreifing false

is executed. Notice that the creeper is slightly lower than the arrows so that they mostly fly upwards.

Have fun with your new arrow storm, or potential entity fountain! ;)


May require a powerful computer depending on how many people are going to use this. May require several /replaceitem commands to get rid of any arrows created by moving the arrows in the inventory.