public class ExampleMod implements ModInitializer { private static ConfiguredFeature OVERWORLD_WOOL_ORE_CONFIGURED_FEATURE = new ConfiguredFeature (Feature.ORE, new OreFeatureConfig( OreConfiguredFeatures.STONE_ORE_REPLACEABLES, Blocks.WHITE_WOOL.getDefaultState(), 9)); // vein size public static PlacedFeature OVERWORLD_WOOL_ORE_PLACED_FEATURE = new PlacedFeature( RegistryEntry.of(OVERWORLD_WOOL_ORE_CONFIGURED_FEATURE), Arrays.asList( CountPlacementModifier.of(20), // number of veins per chunk SquarePlacementModifier.of(), // spreading horizontally HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.fixed(64)) )); // height @Override public void onInitialize() { Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier("tutorial", "overworld_wool_ore"), OVERWORLD_WOOL_ORE_CONFIGURED_FEATURE); Registry.register(BuiltinRegistries.PLACED_FEATURE, new Identifier("tutorial", "overworld_wool_ore"), OVERWORLD_WOOL_ORE_PLACED_FEATURE); BiomeModifications.addFeature(BiomeSelectors.foundInOverworld(), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, new Identifier("tutorial", "overworld_wool_ore"))); } }