Ghast fireballs should break blocks on each collision/explosion; now, they don't.
In attached video, you can see that first fireball fails to break wood, but next fireball breaks it. Seems to happen every other fireball.
To reproduce, in the attached world, simply place a few wood blocks under the floating chiseled stone brick, and see that sometimes the fireballs don't break anything even though they successfully collide and explode.
If you need to aggro the ghast, just flip the lever between the snowman and the zombie.
EDIT: Apparently certain alignments (not just vertical) can cause the fireballs to not break blocks at all (in current release version). See the Ghast_Blaster_Test_-_horizontal world. Note that this world has a lever for blocking the ghast's view of the snow golem, so it make sure to block the view before logging out to turn the blaster off.
EDIT 2: In today's preview (1.19.30.21), the horizontal fireball breaks blocks every other fireball, but they should be breaking on every collision.
Linked issues
relates to 2
Attachments
Comments 6


As of 1.19.60, it's almost fixed! Ghast fireballs will almost always break logs when hit from the side, but if hit from the bottom, as in the world download example I provided, the blocks will NEVER break. Warped and Crimson stem are the only exceptions. They still break when hit on their bottom side.
EDIT: Feel my pain – https://youtu.be/fINLp7aYdCU

Update to yesterday's update. If the ghast fireball is slowed down by passing through a falling water block (1 water source and 1 block falling water), then the fireball slows down, and will explode the blocks when hit from the underside. I'll attach a video demonstrating this.

In my new 1.20 world, ghast fireballs are failing to break any blocks, but in the current preview (1.20.10.21) they still break blocks. Not sure if this should be its own ticket, or if it doesn't even matter since latest preview still works, but decided to update here as a middle-ground between the two.
Attaching a video of this: GhastFireballsBroken.mp4

Oh dang. Â I was totally wrong. Â They still work... maybe. Â The farm in the video came from a 1.20.10.21 structure export, which I loaded into a brand new 1.20 world.
When I try my old 1.19 vanilla world with the same blaster, it loads in 1.20 just fine, and still breaks logs.  ¯_(ツ)_/¯

In 1.20.81 the behavior in my test world remains the same as described in my earlier comment.
The cause of this issue (or at least one cause) seems to be that when the fire ball explodes, the center of the explosion gets set to the fireball's last position before colliding with the block that it hits. Since ghast fireballs travel 1.6 blocks/tick, or 1 block/tick after being deflected by a player hit or moving slime block, the fireball's explosion center can be up to 1.6 blocks, or 1 block if deflected, away from the expected point of impact. Over that distance the explosion power can degrade enough that it is unable to destroy blocks with moderately high blast resistance like logs (2) and concrete (1.8). You can see that the explosion center is the fireball's last position before hitting a block in
[media], which shows in slow motion how a fireball can be made to destroy a log that it is moving away from while not destroying a log that it is moving into and "hits" directly.
You can use
[media]to confirm. The world includes
[media]to make ghast fireballs summonable (which is also in parity with Java 😉). It has several test stations set up to facilitate comparing different fireball positions. A repeating command block makes fireballs summon green sparkles to display their server-side positions.
Steps to reproduce
[media]Load
Go to the south side of the command blocks and press the button. This will summon a fireball, teleport it to a set position (in case the summoning was offset by existing blocks), and face the player directly north (so that the player's hit will propel the fireball due north).
Hit the fireball so that it collides with the log/concrete and explodes.
Replace the log with another log, or concrete, or try other blocks like glass and slime.
Try different stations, and try varying the Z coordinate in the teleporting command block.
Expected result
The fireball explosion destroys the log or concrete every time.
Observed result
The fireball explosion destroys the log or concrete only if its last position before colliding with the log/concrete was within 0.6 blocks of the log/concrete. I.e. if the Z coordinate in the teleporting command block is set to ~-3.5 < Z <= ~-3.9 then the log/concrete will not be destroyed by the fireball. This does not happen with blocks like glass and slime that have lower blast resistance.