Robin Roloff Posted January 11, 2024 Posted January 11, 2024 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? Quote
Robin Roloff Posted January 14, 2024 Author Posted January 14, 2024 On 1/11/2024 at 7: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? Expand bump Quote
InvictusSlayer Posted January 18, 2024 Posted January 18, 2024 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! Quote
Robin Roloff Posted January 19, 2024 Author Posted January 19, 2024 On 1/18/2024 at 11:52 PM, 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! Expand 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 Quote
Robin Roloff Posted January 27, 2024 Author Posted January 27, 2024 On 1/19/2024 at 4: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 Expand 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. Quote
InvictusSlayer Posted January 27, 2024 Posted January 27, 2024 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. Quote
Robin Roloff Posted January 27, 2024 Author Posted January 27, 2024 On 1/27/2024 at 3: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. Expand Thank you very much! I'm really desperate right now Quote
vemerion Posted January 27, 2024 Posted January 27, 2024 On 1/27/2024 at 11:04 AM, Robin Roloff said: Does anybody know what's wrong? Expand 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? Quote
Robin Roloff Posted January 27, 2024 Author Posted January 27, 2024 On 1/27/2024 at 5:28 PM, 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? Expand No, it has a lot of grass Quote
Robin Roloff Posted January 31, 2024 Author Posted January 31, 2024 On 1/27/2024 at 3: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. Expand hey, do you have an update? Quote
InvictusSlayer Posted February 2, 2024 Posted February 2, 2024 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. Quote
Robin Roloff Posted February 2, 2024 Author Posted February 2, 2024 On 2/2/2024 at 1:33 AM, 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. Expand Just tested it... and it works! Thank you so much, you really saved me Quote
Recommended Posts
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.