Terrain Control

Logo new


Pictures (top to bottom, left to right):Floating island by LanToaster, Arches by mysource, Extreme Hills by IRSmoh, Island by Piginabag, Alternative Nether by IRSmoh

TerrainControl 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. TerrainControl is the successor to the old PhoenixTerrainMod, which was based on the popular BiomeTerrainMod.


Spigot 1.8

All updates for Spigot 1.8 won't be posted here, but on the Spigot forums instead: http://www.spigotmc.org/resources/terraincontrol.2214/

See you there!



  • 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)

...and many more!

whitespace hack


As of Terrain Control 2.4.13, the plugin sends some stats to mcstats.org, a service by Hidendra and others. You can view the stats here. Terrain Control won't upload your configs, it will only send your BiomeMode along with some information of your computer. You can toggle it off by setting opt-out to true in the metrics config file. More information is available on this wiki page.





Spooky Forest by Rutgerkok Mountainrange by Burckhart Cavern by mysource
Columns by mysource Overworld Nether by LanToaster Volcano by Burckhart


Daendroc/TerrainControl Promo by MassiveCraft TerrainControl Demonstration by mysource Testworld update 1 by mysource

Also check out the showcase thread in our forums!

How to use

How to use

TerrainControl is more complex than most Bukkit plugins, so it may take a while to get into - but the results are worth it. If you want to create your own world, be sure to check our documentation. If you have done some reading and still have problems using TerrainControl, just post to our forums and we'll try to figure it out.


Tutorial Videos

How to use and install TerrainControl by Samkio TC Tutorial Part 1 by CaseyC104 TC Tutorial (german) by CubeCrafterDE

Useful tools



Active staffhack to display table correctly
KhoornMaintainer, Coding
Rutger KokCoding
BurckhartSupport, Documentation
Retired staff
MysourceSupport, Documentation
Additional Credits
BucyrussCreator of the BiomeTerrainMod
R-T-BCreator of PhoenixTerrainMod
More contributors on GitHub
Users contributing to the wiki are found here

Get involved!



You'll always find the newest approved stable builds here. As of 2.4, the files will work on both Bukkit and Forge servers (without the need of something like MCPC+) and on singleplayer with Forge. Installation instructions can be found here.

Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.

Development builds at mctcp.com

You can find all user-created world configurations, biomes and custom objects that are currently available here.

Important - please do not post your questions in the comments section below, head to the forums instead! We do not answer questions here as it would only result in chaos. Feel free to use the wall for general comments!

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Geragsol Geragsol Dec 07, 2015 at 16:25 UTC - 1 like

    Hey, so, I tried to instal this Plugin on my Nitrado Minecraft Server. Everything works. I also instaled Multiverse-Core. But when I try to make a world with /mv create *name* NORMAL -g TerrainControl , there comes a Jarva error. Can you tell me why? Caused by: java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.hash(Unknown Source) [?:1.7.0_71] at java.util.concurrent.ConcurrentHashMap.get(Unknown Source) [?:1.7.0_71] at org.bukkit.craftbukkit.v1_8_R3.util.ForwardLogHandler.getLogger(ForwardLogHandler.java:16) [craftbukkit.jar:git-Spigot-6d16e64-b105298] at org.bukkit.craftbukkit.v1_8_R3.util.ForwardLogHandler.publish(ForwardLogHandler.java:27) [craftbukkit.jar:git-Spigot-6d16e64-b105298] at java.util.logging.Logger.log(Unknown Source) [?:1.7.0_71] at com.khorn.terraincontrol.bukkit.TCPlugin.log(TCPlugin.java:272) [?:?] at com.khorn.terraincontrol.TerrainControl.log(TerrainControl.java:193) [?:?] at com.khorn.terraincontrol.bukkit.TCPlugin.getDefaultWorldGenerator(TCPlugin.java:154) [?:?] at org.bukkit.WorldCreator.getGeneratorForName(WorldCreator.java:311) [craftbukkit.jar:git-Spigot-6d16e64-b105298] at org.bukkit.WorldCreator.generator(WorldCreator.java:183) [craftbukkit.jar:git-Spigot-6d16e64-b105298] at com.onarandombox.MultiverseCore.utils.WorldManager.addWorld(WorldManager.java:113) [?:?] at com.onarandombox.MultiverseCore.commands.CreateCommand.runCommand(CreateCommand.java:94) [?:?] at com.pneumaticraft.commandhandler.multiverse.CommandHandler.checkAndRunCommand(CommandHandler.java:279) [?:?] at com.pneumaticraft.commandhandler.multiverse.CommandHandler.processFoundCommands(CommandHandler.java:143) [?:?] at com.pneumaticraft.commandhandler.multiverse.CommandHandler.locateAndRunCommand(CommandHandler.java:93) [?:?] at com.onarandombox.MultiverseCore.MultiverseCore.onCommand(MultiverseCore.java:476) [?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [craftbukkit.jar:git-Spigot-6d16e64-b105298] ... 8 more

    It's alot. I know. Please help. :c

  • Avatar of snowfy5 snowfy5 Jul 14, 2015 at 20:46 UTC - 0 likes

    Hey I need help making a world where there are 4 seperate biomes apart from each other. (obviously its going to consist of multiple of the same biome).

    I tried setting the BiomeIsBorder in each biome config to the two bordering biomes, and then the NotBorderNear to the fourth biome. I also made 4 seperate groups for each biome. It just gave me a world with a mix of each biome everywhere. There were multiple biomes per chunk.

    How would I do this? Any help, suggestions or comments would be a ppreciated! Thanks

  • Avatar of Adamantyte Adamantyte Jun 12, 2015 at 05:16 UTC - 0 likes

    How to make that hell biome in land like in the picture?

    Looking for a brand New Minecraft Experience? Checkout www.blueogremc.enjin.com - Japanese Style -Dungeons - 24 unique ranks - Boss Mobs - Magic with over 70 unlockable spells -Factions -PvP -Levelled Mobs -PETS! - Unique skills to train! - Pet training and levelling! Join today bomc.shockbyte.com
  • Avatar of BSidiocy BSidiocy Jun 11, 2015 at 02:10 UTC - 0 likes

    NVm .. I figured it out

    anway, There's no Water in my River and Ocean biome all I see is land ..

    Can you help me? My River and Ocean biome are all default and also my WorldConfig River part is also in default

    Why there's no water? Help pls!

  • Avatar of BSidiocy BSidiocy Jun 02, 2015 at 14:44 UTC - 0 likes

    @Forerunner343i: Go

    Sorry im such an idiot and english sin't my native language so its hard to understand a bit..

    So what should I do to resolve this issue? Go resave my bo3 object while im at the 0,0,0 coordinate of the item?

  • Avatar of oldTCcreator oldTCcreator Jun 01, 2015 at 19:39 UTC - 0 likes

    Totally ignorant and 100% not reading blind king of jerks still posting at old place... and even also not at the forum...unbelievable dump persons.
    Keep on trying to get help by that jerky way of acting :-o Shaking head about that dump crowd.
    Sadly there is a German in between ;-(

    Last edited Jun 01, 2015 by oldTCcreator
  • Avatar of Forerunner343i Forerunner343i Jun 01, 2015 at 17:33 UTC - 0 likes

    @BSidiocy: Go

    No you shouldn't, or it'll spawn as well (unless it has a source block controller). What you should check is that you have, for example for a 3x3 tree, coordinates like 0,0,0 LOG (meaning the 0,0,0 is the first block above ground, it replaces the block where your sapling is normally planted. A dirt block (or other) below the tree would have 0,-1,0 coordinate, but it's not necessary, only optional depending on what you are looking for) -1,0,-1 (air) -1,0,1 (air) 1,0,-1 (air) 1,0,1 (air) ... and so on 0,1,0 LOG 0,2,0 LOG 0,3,0, LEAVES ... and so on.

    If the structure isn't centered and you get something like 0,0,0 AIR 1,0,1 LOG 2,0,2 AIR ... and so one Then your bo2/bo3 object (your tree for example) isn't centered around your trunk as the 0,0,0 coordinate. In this case, the BlockCheck for your source will happen for the AIR block rather than the LOG, meaning that if all conditions are valid the tree will spawn. BUT if it spawns in a slope, the 1,0,1 LOG block could either spawn 1 block in ground or 1 block above ground.

    Last edited Jun 01, 2015 by Forerunner343i
  • Avatar of BSidiocy BSidiocy May 31, 2015 at 23:40 UTC - 0 likes

    @Forerunner343i: Go

    Oh .. i should add the ground block? (I didn't add the ground block) Also, did you mean that I should add the Air blocks?

  • Avatar of Forerunner343i Forerunner343i May 31, 2015 at 09:41 UTC - 0 likes

    @BSidiocy: Go

    You should check that the center of your schematic/bo2/bo3 is under your trunk. If not (as with some schematic savers, it's bottom southeast corner of your selection which is saved as 0,0,0 coordinate) then it'll spawn the wrong (air) block of the ground (instead of the log block)

  • Avatar of Forerunner343i Forerunner343i May 31, 2015 at 09:38 UTC - 0 likes

    @TheLexoPlexx: Go

    It can't generate 8 pieces of a cake (all equal to one another) as it's a randome world generator, using a seed juste like vanilla one... unless you create the world from an image, but it will have a boundary then (4 times the size of your image, for example a 1024x1024 would give a perfectly well placed biome until 4096 blocks, then there would be either an ocean (or another infintie biome of your liking) or vanilla biomes (random as well then).

    Given that you would have to generate a limited world (boundaries), I recommend using WorldPainter instead. TC is more adapted to infinite and random generation, replacing vanilla generator.


Date created
Oct 27, 2011
Last update
Nov 02, 2014
Development stage
SpoutDev License v.1
Curse link
Terrain Control
Reverse relationships
Recent files