A library mod for adding End and Nether biomes or structures, and for creating new biome ambience!
Also unifies different older mods' End and Nether biome generators under one system, fixes respawn dimension logic and other bugs, and offers new settings for the End and Nether.

If you're a modpack developer wanting to add Nether API to a modpack distributed outside of CurseForge or Modrinth, use File Director to avoid reuploading Nether API's files.
API Features:
Ability to add custom biome ambience!
- This is applicable to any biome, not just End or Nether biomes.
- Can have passive ambient sounds (can also be set with
BiomeAmbienceEvent). - Can have a custom darkness ambient sound (can also be set with
BiomeAmbienceEvent). - Can spawn passive particles (can also be set with
BiomeAmbienceEvent). - Can have a custom lava color (idea provided by Mellohi).
Ability to add custom End and Nether biomes!
- Can have a custom biome generation weight (can be set with
NetherAPIRegistryEvent). - Can have a custom fog color (can also be set with
NetherAPIFogColorEvent). - Can have a custom music type.
- Can have a custom surface builder, and a custom chunk populator.
- Can have custom cave carving conditions.
- Can have custom Chorus Plant, End City, and Small End Island generation conditions (End biomes only).
- Can have multiple weighted sub-biomes and edge-biomes.
Ability to add custom End and Nether structures!
- Can generate between chunks (like Nether Fortresses).
- Can have custom entity spawning properties (like Nether Fortresses).
- Can have custom generation conditions.
- All registered structures automatically work with the /locate command.
- All registered structures automatically check for other structures when generating, so they won't intersect.
New EnumPlantTypes!
- These are applied automatically by Nether API to various modded End and Nether plants and soil blocks, to let them respect other mods' "End Stone"-like or "Netherrack"-like soil blocks. This allows for new inter-compatibility between any plants and soils from different mods that use them!
PlantUtils.END_PLANT_TYPE: This PlantType is for any plants that can be planted on "End Stone"-like blocks. At runtime this is automatically applied to Vanilla's Chorus Plants.PlantUtils.NETHER_PLANT_TYPE: This PlantType is for any plants that can be planted on both "Netherrack"-like blocks and "Soul Sand"-like blocks.PlantUtils.NETHERRACK_PLANT_TYPE: This PlantType is for any plants that can be planted on "Netherrack"-like blocks.PlantUtils.SOUL_SAND_PLANT_TYPE: This PlantType is for any plants that can be planted on "Soul Sand"-like blocks. This field just set to Forge'sEnumPlantType.Nether, since they serve the same purpose.
Mod Features:
Features:
- Allows end biome mods to work together by unifying end biome generation code!
- Allows nether biome mods to work together by unifying nether biome generation code!
- Allows users to define a default "player spawn dimension" through new config settings!
- Automatically enables Forge's cascading world gen fix during End & Nether generation!
- Caves can now generate in the End's outer islands!
- Nether caves can now carve through biome top/filler blocks and soul sand (instead of only netherrack)!
- New config setting to disable the first Ender Dragon spawn. When this setting is active: an End Gateway will generate, the Ender Dragon can still be summoned using End Crystals, and the dragon egg still appears after the Ender Dragon's first death.
- The Nether can now be 256 blocks tall!
- This feature is disabled by default.
- This feature should only be enabled for new worlds (or old worlds if you reset the Nether first).
- For many mods that generate their own nether features, you'll have to adjust their configs to account for the new height. Currently all mods that Nether API adds its own support for (and do not require manual config editing) are as follows (it's also assumed that any mods using Nether API as a dependency have automatic support for this feature):
Fixes:
- Fix "initial spawn position" bugs for many dimensions (like positioning players in lava or well above the ground).
- Fix MC-10369 (Certain particles do not get spawned):
- Baby animal spawning particles.
- Ender dragon block destruction particles.
- Entity teleportation particles.
- Eye of ender placement particles.
- Fluid mixing effect particles.
- Iron golem creation particles.
- Redstone torch burnout particles.
- Snow golem creation particles.
- Wither creation particles.
- Fix MC-31681 (Fog and clouds darken when you're under any blocks).
- Perform initial spawn chunk load for the "player spawn dimension" instead of the overworld, and generate spawn positions for all respawn dimensions.
- The Ender Dragon can now longer destroy blocks with a blast resistance of obsidian (enchanting tables, ender chests, etc.). Also prevent the Ender Dragon from being able to destroy torches (as they're a part of the exit portal).
- Respawning now accounts for all of Forge's per-dimension bed spawn points instead of only the current dimension. This change alone fixes some mods (like aether beds not working if you die outside the aether), and greatly simplifies the respawn logic needed by mod developers wanting to add a dimensional respawn point.
Special Mod Compatibility:
BetterNether
- All three versions are supported (BetterNether, BetterNether: RotN Edition, and BetterNether Continuation).
- BetterNether uses a pseduo-biome generation system, this mod disables that and gives it real biomes.
- Heavily improve performance when generating features (by not causing block updates). This also fixes several cascading world generation issues.
- New config setting that allows eye vines to generate in Biomes O' Plenty's "Visceral Heap" biome.
Biomes O' Plenty
- Add config option to allow the fluids from Biomes O' Plenty that already generate in the Nether (Blood and Honey) to not vaporize in the Nether when placed through a bucket.
- Add config option to toggle world-type dependency for BOP's nether biomes, allowing them to spawn even when the world-type isn't set to "Biomes O' Plenty".
- Fix BOP dynamic trees addon creating dirt in the nether.
- Fix BOP nether bramble cascading world generation issues.
- Fix BOP nether hive cascading world generation issues.
- Fix BOP nether lava cascading world generation issues, caused by that mod copying Vanilla's code but not copying Forge's fix for it (see MC-117810).
- Prevent BOP from hiding its cascading world generation issues from the logger (lol).
- Prevent BOP from removing End and Nether fog.
Journey Into The Light
- JITL uses a pseduo-biome generation system, this mod disables that and gives it real biomes.
- Fix all of JITL's Nether cascading world generation bugs.
- Fix certain structures using bad entity ids for spawners (caused lots of log spam and broken spawners).
- Improve performance when generating JITL's Nether features (by not causing block updates).
- JITL's Nether entities now spawn only in JITL's Nether biomes instead of Vanilla's Hell biome (any can be reverted via GroovyScript):
- Hell Cow: Now only spawns in the Blood Forest & Blood Forest Edge biomes.
- Hell Serpant: Now only spawns in the Heat Sands biome.
- Hell Turtle: Now only spawns in the Heat Sands biome.
- Inferno Blaze: Now only spawns in the Blood Forest biome.
- Mini Ghast: Now only spawns in the Blood Forest biome.
- Reaper: Now only spawns in the Earthen Seep biome.
- Witherspine: Now only spawns in the Earthen Seep biome.
Natura
- Only generate Natura's Nether features in Vanilla's Hell biome, as they usually are very out of place in modded ones. Other biomes can be whitelisted via GroovyScript.
Nethercraft Classic
- Add new "Glowing Grove" biome that Nethercraft now adds all of its features into.
- Fix all of Nethercraft's cascading world generation issues.
- Fix Nethercraft's bad entity network registries (also fixes weird projectile behavior).
- More of Nethercraft's entities are now fireproof.
- Nethercraft's Dark Zombies are now summoned instead of normal zombies during
SummonAidEventwhile in the nether - Nethercraft's Slime Eggs can no longer spawn entities on the client.
NetherEx
- Add functionality for NetherEx's previously unused config values for soul sand and gravel generation.
- Fix bad structure size check, no longer causes cascading world gen when checking structure placement.
Stygian End: Biome Expansion
- All three versions are supported (Stygian End: Biome Expansion, Stygian End: Unoffical, and Stygian End Continuation).
- Chorus Plants no longer generate in Stygian End's biomes (each can be toggled via configs).
- End Cities no longer generate in Stygian End's biomes (each can be toggled via configs).
- Fix all of Stygian End's canopy cascading world generation issues (done by drastically changing how the trees generate, can be reverted via configs).
- Fix all of Stygian End's volcano cascading world generation issues.
- Stygian End's acidic plains biome features now generate only on end obsidian.
Direct contact: jbred.dev@gmail.com
This mod will not be ported
All Versions
+ Add Version- Bug Fixes:**
- NetherEx Coolmar Spider rendering bugfix from v1.5.0 now works properly.
- Compatibility Fixes and Improvements:**
- Dynamic Surroundings:
- Fix a bug where "ambience.json"-defined fog colors were not being visually applied on player join, and would only be visually applied when the player moved between blocks.
- Improve performance of biome fog color algorithm in the nether/end, by using the biome fog color already calculated by Nether API.
- Make the biome fog color transition between biomes smoother in the nether/end.
- Snow no longer accumulates on the nether roof if the biome temperature is cold enough (like the NetherEx arctic abyss bome). This happened because Dynamic Surroundings applies weather to the nether.
- Bug Fixes:**
- Fix crash while Biomes O' Plenty is not installed (fixes [#46](https://github.com/jbredwards/Nether-API/issues/46)) (this bug only affected v1.5.0 of Nether API).
- Features:**
- Allow biome ambience (including end and nether biome fog) to be changed through a new
ambience.jsonconfig file (more info [here](https://github.com/jbredwards/Nether-API/blob/1.12.2/README.md))! - Config settings:
- Many new config settings to customize end caves.
- New config settings to reload
ambience.jsonand controlambience.jsonserver sync. - New config settings to set the min/max length that nether fortress pillars can generate (suggestion from [#23](https://github.com/jbredwards/Nether-API/issues/23)). Note that each large pillar is actually made up of many 1x1 pillars. Probably best used for void worlds.
- New config settings to set the min/max y position of a nether fortress structure start (suggestion from [#23](https://github.com/jbredwards/Nether-API/issues/23)).
- New config setting to toggle the dragon griefing fix.
- New config settings to toggle [MC-10369](https://bugs.mojang.com/browse/MC/issues/MC-10369) fixes.
- Fix occasional Vanilla weather desync when traveling between dimensions. This fixes the nether fog sometimes being darker than it should be.
- Fix Vanilla dragon egg teleportation bugs:
- Fix teleporting into the air.
- Fix teleporting outside the world.
- Particles now show the actual direction the dragon egg went.
- Fix Vanilla ender teleportation bugs (with a config setting to disable):
- Prevent client-only teleportation. Fixes janky teleporting when fighting endermen or shulkers (for example).
- Prevent dead entity teleportation. Fixes annoying situations where enderman loot will be somewhere else.
- Modded fluids now have a more accurate fog color:
- If a fluid doesn't have a color set, use its block color or map color rather than white.
- New
/nether_api ambience reloadcommand the reloadsambience.jsonon the server and syncs with all clients.
- Bug Fixes:**
- Better sorting for Nether API config sub-categories.
- Don't calculate and load initial spawn chunks for non-initial spawn dimensions that permit respawning (fixes [#39](https://github.com/jbredwards/Nether-API/issues/39)).
- Due to biome registry order, it was possible for BOP or NetherEx to re-enable the Vanilla hell biome though their own default configs even if the Nether API config weight was set to was 0. This is now fixed.
- Fix biome fog color flickering when crossing between biomes.
- Fix clients referencing Vanilla's nether/end world providers instead of Nether API's if they join a server without loading a singleplayer world first. This fixes the following bugs:
- Nether/End biome fog not working on dedicated servers.
- Nether/End biome music not working on dedicated servers.
- Nether/End using overworld cave sounds (instead of none) on dedicated servers (if the biome doesn't have its own dark ambience sound).
- Probably other stuff too.
- Fix mod credits and description for prism launcher.
- Fix server lag when calculating a random respawn point with a with large spawn radius (fixes [#45](https://github.com/jbredwards/Nether-API/issues/45)).
- Fix some log output calls not using
NetherAPI.LOGGER. - Improve entity teleportation particle handling for very large distances (if distance is too large, don't render a trail).
- Improve magma block nether generation (now only replaces netherrack-like blocks or solid blocks with a material of
Material.GROUNDorMaterial.SAND). - Mark non-initial spawn dimensions as initialized during world load (fixes [#44](https://github.com/jbredwards/Nether-API/issues/44) and probably some other random things).
- The
/nether_api listcommand now only outputs to the log, since outputting to the chat made its formatting look weird.
- Compatibility Fixes and Improvements:**
- BetterNether:
- Add city structure to the
/locatecommand. - Add quartz stained glass to ore dictionary.
- Cacti blocks (agave, barrel cactus, nether cactus) now have the correct entity pathfinding type.
- Fix lucis mushroom generation having incorrect rotation (fixes part of [#24](https://github.com/jbredwards/Nether-API/issues/24)). BetterNether RotN/Continuation only, the original BetterNether does not have this issue.
- Fixes for quartz stained glass panes:
- BetterNether RotN/Continuation only, the original BetterNether does not have quartz stained glass panes.
- Add crafting recipes.
- Add models (fixes part of [#24](https://github.com/jbredwards/Nether-API/issues/24)).
- Add localization values (BetterNether RotN only).
- Add to ore dictionary.
- Prevent black apples from sometimes generating inside lava.
- Biomes O' Plenty:
- Bramble now has the correct entity pathfinding type.
- Fix BOP replacing all non-lava fluid fog colors with water.
- Fix BOP replacing the world provider's fog (if world provider fog is enabled).
- Nether API now accounts for BOP biome fog color configs for the nether/end fog color calculation.
- New config setting to allow End features added by BOP to generate without the world type set to "Biomes O' Plenty".
- Use different approach for block particle color fix, and resolve various conflicts caused by the old method (fixes [#41](https://github.com/jbredwards/Nether-API/issues/41) and [#43](https://github.com/jbredwards/Nether-API/issues/43)).
- CatServer:
- Fix crash (fixes [#40](https://github.com/jbredwards/Nether-API/issues/40)).
- NetherEx:
- Fix Coolmar Spider rendering bug.
- Ichor fluid now uses the correct map color.
- New config setting to apply different nether bricks to nether fortress based on its origin biome (false by default) (suggestion from [#23](https://github.com/jbredwards/Nether-API/issues/23)).
- New config setting to apply gloomy nether bricks to nether fortresses if its origin biome has a top block of soil sand (false by default).
- New config setting to use "frozen" entity instead of "blaze" entity for arctic abyss nether fortress (false by default) (suggestion from [#23](https://github.com/jbredwards/Nether-API/issues/23)).
- Stygian End:
- Cactus now has the correct entity pathfinding type.
- API Changes:**
- Many internal fields have either been moved to new config settings, or are now exposed through a new
api.util.NetherAPIPropertiesclass. - The API now makes use of
org.jetbrains.annotations.ApiStatusannotations. api.audio.IDarkSoundAmbience:- New
IDarkSoundAmbience.DEFAULT_CHANCE_PER_TICKfield that equals the chance used by Vanilla in modern versions. - New
IDarkSoundAmbience.DEFAULT_LIGHT_SEARCH_RADIUSfield that equals the light search radius used by Vanilla in modern versions. - New
IDarkSoundAmbience.DEFAULT_SOUND_OFFSETfield that equals the sound offset used by Vanilla in modern versions. - New static
moddedmethod that returns a newDarkSoundAmbienceinstance with custom ambience properties. - New static
vanillamethod that returns a newDarkSoundAmbienceinstance with Vanilla ambience properties. api.audio.IMusicType:- New static
moddedmethod that returns a newIMusicTypeinstance with custom music properties. - New static
vanillamethod that returns a newIMusicTypeinstance with Vanilla music properties (cannot replace current music, and is not local to the current biome). api.audio.ISoundAmbience:- New
ISoundAmbience.DEFAULT_CHANCE_PER_TICKfield that equals the chance used by Vanilla in modern versions. - New
ISoundAmbience.ofmethods. api.biome.IAmbienceBiome:- Make it easier to use this interface by offering new sub-classes.
- New sub-classes:
IAmbienceBiome.Delegate,IAmbienceBiome.Impl, andIAmbienceBiome.Mutable. api.biome.ILavaTintBiome:- Restore original
getBiomeLavaColormethod from v1.0.0 (removed in v1.3.0), now marked as "override only" and with a default implementation returning -1. - The
getBiomeLavaColormethod from v1.3.0 now has a default implementation pointing to the original method. api.biome.IMusicBiome:- New interface.
- Allows any implementing biome to have a custom
api.audio.IMusicType(regardless of the dimension!). - Extracts the music logic shared between
api.biome.INetherBiomeandapi.biome.IEndBiome, with a newgetCreativeMusicTypemethod. api.biome.INoSpawnBiome:- New
denyPlayerSpawnmethod with a default implementation returning true. api.block.IConditionalParticleColor:- New interface.
- Having your Block implement this allows it to control whether its block particles will be colored.
api.event.BiomeStructureEvent:- New class.
- Contains child event classes to offer control over traits of structures that support the events. Child events are
GetBlockID,PrepareSpawnerLogic, andPrepareSpawnList. - Currently, the only Vanilla structure that supports these events is "Fortress". It's generally recommended for modded structures registered using Nether API to use these events, but it's not required.
api.structure.IBiomeStructure:- New interface.
- Makes it much easier for
StructureStartandStructureComponent StructureComponentinstances to supportapi.event.BiomeStructureEvent. api.structure.MapGenSpawningStructure:- Internal changes to make it support
api.structure.IBiomeStructure. - Mark
MapGenSpawningStructure.spawnableCreaturesfield as "obsolete". If you want to retrieve creature spawns, use the world-sensitivegetPossibleCreaturesgetter method. If you want to add default creature spawns, use theaddSpawnableCreaturemethod. - New protected methods for ease-of-use.
api.util.InitialSpawnUtils:- New class.
- Provides some utility functions relating to initial spawn dimensions.
api.util.NetherAPIProperties:- New class.
- Exposes certain internal Nether API properties in a stable, non-changing way.
api.util.NetherGenerationUtils:- New
getEndIslandHeightValuemethod that exposesChunkGeneratorEnd.getIslandHeightValuefor other mods to use. api.util.ParticleFactoryUtils:- New class.
- Provides some utility functions relating to
IParticleFactory. api.world.IAmbienceWorldProvider:- Add 4 static utlity methods to cover all use-cases for
getAmbienceOrFallback, and mark that method as "obsolete".
- Bug Fixes:**
- Fix BOP's grass blocks missing their biome color tint when rendered outside the normal block renderer (fixes [#38](https://github.com/jbredwards/Nether-API/issues/38)).
- Compatibility Fixes and Improvements:**
- BetterNether Continuation:
- Revert (probably unintentional) change that mod made to black apple generation that let them generate in the air (fixes [#30](https://github.com/jbredwards/Nether-API/issues/30)).
- Features:**
- Add Modrinth [
updateJSON](https://docs.minecraftforge.net/en/1.12.x/gettingstarted/autoupdate/#forge-update-checker) url.
- Compatibility Fixes and Improvements:**
- Dynamic Surroundings HUD:
- Fix error while using Dynamic Surroundings v3.6.0.0 (fixes [#24 (comment)](https://github.com/jbredwards/Nether-API/issues/24#issuecomment-4536545760)) (this bug only affected v1.4.3 of Nether API).
- Bug Fixes:**
- Add description for the "betternether.moldOnMyceliumOnly" config setting.
- Fix crashes caused by the new v1.4.0 plant types (fixes [#35](https://github.com/jbredwards/Nether-API/issues/35)).
- Fix the random player spawn position check marking all spots in unloaded chunks as invalid (fixes [#34](https://github.com/jbredwards/Nether-API/issues/34)).
- Compatibility Fixes and Improvements:**
- BetterNether:
- Fix crash when player spawn dimension is set to the nether while BetterNether is installed.
- Fix eye vines carving into terrain ([#24](https://github.com/jbredwards/Nether-API/issues/24)).
- New config setting to control 3D models for red and brown mushrooms ([#24](https://github.com/jbredwards/Nether-API/issues/24)).
- Biomes O' Plenty:
- Fix BOP eyebulb block particle color.
- Bukkit:
- Fix compatibility for Forge servers running Bukkit (by funkyra in [#31](https://github.com/jbredwards/Nether-API/issues/31)).
- Dynamic Surroundings:
- Dust storm particle color in nether now matches the fog color (instead of always being a bright red).
- Fog for non-surface dimensions no longer factors daylight. In non-surface dimensions, daytime calculations aren't applicable, which resulted in the Nether and End fog colors always being much darker than they should be.
- Support boss fog thickness and dimensional fog thickness modifiers in fog range calculation ([#24](https://github.com/jbredwards/Nether-API/issues/24)).
- Support Nether API fog colors in fog color calculation.
- Natura:
- New config setting to re-enable Natura nether generation for all nether biomes ([#36](https://github.com/jbredwards/Nether-API/issues/36)).
- NetherEx:
- Add NetherEx elder mushroom plants to creative tab ([#24](https://github.com/jbredwards/Nether-API/issues/24)).
- Bug Fixes:**
- Fix critical client-world desync issue (fixes [#27](https://github.com/jbredwards/Nether-API/issues/27)).
- Fix end exit portal generation forcing a portal to exist at y=63.
- Fix possible JVM crash (for real this time) (fixes [#26](https://github.com/jbredwards/Nether-API/issues/26)).
- Bug Fixes:**
- Fix Stygian End crash (fixes [#25](https://github.com/jbredwards/Nether-API/issues/25)).
- (Maybe?) Fix possible JVM crash (fixes [#26](https://github.com/jbredwards/Nether-API/issues/26)).
- Features:**
- Add contributors to this mod's credits.
- Add pixelated mod logo in the Nether API mod list gui (I'm using the old mod logo, so I don't have to animate a logo in the mod list).
- Allow users to define a default "player spawn dimension" through new config settings.** Note that each world then saves these values, letting you have multiple worlds with different default spawn dimensions!
- Lang keys for credits and description.
- Make this mod's config gui translucent while in a world.
- Merge compatibility config categories in the gui, and remove the "(Compatibility)" text from those categories. This change does not impact the config file itself.
- New config setting to disable the first Ender Dragon spawn.** When this setting is active: an End Gateway will generate, the dragon can still be summoned using End Crystals, and the dragon egg still appears after the dragon's first death.
- New
nether_apitree command: listsubcommand: prints Nether API biome weight and structure info to the console.- New "respawn dimension" logic:**
- Each dimension can now store its own global (or generated) default spawn position.
- Fix "random spawn position" bugs for many dimensions (like positioning players in lava or well above the ground).
- Perform initial spawn chunk load for the "player spawn dimension" instead of the overworld, and generate spawn positions for all respawn dimensions.
- Respawning now accounts for all of Forge's per-dimension bed spawn points instead of only the current dimension. This change alone fixes some mods (like aether beds not working if you die outside the aether), and greatly simplifies the respawn logic needed by mod developers wanting to add a dimensional respawn point.
- Nether API compat configs will no longer appear in the config gui if its respective mod is not present.
- Remove non-functional "disable" button from Nether API in the mod list gui.
- Bug Fixes:**
- Biome ambience particles now account for the "Video Settings -> Particles" setting.
- Ensure that server-side particle spawning is not fixed by mods like Random Patches, RLMixins, and Universal Tweaks. Nether API also fixes [MC-10369](https://bugs-legacy.mojang.com/browse/MC-10369), but by individually fixing each bug mentioned in the original report. Applying a global fix causes bugs with many mods, like causing particles to be spawned twice.
- Nether caves now generate up to the actual world height instead of "actual world height minus 8".
- No longer crash if another mod outright removes the Nether or End.
- No longer generate End Cities twice within
IEndBiomebiomes (fixes the second and third parts of [#20](https://github.com/jbredwards/Nether-API/issues/20)). - No longer generate Nether Fortresses twice within
INetherBiomebiomes (fixes [#17](https://github.com/jbredwards/Nether-API/issues/17) & [#17 (comment)](https://github.com/jbredwards/Nether-API/issues/17#issuecomment-2599674676)). - Some improvements to the "tallNether" config setting tooltip, like adding Alfheim Lighting Engine to the recommended mods list.
- Sort vanilla config entries.
- Use eye pos instead of camera pos for ambience fx.
- Compatibility Fixes and Improvements:**
- BetterNether:
- Allow eye vines to be planted on the Biomes O' Plenty's flesh block (this just makes sense to me).
- Apply block flag fix to plants.
- Apply the
PlantUtilsEnumPlantTypes to all BetterNether plants and soil blocks. - BetterNether's moss plants may now also be planted on Vanilla's and Biomes O' Plenty's mycelium blocks.
- Eye vines now generate properly (fixes [#16](https://github.com/jbredwards/Nether-API/issues/16)).
- Fix crash at startup if some of the BetterNether biomes are disabled in older versions of BN (fixes [#8](https://github.com/jbredwards/Nether-API/issues/8)). (Nischhelm)
- New config setting that allows the moss plants to be planted on more than just mycelium blocks.
- New config setting that allows eye vines to generate in Biomes O' Plenty's "Visceral Heap" biome.
- Stalagnate plants now use
World.getActualHeight()(fixes [#13](https://github.com/jbredwards/Nether-API/issues/13)). - Biomes O' Plenty:
- Add config option to allow the fluids from Biomes O' Plenty that already generate in the Nether (Blood and Honey) to not vaporize in the Nether when placed through a bucket.
- Apply the
PlantUtilsEnumPlantTypes to all Biomes O' Plenty nether plants and soil blocks. - BOP grass block break particles no longer have their color tint applied. This makes them consistent with the Vanilla grass block.
- Fix BOP dynamic trees addon creating dirt in the nether.
- Dynamic Trees:
- Add new BlockRooty instances for End Stone, Netherrack, and Soul Sand. These are only used internally by a new
SpeciesPlantableclass. - Fix "subterranean" worldgen not using the actual world height.
- New abstract
SpeciesPlantablespecies class that uses Forge's EnumPlantType system, instead of dynamic trees' dirt system. This allows IBlockState-sensitive soil, and fixes some bugs in general. SpeciesPlantableis injected into the BOP Hellbark tree species at runtime (fixes the second half of [#15](https://github.com/jbredwards/Nether-API/issues/15), which also occurred without Nether API installed).- These changes are also intended to be used by future dynamic trees mod addons, or by upcoming mods that will have built-in dynamic trees support ;)
- Journey Into The Light:
- Allow the Vanilla Shrub plant to be placed on any block with a solid face. This allows Journey Into The Light to use them in its Nether generation without them breaking.
- Apply the
PlantUtilsEnumPlantTypes to all Journey Into The Light nether plants and soil blocks. - Fix a crash caused by some unknown mod reverting
MutableBlockPosfield modifiers (fixes [#4](https://github.com/jbredwards/Nether-API/issues/4) & [#19](https://github.com/jbredwards/Nether-API/issues/19)). - Fix nether leaves not dropping their saplings.
- Just Enough Dimensions:
- Allow that mod's settings to be applied to Nether API's
WorldProviders(fixes [#3](https://github.com/jbredwards/Nether-API/issues/3)). This change requires no edits to **any** JED settings! - Natura:
- Apply the
PlantUtilsEnumPlantTypes to all Natura nether plants and soil blocks. - Bloodwood trees now use
world.getActualHeight(). - Change the supported version of Natura to also allow for later versions of the mod, due to a new Natura fork... but the fork will be expected to maintain Nether API compat from their end for any changes they make.
- Only generate heat sand, nether berry bushes, and tainted soil in the Vanilla hell biome by default, as they do not fit in many modded ones.
- Prevent Natura's dynamic trees addon from generating its trees outside the Vanilla hell biome (fixes the first half of [#15](https://github.com/jbredwards/Nether-API/issues/15)).
- Nether Hexed Kingdom:
- Add config settings to control structure generation height (fixes [#2](https://github.com/jbredwards/Nether-API/issues/2)).
- Fix some cascading world generation issues (structures with 32x32 cannot be fixed though).
- Fix structure generation trying to spawn invalid entities and flooding the logger.
- Nethercraft:
- Apply the
PlantUtilsEnumPlantTypes to all Nethercraft nether plants and soil blocks. - Nether dirt farmland now also supports any
EnumPlantType.CropandEnumPlantType.Plainsplants. - Nether reeds may now also be planted on Heat Sand.
- NetherEx:
- Allow any item with the "shovel" tool type (not just ItemShovel items) to create Netherrack paths.
- Allow certain nether soil blocks from BetterNether, Biomes O' Plenty, and Journey Into The Light to be turned into Netherrack paths.
- Apply
PlantUtils.SOUL_SAND_PLANT_TYPEto the thornstalk plant. - Automatically apply all of NetherEx's biome entries to Nether API's registry (not just the default ones) (fixes [#7](https://github.com/jbredwards/Nether-API/issues/7)).
- Quark:
- Fix Quark nether fossil cascading world gen.
- Stygian End:
- Apply the
PlantUtilsEnumPlantTypes to all Stygian End plants and soil blocks. - VintageFix:
- Probably fix [#21](https://github.com/jbredwards/Nether-API/issues/21)? This fix is based only from what I can remember about the old crash log (it had something to do with a JumpInsnNode ClassCastException in TransformerMapGenCavesHell).
- Void Island Control:
- Allow that mod's settings to be applied to Nether API's generators (fixes [#14](https://github.com/jbredwards/Nether-API/issues/14)).
- Fix Void Island Control mod breaking when respawning in another dimension.
- API Changes:**
api.audio.IMusicType:- New
isBiomeLocalmethod, which allows for control over music continuing to play if the player leaves the biome it starts in (fixes the first part of [#20](https://github.com/jbredwards/Nether-API/issues/20)). api.audio.impl.VanillaMusicType:- New constructor that has
replacesCurrentMusicandisBiomeLocalboolean parameters, making that class easier to use. api.biome.INetherBiome:- New
getBossMusicTypemethod that returns the boss music that plays while players are in this biome. api.registry.INetherAPIRegistry:- New alternative
registerBiomemethod that takes in aBiomeEntry. - New
getRegistryNamemethod that returns that registry's unique id. api.util.NetherGenerationUtils:- Moved the
createSeedRandommethod fromWorldProviderTheEnd, allowing other mods to make use of it. api.util.PlantUtils:- New
PlantUtils.END_PLANT_TYPEfield. An EnumPlantType for any plants that can be planted on "End Stone"-like blocks. At runtime this is automatically applied to Vanilla's Chorus Plants. - New
PlantUtils.NETHER_PLANT_TYPEfield. An EnumPlantType for any plants that can be planted on both "Netherrack"-like blocks and "Soul Sand"-like blocks. - New
PlantUtils.NETHERRACK_PLANT_TYPEfield. An EnumPlantType for any plants that can be planted on "Netherrack"-like blocks. - New
PlantUtils.SOUL_SAND_PLANT_TYPEfield. An EnumPlantType for any plants that can be planted on "Soul Sand"-like blocks. This field just set to Forge'sEnumPlantType.Nether, since they serve the same purpose. - Some new
PlantUtilsmethods to make using EnumPlantType easier. - This class allows for new inter-compatibility between any plants and soils from different mods that use it!
- Let mod devs customize The End's obsidian platform generation.
- Features:**
- Completely rework configs (this means your old configs will no longer work, but there were only 2 settings at the time).
- Config setting to disable nether caves.
- End caves (with a config setting to disable).
- End biome api!**
- End structure api!**
- Fix [MC-10369](https://bugs.mojang.com/browse/MC-10369) *(Certain particles do not get spawned)*:
- Baby animal spawning particles.
- Ender dragon block destruction particles.
- Entity teleportation particles.
- Eye of ender placement particles.
- Fluid mixing effect particles.
- Iron golem creation particles.
- Redstone torch burnout particles.
- Snow golem creation particles.
- Wither creation particles.
- Fix [MC-31681](https://bugs.mojang.com/browse/MC-31681) *(Fog and clouds darken when you're under any blocks)*.
- The Nether can now be 256 blocks tall!**
- This is disabled by default.
- This should only be enabled for new worlds (or old worlds if you [reset the Nether](https://minecraft.wiki/w/Tutorials/Server_maintenance#Resetting_the_Nether_or_the_End) first).
- For many mods that generate their own nether features, you'll have to adjust their configs to account for the new height. Currently all mods with builtin support (and do not require manual config editing) are as follows *(it's also assumed that any mods that use Nether API as a dependency have automatic support for this feature)*:
- [BetterNether](https://www.curseforge.com/minecraft/mc-mods/betternether), [BetterNether: RotN Edition](https://www.curseforge.com/minecraft/mc-mods/betternether-rotn-edition), and [BetterNether Continuation](https://modrinth.com/mod/betternether-continuation).
- [Biomes O' Plenty](https://www.curseforge.com/minecraft/mc-mods/biomes-o-plenty).
- [Journey Into The Light](https://www.curseforge.com/minecraft/mc-mods/journey-into-the-light-mod).
- [Natura](https://www.curseforge.com/minecraft/mc-mods/natura).
- [Nethercraft Classic](https://www.curseforge.com/minecraft/mc-mods/nethercraft-classic).
- [NetherEx](https://www.curseforge.com/minecraft/mc-mods/netherex).
- Compatability Features:**
- Advanced Rocketry:
- Prevent AR from removing End and Nether fog.
- BetterNether:
- Heavily improve performance when generating features (by not causing block updates). This also fixes several cascading world generation issues.
- Biomes O' Plenty:
- Fix BOP nether bramble cascading world generation issues.
- Fix BOP nether hive cascading world generation issues.
- Prevent BOP from removing End and Nether fog.
- Journey Into The Light:
- JITL uses a pseduo-biome generation system, disable that and gives it real biomes.
- Fix *all* of JITL's Nether cascading world generation bugs.
- Fix certain structures using bad entity ids for spawners (caused lots of log spam and broken spawners).
- Improve performance when generating JITL's Nether features (by not causing block updates).
- JITL's Nether entities now spawn only in JITL's Nether biomes instead of Vanilla's Hell biome (any can be reverted via GroovyScript):
- Hell Cow: Now only spawns in the Blood Forest & Blood Forest Edge biomes.
- Hell Serpant: Now only spawns in the Heat Sands biome.
- Hell Turtle: Now only spawns in the Heat Sands biome.
- Inferno Blaze: Now only spawns in the Blood Forest biome.
- Mini Ghast: Now only spawns in the Blood Forest biome.
- Reaper: Now only spawns in the Earthen Seep biome.
- Witherspine: Now only spawns in the Earthen Seep biome.
- Natura:
- Only generate Natura's nether features in Vanilla's Hell biome, as they usually are very out of place in modded ones. Other biomes can be whitelisted via GroovyScript.
- Nethercraft Classic:
- Add new "Glowing Grove" biome that Nethercraft now adds all of its features into (instead of that mod ruining all nether biomes, like it did before).
- Fix all of Nethercraft's cascading world gen issues.
- Fix Nethercraft's bad entity network registries (also fixes weird projectile behavior).
- More of Nethercraft's entities are now fireproof.
- Nethercraft's dark zombies are now summoned instead of normal zombies during
SummonAidEventwhile in the nether. - Nethercraft's slime eggs can no longer spawn entities on the client.
- "Un-hardcode" Nethercraft's ore gen settings (can be changed by using GroovyScript).
- Stygian End:
- Chorus Plants no longer generate in Stygian End's biomes (each can be toggled via configs).
- End Cities no longer generate in Stygian End's biomes (each can be toggled via configs).
- Fix *all* of Stygian End's canopy cascading world generation issues (done by drastically changing how the trees generate, can be reverted via configs).
- Fix *all* of Stygian End's volcano cascading world generation issues.
- Stygian End's acidic plains biome features now generate only on end obsidian.
- Technical Changes:**
- Biome ambience can now be controled using the new
BiomeAmbienceEvent. - Clear registries the line before their respective
NetherAPIRegistryEventare called, instead of duringFMLServerStoppingEvent. - End exit portal, gateway, and pillar structures are now mutable and can be changed (handled via
WorldProviderTheEnd). - Heavily* improve the structure handler api.
ILavaTintBiomenow takes in a block pos.- Invoke
NetherAPIRegistryEventevents during the initialization of their respective world providers, instead of duringFMLServerStartingEvent. - Move to RFG.
- Nether & End biome fog color can be controled using the new
NetherAPIFogColorEvent. NetherAPIRegistryEvent's constructor now takes in aWorldinstance, instead of aMinecraftServerinstance.- New
IEndBiomeinterface, having your end biome classes implement this is heavily recommended but not required. - New
INoSpawnBiomeinterface, players cannot randomly spawn into biomes that implement this. - Register dimension type classes during
FMLServerAboutToStartevent, instead ofFMLServerStartingEvent. - Structure handlers can now be removed from registries by using their string names.
- Structures using this mod's structure api can now make use of
INetherAPIChunkGenerators. - The
/locatecommand can now work with anyINetherAPIRegistryinstance.
- Bug Fixes:**
- Biome ambient sounds used to play while the game is paused, this has been fixed and is no longer the case.
- Biome ambient sounds used to play while the player is dead, this has been fixed and is no longer the case.
- When the sound handler gets overloaded, the continuous ambient biome sounds used to sometimes stop and not resume, this has been fixed and is no longer the case.
- Features:**
- New
IAmbienceWorldProviderinterface IAmbienceBiomemethods are all now nullable, and some are no longer client-side only- Nether biomes no longer play overworld cave sounds by default
- Changed the default nether biome fog color to the one used by Vanilla's Nether Wastes biome in 1.16
- Bug Fixes:**
- Fix crash when removing looping ambient sound as a result of moving between biomes
- Fix all bad biome coords checks for biome ambience
- Fix black nether biome fog
- Features:**
- New
INetherAPIRegistryListenerinterface - ARR license
- Bug Fixes:**
- Added compatibility for BetterNether Continuation v0.1.9.6
- Improved compatibility with BetterNether's configs
- Bug Fixes:**
- Fix possible conflict involving Mixins ([issue#1](https://github.com/jbredwards/Nether-API/issues/1))

