mojira.dev
MCPE-85747

Ghasts Spawn only at low light levels. Ghast Farms broken.

Between 1.14 and 1.16, Ghasts were changed internally from being a "Mob" to being a "Monster". By default, monsters only spawn when the light level is low. (This is hardcoded in the game and cannot be changed by json-based spawning rules).

Expected Behavior: Ghasts spawn at all light levels.

Actual Behavior: Ghasts only spawn if the light level is below 8.

Consequence: Portal-based ghast farms no longer work because portals emit light.

Demo world: Press a button to switch from a netherwart block floor to a shroomlight floor.

How to fix: Add a Ghast::isDarkEnoughToSpawn() function that always returns true. Example code below. This wasn't needed before when Ghasts were Mobs, but now is needed because they are Monsters.

virtual bool Ghast::isDarkEnoughToSpawn() const override {
     return true;
}

Linked issues

Attachments

Comments 3

This issue may stem from the fix to MCPE-53383. It does not just break certain farms. It also prevents ghasts from spawning over lava oceans.

Strangely, the following is in the ghast.json for both 1.14 and 1.16:
"minecraft:type_family": {
"family": [ "ghast", "monster", "mob" ]
},

The Mob -> Monster change that I'm referring to happened at the C++ level. In 1.14, the Ghast class was derived from the Mob class. In 1.16, it is derived from the Monster class.

I agree that this bug is likely related to fixing Ghasts not despawning on Peaceful.

I just tested and 1.16.20 is affected by this bug.

racartwright

(Unassigned)

376016

Confirmed

Multiple

ghast, nether, spawning

1.16.0, 1.16.1, 1.16.10, 1.16.20

1.16.100.51 Beta, 1.16.100

Retrieved