Ghast fireballs do not deal projectile damage
Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival.
- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly. (Note that if you start to take non-damaging hits, that is a separate bug that can be worked around by changing position slightly between shots: see MCPE-78714) .
Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage section within the on_hit parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
Linked Issues
testing discovered2
discovered while testing1
Created Issue:
Ghast fireballs do not deal projectile damage
Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival difficulty.
- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly.
Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival difficulty.
- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly.
Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage
parameter. Compare this tothe small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival difficulty.
- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly.
Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage section within the on_hit parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
discovered while testing
Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival difficulty.
- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly.
Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage section within the on_hit parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival difficulty.
- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly. (Note that if you start to take non-damaging hits, that is a separate bug that can be worked around by changing position slightly between shots: see
MCPE-78714) .Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage section within the on_hit parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
relates to
testing discovered
Ghast fireballs should deal 6 projectile damage regardless of difficulty level when they hit a mob directly.
Steps to reproduce
- Give yourself 2 leather caps.
- Enchant one cap with projectile protection.
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival
difficulty.- Let the ghast shoot you while you wear each cap.
Expected result
You take less damage wearing the projectile protection cap when fireballs hit you directly. (Note that if you start to take non-damaging hits, that is a separate bug that can be worked around by changing position slightly between shots: see
MCPE-78714) .Observed result
You take the same damage from direct hits wearing each cap.
Code analysis
The projectile component in fireball.json has no impact_damage section within the on_hit parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
testing discovered
After thoroughly testing and looking at the vanilla behavior files, I can say that the randomness in wither skull damage is indeed due to randomness in how close the center of their explosion is to the player. If you remove all randomness from their trajectory with a behavior pack then they always do the same amount of damage. Also, if you set them to be summonable and summon them on yourself, the damage amount is always the same.
However, wither skulls should always do 8 projectile damage (4 hearts) to mobs they hit directly in vanilla, and then only do explosion damage to mobs nearby the point of impact, as in Java Edition (MC-178576). The reason they do not deal the stable projectile damage is that the projectile component in wither_skull.json and wither_skull_dangerous.json has no impact_damage section within the on_hit parameter. Compare this to the small_fireball.json, which correctly gives blaze fireballs 5 projectile damage.
Ghast fireballs have the same bug, which I have reported at MCPE-153740.
(Also reported for Java Edition at MC-249996.)
Explosion damage scales based on how close the damaged entity is to center of the explosion. However, the position of the entity is handled naively, with the result that higher damage is done by explosions centered closer to the entity's feet.
Steps to reproduce
(These steps only show the issue because of MCPE-153740, so if that bug is fixed then you will need to use the alternate steps below.)
- Give yourself high level health boost and instant health effects so you have lots of hearts.
- Turn off mobgriefing
- Make a ghast containment cage of some kind and summon/teleport a ghast inside of it.
- Switch to survival.
- Tank shots standing still, and while walking backwards away from the ghast. (Note that if you start to take non-damaging hits, that is a separate bug that can be worked around by changing position slightly between shots: see
MCPE-78714.)
Expected result
You take more damage from shots while standing still because they hit near the center of your body.
Observed result
You take more damage from shots while walking backwards because they hit nearer to your feet.
Alternate steps
- Make fireballs summonable using a behavior pack.
- Turn off mob griefing.
- Place a solid block above your head, so that you are standing in a 2-block-high gap between 2 sold blocks.
- Summon fireballs at ~~~ and at ~ ~1.68 ~
Expected result
The fireballs summoned at ~ ~1.68 ~ do more damage.
Observed result
The fireballs summoned at ~ ~ ~ do much more damage.
After looking more closely at a video of the equivalent bug for wither skulls (MCPE-152907) it occurred to me that this bug could be the result of a combination of MCPE-153740 (ghast fireballs do not deal projectile damage) and MCPE-109423 (projectiles sometimes hit a few blocks in front of their target). If the projectile "hits" a few blocks from the player then it will be far enough away that the explosion damage does not reach.
Update: I've determined that MCPE-109423 is just a result of projectiles moving >1 block/tick and not updating their position on the tick that they "hit". That means the distance away from the mob that projectiles hit a deterministic result of the distance from shooter to target. Further, that explains why moving a few pixels can resolve this bug. Ghast fireballs only move a little bit faster than 1 block/tick, so adjusting the distance a small amount is enough to put the player back within the blast radius of the fireball's last updated position before the hit. It is now quite obvious to me that this bug is a direct consequence of MCPE-109423 and MCPE-153740, and that if you fix either of those bugs then this bug will also be fixed.
Tested and this is indeed fixed in 1.19.20 by the fix to MCPE-153740
Bedrock Edition ghast fireballs only deal explosion damage. This is affected by difficulty level and makes ghast fireballs stronger on hard difficulty and weaker on easy difficulty compared to Java. In Java Edition ghast fireballs always deal 6 projectile damage on a direct hit regardless of difficulty. In Java Edition they only deal explosion damage to mobs within the explosion radius of the fireball that are not directly hit, probably because the projectile damage occurs first and then triggers damage immunity. However, in Bedrock Edition explosion damage from a direct hit to the head is about 7.25 on hard and 3.25 on easy. A direct hit lower on the body (e.g. if you tank a shot while walking backwards) can do > 10 damage on normal or hard (relates to
MCPE-153770).This issue is plausibly part of the cause of
MCPE-78714. See my the comment on that report.