The bug
If you use a shield, it will not block for a fraction of a second, so it doesn't protect you instantly.
How to reproduce
On survival mode, spawn a skeleton
When it shoots you, block with the shield
→ ❌ You will not stop the arrow and it will deal damage to you
Linked issues
is duplicated by 28
relates to 1
Attachments
Comments 66
Still applies to version 1.9.4. Does anyone know if this is actually a bug or it's intended purpose?
It happens even when you block before the arrow shoots, I always hit the skeleton when his bow is empty, and have to pull up shield as soon as he charges another arrow, if I'm too late the arrow ignores the shield.
I want to confirm that this issue has also happened to me in version 1.21.4
Among the many fights I've had against skeletons, pillagers and piglins or even blazes, I've noticed for a while now that even though my reaction time is sufficient to stop a projectile with my shield, I still get hit because there seems to be a delay in the shield's functioning
As the user called Migrated mentioned above, the only case where the shield works is when you use it preemptively and wait for the skeleton to fire. But, again, running up to a skeleton and waiting until the last moment to block isn't possible, as the instant effective block doesn't work
Let's take the following example: I'm in the forest cutting down a tree, when suddenly I hear a skeleton behind me about to shoot me. When I quickly turn around and use my shield, I can clearly see that the arrow hasn't hit me yet, but upon impact I take damage as if I hadn't used the shield. This may be a little annoying and inconvenient
To conclude, I just want to say that in my opinion, protecting yourself with the shield is very good and it does its job, but I feel that the reaction to projectile attacks still needs to be improved
This is most likely intentional now as the new minecraft:blocks_attacks component has a block_delay_seconds field.
Also, MC-279799 exists.
[^[1] invisible delay before shield actually starts blocking (1) (1).mp4]
[^[2] invisible delay before shield actually starts blocking.mp4]