The bug
Despite being friendly mobs, ocelots will not spawn on peaceful in jungle or bamboo jungle biomes
Code Analysis
The reason this happens is because for the mob cap in jungle and bamboo jungle biomes they are counted as monsters instead of creatures
Current Code
net/minecraft/data/worldgen/biome/OverworldBiomes.java
public static Biome jungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.MONSTER, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 3)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 1, 1, 2));
return baseJungle(0.9F, false, false, true, mobspawnsettings$builder);
}
public static Biome bambooJungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 80, 1, 2)).addSpawn(MobCategory.MONSTER, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 1));
return baseJungle(0.9F, true, false, true, mobspawnsettings$builder);
}public static Biome jungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.MONSTER, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 3)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 1, 1, 2));
return baseJungle(0.9F, false, false, true, mobspawnsettings$builder);
}
public static Biome bambooJungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 80, 1, 2)).addSpawn(MobCategory.MONSTER, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 1));
return baseJungle(0.9F, true, false, true, mobspawnsettings$builder);
}Fixed Code
net/minecraft/data/worldgen/biome/OverworldBiomes.java
public static Biome jungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
//Setting the MobCategory to Creature for Ocelot fixes MC-1788
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 3)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 1, 1, 2));
return baseJungle(0.9F, false, false, true, mobspawnsettings$builder);
}
public static Biome bambooJungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
//Setting the MobCategory to Creature for Ocelot fixes MC-1788
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 80, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 1));
return baseJungle(0.9F, true, false, true, mobspawnsettings$builder);
}public static Biome jungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
//Setting the MobCategory to Creature for Ocelot fixes MC-1788
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 3)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 1, 1, 2));
return baseJungle(0.9F, false, false, true, mobspawnsettings$builder);
}
public static Biome bambooJungle() {
MobSpawnSettings.Builder mobspawnsettings$builder = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.baseJungleSpawns(mobspawnsettings$builder);
//Setting the MobCategory to Creature for Ocelot fixes MC-1788
mobspawnsettings$builder.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 40, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 80, 1, 2)).addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 2, 1, 1));
return baseJungle(0.9F, true, false, true, mobspawnsettings$builder);
}Linked issues
is duplicated by 5
Comments 39
^ Hi five! ๐ That also annoys me, that's why I brought it up here.
If You could please just vote it up, so it's more likely it'll get noticedโฆ
Surprised this hasnโt been fixed yet. Maybe it is because the ocelot has now mostly been forgotten about since the splitting of cats from the mob.
Were you in the jungle, which is the only biome they naturally spawn in?