- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
v0.31:Advanced world generation
This article is about an older version of DF. |
- This article contains information on advanced world generation. For information on basic world generation, see Template:L.
When you want more control of what your world looks like, it's time for advanced world generation. Help with this is provided below.
Advanced World Generation Screen
Once you select Design New World With Advanced Parameters from the main menu, a screen that looks something like this will appear:
This screen is relatively intuitive but some parts could use some explanation.
Parameter Sets
The list of already defined parameter sets is in the upper right corner. You can select the current set that you want to work with using the up and down directional keys.
Hitting a will add a new set to the end of the list. You can also copy an existing set to a new one allowing you to base a new set on an existing one. Using t you can change the name of the parameter set but note that this will not effect the name of the world that is generated.
Parameter sets are stored in the data/init/world_gen.txt file in the main DF directory. The F1 and F6 keys will load and save all of the parameter sets to this file. You will need to save the world gen parameters to this file before you hit Enter to generate the world.
The world_gen.txt file can also be edited with a text editor. This is particularly useful because people will often post their parameter sets on the forum or wiki in text form. (See below for more info.) The F1 key comes in handy when editing this file while the game is still running.
World Name
As previously mentioned, the title of the parameter set doesn't affect the name of the world. You can force a particular name for your world using n or set it back to the default random setting using N.
Seed Values
The world generation process uses a PRNG (Pseudo Random Number Generator) algorithm. A PRNG will produce a sequence of numbers that "looks" random even though the actual sequence of numbers will always be the same if the PRNG is started with the same seed value. Basically this means that if you run word generation with a certain seed value on your computer, and someone else runs world generation with the same seed value on their computer, the same sequence of random numbers will be generated on both computers. The practical impact of this is that someone else can generate exactly the same world that you generated by entering the same seed value that you used.
A specific seed value can be entered with s. In order to find out what seed values were used for the last world you generated you can look at this screen. If you want to be able to tell someone else how to generate exactly the same world that you just generated, they will need all of the seed value listed under Last Param Set.
Normally you don't enter these seed values and the world generation process comes up with seed values based on some sort of "true" random information from things like random values in uninitialized memory, the current date/time, etc. If you have entered a seed value you can revert back to a random seed using S.
Entering Parameters and Generating a World
Unless you're using an already defined parameter set you will probably want to edit the parameters. Select the set you want to edit using the up/down directional keys and press e. Information about each parameter is documented below.
Once you are happy with the parameters you have set, hit Esc to get back to this screen, hit F6 to save the values you just edited, and hit Template:Enter to start. The rest of the process is the same as basic Template:L.
Editing the Parameters Init File Directly
Parameter sets are stored in world_gen.txt in the \data\init folder, using world tokens. You can copy and paste other player's sets of parameters into your world_gen.txt to use their parameter sets, and some are provided at Pregenerated worlds. Another place to find parameter sets is the Worldgen cookbook thread on the official forums.
Advanced Parameters
To access advanced parameters, press e when at the screen for creating new worlds with parameters screen. This will bring you to an editable list of various guidelines the world-gen process will use when creating your new world.
Seed Values
Here you can enter specific seed values for different parts of the world generation process. Different sequences of pseudorandom numbers are used for different parts, so you can use this to reproduce only the particular part of world generation from some previously generated world if you want.
Normally you will want to leave all of these set to Random unless you're specifically trying to reproduce the results of another world generation run.
Embark Points
This controls the number of points that you have for skills and equipment when you embark in fortress mode. Turning this value up will allow games started in this world to start with more skilled dwarves with better equipment. Normally you can do just fine by leaving this value set to default, but you might want to up it for experimental/testing purposes or to help dwarves survive in a particularly evil world.
End Year
This is how many years of history are generated for the world. This is basically the same as the History parameter in basic world gen, except that you can enter an exact value for number of years. See Template:L for more info.
Population Cap After Civ Creation
This determines the maximum total population of all civilizations before history begins.[Verify] Turning the value up will result in larger civilizations. You can enter -1 to make population unlimited in which case populations will be limited by factors like biome and available space.[Verify]
Site Cap After Civ Creation
This controls the maximum number of towns and similar sites for all civilizations. [Verify] Raising the number will allow for more towns, etc though the number of sites will still be limited by space and terrain.[Verify]
Percentage of Beasts Dead for Stoppage
The world starts out with a certain number of megabeasts in existence. If this percentage of megabeasts dies during history generation, then history generation will stop early. For example if the value is 80, if history starts with 200 megabeasts and 160 of them are killed by historical events or otherwise die before End Year is reached, history generation will stop early.
Year to Begin Checking Megabeast Percentage
The percentage of dead megabeasts for stoppage will not be checked until this year is reached in history generation. The usefulness of this parameter is unknown.[Verify]
Cull Unimportant Historical Figures
Historical figures such as civilization leaders which never actually do anything will be removed from the world data. This means they will not appear in Legends mode or in things like dwarf engravings.[Verify]
Reveal All Historical Events
Setting this to Yes will allow access to all information about the history of the world in Legends mode. If set to No, then you will have to discover historical information in adventure mode or by instructing dwarves to make engravings.[Verify]
Caverns Parameters
Cavern Layer Number
This parameter determines how many cavern systems will be generated, not including the Magma layer or the Bottom layer. Defaults to three.
If this is 0 then you will not have Caverns on your map. Note that disabling caverns will make it impossible to grow any underground plants because none will exist for your civilization to cultivate.
Example:
[CAVERN_LAYER_COUNT:3]
Layer Openness min\max
Dictates the size of cavern passages. When Passage Density (see below) is set to minimum (0), caverns will be open expanses. Raising the maximum will increase the size of the caverns.
Example:
[CAVERN_LAYER_OPENNESS_MIN:0]
[CAVERN_LAYER_OPENNESS_MAX:100]
Layer Passage Density min\max
This determines how many passages form the cavern. If openness (see above) is set to minimum and density increased then you will get a maze like network of small criss-crossing passages. Raising the values further increases the number of the maze-like passages.
Example:
[CAVERN_LAYER_PASSAGE_DENSITY_MIN:0]
[CAVERN_LAYER_PASSAGE_DENSITY_MAX:100]
Layer Openness and Layer Passage Density
Open caverns and dense passageways are not mutually exclusive. When both are raised, bizarre results can occur, such as layers showing a combination of open caverns, a cluster of network passages, and natural walls sprinkling the inside of an otherwise open cavern. Reference
If you want the largest open spaces possible, then decrease the density and increase the openness. If you want a labyrinth of passageways, lower the openness and raise the passage density.
Another interesting note about the cavern layers is that the seed and number of demon types effect the layout of the caverns.
Layer Water min\max
Determines how many caverns will have water at the bottom. Note that, even at 100, there will be some amount of ground in caverns, but each cavern 'bubble' will contain some amount of water.
At 0, there will be no water in your caverns. This may impact future underground plant growth, although maps will still start with underground flora.
Example:
[CAVERN_LAYER_WATER_MIN:0]
[CAVERN_LAYER_WATER_MAX:100]
Magma Layer
Magma sea 4-5 layers at the bottom of map.
Value 1 forces magma layer, value 0 appears to prevent it.
Appears not have impact on volcanoes, nor vulcanism, so even if 0 there will still be emark locations with magma.
If a volcano exists, it appears to always tap the magma sea, but the magma sea will not be revealed by revealing the volcano.
(Unconfirmed whether magma layer still can occur if HFS exists in a specific embark tile, e.g. Temple).
Example:
[HAVE_BOTTOM_LAYER_1:1]
Bottom Layer
Cavern below magma sea. If "yes" the "HFS" layer is always present. Defaults to "yes".
If turned on, will force the magma layer above it.
(Unknown whether this has any impact on occurrence of HFS temple)
Example:
[HAVE_BOTTOM_LAYER_2:1]
Z Levels
[Previous table clear as mud; this table murky pool.]
Following table based on having 3 cavern layers. The Levels Above Layer settings control how many Z-Levels are above each layer. A layer may itself consist of multiple Z-Levels (and almost always does).
Setting Name | file tag | Description |
---|---|---|
Above Ground | LEVELS_ABOVE_GROUND | The number of Z-Levels of air above the highest surface level. Has no impact on how many Z-levels deep the surface layer is. |
Above layer 1 | LEVELS_ABOVE_LAYER_1 | Z-Levels of stone above the first cavern layer. Making this higher will guarantee at least this many levels to build your fortress, but will have no impact on how many z-levels thick the surface layer is. Also, the top of a cavern may be higher than the rest of a cavern, so in practice there will be more levels than this. |
Above Layer 2 | LEVELS_ABOVE_LAYER_2 | Z-levels of earth between very top of second cavern and very bottom of first cavern. |
Above Layer 3 | LEVELS_ABOVE_LAYER_3 | Z-levels of earth between very top of third cavern and very bottom of second cavern. |
Above Layer 4 | LEVELS_ABOVE_LAYER_4 | Z-Levels of earth between very highest magma and very bottom of third cavern. Spoiler Hidden: Making this high will give a large area for HFS veins, so that it never touches caverns, giving more to mine IF it was impacting the cavern previously. |
Above Layer 5 | LEVELS_ABOVE_LAYER_5 | Uncertain. May control the number of levels of "Semi Molten Rock" between HFS and Magma, may control number of levels of magma, may impact both. In experimentation, the overall depth of all magma sea and semi-molten rock levels appears to increase, but not consistent enough to say for certain. Only valid if Magma Layer present. Spoiler Hidden:Often the HFS vein will only extend as high as the highest magma, making this the only guaranteed way to increase amount of HFS to mine, but unfortunately also creating enormous useless semi-molten z-levels |
At Bottom | LEVELS_AT_BOTTOM | Appears to be number of levels of HFS chamber. Only valid if Bottom Layer present. Often has no impact. Values larger than default results in strange things. |
Some implications:
- The number of surface layers (e.g. soil), at this time, can not be controlled. For example, on a map with 1 layer of Peat, then a layer of Silt, then a layer of Obsidian, there is no control to let you increase either one to be, say, 20 z-levels. (though you may get lucky with the Obsidian).
- There can be multiple stone layers between the cavern and the surface. So increasing Levels Above Layer 1 may give you more Conglomerate, or more Granite, and you have no control over which stone layer spans those Z-Levels.
- The layers shown on embark span across the cavern layers in an unknown and inconsistent way. Sometimes those 10 different layers of stone are evenly distributed over your 400 z-level deep map, sometimes the first 9 get 1 z-level each and the last gets the other 391 levels. No way to control found yet.
- The HFS temple, if present, will always extend into the rock layers, and appears to always make contact with the bottom cave. Large values for levels above layer 5 and layer 4 can result in enormous temples, but the number of levels at the top (the part with undead) appears to be unaffected.
- Unconfirmed whether number of levels between caverns has any impact on cavern height. There will be connecting ramps and/or shafts between cavern layers no matter how many levels are between them.
- Very Important: These values appear to apply across a whole 16x16 Region, not just embark areas. That means that if a 16x16 region is completely flat, but has one tall mountain in one far corner, even if you set Levels Above Ground low (e.g. 2 z-levels) you still have all the empty air of the highest mountain in every embark tile (e.g. 200 z-levels). Also can happen to the semi-molten layer, and can lead to unexpected behavior.
- Very large values can cause strange things to happen. Even more true for small values.
Volcanoes
Minimum Volcanism/Maximum Volcanism
Setting minimum to high value is not a good way to produce multiple volcanoes ("Volcanism not evenly distributed" rejection).
Minimum Volcano Number
You want to use this (you may wait for perfect world - 500 rejects for 100 volcanoes minimum is typical).
The World Generator is having trouble placing...
This section provides help with solving rejection issues.
Mountain peaks
rejection log example: Not enough peaks: 1<3 Check your maximum elevation parameters.
- Can the elevation 400 be placed enough times to provide space for your peaks?
- Check your preset elevations for the elevation 400.
- You must have at least as many of these highest elevation points as you are requiring peaks.
Alternatively, reduce the number of peaks required by the parameters.
Mid-level elevations.
- Your worldgen parameters must allow elevations between 100 and 299 for this.
- Check the parameters governing elevation frequencies.
- Or simply reduce the number of mid-level elevation squares required.
- Check the parameters governing elevation frequencies.
Low elevations
Your worldgen parameters must allow for enough elevations between 0 and 99 for this.
High elevations
Your worldgen parameters must allow for enough elevations between 300 and 400 for this.
Ocean squares along the edges
Your worldgen parameters must allow for enough elevations between 0 and 99 for this.
- If that doesn't work, simply reduce the number of edge oceans required.
rainfall/drainage/savagery/volcanism in the manner specified by the parameters
Check the parameters governing these features. Reduce the number of high, medium or low squares required.
Volcanoes
Check your maximum volcanism value.
- Volcanoes can only form in areas with 100 volcanism.
- As such, you must have at least as many areas with 100 volcanism as you do desired volcanoes.
If all else fails, reduce the number of volcanoes required by the parameters.
Swamps and marshes
Make sure your parameters and presets can support mid-elevation, mid-to-high rainfall, low drainage, non-freezing areas.
- If that doesn't work, reduce the number of swamp squares and regions required by the parameters.
Deserts and badlands
Make sure your parameters and presets can support mid-elevation, very low rainfall, non-freezing areas.
- If that doesn't work, reduce the number of desert squares and regions required by the parameters.
Forests
Make sure your parameters and presets can support mid-elevation, high rainfall, high drainage, non-freezing areas.
- If that doesn't work, reduce the number of forest squares and regions required by the parameters.
Mountains
Make sure your parameters and presets can support high elevation areas.
- If that doesn't work, reduce the number of mountain squares and regions required by the parameters.
Oceans
Make sure your parameters and presets can support low elevation areas.
- If that doesn't work, reduce the number of ocean squares and regions required by the parameters.
Glaciers
Make sure your parameters and presets can support mid-elevation, very high drainage, freezing areas.
- If that doesn't work, reduce the number of glacial squares and regions required by the parameters.
Tundra regions
Make sure your parameters and presets can support mid-elevation, low-to-mid drainage, freezing areas.
- If that doesn't work, reduce the number of tundra squares and regions required by the parameters.
Grasslands
Make sure your parameters and presets can support mid-elevation, low-to-mid rainfall, low-to-mid drainage, non-freezing areas.
- If that doesn't work, reduce the number of grassland squares and regions required by the parameters.
Hills
Make sure your parameters and presets can support mid-elevation, low-to-mid rainfall, high drainage, non-freezing areas.
Rivers
Make sure your parameters and presets allow as many mountain squares as you are requiring river start points.
- If that doesn't work, reduce the number of rivers required by the parameters.
Too many subregions
Make sure your parameters and presets aren't so variable that biomes change frequently.
- If that doesn't work, increase the number of subregions permitted by the parameters, up to the cap.
Mountain caves
Make sure your parameters and presets allow as many border mountain squares as you are requiring mountain caves.
- If that doesn't work, reduce the number of mountain caves required by the parameters.
Low-lying caves
Make sure your parameters and presets allow as many mid-elevation squares as you are requiring low-lying caves.
- If that doesn't work, reduce the number of non-mountain caves required by the parameters.
Civilizations
Make sure your parameters and presets offer enough low-to-mid savagery, evil/good appropriate, biome appropriate squares to establish sites.
- High savagery (66+) blocks civilization placement -- make sure your parameters and presets offer at least small pockets of low-to-mid savagery areas.
- If you have very few biome types and are placing good or evil regions, they'll often crowd out the civilizations as well.
- If that doesn't work, reduce the number of civilizations required by the parameters.
The world generator couldn't find any civilization definitions
This problem cannot be resolved by continuing, so you should either abort or skip all rejects for a legends-only game.
The world generator is having trouble placing a controllable civilization
Make sure your parameters and presets have adequate squares of this kind.
- Dwarves, for example, require non-evil, non-good, unsavage mountain squares that aren't surrounded by the ocean.
- If that doesn't work, remove the requirement of a controllable civilization from the parameters, which will restrict you to adventurers (assuming an appropriate civilization is placed)
Default Worldgen Parameters
Samples and Examples
Worlds | |
---|---|