Skip to content
Rutger Kok edited this page May 23, 2015 · 26 revisions

In each BiomeConfig you will find the resources queue. Here most of the things that populate your biomes can be added, removed or modified.

##Jump to

##Example Back to top

Here is an example resource queue of the Jungle biome:

SmallLake(WATER,4,7,8,120)
SmallLake(LAVA,2,3,8,120)
UnderGroundLake(50,60,2,5,0,50)
Dungeon(8,100,0,128)
Ore(DIRT,32,20,100,0,128,STONE)
Ore(GRAVEL,32,10,100,0,128,STONE)
Ore(CLAY,32,1,100,0,128,STONE)
Ore(COAL_ORE,16,20,100,0,128,STONE)
Ore(IRON_ORE,8,20,100,0,64,STONE)
Ore(GOLD_ORE,8,2,100,0,32,STONE)
Ore(REDSTONE_ORE,7,8,100,0,16,STONE)
Ore(DIAMOND_ORE,7,1,100,0,16,STONE)
Ore(LAPIS_ORE,7,1,100,0,16,STONE)
UnderWaterOre(SAND,7,4,100,DIRT,GRASS)
UnderWaterOre(CLAY,4,1,100,DIRT,CLAY)
CustomObject(UseWorld)
Tree(50,BigTree,10,GroundBush,50,JungleTree,35,CocoaTree,100)
Plant(RED_ROSE,4,100,0,128,GRASS,DIRT,SOIL)
Plant(YELLOW_FLOWER,4,100,0,128,GRASS,DIRT,SOIL)
Grass(LONG_GRASS,1,25,100,GRASS,DIRT)
Plant(PUMPKIN,1,3,0,128,GRASS)
Vines(50,100,64,128)
Liquid(WATER,20,100,8,128,STONE)
Liquid(LAVA,10,100,8,128,STONE)

##Arguments Back to top

Most resources share the same arguments. Block is the block name or id to be generated. BlockData is the block data of Block. For block ids and block data, see the Minecraft Wiki. Frequency is how many times Terrain Control tries to place that resource per chunk. Rarity is how much chance each attempt has. If the Rarity doesn't prevent Terrain Control from spawning the resource the terrain may still keep it from spawning. MinAltitude and MaxAltitude are the minimum and maximum y-coordinate where the resource should generate. However, resource placement doesn't include the top layer. BlockSource is the block which the resource needs to generate on or in. For example, ores are generated inside stone, and tall grass is generated on top of grass or dirt.

##SmallLake Back to top

SmallLake(Block[.BlockData],Frequency,Rarity,MinAltitude,MaxAltitude)

Generates a small lake like this on the surface.

##UnderGroundLake Back to top

UnderGroundLake(MinSize,MaxSize,Frequency,Rarity,MinAltitude,MaxAltitude)

Generates a small underground lake.

##Dungeon Back to top

Dungeon(Frequency,Rarity,MinAltitude,MaxAltitude)

Generates a small dungeon with a spawner and some loot.

##Ore Back to top

Ore(Block[.BlockData],Size,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])

Generates a small ore vein. Note: underground dirt and gravel patches are also generated using the ore generator.

If you are looking for larger areas where there will be more ores of a certain kind, use the Vein resource.

##UnderWaterOre Back to top

UnderWaterOre(Block,Size,Frequency,Rarity,BlockSource[,BlockSource2,BlockSource3.....])

Generates those circles at the bottom of water lakes.

##CustomObject Back to top

CustomObject(Object[,AnotherObject,...])

Spawns all custom objects in the list. You can use the keywords UseBiome and UseWorld.

Note: before Terrain Control 2.3 the syntax was simply CustomObject(). It spawned one of the objects that was in the BOBPlugins folder, the predecessor of the WorldObjects folder. Terrain Control 2.3 will automatically replace CustomObject() with CustomObject(UseWorld), which does exactly the same as the old CustomObject() did.

Note2: it won't spawn the branches of the object. Use the CustomStructure resource.

##CustomStructure Back to top

CustomStructure([Object,Chance[,AnotherObject,Chance[,...]]])

This resource does two things. First, it starts a BO3 structure in the current chunk based on the arguments given. It doesn't accept BO3s which don't have branches attached to them. It also doesn't accept keywords like UseWorld.

Secondly it finishes existing structures branching from other chunks. It will ignore it's own settings here and only look if there are any unfinished structures nearby. (Keep in mind that a chunk nearby may have another biome with another CustomStructure(...).) An empty CustomStructure() will just finish structures from nearby chunks.

CustomStructure usually uses more resources than CustomObject or Tree since the objects it spawns are usually much more complex and because it has to search nearby chunks for unfinished structures.

It searches in a square with a 5-chunk radius around the current chunk. This means that structures can be up to 11x11 ((5+5) x (5+5)) chunks large, which makes structures have a maximum size of 160x256x160 blocks. You can change this radius in the WorldConfig using the MaximumCustomStructureRadius setting.

##Tree Back to top

Tree(Frequency,TreeType,TreeType_Chance[,Additional_TreeType,Additional_TreeType_Chance.....])

Generates a tree. Possible tree types are Tree (the standard Minecraft tree), BigTree, Birch, TallBirch (taller birch tree), HugeMushroom (not a tree, but also generated using the tree generator), SwampTree, Taiga1, Taiga2, HugeTaiga1, HugeTaiga2, JungleTree (big Jungle tree), CocoaTree (small Jungle tree, usually with some cocoa plants), Acacia, DarkOak and GroundBush (also not a tree, but generated using the tree generator).

All tree types
All tree types you can use.

You can also use one of your custom objects placed in the WorldObjects or GlobalObjects folder.

Tree(10,Forest,20,BigTree,10,Tree,100) means that Terrain Control tries to generate ten trees in a chunk. It first tries to generate a birch tree with a 20% chance. If it fails to generate a birch tree it tries to generate a BigTree with a 10% chance. If that also fails, it tries to generate a normal tree with a 100% chance.

Please note that a 100% chance does not guarantee a tree generates, there still needs to be enough space. There are never 10 trees in a chunk, simply because there isn't enough space for that. However, Tree(50,Tree,100) will cause more trees to spawn than Tree(8,Tree,100), simply because Terrain Control tries more spots out to place a tree.

You can limit a tree type to certain height values by appending (MinHeight=number;MaxHeight=number) to the tree type. For example, Tree(10,Forest(MinHeight=70),20,BigTree(MinHeight=80;MaxHeight=130),50,Tree,100) will make the big trees only spawn between y=80 and y=130 and the birch trees only above y=70, while normal trees will still spawn at all altitudes. As you can see from the example, you don't need to specify both the MinHeight and MaxHeight, writing only one of the two is also valid. Please note that the ; instead of a , is not a typo.

See the BO3 objects page for more information about keywords like UseWorld and a syntax to override BO2/BO3 settings.

Note: before Terrain Control 2.3 you couldn't use custom object names in the Tree resource.

##Plant Back to top

Plant(PlantName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])

Generates a plant. You can use one of the following plant names:

Allium, AzureBluet, BlueOrchid, BrownMushroom, Dandelion, DeadBush, DoubleTallgrass, Fern, LargeFern, Lilac, OrangeTulip, OxeyeDaisy, Peony, PinkTulip, Poppy, RedMushroom, RedTulip, RoseBush, Sunflower, Tallgrass, WhiteTulip

Alternatively, you can use the syntax Block[:BlockData] to spawn a single block using this resource. The block doesn't have to be a plant, so you can also use this to generate fire in a Nether-like biome.

It picks a completely random position in the chunk between MinAltitude (inclusive) and MaxAltitude (exclusive) and looks if that is a suitable position. This means that it can also generate underground, but also that it wastes a lot of time on failed attempts.

##Grass Back to top

Grass(PlantName,(unused),Frequency,Rarity,BlockSource[,BlockSource2,BlockSource3.....])

Generates a plant, usually Tallgrass or Fern, but it can be any plant or block. The PlantName works exactly the same as in the Plant resource.

The second parameter was previously the block data, but it currently doesn't do anything: block data is now included in the first parameter. You can safely ignore it.

It picks a random x and z position in the chunk and looks at Minecraft's internal heightmap for the y position that is just above the highest block. This means that it cannot generate underground, but that it is a fast way to generate a lot of blocks on the surface.

It has special code that detects leaves: when it finds that the highest block is a leave, it scans through them until it finds a block that isn't a leave and places the block on that. This means that it can generate under leaves.

Keep in mind that, for historical reasons, the BlockData is a separate argument, as opposed to the usual block:data syntax.

##Reed Back to top

Reed(Block,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])

Generates a stack of blocks (usually reeds) next to the water, 1-3 blocks high. Didn't work in Terrain Control 2.2-2.3.3.

##Cactus Back to top

Cactus(Block,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])

Generates a stack of blocks (usually a cactus).

##Liquid Back to top

Liquid(Block,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])

Generates a liquid block at the side of a wall.

##AboveWaterRes Back to top

AboveWaterRes(Block,Frequency,Rarity)

Not found in the example above. Generates a block on the water, like the lily pads in the swamp biomes.

##Vines Back to top

Vines(Frequency,Rarity,MinAltitude,MaxAltitude)

This generates vines against hills, trees and inside caves. Most vines on the Jungle trees are generated by the tree itself.

##Vein Back to top

Vein(Block[:BlockData],MinRadius,MaxRadius,Rarity,OreSize,OreFrequency,OreRarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,..])

Generates a large area where ores of a certain kind will be more common.

As ore veins are usually larger than one chunk, Vein searches in nearby chunks for unfinished veins. This makes it cost more resources than Ore. If your ores don't need to generate in large clusters, use the more lightweight Ore resource. You can also use an approach to generate more of the same Ore in a certain biome.

MinRadius and MaxRadius are of the group, and can be quite large, up to 200 blocks. However, such as a large radius slows down generation a lot.

Rarity is the percentage of the chunks holding a vein center. It supports decimals, so the chance can be very low.

Block[.Data], OreSize, OreFrequency, OreRarity, MinAltitude, MaxAltitude and BlockSource work the same as for Ore.

##Well Back to top

Well(SandStoneBlock[:Data],SlabBlock[:Data],WaterBlock[:Data],Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2[,...]])

Generates a well. Used to generate the desert wells in the default settings. You can use any block for the well, not just sandstone and water, but also for example netherbrick and lava.

On each place attempt the resource picks a random x, y and z position and scans down until it finds a block. If the block type is one of the SourceBlocks the well will be placed. This means that wells can generate underground.