mojira.dev
MC-214546

Projectiles (including arrows) sometimes pass through entities without hitting them

As seen in https://clips.twitch.tv/ResoluteElatedOysterWTRuck arrows sometimes pass through mobs without harming them.

Linked issues

Attachments

Comments 54

Not sure if that relates since the projectiles spawned several blocks away.

Can confirm in 21w05b. Haven't seen it yet in 21w06a, but that's not to say it's fixed.

Major bug for pvp and pve, refered to by most players that experience it as "Ghost Arrows".

This also happens with any projectiles, not just arrows.

44 more comments

Can confirm in 1.21.8

Tried 1.21.9 RC-1 build today, and sadly the issue is still there… 😥
I first noticed this issue 5 years ago around release of 1.16, also around time when Java 8 stopped being used. Really unfair bug for bow players, please fix it Mojang.

Was going back and reading some of the comments from the old Jira (And I thought I had migrated my bugtracker account, guess not), and wanted to thank SeaOfPixels for being so thorough on checking versions. I do want to state that going back, I’m noticing this bug as early as 1.15, and also want to push back on the admittedly debunked theory about it being tickrate causing the arrows to fly through the mob, as the twitch clip I filmed on 21w05b was running roughly 20 ticks a second, which is expected for the client anyhow, so this would have been noticed a lot earlier if it was caused by tickrate.

Also I’d like to push back against something SeaOfPixels said: I have been able to go and pick up the arrows that fail to hit the mobs/entities I have somehow missed because of the bug, so I don’t think it’s client-side only.

Thank you for the elaboration. Note that in the previous comment by Tango, the bug shows arrows bouncing off which may be a different bug, or just how this bug works now in modern versions.

I wanted to have a reliable way of showing the issue, and came up with

summon minecraft:arrow ~-4 ~1.85 ~ {Motion:[3,0,0],Rotation:[90,0],NoGravity:1}

most times it bounces client side but server side it misses and passes through.

Adding it to a tick function caused the problem to not present itself. Same with scheduled functions.

This seems to imply that the client will act on the position of the arrow based on when it came into existence, and not on a tick boundary (or something to that effect. I do not know any details on how minecraft syncs things or the proper terminology, so sorry about that.)

mkclone.mcfunction

$summon arrow ~ ~ ~ $(nbt)

quantize.mcfunction

tag @s add quantized
data modify storage quantize_projectiles:clone nbt set from entity @s
kill @s
function quantize_projectiles:mkclone with storage quantize_projectiles:clone

tick.mcfunction

execute as @e[type=arrow,tag=!quantized] at @s run function quantize_projectiles:quantize

By quantizing the arrow creation to be on the tick I no longer see arrows that bounce and disappear. Hopefully this helps someone to figure out the actual problem and properly fix it.

Lilithvia

(Unassigned)

Confirmed

Platform

Normal

Projectiles

collision, combat, noclip, projectile

1.16.3, 21w05b, 1.17, 1.17.1, 1.18, ..., 1.20.6 Release Candidate 1, 1.20.6, 24w20a, 1.21.4, 1.21.7

Retrieved