Skip to content

Biome Spawners

Wyck 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 dev.wyck.model.biome.CustomBiome;
import dev.wyck.keys.ResourceKey;
import dev.wyck.wrapper.entity.BiomeSpawner;
import dev.wyck.wrapper.entity.MobCategory;
import dev.wyck.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()
          .creatureGenerationProbability(0.1f)
          .spawner(MobCategory.CREATURE, 100, NaturalSpawner.of(EntityType.PIG, 4, 12))
          .build();

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

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

ExamplePlugin.java Java
import dev.wyck.model.biome.CustomBiome;
import dev.wyck.keys.ResourceKey;
import dev.wyck.wrapper.entity.BiomeSpawner;
import dev.wyck.wrapper.entity.MobCategory;
import dev.wyck.wrapper.entity.data.NaturalSpawner;
import dev.wyck.wrapper.entity.data.SpawnCost;
import org.bukkit.entity.EntityType;
import org.bukkit.plugin.java.JavaPlugin;

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

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