Skip to content

Configuring World.ini

Mat edited this page Dec 30, 2019 · 2 revisions

This documentation is outdated! While some configuration options listed here are valid, some don't work anymore. Please visit the User's Manual for up-to-date information. If you want to help transfer the world documentation to the User's Manual, feel free to create a PR here. The long-term goal is to remove this wiki page.

World.ini

[Plants] section

Several plant parameters can be configured, such as whether they are can be grown using bonemeal, and for cacti and sugarcane, their height:

Variable Default Meaning
IsCropsBonemealable 1 If nonzero, bonemeal can be used on a young crops block to grow it to its final (ripe) stage.
IsGrassBonemealable 1 If nonzero, bonemeal can be used on a grass block to grow tall grass and flowers around it.
IsSaplingBonemealable 1 If nonzero, bonemeal can be used on a sapling to grow trees out of them immediately.
IsMelonStemBonemealable 1 If nonzero, bonemeal can be used on a young melon stem to make it grow to its final (ripe) stage.
IsMelonBonemealable 0 If nonzero, bonemeal can be used on a ripe melon stem to grow a melon next to it.
IsPumpkinStemBonemealable 1 If nonzero, bonemeal can be used on a young pumpkin stem to make it grow to its final (ripe) stage.
IsPumpkinBonemealable 0 If nonzero, bonemeal can be used on a ripe pumpkin stem to make it grow a pumpkin next to it.
IsCactusBonemealable 0 If nonzero, bonemeal can be used on a cactus block to make the cactus grow to its maximum height.
IsSugarcaneBonemealable 0 If nonzero, bonemeal can be used on a sugarcane block to make the sugarcane plant grow to its maximum height.
MaxCactusHeight 3 Maximum height, in blocks, that a cactus will grow by itself, either naturally or by using bonemeal (if allowed by IsCactusBonemealable)
MaxSugarcaneHeight 3 Maximum height, in blocks, that a sugarcane will grow by itself, either naturally or by using bonemeal (if allowed by IsSugarcaneBonemealable)

[Generator] section

Contains the complete settings for the terrain generator. The generator is highly customizable. The variables it uses depend on the parts of the generator that are active.

Variable Meaning
BiomeGen The generator used for calculating biomes. May be one of "​Constant",​ "​CheckerBoard",​ "​Voronoi"​ and "​DistortedVoronoi"​. See table below for details.
HeightGen The generator used for terrain height. May be either "​Flat"​ or "​Classic"​. See table below for details.
CompositionGen The generator used for compositing the terrain. It decides where to put dirt, where grass, where stone, where water etc. May be one of "​SameBlock",​ "​DebugBiomes",​ "​Classic"​ or "​Biomal"​. See table below for details.
Structures Specifies which structures generate in the terrain. Contains multiple comma-separated entries. Entries may be "​Trees",​ "​MarbleCaves",​ "​DualRidgeCaves",​ "​Ravines"​ and "​OreNests"​. If missing, the default value of "​Trees,​MarbleCaves,​OreNests"​ is used. Note that the order of the generators is significant. For details, see the table below.
Finishers Finishing touches to the terrain. Contains multiple comma-separated entries. Entries may be "​SprinkleFoliage",​ "​Snow",​ "​Ice"​ and "​Lilypads"​. If missing, "​SprinkleFoliage,​Snow,​Ice,​Lilypads"​ is used.

Biome generators

Biome generator Description
Constant ​ Single constant biome is generated throughout the whole map. The biome is settable.
CheckerBoard ​ Biomes are generated in same-sized squares. Biomes will generate, one after another, in a checkerboard fashion. The squares'​ size and the available biomes are settable.
Voronoi ​ Biomes are calculated as Voronoi cells. This results in somewhat random biomes, but their edges are straight. Cell size and available biomes are settable.
DistortedVoronoi Biomes are calculated as Voronoi cells, then distorted to look more natural. Cell size and available biomes are settable.
MultiStepMap Biomes are generated in a somewhat logical manner. First the ocean mushroom and land are separated, then rivers are added, finally the land is divided by temperature and humidity. This results in the most naturally-looking biomes MCServer currently can do.

Height generators

Height generator Description
Flat Generates a flat terrain. The height is settable.
Classic ​ Generates random terrain based on a 3-freq Perlin noise; without regard to any biomes. The frequency parameters are settable.
Biomal ​ Generates random terrain based on a 3-freq Perlin noise, takes biomes into account. Assumes the sealevel is 62. No settings.
Noise3D Generates random terrain with overhangs based on a 3D Perlin noise, ignores biomes.
DistortedHeightmap Generates terrain with possible overhangs. Adheres to biomes.

Terrain composition generators

Composition generator Description
Biomal Each biome receives the correct blocks specific to that biome. Water bodies'​ bottoms get a mixture of sand and dirt. Sea level is settable, though this is not recommended.
Classic Terrain has grass on top, dirt underneath it, then stone. When the terrain height is under the sea level, water blocks are placed. Sandy beaches are generated around the sea level. Biomes are ignored. Beach height, depth and the sea level are settable.
DebugBiomes Terrain in each biome is created out of a specific block. This is supposed for biome generator debugging and should not be used for normal gameplay, since some blocks not suitable for terrain are used.
DistortedHeightmap Similar to Biomal, but with the possibility of overhangs. Adheres to biomes. Needs HeightGen set to DistortedHeightmap,​ too.
End Like vanilla'​s End dimension, generates a blob of endstone near the spawn and then emptiness everywhere else.
Nether Like vanilla'​s Nether dimension, generates caverns hollowed out of netherrack.
Noise3D 3D Perlin noise terrain. Very cheese-like. Ignores biomes. Needs HeightGen set to Noise3D, too.
SameBlock The whole terrain is created out of the same block. Optionally a bedrock layer can be generated. The block is settable.

Structures generators

Structures Description
DualRidgeCaves Generates medium blobby caverns throughout the world. Any block in its path gets replaced by air / lava.
LavaLakes Generates lava lakes below the surface. The relative frequency can be set.
MarbleCaves Generates huge wave-like caverns in the stone layer of the world.
OreNests Generates ore in the stone layer of the world. Only replaces stone.
Ravines Generates long thin fissures through the world. Any block in its path gets replaced by air.
Trees Generates a variety of trees on top of the terrain. The number and kinds of trees depend on biomes.
WaterLakes Generates water lakes below the surface. The relative frequency can be set.
WormNestCaves Generates random tunnel caverns throughout the world. Currently the closest to vanilla Minecraft that we have. Any block in its path gets replaced with air.

Finishers

Finishers Description
BottomLava Turns air in the bottom-most levels of the world into lava. Lava level is settable.
DeadBushes Places random dead bushes onto sand blocks.
Ice Turns surface water in cold biomes into ice. No settings.
LavaSprings Adds lava springs. The amount and height distribution are settable.
Lilypads Adds lilypads on top of surface water in swampland biomes. No settings.
PreSimulator Makes sand and gravel fall down and starts water flowing.
Snow Adds snow on top of snowable blocks in cold biomes. No settings.
SprinkleFoliage Adds random patches of small foliage (mushrooms, tall grass, cacti and flowers) to the top of the terrain. Ignores biomes and lightlevels.
WaterSprings Adds water springs. The amount and height distribution are settable.

Fine-tuning

The following variables are used only when their respective generator is active, otherwise they are ignored:

Variable Generator Description
ConstantBiome BiomeGen=Constant The biome that is to be used for the world. Either a biome number (0..22, as in the MC Wiki) or a biome name in text are recognized. Plains will be used if not found or invalid.
CheckerBoardBiomes BiomeGen=CheckerBoard A comma-separated list of biomes that the generator is allowed to generate. Biome can be a number (as in the MC Wiki) or a text. If not present or empty, the default Overworld biomes are allowed.
CheckerBoardBiomeSize BiomeGen=CheckerBoard Size, in blocks, of each square of the same biome. If not present, a value of 64 blocks is used.
VoronoiBiomes BiomeGen=Voronoi A comma-separated list of biomes that the generator is allowed to generate. Biome can be a number (as in the MC Wiki) or a text. If not present or empty, the default Overworld biomes are allowed.
VoronoiCellSize BiomeGen=Voronoi Size, in blocks, of the voronoi cells. If not present, a value of 64 is blocks is used.
DistortedVoronoiBiomes BiomeGen=DistortedVoronoi A comma-separated list of biomes that the generator is allowed to generate. Biome can be a number (as in the MC Wiki) or a text. If not present or empty, the default Overworld biomes are allowed.
DistortedVoronoiCellSize BiomeGen=DistortedVoronoi Size, in blocks, of the voronoi cells. If not present, a value of 96 is blocks is used.
MultiStepMapOceanCellSize BiomeGen=MultiStepMap Size, in blocks, of the voronoi cells used for ocean / mushroom / land decision.
MultiStepMapMushroomIslandSize BiomeGen=MultiStepMap Relative size of the mushroom islands relative to their voronoi cell. 0 means no mushroom biomes at all, 32 is a good default, 1024 means the mushroom island will fill its entire voronoi cell and 2048 means the mushroom island will not have any mushroom shore.
MultiStepMapRiverCellSize BiomeGen=MultiStepMap Relative frequency of the river-generating noise. The lesser the number, the more frequent, thinner and twistier the rivers are.
MultiStepMapRiverWidth BiomeGen=MultiStepMap Relative width of the river-generating noise latch. The higher the number, the wider the rivers are.
MultiStepMapLandBiomeSize BiomeGen=MultiStepMap Relative frequency of the land biome generating noises. Higher number means larger biomes.
---
FlatHeight HeightGen=Flat The height of the flat terrain, in blocks. If not present, 5 blocks.
ClassicHeightFreq1 HeightGen=Classic Parameters of the classic height generator'​s Perlin module.
ClassicHeightFreq2 ::: :::
ClassicHeightFreq3 ::: :::
ClassicHeightAmp1 ::: :::
ClassicHeightAmp2 ::: :::
ClassicHeightAmp2 ::: :::
---
SameBlockType CompositionGen=SameBlock The block type used for the terrain composition. See the MC Wiki for block types.
SameBlockBedrocked ::: If nonzero or not present, the terrain will generate with a bedrock layer at the very bottom.
ClassicSeaLevel CompositionGen=Classic Sea level height, in blocks. Blocks at this height will be the topmost ones consisting of water.
ClassicBeachHeight ::: Number of blocks above the sea level. Terrain height between sea level and this sum will be composed of sand. Terrain height above this sum will be compose of dirt + grass.
ClassicBeachDepth ::: Number of blocks below the sea level where the terrain of such height will be composed of sand, rather than dirt.
ClassicBlockBottom ::: The block used for the lower layer of terrain. Defaults to stone.
ClassicBlockMiddle ::: The block used for the three layers below the surface. Defaults to dirt.
ClassicBlockTop ::: The block used for the topmost block. Defaults to grass.
ClassicBlockBeach ::: The block used for beach generation. Defaults to sand.
ClassicBlockBeachBottom ::: The block used for the lowest part of the beach. Defaults to sandstone.
ClassicBlockSea ::: Block used for filling the sea. Defaults to stationary water.
BiomalSeaLevel CompositionGen=Biomal Sea level height, in blocks. Blocks at this height will be the topmost ones consisting of water. Note that it is not recommended to change this value. If not present, the default of 62 blocks is used.
--- --- ---
LavaLakesProbability Structures contains LavaLakes The probability (0 .. 100) of a lava lake generating for each chunk. Default is 10.
WaterLakesProbability Structures contains WaterLakes The probability (0 .. 100) of a water lake generating for each chunk. Default is 25.
--- --- ---
BottomLavaLevel Finishers contains BottomLava The Y level from which downwards the air (caves) is turned into lava. If not present, a default of 10 is used.

Example generator configuration

Since setting up a good generator is one of the most important thing to do for a world to be interesting,​ here's an example configuration that is known to generate a nice-looking world:

[Generator]
; use DistortedVoronoi generator with 128-block cells:
BiomeGen=DistortedVoronoi
DistortedVoronoiCellSize=128

; use the Biomal height generator:
HeightGen=Biomal

; use the Biomal terrain composition:​
CompositionGen=Biomal

; Get some interesting structures:
Structures=Trees,​WormNestCaves,​Ravines,​OreNests

; Want mushrooms, grass and flowers? Lilypads?
; Also, for snowy and icy biomes, make them actually winter-themed:​
Finishers=SprinkleFoliage,​Snow,​Ice,​Lilypads,​BottomLava

If you want to have the same terrain as MineCraft in the "​superflat"​ setting, use this configuration:​

; Generate constant plains biome:
BiomeGen=Constant
ConstantBiome=Plains

; Generate the same height everywhere, 5 blocks:
HeightGen=Flat
FlatHeight=5

; Generate a classic composition,​ but don't generate water above the terrain:
CompositionGen=Classic
ClassicSeaLevel=0
ClassicBeachHeight=-1

; Do not generate any structures:
Structures=

; Do not generate any tall grass, mushrooms, flowers, anything:
Finishers=

[WaterSprings] and [LavaSprings] sections

This section provides parameters for the WaterSprings and LavaSprings finishers of the world generator. They both share the same set of parameters.

Variable Meaning
Chance Chance of a spring occuring in a chunk. 0 .. 100, zero meaning none and 100 meaning "in every chunk"
HeightDistribution The height distribution of the springs'​ occurence. See below.

The height distribution tells MCServer how often a spring occurs at each height. The distribution is described using a special format of a string. It is a semicolon-separated list of XY points, each point being a comma-separated tuple of numbers. The first number is the height, the second number is the probability for that height. For heights that are not specified, their probability is linearly interpolated from the closest two heights. The points need to be sorted by their height values.

Default values depend on the fluid and on the world type:

Variable Fluid World type Default
HeightDistribution water Overworld 0, 0; 10, 10; 11, 75; 16, 83; 20, 83; 24, 78; 32, 62; 40, 40; 44, 15; 48, 7; 56, 2; 64, 1; 255, 0
Chance water Overworld 24
HeightDistribution lava Overworld 0, 0; 10, 5; 11, 45; 48, 2; 64, 1; 255, 0
Chance lava Overworld 9
HeightDistribution water Nether 0, 1; 255, 1
Chance water Nether 0
HeightDistribution lava Nether 0, 0; 30, 0; 31, 50; 120, 50; 127, 0
Chance lava Nether 15
HeightDistribution any End 0, 1; 255, 1
Chance any End 0

The following image shows the empirically calculated height distributions used by vanilla MineCraft. ​ {{ http://​mc-server.xoft.cz/​img/​vanilla_springs_huge.png | Vanilla MineCraft height distribution for springs }}

[Physics] section

Parameters in the Physics section govern the physics simulation in the world. Therefore, each world can have its specific physics behavior. This is especially useful for overworld / nether, since the two have different fluid parameters in the vanilla MC.

Variable Meaning
WaterSimulator The simulator to be used for water physics. Can be "​Floody"​ (default), "​Noop"​ or "​Vaporize"​. Further parameters in the [WaterSimulator] section.
LavaSimulator The simulator to be used for lava physics. Can be "​Floody"​ (default), "​Noop"​ or "​Vaporize"​. Further parameters in the [LavaSimulator] section.
DeepSnow If set to nonzero, enables deep snow cover. Zero means normal snow is used instead.
SandInstantFall If set to nonzero, the sand simulator will not create a falling sand entity and instead the sand will be immediately "​teleported"​ to its final destination,​ or broken into pickups on the way. Good for overloaded servers.

The Floody simulator spreads the fluid anywhere it can. It is similar to the vanilla simulator, but where vanilla produces a stream flowing towards a hole, Floody spreads in all directions.

The Noop simulator doesn'​t do any simulation at all. When placed from a bucket, a liquid just stays as it is. This is the simulator that puts the least strain on the server.

The Vaporize simulator vaporizes any fluid immediately. It is meant to be used for water in the Nether.

[WaterSimulator] and [LavaSimulator] sections

These two sections share the same set of variables, each setting the parameters for the particular fluid physics simulator. Some variables are used only for a specific simulator, the other simulators ignore them.

Variable Simulator Description
Falloff Floody How fast the fluid level decreases, in steps per block. Source blocks are 8 steps "​high",​ the decreasing step value shows in the fluid level decreasing. Defaults to 1 for water, 2 for lava.
NumNeighborsForSource Floody If at least this many neighboring blocks are sources, the block turns into a source, too. Set to -1 to disable. Defaults to 2 for water, -1 for lava.
TickDelay Floody How many ticks must pass before the fluid spreads further. The higher the number, the slower the spread. Defaults to 5 for water (4 spreads per second, 4 m/sec) and 30 for lava (1 spread every 1.5 seconds, 0.66 m/sec)

[FireSimulator] section

Fire simulator can be adjusted to have just the right flame for you. You can set how long a fire burns when it's next to a fuel and when it's without any fuel neighbor; how likely a block next to a fire is to catch fire. There'​s even a settable chance that a fuel block, when consumed by a fire next to it, will be converted into a fire block instead of an air block.

Fire burns in 15 stages, before it finally burns out. The times settable in the simulator tell it how long it takes to step through one stage, so effectively if you want a fire to burn for X milliseconds,​ set the time to X / 15. Note that the lowest possible setting is 50 milliseconds (1 game tick), so a fire will always burn for at least 3/4 of a second.

Variable Range Default Description
BurnStepTimeFuel 50 .. +inf 500 Number of milliseconds that a fire burns when next to a fuel, before transitioning to a next stage.
BurnStepTimeNonfuel 50 .. +inf 100 Number of milliseconds that a fire burns when NOT next to a fuel, before transitioning to a next stage.
Flammability 0 .. 100000 50 Chance that one of the fire block'​s neighbors will catch on fire.
ReplaceFuelChance 0 .. 100000 50000 Chance that a fuel block, when consumed by fire, will get replaced by a fire block instead of an air block.