Skip to content

Biome Spawners

BiomesAPI provides a built-in system for customizing mob spawns inside custom biomes. BiomeSpawners inform the server what mobs to spawn, how many, how likely, and how many concurrently can spawn.

Java
import me.outspending.biomesapi.biome.CustomBiome;
import me.outspending.biomesapi.registry.ResourceKey;
import me.outspending.biomesapi.wrapper.BiomeSettings;
import me.outspending.biomesapi.wrapper.entity.BiomeSpawner;
import me.outspending.biomesapi.wrapper.entity.MobCategory;
import me.outspending.biomesapi.wrapper.entity.data.NaturalSpawner;
import org.bukkit.entity.EntityType;
import org.bukkit.plugin.java.JavaPlugin;

public class ExamplePlugin extends JavaPlugin {
  @Override
  public void onEnable() {
      // A biome that will only ever spawn large quantities of pigs.
      BiomeSpawner spawner = BiomeSpawner.builder()
          .setCreatureGenerationProbability(0.1f)
          .addSpawner(MobCategory.CREATURE, 100, NaturalSpawner.of(EntityType.PIG, 4, 12))
          .build();

      CustomBiome.builder()
          .resourceKey(ResourceKey.of("test", "custombiome"))
          .settings(BiomeSettings.defaultSettings())
          .waterColor("#F5F2EB")
          .grassColor("#DBE9EC")
          .setSpawner(spawner)
          .register();
  }
}

Setting charge lower and energyBudget higher allows more of a specific mob to spawn concurrently.

ExamplePlugin.java Java
import me.outspending.biomesapi.biome.CustomBiome;
import me.outspending.biomesapi.registry.ResourceKey;
import me.outspending.biomesapi.wrapper.BiomeSettings;
import me.outspending.biomesapi.wrapper.entity.BiomeSpawner;
import me.outspending.biomesapi.wrapper.entity.MobCategory;
import me.outspending.biomesapi.wrapper.entity.data.NaturalSpawner;
import org.bukkit.entity.EntityType;
import org.bukkit.plugin.java.JavaPlugin;

public class ExamplePlugin extends JavaPlugin {
  @Override
  public void onEnable() {
      BiomeSpawner spawner = BiomeSpawner.builder()
          .setCreatureGenerationProbability(0.1f)
          .addSpawner(MobCategory.CREATURE, 100, NaturalSpawner.of(EntityType.PIG, 4, 12))
          .addSpawner(MobCategory.CREATURE, 100, NaturalSpawner.of(EntityType.COW, 4, 12))
          // Allows cows to spawn faster in this biome.
          .addMobSpawnCost(EntityType.COW, SpawnCost.of(25, 100))
          .build();

      CustomBiome.builder()
          .resourceKey(ResourceKey.of("test", "custombiome"))
          .settings(BiomeSettings.defaultSettings())
          .waterColor("#F5F2EB")
          .grassColor("#DBE9EC")
          .setSpawner(spawner)
          .register();
  }
}