Terrain Control is an advanced world generator. Through various configuration files it gives the user control over almost every aspect of Minecraft terrain generation, with no knowledge of Java required. It can be used on Bukkit or Forge servers and on singleplayer with Forge. Terrain Control is the successor to the old PhoenixTerrainMod, which was based on the popular BiomeTerrainMod. Terrain Control is maintained by Khoorn (known as Wickth on GitHub).
Control horizontal and vertical noise of terrain generation Control terrain height and volatility per biome Generating biome maps from images Control the size of biomes, islands and continents Custom biomes Many options for caves, canyons Control vanilla structures like mineshafts, strongholds and villages Full control of ores, plants, dungeons, ponds and many more Custom trees and other objects (BO2 and BO3) Block replacement Visual settings like custom foliage colors (TerrainControl client required) To learn more, check out all of Terrain Control's features!
更新时间: 5 Jun 2014 Terrain Control currently supports CraftBukkit, Spigot, Cauldron and Forge (even singleplayer). One universal jar file is used that works on all platforms.
- Forge (单人游戏)
First, download and install Forge. Run Minecraft once to make sure that everything works. Then download the file linked on the homepage of the wiki. Make sure that the Minecraft version for the download matches your Minecraft version. Put the file in the mods folder inside the .minecraft folder.
You can now create a new world with the world type Terrain Control. The mod only affects worlds created with this world type. If you don't edit the settings found in .minecraft/mods/TerrainControl/worlds/YOUR_WORLD_NAME/, the world will look like a default Minecraft world. Each time you change the settings, you must delete the .minecraft/saves/YOUR_WORLD_NAME/region folder to generate the world again. Changed settings won't magically affect already generated chunks! This tutorial will teach you the first steps of customizing your world.
- CraftBukkit, Spigot and Cauldron servers
Simply put the jar file in the plugins folder to install, just like every other Bukkit plugin. The plugin doesn't require your players to have the singleplayer version installed, but they will get some more features if they have installed it.
After you have installed it, you must still activate it for your world. If you don't have a multiworld management plugin like Multiverse, add the following to your bukkit.yml to enable Terrain Control for that world (use spaces, not tabs!):
your_world_name: generator: TerrainControl
If you are using Multiverse, you can create a new Terrain Control world using:
/mv create your_world_name normal -g TerrainControl
If you're instructing your multiworld plugin to use Terrain Control for one of the default worlds, also add Terrain Control to the bukkit.yml as described above. Terrain Control needs this to be properly initialised for default worlds. If you are using another multiworld management plugin, look up the documentation for that plugin. Use TerrainControl (without a space between Terrain and Control) as the generator name. The name is case sensitive.
If you don't change the settings found in plugins/TerrainControl/worlds/YOUR_WORLD_NAME/, the world will look like a default Minecraft world. Each time you change the settings, you must delete the YOUR_WORLD_NAME/region folder to generate the world again. Changed settings won't magically affect already generated chunks! This tutorial will teach you the first steps of customizing your world.
- Forge 服务器
Make sure that Forge is installed on the server. Put Terrain Control in the mods folder. Go to the server.properties file and set level-type to TerrainControl (without a space between Terrain and Control). Delete the level.dat of your main world to get one with the correct level type.
If you don't change the settings, the world will look like a default Minecraft world. Each time you change the settings found in mods/TerrainControl/worlds/YOUR_WORLD_NAME/, you must delete the YOUR_WORLD_NAME/region folder to generate the world again. Changed settings won't magically affect already generated chunks! This tutorial will teach you the first steps of customizing your world.
After you have succesfully installed Terrain Control, you can start creating your own worlds. Create a world on creative with TerrainControl as the generator and 12 as the seed. We re using this seed so that your world will be identical to the tutorial world. If you don't need any help creating a Terrain Control world with a specified seed, just skip this list.
- If you are on singleplayer, click Create New World, select Creative as the game mode and fill in a name for your world. Click on More World Options, and fill in 12 as the seed and choose TerrainControl as the world type. Make sure that Allow Cheats is on, you will need it for the /tp command.
- If you are on Bukkit and have Multiverse you can use /mv create world_name NORMAL -s 12 -g TerrainControl to create the world and /mv tp world_name to teleport to it.
- If you are on Bukkit and have another multiworld-management plugin, look up the documentation of that plugin on how to create a new world. Use 12 as the seed and TerrainControl as the generator name.
- If you are on Bukkit and you don't have a multiworld-management plugin, go to your bukkit.yml file and add the following:
your_world_name: generator: TerrainControl
Replace your_world_name with the name of your world, which is usually just world. Also, don't use tabs in this file, use spaces! Go to the server.properties file and set the level-seed setting to 12. Delete the whole world folder to get a fresh level.dat with the correct seed.
- If you are on a Forge server, go to the server.properties and set the level-type setting to TerrainControl and the level-seed setting to 12. Delete the whole world folder to get a fresh level.dat with the correct generator and seed.
Now log in once on your world to let Terrain Control generate it's configuration files. Run the command /seed to verify that the seed is indeed 12. You will notice that the world looks just like a default Minecraft world: you haven't yet changed the settings! Close down the game/the server again.
Locate your Terrain Control settings folder. See the installation instructions to find out how. You should see something like this:
Let's open the WorldConfig.ini. Using Notepad is fine. However, don't use an editor which uses text styles, so don't use Word.
All lines starting with a # are comments. They give a brief description of each variable. On the WorldConfig page on the wiki, you can usually find a more detailed description.
To verify that everything works, we are going to change a variable. GenerationDepth is a nice one to change. If you set it to 9, all biomes get halved in size, in both the x and z directions. If you set it to 11, all biomes get doubled in size, again in both the x and z directions. If you set it to 12 the biomes are as large as in the Large Biomes world type. Let's try that. Change the number to 12 and save the file.
If you would (re)start the game/the server now, you still won't see any changes. You have to explore new areas to see the new terrain, just like for any other generator update in Minecraft. Because this is quite annoying, it is a better idea to delete the region folder inside the world folder. This deletes the terrain, but keeps the player positions and the map seed. Never do this while the game/the server is running!
After you have deleted the region folder, start the game/the server and test your changes. You should now see a world with large biomes.
It's now time to explore the WorldBiomes folder. Again, don't forget to close the game/the server. You see a lot of .bc files, whichs stands for BiomeConfig. Some biomes look very obscure (what is Sky.bc?), others are not a biome at all (Since when is a beach a biome? What about river?), and others use strange names (Mesa Plateau F M?). These names were chosen by Mojang.
For now you could ignore those strange biomes. Just open up the Desert.bc file. If you scroll down, you will see the BiomeHeight and BiomeVolatility (just below Terrain Generator Variables). Let's add some hills to the desert! Set BiomeHeight to 0.2 (makes the terrain higher, but not more hilly) and BiomeVolatility to 0.4 (makes the terrain more hilly). Now save the result, delete the region folder, and find a desert biome. If you indeed used the seed 12, you can easily teleport to one using the command /tp -19 80 -306.
Maybe the stone in the cliff annoys you, wouldn't sandstone look better? Close the game/the server, open the Desert.bc and set StoneBlock (in the Blocks section) to SANDSTONE. This replaces all stone with sandstone. Stop the game/server, delete the region folder and start the game/server again.
Now you have seen a tiny bit of the power of Terrain Control. It's time for the next step! If you just want to know what each setting does, you can take a look at the other settings in WorldConfig and the BiomeConfigs. If you want to start creating custom biomes, you should read this tutorial, which starts at the point where this tutorial ends. On the home page you could also find a lot of other (external) tutorials. The examples page might also be useful.
Your first custom biome
In this tutorial we are going to create our first custom biome. In the previous tutorial we modified the standard desert to be more hilly and to have sandstone instead of stone. We will now create a hilly area with a lot of flowers and some trees.
You can continue working on the world of the previous tutorial. Alternatively, you can create a new world with the seed 12. Make sure that the GenerationDepth setting (found in the WorldConfig.ini) is set to 12 too. This will make the biomes bigger. If you have done that correctly, the coordinates found in the tutorial will work for you. If not, you will find yourself lost in some other biome and you'll have to search around a lot.
We'll start by adding the custom biome to the biome lists. The first list we are going to modify is the CustomBiomes list. Open up the WorldConfig.ini file and search for that setting. Edit the line with CustomBiomes to look like this:
This will make Terrain Control generate and read the config files for the biome called Flowerfield. The biome will have the id 40. Biome ids work just like block ids, except that they are separate lists and that 254 is the highest possible biome id. Just like block ids, two biomes may not share the same id.
If you restart the server/game now, you'll see that a new file in the BiomeConfigs directory has popped up: FlowerfieldBiomeConfig.ini. However, your world looks still the same. We need to add our biome to one of the biome lists. NormalBiomes, found in the WorldConfig.ini, is a good choice, as it lets the biome generate as a normal biome, just like most of Minecraft's biomes. Add your biome to the NormalBiomes list:
Make sure the server is closed/world is unloaded, remove the region folder inside the world folder and start the server/load the world again. If use the command /tp -1010 78 -11 to teleport to that location, you can see the custom biome. It doesn't look very nice yet, but hey, we haven't yet changed any settings of the biome:
If you aren't using the Terrain Control mod on singleplayer, the colors will look a little bit different.
First of all, we are going to make the biome a lot greener. Open up the FlowerfieldBiomeConfig.ini. Scroll down until you see the Visuals and weather section. You can change the colors of the biome here. However, if you don't have the Terrain Control client mod, you won't see any effect. If you are going to use the map on singleplayer, this is of course no problem, but if you are going to use the world on a Bukkit server, most of your players will only see the standard Minecraft colors. All colors are hexadecimal. You can Google around a bit to find a color picker. Please note that most color pickers will prefix the color with a #, which is common in the webdesign-world. Terrain Control however requires you to use 0x instead, which is common in the Java-world.
For this tutorial, we aren't going to use the color settings. Terrain Control has a cool option to save the biome with the id of another biome. This will cause the colors, weather and mobs of the biome to look like the other biome. Luckily, the terrain shape and features will still look the same. We are going to use the mushroom isle biome for this, as it has nice green grass (normally you can't see that, as the biome is covered in mycelium, but try placing down a block of grass there and you'll see it). As an added bonus, no hostily mobs will spawn in our flower field, as the mushroom biome has them disabled. Scroll up to find the ReplaceToBiomeName setting and set it to MushroomIsland.
确保服务器已经关闭, remove the region folder inside the world folder and start the server/load the world again. If use the command /tp -1010 78 -11 to teleport to that location, you can now see that the biome is a lot greener:
Now we are going to make the biome a bit more hilly. Open up the FlowerfieldBiomeConfig.ini again and set BiomeVolatility to 0.5. If you would take a look now, you'll see that the land drops below sea level now on some places. We don't want this, so to fix this we raise the biome a bit, without making it more hilly. Set BiomeHeight to 0.5 to make the biome a bit higher.
Close the server/world, remove the region folder and open the server/world again. You should now see some hills:
Now we are going to add some resources to the biome. Terrain Control has a powerful resource system. It consists of a long list of resources. Each resource can be an ore, a plant, a tree, a small lake, etc. Almost all resources have a frequency setting which tells how many times that resource must be processed for the chunk. Almost all resources also have a rarity setting, which determines the chance of success for each attempt. Usually the terrain is another limiting factor: if there is not enough space for a tree there, it simply won't spawn, regardless of a rarity of 100.
Resources use the function syntax, which is also used on some other places in the configs. It works like this:
If you already have experience with a spreadsheet program like Microsoft Excel, this syntax should be familiar. Each parameter does affects something in the resource.
All resources placed together form a list, called the resources queue. It is out of the scope of this tutorial to explain every possible resource (see this page for that), but some interesting resources for our plant biome will be described.
Flowers are single block resources in Minecraft. In the resources queue there are two resources designed for single-block things. Grass is easier to work with than Plant, but it can only spawn on top of the terrain. Plant chooses a random height between it' min and max height and then looks whether the location is suitable. Grass simply places itself on the highest block, which it can look up from the heightmap.
For some reason Mojang placed flowers using the Plant resource in Minecraft. There is no reason for us to do the same, we are going to use the Grass resource. The syntax of the Grass resource is as follows:
Block is the id or name of the block to spawn. BlockData is the block data from 0 to 15. Frequency and Rarity were just explained a few paragraphs back. BlockSource is the block to spawn on.
First of all, we remove the standard lines with flowers, as we are not going to use the Plant resource for them. Remove these two lines from the resources queue:
Plant(RED_ROSE,2,100.0,0,128,GRASS,DIRT,SOIL) Plant(YELLOW_FLOWER,2,100.0,0,128,GRASS,DIRT,SOIL) And add the following Grass resources at the end of the resources queue:
Grass(RED_ROSE,0,40,100,GRASS) Grass(YELLOW_FLOWER,0,80,100,GRASS) This should add 40 red roses and 80 yellow flowers to each chunk. Of course, the terrain is not always suitable, so we'll see less flowers. Another thing is that on each attempt a random location in the chunk is choses, which means that it can choose a location that already has a flower!
Nevertheless, if you close the server/world, remove the region folder and open the server/world again, you should see this:
That are a lot of flowers! Let's add some tall grass as well to the biome. There is already a tall grass resource in the resources queue, so let's just increase the frequency of that resource. Change this line:
Grass(LONG_GRASS,1,10,100.0,GRASS,DIRT) To this line: (note that the 10 is replaced with the 80)
Grass(LONG_GRASS,1,80,100.0,GRASS,DIRT) Close the server/world, remove the region folder and open the server/world again. Looks a lot better, doesn't it:
We're almost done with this tutorial, but we still want to add some trees. Without trees, it is very difficult to survive in a biome. The syntax of the tree resource is as follows:
It has a nifty syntax to specify what trees you want. For each attempt (there are Frequency attempts), it first chooses the first TreeType. If this Treetype fails to spawn, either because of the TreeType_Chance (this is a success percentage) or because of unsuitable terrain, it continues to the next one, the Additional_TreeType. If that tree also fails to spawn, it continues to the next one. This continues until all tree types in the list have been processed.
Some tree types have bad names. For example, Forest is actually a birch tree. Tree is simply an oak tree.
Add this line to the end of the resources queue:
Tree(1,Forest,4,Tree,4) This means that there is just one attempt in each chunk. In that attempt, there is a 4% chance that the birch spawns (provided the terrain is suitable for that tree). If the birch tree doesn't spawn, there is a 4% chance that a normal oak tree will spawn.
Close the server/world, remove the region folder and open the server/world again. Our biome is now technically finished:
However, if you are on Bukkit and use the command /tc map, the biome will show up as a block biome. You can change this by choosing another color for the BiomeColor setting. We will use 0xb8e65c. Close the server/world, remove the region folder and open the server/world again. Execute the command /tc map. You should get a map like this one:
If you had any problems recreating this world, you can download the completed version here.
Congratulations, you have just created your own custom biome! You can now create as many custom biomes as you want. You know how to create hills, forests, grass, flowers, etc. Some additional tips:
- BiomeTemperature:0 will cause the biome to be covered by snow. However, people without the TC mod on the client will see snow on the ground, but rain in the air. To fix this you can use ReplaceToBiomeName:Taiga.
- Water is generated when the terrain falls under the sea level. Using the BiomeVolatility and BiomeHeight settings you can best control how the land is shaped.
- Take a look in the configs of the default biomes to see how a certain effect is achieved. The downloads thread in the TC forums is also a valuable resource.
Terrain Control doesn't always do what you would expect. On this page some problems frequently encountered by beginners are highlighted. If you're still stuck, you can create a forum topic that describes your problem. Be as detailed as possible and be prepared to post your startup log (preferably on pastebin.com or similar) or your settings (preferably in a ZIP file).
- My world settings folder isn't created, only GlobalObjects exists.
Terrain Control won't take over all your worlds when you install it. You'll need to enable it first for a world. Closely follow the installation instructions. When you're still stuck, it is important to post your startup logs when you are creating a forum topic.
- My settings don't have any effect on the terrain.
Have you tried regenerating the terrain? If yes, move your TerrainControl folder, start the server/the game again and look whether Terrain Control has remade the settings files. If not, Terrain Control is not even reading them. See the problem above this one on how to solve that. If yes, look at the BiomeMode and TerrainMode and make sure that they aren't set to Default (which makes them ignore your settings and use the vanilla settings instead).
- I'm spawning in an ocean and I can't find any land
Don't worry, it is there. Keep swimming. Alternatively, you can change the seed of the map (for servers: you'll need a new level.dat for this, changing it only in the server.properies isn't enough) to something else. The seed 11 will spawn you on land with the default settings. You can also disable or reduce the oceans using the LandRarity setting in the WorldConfig:
- This specific setting doesn't work (but other settings do)
Most settings are case sensitive and whitespace sensitive, so be precise. Some settings need higher values to give a noticeable effect. Other settings need the Terrain Control client (see the comments in the files and/or this wiki). Some settings are dependant on another setting (again, see the comments in the files and/or this wiki).
If you are not experienced with Terrain Control, always make sure that SettingsMode is set to WriteAll. This will make Terrain Ontrol reset or remove everything it doesn't understand, so that you'll immediately notice that something was wrong.