-
Notifications
You must be signed in to change notification settings - Fork 161
Resources queue
In each BiomeConfig you will find the resources queue. Here most of the things that populate your biomes can be added, removed or modified.
- Ore
- UnderWaterOre
- CustomObject
- CustomStructure
- SurfacePatch
- Tree
- Plant
- Grass
- Reed
- Cactus
- Liquid
- AboveWaterRes
- Vines
- Vein
- Well
- Boulder
- IceSpike
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)
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(Block[.BlockData],Frequency,Rarity,MinAltitude,MaxAltitude)
Generates a small lake like this on the surface.
UnderGroundLake(MinSize,MaxSize,Frequency,Rarity,MinAltitude,MaxAltitude)
Generates a small underground lake.
Dungeon(Frequency,Rarity,MinAltitude,MaxAltitude)
Generates a small dungeon with a spawner and some loot.
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(Block,Size,Frequency,Rarity,BlockSource[,BlockSource2,BlockSource3.....])
Generates those circles at the bottom of water lakes.
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([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(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(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 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(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(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(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(Block,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
Generates a stack of blocks (usually a cactus).
Liquid(Block,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
Generates a liquid block at the side of a wall.
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(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(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(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(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,..])
Generates boulders, like ones made of mossy cobblestone in Mega Tiaga biomes.
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.