If Bucyruss happens to come back and wish this to be unlocked, then message me or any other moderator/admin who has the power to do so.
This mod allows alteration to Minecraft’s biome and terrain generation controls/algorithms. This includes, but is not limited to, altering physical terrain generation, biome size/types, ore deposits, surface material generation, block replacement/manipulation, removal/insertion of block (types) and characteristics, custom trees, bug fixes to original Minecraft terrain code, and the introduction of new biome/terrain features.
From the author
First of all, I want to thank everyone for all the support that I have gotten for this mod. There have been tons of great ideas and suggestions; most of which I want to implement. I encourage everyone to keep the ideas coming and I’ll do my best to get them implemented into the game through this mod. You can check my to-do lists at the bottom of this thread to see what has been suggested and that I plan on trying to implement.
Second, while I do enjoy working on this mod, I am only human and have a rather busy personal and professional life. I do my best to keep the updates coming and making sure they work properly, but there will always be periods where updates will be slow and few simply because I don’t have the time to always work on this mod.
I’m really excited that so many people like this mod and feel that it’s made Minecraft even more fun to play. I hope I can keep improving this mod to keep making Minecraft even more fun and exciting to play. Enjoy :smile.gif:
Disclaimer: Read the entire post before using this mod, especially if you have never used it before or if you are updating from pre-v10.0. Always be sure to create backups of your world(s) if you do not want to risk losing them or have them unintentionally modified by accident.
Installation Instructions Important! This mod is not intended for the browser version of the game.
BiomeTerrain Mod works the same way as Risugami’s and 303’s mod loaders. All class files that begin with BiomeTerrain_ are option files. Add/Use the ones that you want.
Single Player Windows:
1) Download the single player version of this mod.
2) Open/Extract the mod’s .rar file with WinRAR.
3) Browse/Open you appdata folder (Go to Start -> Run, and type in %appdata%).
4) Browse to .minecraft/bin.
5) Open up minecraft.jar with WinRAR.
6) Drag and drop the necessary/desired* files into the jar from the mod files.
7) Delete the META-INF folder in the jar.
8) Close WinRAR.
9) Run Minecraft.
*File beginning with "BiomeTerrain_" are optional and may be added/removed as you want as they all function independently of one another. The one exception is that if you use the TreeMod you will have to includes the Trees folder as well as the TreeGenerator, Shrub, Tumbleweed classes as well (until I fix their inclusion).
1) Place the SMP mod jar in the same folder as minecraft_server.jar.
2) Run the minecraft server with the following command line:
java -Xmx1024M -Xms1024M -cp BiomeTerrainMod_SMP_v11_2.jar;minecraft_server.jar net.minecraft.server.MinecraftServer
Important! If you are using linux (or mac?) then replace the ";" with ":"
Supported mod plugins
Using the mod
1) You can either download the BiomeTerrainModSettings.ini file or let the mod generate a default one when you create a new world. If you let the mod generate a settings file, then it will contain settings for only the mods that you have loaded.
2) If you download the settings file, then you need to place it in your minecraft folder where your options.txt (ops.txt for SMP) file is located.
3) Open BiomeTerrainModSettings.ini and change the values for settings that you want to alter in the game.
4) When you create a new world, the mod will make a copy of BiomeTerrainModSettings.ini and place it in the world’s save folder. Edit this copy if you want to alter your world after creation.
BiomeTerrain Worlds and Settings
There is a thread that has been started of people posting screenshots of their world(s) and the settings used to create them. I would suggest going here to share settings for different worlds. Here is the link to it.
You can also check out this thread that has really good explanations of the various terrain settings and how to generate different types of biomes and terrains.
All Biome Settings biomeSize:1.5
Modifies the size of biomes. Larger values will generate larger biomes and smaller values will generate smaller biomes. This settings affects the average dimension of biomes on a linear scale, so every doubling of this value will quadruple the area of biomes.
Sets the minimum and maximum moisture of the world.
Sets the minimum and maximum temperature of the world.
Setting this value to a larger number will make snow and/or ice more common and a smaller number will make snow and/or ice less common. Values should be between -1 and 1.
Swamp Biome Settings muddySwamps:false
Places a strip of mud or clay (size is dependent on the swampSize setting below) around the edge and below surface water. This will only occur in swampland biomes. Thw muddySwamp setting takes priority over the claySwamps setting.
Adjusts how many blocks mud/clay extends from the edge of water for when either the muddySwamps or claySwamps options are turned on.
Desert Biome Settings waterlessDeserts:false
Will remove all water from desert and ice desert biomes.
Will remove all dirt from the surface of deserts. This setting was introduced because changing some terrain generation settings will cause dirt to erroneously appear on the surface of desert biomes.
Will turn on the ability to let dirt appear on the surface. This setting occurs after removeSurfaceDirtFromDesert so turning both on will cause dirt to appear in your desert biomes.
Sets the frequency at which dirt will appear in the desert. The setting corresponds to the average number of chunks before a dirt block will appear. Example: setting desertDirtFrequency:100 means that, on average, you will encounter one dirt block every 100 chunks in the game.
Cave Settings caveRarity:7
This controls the odds that a given chunk will host a single cave and/or the start of a cave system.
The number of times the cave generation algorithm will attempt to create single caves and cave systems in the given chunk. This value is larger because the likelihood for the cave generation algorithm to bailout is fairly high and it is used in a randomizer that trends towards lower random numbers. With an input of 40 (default) the randomizer will result in an average random result of 5 to 6. This can be turned off by setting the "even cave distribution" setting (below) to true.
Setting this to true will turn off the randomizer for cave frequency (above). Do note that if you turn this on you will probably want to adjust the cave frequency down to avoid long load times at world creation.
Sets the minimum and maximum altitudes at which caves will be generated. These values are used in a randomizer that trends towards lower numbers so that caves become more frequent the closer you get to the bottom of the map. Setting even cave distribution (above) to true will turn off this randomizer and use a flat random number generator that will create an even density of caves at all altitudes.
The odds that the cave generation algorithm will generate a single cavern without an accompanying cave system. Note that whenever the algorithm generates an individual cave it will also attempt to generate a pocket of cave systems in the vicinity (no guarantee of connection or that the cave system will actually be created).
The number of times the algorithm will attempt to start a cave system in a given chunk per cycle of the cave generation algorithm (see cave frequency setting above). Note that setting this value too high with an accompanying high cave frequency value can cause extremely long world generation time.
This can be set to create an additional chance that a cave system pocket (a higher than normal density of cave systems) being started in a given chunk. Normally, a cave pocket will only be attempted if an individual cave is generated, but this will allow more cave pockets to be generated in addition to the individual cave trigger.
The minimum and maximum size that a cave system pocket can be. This modifies/overrides the cave system frequency setting (above) when triggered.
Dungeon Settings dungeonRarity:100
Sets the creation variables for dungeons (See explanation of material spawning variables near bottom)
Lava Pool Settings lavaLevelMin:0
Sets the minimum and maximum levels at which lava pools can form in caves.
Cloud Mod (SSP only)
Cloud Settings cloud2DHeight:120.0
Adjusts the altitude at which 2D clouds occur. I never saw these in the game, but they are in the class so I went ahead and added the option to change their altitude just in case.
Adjusts the altitude at which 3D clouds occur.
Adjusts the thickness of 3D clouds.
Above Ground Settings <x>DepositRarity:rarity_Int
These settings adjust the creation variables for above ground items. To save on space I just posted a generic representation of the settings for this section. <x> can be flower, rose, brownMushroom, redMushroom, reed, or pumpkin. See the settings file for all settings and see the explanation of material spawning variables near the bottom for more detail on what rarity, frequency, and min/max altitudes do.
Above/Below Ground Settings evenWaterSourceDistribution:false
Changes the water source spawning algorithm to a flat distribution. Normally, water sources are distributed with a higher frequency toward the bottom of the map.
Sets the creation variables for water sources (See explanation of material spawning variables near bottom)
Changes the lava source spawning algorithm to a flat distribution. Normally, lava sources are distributed with a much higher frequency toward the bottom of the map.
Sets the creation variables for lava sources (See explanation of material spawning variables near bottom)
Below Ground Settings <x>DepositRarity<n>:rarity_Int
These settings adjust the creation variables for underground items. To save on space I just posted a generic representation of the settings for this section. <x> can be dirt, gravel, clay, coal, iron, gold, redstone, or diamond. There’s four sets of these settings for each ore type <x>. So <n> can be 1, 2, 3, or 4. See the settings file for all settings and see the explanation of material spawning variables near the bottom for more detail on what rarity, frequency, size, and min/max altitudes do.
Hell Settings <x>DepositRarity<n>:rarity_Int
These settings adjust the creation variables for underground items. To save on space I just posted a generic representation of the settings for this section. <x> can be lava source, fire, lightstone, brown mushroom, or redmushroom. See the settings file for all settings and see the explanation of material spawning variables near the bottom for more detail on what rarity, frequency, size, and min/max altitudes do.
Terrain Settings waterLevel:64
Sets the water level of the world.
If this value is greater than 0, then it will affect how much, on average, the terrain will rise before leveling off when it begins to increase in elevation. If the value is less than 0, then it will cause the terrain to either increase to a lower height before leveling out or decrease in height if the value is a large enough negative.
If this value is greater than 0, then it will affect how much, on average, the terrain (usually at the bottom of the ocean) will fall before leveling off when it begins to decrease in elevation. If the value is less than 0, then it will cause the terrain to either fall to a lesser depth before leveling out or increase in height if the value is a large enough negative.
Can increase (values greater than 0) or decrease (values less than 0) how much the landscape is fractured horizontally. If you want to use settings from BiomeTerrain Mod v9.1 or earlier, then you will need to do a conversion (See v9.1 and earlier to v10.0 and greater conversion section near bottom).
Can increase (values greater than 0) or decrease (values less than 0) how much the landscape is fractured vertically. Positive values will lead to large cliffs/overhangs, floating islands, and/or a cavern world depending on other settings. If you want to use settings from BiomeTerrain Mod v9.1 or earlier, then you will need to do a conversion (See v9.1 and earlier to v10.0 and greater conversion section near bottom).
Hard to explain, but think of these as terrain chaos settings. The larger the values the more chaotic/volatile landscape generation becomes. Setting the values to negative will have the opposite effect and make landscape generation calmer/gentler. If you want to use settings from BiomeTerrain Mod v9.1 or earlier, then you will need to do a conversion (See v9.1 and earlier to v10.0 and greater conversion section near bottom).
Adjust the weight of the corresponding volatility settings. This allows you to change how prevalent you want either of the volatility settings to be in the terrain. Values should be between 0 and 1 and sum to some number equal to or less than 1. An example would be to set volatility1 to something high and volatility2 to some negative number. Then adjust volatilityWeight1 to a small number (say 0.1) and volatilityWeight2 to a larger number (0.85). This should result is mostly calm/flat landscape with the occasional chunk of terrain floating or jutting into the air.
Bedrock Settings disableBedrock:false
Removes the bedrock form the bottom of the map.
Turns the bedrock layer into a single, flat layer one block thick.
Turns all bedrock into Obsidian
Replace Block Mod
Replace Settings removeSurfaceStone:false
Attempts to replace all surface stone with its nearest non-stone neighbor block type (dirt, grass, sand, gravel, or clay). If it cannot find a suitable neighbor block to duplicate, then it will default to sand in Desert biome types and Grass in all others.
This is experimental and not completed yet, but it aims to be a universal, real-time block replacement option where you can type the above format, substituting <block_A_name> and <block_B_name> with actual block/material names, to replace all generated blocks of type A with those of type B. Currently this only works on normal terrain blocks (e.g. dirt, grass, sand, stone, gravel, ice, water, lava, air, etc... and not things like ores, trees, flowers, cacti, etc....).
(You can type out as many of these as you want in the settings file. The list of block names can be found here)
Tree Settings biomeTrees:false
Enabled the use of custom, biome specific trees in place of the standard Minecraft trees.
Sets the global, starting tree density for all biomes. Increasing the value increases the density of trees in all biomes.
Sets the tree density in each biome individually. Large negative values are used to prevent trees from spawning at all.
These settings adjust the creation variables for cacti. See the settings file for all settings and see the explanation of material spawning variables near the bottom for more detail on what rarity, frequency, size, and min/max altitudes do.
Underground Lake Mod
Underground Lake Settings undergroundLakes:false
Enables underground lakes.
Allows underground lakes to spawn in the air.
These settings adjust the creation variables for underground lakes. See the settings file for all settings and see the explanation of material spawning variables near the bottom for more detail on what rarity, frequency, size, and min/max altitudes do.
-Erroneous mud/clay along chunk boundaries with muddy/clay swamp option on
-Trees get truncated at the top of the world (Should not occur for biome trees)
-Setting lava pool max level above 20 causes buffer overflow in SMP
-Underground lakes are spawning in trees. Needs investigation/testing.
-Create a GUI for changing settings to prevent user error from editing the text file
-Oasis in deserts (may can be emulated with below biome specific biome size option)
-Delete small, floating masses based on user specification (can be done, but will take some time to get it right)
-Erosion to replace blocks with n air/non-air neighbors
-Accretion to replace air blocks with n air/non-air neighbors with non-air blocks
-Prevent surface lava for biomes/areas with greater than n tree density
-Add more tree types and allow selection of tree types per biome
-Option for sink holes (maybe an option within the cave code)
-Cobblestone ruins (implement same way as trees)
-Turn top layer of stone to clay that borders other materials. Add deposit size as well
-Add more cave manipulation options
-New biomes or means to alter existing biomes (percentage possibility to convert one or more biomes to a new biome type?)
-New biome suggestions: stone desert, obsidian desert, nether portal zone (with portal)
-Add natural portals
-Hell on earth option
-Ability to balance extreme landscapes with normal landscape? Look at volatility balance possibilities for fracture settings
-Create a new mud block for muddy swamps
-Create a new permafrost block
-Add variable to adjust how far water/lava can flow
-Add more min/max moisture/temperature settings to allow finer detail at altering biomes
-Muddy+Clay swamp option
-Filter out flowers for cold biomes
-Replace grass/dirt with snow in cold/snowy biomes
-New volcano/lava field biome
-Change leaves to lightstone (optional if I can't get replace block n with block m working)
-Look at the dungeon class to alter bail out parameters
-Add hard cutoff for terrain generation.
-Add rarity multiplier to add more precision to deposit generation
-Tree line variable to stop trees from generating above a certain altitude
-Modify underground lakes to generate only ponds/lakes at ground level
-Ability to allow the setting values to change as new terrain is generated in order to create dynamic landscapes
-Add size setting to all deposits/materials that do not have this setting yet
-Lava level for hell
-Terrain generation settings for hell
-Modification of the cloud algorithm to generate fog. Perhaps change cloud formation/behavior as well. (link)
-Lit underground caverns (using lightstone) with grass
New Features to Investigate
-Modify height limit (this is a tough one and may never get done)
-Investigate better floating islands (Worked on it and implemented the fractured variables, but not sure if that gets us there). Probably need to modify the perlin noise algorithm Notch uses.
-Investigate the lower levels of the terrain algorithm for better settings placements.
-Ability to update existing chunks with new settings.
-Real-time water level changing.
-Generating rivers (and erosion)
-Look into adding settings to vary biome size by biome type.
-Enable terraforming in Hell.
-Remove sandy beaches
-Change size of initial map generation (Found how, but it's in Minecraft.class. Not sure if a workaround is possible)
The number of times, per chunk, that the game will try to make a deposit.
The odds (out of 100) that the game will actually make a deposit.
The size variable for the deposit.
The minimum altitude at which deposits will occur.
The maximum altitude at which deposits will occur.
Setting conversions from v9.1 and earlier to v10.0 and later
If the value is 1 or higher, subtract 1.
If the value is between 0 and 1 then divide -1 by the value and add 1.
n = v9.1 value
if (n >= 1)
n = n - 1
if (n > 0 && n < 1)
n = -1/n + 1
I believe you only have to adjust this for values greater than 0. Any values of 1 or greater were reduced down to 0.999 in v9.1 and earlier.
If the value is greater than 0 and less than 1, then subtract the value from 1 and take the inverse.
n = v9.1 value
if (n > 0 && n < 1)
n = 1/(1-n)
If you have questions about these conversions, then please let me know
Chart of how biomes correspond to temperature and moisture values.
Drakona for making a plugin for his MarbleMod.
Wickity for several of the ideas in this mod and code that got me started.
Cadde for her ore mod that inspired my ore settings.
Chuck for the pine tree generator code that acted as the base for my tree generator code.
CodeWarrior for pointing out a correction in the block placement.
DataNalle for keeping up with providing the Dataorb mirrors.
(If I forgot you, please send a nasty PM saying so)
Biome Mod v1a - Use of a field on options.txt to modify biome size
Biome Mod v2a - Use of a biome settings file to modify biome size (unique to each world)
Biome Mod v3a - Added ability to change moisture and temperature
Biome Mod v3.1a - Fixed to work with update from 11/5
Biome Mod v3.2a - Fixed snow in inappropriate biome problem
BiomeTerrain Mod v4 - Added water level, average max height/depth, volatility parameters, tree densities, waterless deserts (thanks Wickity), and desert dirt
BiomeTerrain Mod v5 - Added alternate ore distribution and underground lakes from Cadde's mod. Fixed volatility weights
BiomeTerrain Mod v6 - Added flat and guaranteed bedrock from Cadde's mod and biome trees from Wickity's mod (semi-temporary until I get some time to make my own biome tree mod)
BiomeTerrain Mod v6.1 - Updated to work with 1.2.2
BiomeTerrain Mod v6.2 - Recompiled with JDK1.5, fixed a minor error with the desertDirt setting, and removed support for ice deserts due to a conflict in the biome class
BiomeTerrain Mod v7 - Added grass/dirt -> sand for deserts, muddy swamps, muddy swamp size, convert bedrock to obsidian, landscape fracturing, and underground resource controls (inspired by Cadde's mod)
BiomeTerrain Mod v8 - Added Drakona Marble Mod support, clay swamps, remove surface stone, replace all water with lava
BiomeTerrain Mod v8.1 - Fixed biomeTrees not working and added an option to remove bedrock
BiomeTerrain Mod v9 - Added snow and ice threshold settings, replace ice with lava, min and max lava formation levels, rewrote the underground lake code and added settings for it, global and desert cacti densities, spawning settings for flowers, mushrooms, reeds, pumpkins, cacti, and water and lava sources.
BiomeTerrain Mod v9.1 - Fixed cactus generation, fixed clay swamps, added first revision of savanna trees.
BiomeTerrain Mod v10 – Complete rewrite of the mod, added SMP support, add clay and dungeon spawning settings, saplings can grown into biome trees, underground lakes in air option, ice biome added back, and fixed error with block placement, spawning location, underground lakes in air, missing deposit settings, missing lava pool section in setting file, players spawning underground (hopefully), ice desert missing from nearest neighbor algorithm, water/lava sources not updating.
BiomeTerrain Mod v10.1 - Updated to work with client 1.2.3 _01 and server 0.2.5.
BiomeTerrain Mod v10.2 - Biome tree truncation at top of world fixed (hopefully), waterless desert confirmed working, fixed SSP not updating biome sizes, additional checks against altitude conflicts
BiomeTerrain Mod v11.0 - Updated to work with client 1.2.4_x and esrver 0.2.6_x. Fixes missing ice desert biome, added replace block, hell deposits, cloud height/thickness, some cave options, and plugin to Shockah's mod loader.
BiomeTerrain Mod v11.1 - Fixed an error that was causing a crash when using v10.x setting file.
BiomeTerrain Mod SMP v11.1_1 - Fixed error that caused no caves to be generated
BiomeTerrain Mod SSP v11.2 - Updated to work with 12/3 client update to 1.2.6
BiomeTerrain Mod SSP v11.2_1 - Fixed bugs that were causing crashing
BiomeTerrain Mod SSP v11.2_2 - Fixed more bugs that were causing crashing, fixed "n must be positive errors", added option to disable the new ponds
Biome Terrain Mod SSP v11.2_3 - Fixed bug with saplings that caused crashes
BiomeTerrain Mod SMP v11.2 - Updated to work with 12/3 and incorporate bug fixes from SSP updates
Please add the dev mode to this thread. I would love the slider.
It will crash Minecraft if you stick it in the jar. I decompiled the jar and am using Eclipse to do my work in. I finally got the classes that actually mod the biome sizes working, but the classes the modify the gui just crash the game outside of my development version.
As soon as I restart Minecraft, it removes the Biome line from the options file.
I mentioned that in my OP
Do note that because I can't get a modified options menu working that the game will overwrite the options.txt file from time to time (usually upon accessing the menu) which will remove the "biomeSize" field. So be sure to make sure it is there prior to creating a world.
It's because I can't get the class that controls reading/writing the "options.txt" file to be compatible with the original jar. It just causes the game to crash so having to add the line in each time you want to make a world is the compromise right now to allow me to go ahead and release the mod so that people can change their biome size.
Hey Bucyruss, thanks for working on this! I was looking forward to this all of last night and now I can work towards making my giant forest. Here is that high five I promised *hell yeah!* and that delicious cookie . Enjoy it; you deserve it.
I have a java class that can create overhead maps of biomes for any given random seed and scaling factor. I'll post it in a bit once it gets cleaned up but I fear the support requests, since it's not exactly easy to use.
But it should help you preview the large-scale effects of this mod. Example:
Sweet, can't wait for the slider to be working. ETA on it? Or no idea as of now?
No idea. I went through and changed all the field and function names to match what's in the original jar (even checked it against the byte code) and it still crashes or black screens (depends on which modified class I test). So I'm out of ideas as to what else to do. I'm missing something, obviously, otherwise it wouldn't work in my development version either. I just have no clue what it is that I am missing that would let the modified gui classes to work with the original jar :sad.gif:
In the meantime, perhaps you could make several versions with the biome sizes hard-coded in. You could have a +50% version, a +100% version, and so on.
Working on modifying it so that it uses a "biomesettings.txt" file instead so that the game won't overwrite it. That way you can enter in the biome size in there and not worry about having to enter it again unless you want to modify the size.
Yeah, mine are doing screwy things re: rewriting maybe?
I start out with huge biomes, and then after exploring awhile, I will invariably run into an endless expanse of hodge-podge micro-biomes at the horizon. As if it WAS constantly checking the text file, and it was overwritten, so it reverted back to micro-biomes?
Rollback Post to RevisionRollBack
Przerwap, upon looking at some code I had just written: "...Gav... That's not how programming works."