Skip to content
Shaila Gray edited this page Jun 26, 2017 · 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: 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.

SurfacePatch

Back to top

SurfacePatch(BlockName,DecorationBlockName,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])

Generates a patchy surface variation, where surface block is replaced and potentially has decoration added in space above. Used in default Swampland configuration to generate surface water one block deep with lily pads.

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 Big oak tree.
  • Birch Normal birch tree.
  • TallBirch Taller birch tree.
  • HugeMushroom Not a tree, but also generated using the tree generator. 50% chance to be red, 50% to be brown.
  • HugeRedMushroom Only exists in TerrainControl 2.7.3 and newer.
  • HugeBrownMushroom Only exists in TerrainControl 2.7.3 and newer.
  • SwampTree Like oak, but with vines and can spawn in shallow water.
  • Taiga1
  • Taiga2
  • HugeTaiga1
  • HugeTaiga2
  • JungleTree Big Jungle tree.
  • CocoaTree Small Jungle tree, usually with some cocoa plants.
  • Acacia
  • DarkOak
  • GroundBush 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.

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.

Boulder

Back to top

Boulder(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,..])

Generates boulders, like ones made of mossy cobblestone in Mega Tiaga biomes.

IceSpike

Back to top

IceSpike(BlockName,IceSpikeType,Frequency,Rarity,MinAltitude,MaxAltitude,Blocksource[,BlockSource2,...])

Generates spike formations. Three types of spikes are available.

  • Basement Goes from surface to underground a few layers, does not necessarily line up with other types.
  • SmallSpike Creates only small, egg-like spikes.
  • HugeSpike Creates spikes with tendency towards tallness.

All three types are used in the default Ice Plains Spikes biome.