Posted January 11, 20241 yr Hello, I created a mod with a custom biome and custom entities. https://github.com/robinroloff/alpinemod/ I want these entities (in this case alpinechicken) to spawn in my custom biome (alpinemod:alps_valley) However, when I add it using my biome modifier, it doesn't work. Currently in the forge/biome_modifiers/alpinechicken.json, the biome is set to minecraft:plains and that works, but if I change it to my custom biome, it doesn't work. I can, however, add mobs that are not from my mod. Meaning that normal cows, chicken etc. spawn. It really doesn't make sense to me, does anyone else know?
January 14, 20241 yr Author On 1/11/2024 at 8:18 PM, Robin Roloff said: Hello, I created a mod with a custom biome and custom entities. https://github.com/robinroloff/alpinemod/ I want these entities (in this case alpinechicken) to spawn in my custom biome (alpinemod:alps_valley) However, when I add it using my biome modifier, it doesn't work. Currently in the forge/biome_modifiers/alpinechicken.json, the biome is set to minecraft:plains and that works, but if I change it to my custom biome, it doesn't work. I can, however, add mobs that are not from my mod. Meaning that normal cows, chicken etc. spawn. It really doesn't make sense to me, does anyone else know? bump
January 18, 20241 yr If you're adding mobs to your own biomes its better to add them in that biomes .json file rather than adding via the biome modifier (It probably doesn't work because of the order in which forge will load modded biomes vs biome modifiers but I'm not sure). The easiest solution should be to add the mob to the `MobSpawnSettings.Builder` when bootstrapping the biome here: https://github.com/robinroloff/alpinemod/blob/master/src/main/java/de/robin/alpine/worldgen/biome/AlpineBiomes.java Hope this helps!
January 19, 20241 yr Author 16 hours ago, InvictusSlayer said: If you're adding mobs to your own biomes its better to add them in that biomes .json file rather than adding via the biome modifier (It probably doesn't work because of the order in which forge will load modded biomes vs biome modifiers but I'm not sure). The easiest solution should be to add the mob to the `MobSpawnSettings.Builder` when bootstrapping the biome here: https://github.com/robinroloff/alpinemod/blob/master/src/main/java/de/robin/alpine/worldgen/biome/AlpineBiomes.java Hope this helps! I have tried that as well, it didn't work either. The biome modifier definitely works, as I said other mobs working using the same method and e.g. adding worldgen features also work. I'm starting to believe this is a bug with forge/terrablender
January 27, 20241 yr Author On 1/19/2024 at 5:37 PM, Robin Roloff said: I have tried that as well, it didn't work either. The biome modifier definitely works, as I said other mobs working using the same method and e.g. adding worldgen features also work. I'm starting to believe this is a bug with forge/terrablender Sorry, have to bump this again. Does anybody know what's wrong? If it's actually a bug with forge or terrablender, I'm gonna have to write a bug report, but I want to confirm it first.
January 27, 20241 yr I'm confident it's not terrablender as I am a frequent user and have never encountered an issue like this. I'll test out your code to see if I can find the root of the problem.
January 27, 20241 yr Author 4 minutes ago, InvictusSlayer said: I'm confident it's not terrablender as I am a frequent user and have never encountered an issue like this. I'll test out your code to see if I can find the root of the problem. Thank you very much! I'm really desperate right now
January 27, 20241 yr 6 hours ago, Robin Roloff said: Does anybody know what's wrong? They will only spawn on grass blocks because of the ANIMALS_SPAWNABLE_ON block tag. So if your biome does not have grass blocks then they won't spawn. Could this be the problem?
January 27, 20241 yr Author 7 minutes ago, vemerion said: They will only spawn on grass blocks because of the ANIMALS_SPAWNABLE_ON block tag. So if your biome does not have grass blocks then they won't spawn. Could this be the problem? No, it has a lot of grass
January 31, 20241 yr Author On 1/27/2024 at 4:26 PM, InvictusSlayer said: I'm confident it's not terrablender as I am a frequent user and have never encountered an issue like this. I'll test out your code to see if I can find the root of the problem. hey, do you have an update?
February 2, 20241 yr The problem seems to be with the `VanillaParameterOverlayBuilder` (so you are right there is a bug with TerraBlender). However there is an easy fix which also runs marginally faster which is to use the "Consumer.accept()" method to add your custom biomes. @Override public void addBiomes(Registry<Biome> registry, Consumer<Pair<Climate.ParameterPoint, ResourceKey<Biome>>> mapper) { biome(mapper, AlpineBiomes.ALPS, Temperature.FROZEN.parameter(), Humidity.HUMID.parameter(), Continentalness.FAR_INLAND.parameter(), Erosion.EROSION_0.parameter(), Weirdness.FULL_RANGE.parameter()); biome(mapper, AlpineBiomes.ALPS_VALLEY, Temperature.NEUTRAL.parameter(), Humidity.NEUTRAL.parameter(), Continentalness.FAR_INLAND.parameter(), Climate.Parameter.span(0.5F, 1F), Climate.Parameter.span(-0.35F, 0.35F)); } private void biome(Consumer<Pair<Climate.ParameterPoint, ResourceKey<Biome>>> mapper, ResourceKey<Biome> biome, Climate.Parameter temperature, Climate.Parameter humidity, Climate.Parameter continentalness, Climate.Parameter erosion, Climate.Parameter weirdness) { mapper.accept(Pair.of(Climate.parameters(temperature, humidity, continentalness, erosion, Depth.FLOOR.parameter(), weirdness, 0F), biome)); mapper.accept(Pair.of(Climate.parameters(temperature, humidity, continentalness, erosion, Depth.SURFACE.parameter(), weirdness, 0F), biome)); } Here's an example I made from your code which runs fine but feel free to manipulate this however you wish.
February 2, 20241 yr Author 13 hours ago, InvictusSlayer said: The problem seems to be with the `VanillaParameterOverlayBuilder` (so you are right there is a bug with TerraBlender). However there is an easy fix which also runs marginally faster which is to use the "Consumer.accept()" method to add your custom biomes. @Override public void addBiomes(Registry<Biome> registry, Consumer<Pair<Climate.ParameterPoint, ResourceKey<Biome>>> mapper) { biome(mapper, AlpineBiomes.ALPS, Temperature.FROZEN.parameter(), Humidity.HUMID.parameter(), Continentalness.FAR_INLAND.parameter(), Erosion.EROSION_0.parameter(), Weirdness.FULL_RANGE.parameter()); biome(mapper, AlpineBiomes.ALPS_VALLEY, Temperature.NEUTRAL.parameter(), Humidity.NEUTRAL.parameter(), Continentalness.FAR_INLAND.parameter(), Climate.Parameter.span(0.5F, 1F), Climate.Parameter.span(-0.35F, 0.35F)); } private void biome(Consumer<Pair<Climate.ParameterPoint, ResourceKey<Biome>>> mapper, ResourceKey<Biome> biome, Climate.Parameter temperature, Climate.Parameter humidity, Climate.Parameter continentalness, Climate.Parameter erosion, Climate.Parameter weirdness) { mapper.accept(Pair.of(Climate.parameters(temperature, humidity, continentalness, erosion, Depth.FLOOR.parameter(), weirdness, 0F), biome)); mapper.accept(Pair.of(Climate.parameters(temperature, humidity, continentalness, erosion, Depth.SURFACE.parameter(), weirdness, 0F), biome)); } Here's an example I made from your code which runs fine but feel free to manipulate this however you wish. Just tested it... and it works! Thank you so much, you really saved me
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.