Minecraft – Summon falling_block with horizontal velocity and no air drag

minecraft-commandsminecraft-java-edition

I want to have falling block going horizontally at a constant velocity, but even with nogravity they slow down and eventually stop.

I tried to update their speed with a repeating command block constantly setting their motion, but it's just too laggy.
Here's how I spawn the falling blocks:

execute as @e[type=minecraft:armor_stand] run execute positioned as @s run summon falling_block ~ ~2 ~ {BlockState:{Name:"minecraft:gray_concrete"},Time:20b,Motion:[0.0d,0.0d,0.0d],NoGravity:1}

Here's how I set their motion:

execute as @e[type=minecraft:falling_block] run data modify entity @s Motion set value [0.7d,0.0d,0.0d]

Best Answer

You can continuously summon new falling blocks so that the motion is constant, they will also not stutter.

This command in a repeating command block will add a tag to all falling_block:

execute as @e[type=minecraft:falling_block] run tag @s add 1

The next one in a chain command block after the first will summon a moving, NoGravity falling block at all falling blocks with the tag 1, in my case it's astone block:

execute at @e[type=minecraft:falling_block,tag=1] 
run summon minecraft:falling_block ~ ~ ~ {BlockState:{Name:"stone"},Time:1,NoGravity:1,Motion:[-0.1d,0.0d,0.0d]}

And then in another chain command block, you kill the tagged falling block:

execute as @e[type=minecraft:falling_block,tag=1] run kill @s