Open Terrain Generator Wiki

The worldconfig contains settings which affect the entire world/dimension (biome specific settings can be found in the BiomeConfigs).

The file is located in the config/OpenTerrainGenerator/Presets/[preset name] folder, this file controls biome registration, biome groupings, ocean and land sizes/rarities, river settings, cave and canyon distribution, minecraft structure spawning, sea level, dimension/portal settings and quite a bit more.

Note: OTG for MC 1.16 is currently in alpha so some settings may not work properly, and not all settings have been added yet.


To enable documentation (comments) in the worldconfig.ini file itself, change:

SettingsMode: WriteWithoutComments to SettingsMode: WriteAll

World Identity[]

Author - Author of this world. Shown in-game when displaying OTG world information in the GUI or console.

Description - A short description of this world. Shown in-game when displaying OTG world information in the GUI or console.

Write Settings[]


When OTG reads config files it can also write to them to update settings and automatically correct values. With this setting you can change how OTG writes to the config files. Possible modes:

WriteAll - Autoupdate settings from old versions, order them, add comments, reset invalid settings and remove custom comments.
WriteWithoutComments - Same as WriteAll, but removes all comments, both the ones of OTG and your own.
WriteDisable - Don't write to the comment files. Errors are not corrected, old settings are read, but they are also not corrected. Custom comments won't be removed with this mode.


In order to save filesize and loading times, it is recommended to use WriteWithoutComments to make configs smaller before shipping them to users.

Generator Modes[]

OTG can function in several different 'modes', such as deciding between 'random' and 'from image' biome generation, some debugging and testing modes and others.

Terrain Modes[]

Normal - Use all features (the standard option)
TerrainTest - Generate only terrain without any resources (trees, ores, etc)
NotGenerate - Generate empty chunks

Biome Modes[]

Normal - Use all features
FromImage - Get biomes from image file. Default is map.png and it must be located in the same folder as the WorldConfig.ini file.
BeforeGroups - Renamed to NoGroups for 1.16.
NoGroups - Minecraft 1.0 - 1.6.4 biome generator, (only supports the biome groups NormalBiomes and IceBiomes)

Settings for Random Generation (BiomeMode:Normal)[]

The values in this section only work when BiomeMode is set to Normal or BiomeMode is FromImage and ImageMode is ContinueNormal

GenerationDepth - Value for deciding biome size limits. Bigger values 'zoom in', so that the biomes get larger:


All size settings such as Biome Group Size, RiverSize, LandSize (in the WorldConfig.ini), and BiomeSize (in Biome Configs) must be between 0 (largest) and GenerationDepth (smallest).

For a full explanation of Generation Depth, go here: GenerationDepth

BiomeRarityScale - Max biome rarity from 1 to infinity. By default this is 100, but you can raise it for fine-grained control, or to create biomes with a chance of occurring smaller than 1/100.


This allows you to group similar biomes together so that they spawn next to each other.

Note: If you're using BiomeMode: BeforeGroups, only the biomes listed in groups named NormalBiomes and IceBiomes and the size and rarity of the group named IceBiomes will be used. Other groups are ignored. The size and rarity of the NormalBiomes group is ignored as well, use LandSize and LandRarity instead.

Syntax: BiomeGroup(Name, Size, Rarity, BiomeName[, AnotherName[, ...]])

Name - It is wise to choose something descriptive
Size - From 0 to GenerationDepth, all biomes in the group must have a BiomeSize higher than or equal to this value
Rarity - relative spawn chance
BiomeName - Names of the biome that spawn in the group, case sensitive


BiomeGroup(NormalBiomes, 0, 98, Forest, Roofed Forest, Extreme Hills, Plains, Birch Forest, Swampland, Flower Forest, Roofed Forest M, Extreme Hills+, Sunflower Plains, Birch Forest M, Swampland M)

BiomeGroup(IceBiomes, 2, 40, Ice Plains, Cold Taiga, Ice Plains Spikes, Cold Taiga M)

BiomeGroup(HotBiomes, 1, 98, Desert, Savanna, Plains, Desert M, Savanna M, Sunflower Plains)

BiomeGroup(ColdBiomes, 0, 98, Forest, Extreme Hills, Taiga, Plains, Flower Forest, Extreme Hills+, Taiga M, Sunflower Plains)

BiomeGroup(MesaBiomes, 2, 40, Mesa)

BiomeGroup(JungleBiomes, 1, 40, Jungle, Jungle M)

BiomeGroup(Mega TaigaBiomes, 1, 40, Mega Taiga, Mega Spruce Taiga)

Biome Lists[]

Not all biomes spawn as part of a group. Some biomes spawn as isles in other biomes, or as borders on other biomes.

Isle Biomes - Isle biomes are biomes which spawn inside another biome. Biome name is case sensitive. Inside the biome config of each isle biome you can decide in which biome this isle should spawn, it rarity and size

IsleBiomes: Deep Ocean, MushroomIsland, Ice Mountains, DesertHills, ForestHills, Forest, TaigaHills, JungleHills, Cold Taiga Hills, Birch Forest Hills, Extreme Hills+, Mesa Plateau, Mesa Plateau F, Mesa Plateau M, Mesa Plateau F M, Mesa (Bryce), Mega Taiga Hills, Mega Spruce Taiga Hills

Note: Isle biomes' sizes must be smaller (higher BiomeSize number) than the biome they are inside.

Border Biomes - Border biomes are biomes which are used as borders. In the biome config of the biome you can specify on which biome this border should spawn. You can also set which biome this border should not spawn near. Biome name is case sensitive.

Landmass Settings[]

LandRarity - Land rarity from 1 to 100. Higher numbers result in more land:


LandSize - Land size from 0 to GenerationDepth. Higher LandSize numbers will make the size of the land smaller.

LandFuzzy - Generates more lakes (via small ocean biomes) at the edges of continents. As a side effect, the continent will also get a bit larger. Must be from 0 to GenerationDepth minus LandSize. Map of the edge of a continent:


Ice Area Settings[]

FrozenOcean - Can be true or false, makes the water of the oceans near a cold biome frozen. The definition of 'cold' is controlled by the next setting.

OceanFreezingTemperature - This is the maximum biome temperature when a biome is still considered cold. Water in oceans nearby cold biomes freezes if FrozenOcean is set to true. Temperature reference from vanilla Minecraft: < 0.15 for snow, 0.15 - 0.95 for rain, or > 1.0 for dry

FreezeAllBiomesInColdGroup - If the average of all biome temperatures in a biome group is less than "OceanFreezingTemperature", when this setting is true, all biomes in the group will have frozen oceans. When this setting is false, only individual biomes with a temperature below "OceanFreezingTemperature" will have frozen oceans.

River Settings[]

RiverRarity - Controls the rarity of rivers. Must be from 0 to GenerationDepth. A higher number means more rivers, to define which rivers flow through which biomes see the individual biome configs.

RiverSize - Controls the size of rivers. Can range from 0 to GenerationDepth minus RiverRarity. Making this larger will make the rivers larger, without affecting how much rivers will spawn.

RandomRivers - When this setting is false rivers follow the biome borders most of the time. Set this setting to true to disable this behaviour.

ImprovedRivers - Normally rivers use technical biomes (defined in each biome config) to generate. With the default settings the biomes River and FrozenRiver are used. If you set this setting to true, the technical biomes won't be used anymore in the world. This causes the rivers to look exactly like the biome they are flowing through: no more sudden changes of grass color. The height settings of the river can now be found in the biome the river is flowing through.

Settings for generating a biome distribution from an image (BiomeMode:FromImage)[]

The values in this section only work when BiomeMode is set to FromImage.

Image Mode[]

Defines what to do when terrain is generated outside the boundaries of the image:

Repeat Repeats the image
Mirror Mirrors the image
ContinueNormal Continues with random generation
FillEmpty Fills the space with one biome (defined below)

Note that when using ContinueNormal, any holes in the map (pixels with colours that don't correspond to a biome) will use the underlying normal terrain generation. This can give interesting effects, but should be used with care and it recommended to surround any such holes with a border biome to ensure a smoother transition. This is also unpredictable, and each hole will have different biomes depending on the seed.

The Image File[]

The image which will provide the Biomes must be a PNG file without transparency, once placed in the same folder as WorldConfig.ini OTG will use it as a reference for the Biomes generation. Usually the map spawn location is considered to be the center of the image (but you can change this behaviour with the ImageXOffset/ImageYOffset settings.

The map must be drawn with a pixel perfect brush (means without AntiAliasing) often called as the Pencil tool in many image editors. Each color (expressed as an hexadecimal value) represent a Biome where the Biome<->Color association is made in each biome configuration file Biome.cfg, a map can be as simple as few colors or articulated and complex as the one shown below.

From a biome.cfg configurartion file you can set the color associated with the map with the following option:
# The hexadecimal color value of this biome. Used in the output of the /otg map command,
# and used in the input of BiomeMode: FromImage.
BiomeColor: #D76969

When drawing your map keep in mind the size you want your map to be and that each pixel is mapped as a surface of 4x4 blocks. Based on your OTG settings the transition from biome to biome can be more or less smooth. You can also set what biome should spawn in the unlikely case you forgot to draw an area or used a color not associated to any biome.

Closeup of the Map file

Example Biome map courtesy of the Dregora OTG presets (MIT).

ImageOrientation - How the image is oriented: North, South, East or West. When this is set to North, the image is placed in the world in the normal way. When it is set to East, the image is rotated 90 degrees counter-clockwise in memory so, that what is on the east in the image becomes north in the world.

ImageFillBiome - When using the FillEmpty mode this biome will be used when generating outside the image.

ImageXOffset / ImageYOffset - Translates the map origin. For some reason, this number needs to be multiplied with -1 when using FillEmpty

Terrain Height and Volatility[]

WorldHeightScaleBits - The height scale of the world. Increasing this by one doubles the terrain height of the world, substracting one halves the terrain height. Values must be between 5 and 8, inclusive.

WorldHeightCapBits - The height cap of the world. A cap of 7 will make sure that there is no terrain above y=2^7=128. Near this cap less and less terrain generates with no terrain above this cap. Values must be between 5 and 8, inclusive. Values may not be lower that WorldHeightScaleBits.

FractureHorizontal - Can increase (values greater than 0) or decrease (values less than 0) how much the landscape is fractured horizontally (see below for visual example).

FractureVertical - Can increase (values greater than 0) or decrease (values less than 0) how much the landscape is fractured vertically. Positive values will lead to large cliffs/overhangs, floating islands, and/or a cavern world depending on other settings. A comparisation of different FractureHorizontal and FractureVertical values:



RemoveSurfaceStone - Set this to true to place the biome surface block on top of all exposed stone.

DisableBedrock - Disable bottom of map bedrock generation. Doesn't affect ceiling bedrock.

CeilingBedrock - Enable ceiling of map bedrock generation.

FlatBedrock - Toggles whether bedrock is generated as a single, flat layer. Normally, the amount of bedrock decreases gradually from layers y=0 to y=5. When set to true, there will be only one solid bedrock layer at y=0. This setting also affects the CeilingBedrock if enabled.

BedrockobBlock - Block used as bedrock.

PopulationBoundsCheck - When set to true this setting ensures all objects generate in the same place no matter the direction in which the terrain was first discovered. If your world has many large objects and you do not mind that your world may look slightly different depending on the direction you explored in, set this setting to false.

Technical explanation: Terrain generation is split in two steps, chunk generation and population. During terrain population Minecraft guarantees that a 2x2 square of chunks is generated so that population of a chunk can extend into neighbouring chunks. Depending on the direction you explored in, other chunks may also be loaded. However, you usually don't want population to affect those chunks too, as that would cause terrain object generation to be dependant on the direction you explored in. The 2x2 chunk restriction makes it impossible to spawn CustomObject() BO2s and BO3s larger than 32x32 blocks.

ResourcesSeed - Allows you to use another seed for the resources (ores, trees, etc) than the world seed, so that the resources are generated in a different place. This can be useful if you are frequently regenerating areas (mining areas, minigames): just change the ResourcesSeed and the ores, trees and structures will have a new position. Players won't be able anymore to write down the coordinates of where ores will regenerate.

Water and Ice[]

WaterLevelMin / Max - These two variables control the water level. Every empty block between these two values will be flooded with the WaterBlock (caves are exempt). For biome specific water settings you can override all water values in the biome configs by enabling UseWorldWaterLevel:false there.

WaterBlock - Block id used as water in WaterLevel. Accepts Minecraft numerical IDs or Spigot block names.

IceBlock - Block id used as ice.


Note: The 'generate-structures' setting in the file is ignored by OTG. Use these settings instead.


StrongholdsEnabled - Whether the strongholds are enabled.

StrongholdCount - The number of strongholds in the world (default is 128).

StrongholdDistance - Determines how far strongholds are from the spawn and other strongholds (minimum is 1.0, default is 32.0)

StrongholdSpread - Determines how concentrated strongholds are around the spawn (minimum is 1, default is 3). Lower number, lower concentration.


VillagesEnabled - Whether the villages are enabled for the world.

VillageSize - The size of the village. Larger is bigger. Normal worlds have 0 as default, superflat worlds 1.

VillageDistance - The minimum distance between the village centers in chunks. Minimum value is 9.

Rare Buildings[]

RareBuildingsEnabled - Whether rare buildings (Desert temples, witch huts) are enabled.

MinimumDistanceBetweenRareBuildings - The minimum distance between rare buildings in chunks.

MaximumDistanceBetweenRareBuildings - The maximum distance between rare buildings in chunks.

Ocean Monuments[]

OceanMonumentsEnabled - Whether ocean monuments are enabled. A setting with the same name can also be found in the BiomeConfigs. When at least one of the two it set to false, the ocean monument won't spawn. In other words: setting this to false in the WorldConfig will disable ocean monuments in all biomes, regardless of the value of the setting in the biomes.

OceanMonumentGridSize - Ocean monuments are placed on the corners of a grid, with a random offset added to each corner. This setting represents the size of the grid in chunks. Setting this to 8 will give a grid with cells of 8x8 chunks.

OceanMonumentRandomOffset - Random offset from each corner of the grid defined by OceanMonumentGridSize in chunks, on both the x and z axis. May not be smaller than 0, and may not be larger than OceanMonumentGridSize.

Custom Structures[]

MaximumCustomStructureRadius - Affects the CustomStructure resource (see biome configuration files) maximum radius of custom structures in chunks. The more chunks are searched, the larger a structure can be, but the slower structure generation becomes. The radius is of a square, so a radius of 5 allows custom structures to be up to 10x10 chunks.

Setting your MaximumCustomStructureRadius to ahigh number will decrease performance even when there are no customstructure entries in your biome configs.

Other Structures[]

MineshaftsEnabled - Whether the underground abandoned mineshafts are enabled.

NetherFortressesEnabled - Whether the Nether fortresses are enabled.

World Visual Settings[]

Note: Values in this section will work only for clients with the singleplayer (forge) version of OTG. Sky, grass and foliage colors are defined inside the biome configs.

WorldFog - World fog color

WorldNightFog - World night fog color

Cave Variables[]

caveRarity - This controls the odds that a given chunk will host a single cave and/or the start of a cave system.

caveFrequency - The number of times the cave generation algorithm will attempt to create single caves and cave systems in the given chunk. This value is larger because the likelihood for the cave generation algorithm to bailout is fairly high and it is used in a randomizer that trends towards lower random numbers. With an input of 40 (default) the randomizer will result in an average random result of 5 to 6. This can be turned off by setting the "even cave distribution" setting (below) to true.

caveMinAltitude/caveMaxAltitude - Sets the minimum and maximum altitudes at which caves will be generated. These values are used in a randomizer that trends towards lower numbers so that caves become more frequent the closer you get to the bottom of the map. Setting even cave distribution (above) to true will turn off this randomizer and use a flat random number generator that will create an even density of caves at all altitudes.

individualCaveRarity - The odds that the cave generation algorithm will generate a single cavern without an accompanying cave system. Note that whenever the algorithm generates an individual cave it will also attempt to generate a pocket of cave systems in the vicinity (no guarantee of connection or that the cave system will actually be created).

caveSystemFrequency - The number of times the algorithm will attempt to start a cave system in a given chunk per cycle of the cave generation algorithm (see cave frequency setting above). Note that setting this value too high with an accompanying high cave frequency value can cause extremely long world generation time.

caveSystemPocketChance - This can be set to create an additional chance that a cave system pocket (a higher than normal density of cave systems) being started in a given chunk. Normally, a cave pocket will only be attempted if an individual cave is generated, but this will allow more cave pockets to be generated in addition to the individual cave trigger.

caveSystemPocketMinSize/caveSystemPocketMaxSize - The minimum and maximum size that a cave system pocket can be. This modifies/overrides the cave system frequency setting (above) when triggered.

evenCaveDistribution - Setting this to true will turn off the randomizer for cave frequency (above). Do note that if you turn this on you will probably want to adjust the cave frequency down to avoid long load times at world creation.

Canyon Variables (Ravines)[]

canyonRarity - The rarity of ravines, lower number means less ravines

canyonMinAltitude/canyonMaxAltitude - Altitude restrictions for ravine generation.

canyonMinLength/canyonMaxLength - The minimum/maximum length of ravines.

canyonDepth - The depth of ravines.

Other settings[]

World Seed - Entering a string here will set a default seed for every world created with the world preset.

Bo3 At Spawn - Enter the name of the object you want to generate at world spawn, the bo3 must be located in the /WorldObjects folder.