In other languages: Deutsch 日本語 Português, Brasil Русский Українська 简体中文

Map generator: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(add table overview of ore generation for different frequency and size settings)
m (whitespace)
(45 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{Languages}}
{{Languages}}
World generation is, in short, a number of settings which define what the world will look like once generated. This can dramatically alter gameplay- a new player is advised to start with the default settings before deciding to change their world.
[[File:Default_123456789.png|thumb|right|An example how the world generator might create a new map: Default settings with map seed 123456789]]
World generation is the procedure by which the in game landscape is generated. In short: a number of settings, editable at the start of a new world, define what that world will look like. This can dramatically alter gameplay a new player is advised to start with the default settings before deciding to change their world.
__TOC__{{Clear}}
== Map generation presets ==
[[File:MapGeneratorOverview.png|thumb|right|400px|Overview of the map generation screen]]
A preset may be chosen in the top left dropdown instead of manually configuring the generation.
=== Default ===
Normal settings. The recommended way to play Factorio.


==How it works==
All sliders are set to the center position. Map height and width is unlimited, peaceful mode is disabled.
: [[File:MapGeneratorOverview.png]]
A more technical explanation of world generation mechanics is that the map generator generates most parts of the world with an algorithm named "Perlin Noise". In short, it works a bit like the waves in the sea.


[[File:Water-ocean-waves-sea-high-resolution-pictures.jpg|thumb|left|300px]]
All other settings are set to their defaults:
{| class="wikitable"
|-
! Enemy expansion            !! Default !! Evolution        !! Default
|-                                    
| Enabled                    || Yes    || Enabled          || Yes   
|-                                    
| Maximum expansion distance || 7      || Time factor      || 40   
|-                                    
| Minimum group size        || 5      || Destroy factor  || 200   
|-                                    
| Maximum group size        || 20      || Pollution factor || 9     
|-
| Minimum cooldown (Minutes) || 4     
|-
| Maximum cooldown (Minutes) || 60   
|-
|}


{| class="wikitable"
|-
! Pollution                !! Default !! Recipes/Technology          !! Default
|-                                       
| Enabled                  || Yes    || Recipe difficulty          || Normal
|-                                       
| Absorption modifier      || 100%    || Technology difficulty      || Normal
|-                                       
| Attack cost modifier      || 100%    || Technology price multiplier || 1
|-                                       
| Minimum damage to trees  || 60      || Research queue availability || After the game is finished
|-
| Absorbed per damaged tree || 10      ||
|-
| Diffusion ratio          || 2%      ||
|-
|}


=== Rich resources ===
Resources patches have a larger richness, so you don't have to expand far.


Everything above a defined level defines the existing (or non-existing) features of some type of terrain.
Difference from default: Resources have 200% richness instead of 100%.


=== Marathon ===
Recipes and technologies are more expensive.


The player should also know that the map is not generated at game start. Only the parts they see are generated, everything else is not. The map will be generated gradually as the player explores more terrain. See below for more technical details.
Difference from default: Expensive recipes and technology, technology price multiplier 4.


<br clear=all>
=== Death world ===
Biters are more dangerous and evolve faster.


The following image shows an example how the world generator might create a new map.
Difference from default: 200% enemy base frequency and 200% enemy base size, 75% starting area size, enemy evolution time factor is set to 200, pollution factor is set to 12. The pollution absorption modifier is set to 50% instead of 100%, same goes for the attack cost modifier.
[[File:Default_123456789.png|thumb|left| World generation on default settings with map seed 123456789]]


<div style="clear: both"></div>
=== Death world marathon ===
Recipes and technologies are expensive and biters are dangerous and plentiful. Only select this if you are a Factorio veteran.


===The top row===
Combines "Marathon" and "Death world" with some additional changes: Enemy evolution time factor is set to 150, pollution factor is set to 10. Attack cost modifier is set to 80% instead of 100% (50% for death world).
====Frequency====
This is '''not''', how frequent ore, coal, oil etc. is, instead determining the number of individual deposits the player will encounter.


This defines the wavelength of the wave-generators used by the Perlin Noise algorithm above, but not the total size of all the waves.
=== Rail world ===
Resource patches are large and spread far apart, to encourage train systems. Biters won't create any new bases or re-expand into cleared territory.


What this means is that frequency doesn't modify the amount of resources on a tile, instead modifying the area of each deposit. If the player decreases frequency then each of the deposits has less resources in total (because it covers less area), but per tile of a deposit there will be the same number of resources.
Difference from default: All resources are set to 33% frequency and 300% size. Water is set to 200% scale and 150% coverage. The evolution time factor is set to 20 from 40 and enemy expansion is disabled.
Additionally, changing frequency doesn't affect the average amount of resources in a limited map, only their distribution.


''High frequency'': For Terrain segmentation it means: Many different types of terrain, forest, desert and swamp could be within 10 tiles or less. Recommended for players interested in the different biomes of the world.
=== Ribbon world ===
For resources: Patches of resources are very common but frequently small and wear out quickly. Recommended for players who are willing to constantly reset equipment in exchange for a constant supply of resources.
The map height is limited to only 128 tiles, which introduces a range of challenges and interesting situations.


''Low frequency'': For Terrain segmentation it means: Big landscapes, vast areas typically only with forests. Recommended for players who want to consistently experience what they have near their spawn point.
Difference from default: Map height is limited to 128. All resources are set to 300% frequency, 50% size and 200% richness. Water is set to 25% coverage and size. Starting area size is increased to 300%.  
For resources: Resource patches are fairly rare but almost always very large and rich in resources. Recommended for players who don't want to move equipment often or who prefer to explore the world.


In short: Low terrain segmentation means large areas with same terrain. High terrain segmentation is the opposite, the terrain changing nature often. Typically huge forests vs. lots of small woods.
=== Island ===
A large island in an endless ocean.


This also causes enemy bases to appear more often using the same distribution rules as ores and biomes- however, this can lead to rapid [[enemy]] expansion due to the much higher number of nest clusters.
Difference from default: Terrain map type is set to island.


====Size====
== Manual configuration ==
This defines the size of generated ore patches and water through defining "levels."
It is possible experiment with different settings by opening the map preview, changing the settings and observing their effects. This makes it possible to directly observe what exactly particular settings modify in the world, beyond the textual descriptions provided on this page.


It increases the average diameter of ore patches and lakes, allowing one to adjust the size of both of these.
The seed is the starting value for the random number generator that Factorio uses for generating the world based on the generation settings. This means that even with the same generation settings, the world can look very different depending on the seed.


It's as simple as it seems- Small size would mean small ore patches and water masses, large means large ore patches and water masses. Note that this is effected by frequency, though it is presumably able to increase the total ore and water of the world where frequency simply re-balances it.
All resources and terrain features can be disabled by unchecking the checkbox in front of them.


Finally, this causes enemy bases to spawn larger, though bases created through the "natural process" of expansion are going to adhere to different rules.
=== Resources ===
Frequency determines the number of resource patches in a given area. It does not affect resource patch size or richness. A setting of 200% frequency that means roughly double the patches can be found in a given area.


The following table shows how the frequency and size settings affects the generation of ore patches.
The size setting adjusts the size of the resource patches. Setting the slider to 200% means the surface area of the patch is doubled.
{| class="wikitable"
|+Generation of iron patches on different frequency and size settings
!Frequency \ Size
!Very small
!Small
!Medium
!Big
!Very big


|-
Richness defines the yield of every ore tile and every oil field. If richness is set to 200%, each ore tile and oil field contains about double the amount of ore/oil. Outside of this, resource patch richness increases by distance from the starting area.
!Very low
|[[File:Iron_freq_very_low_size_very_small.png|frameless|300px]]
|[[File:Iron_freq_very_low_size_small.png|frameless|300px]]
|[[File:Iron_freq_very_low_size_medium.png|frameless|300px]]
|[[File:Iron_freq_very_low_size_big.png|frameless|300px]]
|[[File:Iron_freq_very_low_size_very_big.png|frameless|300px]]


|-
=== Terrain ===
!Low
Setting the map type to island generates a single island around the spawn point and endless ocean beyond that. The normal map type generates endless terrain.
|[[File:Iron_freq_low_size_very_small.png|frameless|300px]]
|[[File:Iron_freq_low_size_small.png|frameless|300px]]
|[[File:Iron_freq_low_size_medium.png|frameless|300px]]
|[[File:Iron_freq_low_size_big.png|frameless|300px]]
|[[File:Iron_freq_low_size_very_big.png|frameless|300px]]


|-
Water scale changes how much space there is between lakes. The smaller the scale, the swampier the terrain. Higher scale leads to bigger oceans separated by bigger landmasses. Water coverage influences the overall amount of water. Reducing it generates small lakes, increasing it generates large oceans.
!Normal
|[[File:Iron_freq_normal_size_very_small.png|frameless|300px]]
|[[File:Iron_freq_normal_size_small.png|frameless|300px]]
|[[File:Iron_freq_normal_size_medium.png|frameless|300px]]
|[[File:Iron_freq_normal_size_big.png|frameless|300px]]
|[[File:Iron_freq_normal_size_very_big.png|frameless|300px]]


|-
The settings for trees behave in the same way. Higher scale increases the distance between forests while lower scale reduces it. High tree coverage allows to completely cover the world in trees, and low coverage nearly removes them from the world.
!High
|[[File:Iron_freq_high_size_very_small.png|frameless|300px]]
|[[File:Iron_freq_high_size_small.png|frameless|300px]]
|[[File:Iron_freq_high_size_medium.png|frameless|300px]]
|[[File:Iron_freq_high_size_big.png|frameless|300px]]
|[[File:Iron_freq_high_size_very_big.png|frameless|300px]]


|-
Cliff frequency influences how many cliff lines there are in the world. Higher frequency means more cliffs, lower frequency reduces their number. The continuity setting changes how long and unbroken the cliff lines are. Low continuity leads to very short lines, high continuity to long, nearly unbroken lines of cliffs.
!Very high
|[[File:Iron_freq_very_high_size_very_small.png|frameless|300px]]
|[[File:Iron_freq_very_high_size_small.png|frameless|300px]]
|[[File:Iron_freq_very_high_size_medium.png|frameless|300px]]
|[[File:Iron_freq_very_high_size_big.png|frameless|300px]]
|[[File:Iron_freq_very_high_size_very_big.png|frameless|300px]]


|}
The moisture settings control the distribution of grass versus desert. Higher bias generates more grass, lower bias generates more desert. Higher scale increases the size of the grass/desert areas, low scale leads to small grass and desert patches.


====Richness====
The terrain type setting controls the distribution of red desert versus sand. Higher bias generates more red desert, lower bias generates more sand. Higher scale increases the size of the red desert/sand areas, low scale leads to small red desert and sand patches.
This defines the actual content of each generated ore patch, oil field, and [[Enemies]]' base drops, through changing the "height" of the wave.


Note that with bases this does not make them more difficult, but rather increases the [[Alien artifact]] yield.
=== Enemy ===
[[File:MapGeneratorEnemy.png|thumb|right|400px|The enemy tab]]
Frequency determines the number of enemy bases in a given area. It does not affect enemy base size. A setting of 200% frequency that means roughly double the enemy bases can be found in a given area.


===The left column===
The size setting adjusts the size of enemy bases. Setting the slider to 200% means the surface area covered by the enemy bases is doubled.
* Terrain segmentation: How often the terrain changes between biomes. This can include water, so beware of lower settings as they can limit world size artificially.
* Water: How water is generated on each map. Be warned that, since water is currently impassible except over lighter regions of water, this can potentially create very small or hard to navigate maps.
* Copper, Stone, Coal, Crude oil: Resources required to progress in the game. See above for more detailed explanations about each of these change.
* Enemy bases: How many and how large starting bases are. Note that new bases are created over time, making low enemy base counts somewhat less significant.


===Starting area===
When peaceful mode is turned on, the [[enemies]] don't begin fights, only responding if the player (or a structure) fires at them. Only the enemies located near the fired shot are aggravated and they do not call other enemies to join them. The aggravated enemies primarily attack the structures and players that initiated the aggression and also the structures that block their paths. After destroying their targets, most of the time the aggravated enemies will return to being peaceful, but some of them continue a nonstop rampage where they target nearby structures (but not faraway ones). Additionally, when a map is in peaceful mode, the enemies will not [[Enemies#Expansions|expand]].
This is a value defining a special area around the central coordinates of the map which will have different ore frequency, etc. from the rest of the map. Generally, this results in at least one confirmed ore source, always results in a water source, and always removes biter nests from spawning for an area around spawn. The settings of this area usually guarantee better starting conditions, although conditions may vary- the player may spawn completely isolated from the rest of the world!


The player may choose to make this area small or remove it entirely, however, this is not recommended as this opens the possibility of spawning in an impossible situation, or even in a biter nest.
The starting area is the an almost circular radius around the spawn point that does not contain enemy bases. Increasing its size pushes the bases further out, decreasing its size generates enemy bases closer to the spawn point. The size setting does not have any other effects.


It is generally a good idea for the player to explore a bit outside this area before they begin to build. While this area will almost always appear very fertile, it's possible that map generation will have made a situation where it is impossible to beat the game.
[[Enemies#Expansions|Enemy expansion]] can be enabled/disabled and further adjusted using the below settings.


===Peaceful mode===
{| class="wikitable"
The [[Enemies]] don't begin fights, only responding if the player hits them. This can be also switched on during the game- look into [[Console#Useful_commands_.28cheats.29|Console commands]].
|-
! Enemy expansion setting    !! Description
|-                         
| Maximum expansion distance || The maximum distance enemies will look to expand from other enemy bases.
|-                         
| Minimum group size        || The minimum size of an enemy expansion party modified by the current evolution level.
|-
| Maximum group size        || The maximum size of an enemy expansion party modified by the current evolution level.
|-
| Minimum cooldown (Minutes) || The minimum time between enemy expansions being sent out.
|-
| Maximum cooldown (Minutes) || The maximum time between enemy expansions being sent out.
|-
|}


===Map-width and -height===
[[Enemies#Evolution|Evolution]] can be enabled/disabled and further adjusted using the below settings.
If the player limits the width and/or height they may generate maps with finite resources and area. This is recommended for multiplayer servers running on weaker machines or players seeking extra challenge.


===Map seed / Map Exchange String===
{| class="wikitable"
|-
! Evolution setting !! Description
|-                 
| Time factor      || Controls how fast evolution increases over time.
|-                 
| Destroy factor    || Controls how fast evolution increases due to destroying enemy spawners.
|-                 
| Pollution factor  || Controls how fast evolution increases due to producing pollution.
|-
|}


; Map Seed:
=== Advanced ===
: Random number generator seed
; Map Exchange String
: All settings for the map creation (Map Seed, settings for resources, settings for size, etc.)


====Map Seed====
The map width and height allows to generate maps with finite resources and area. It is possible to limit generation in only direction, alike the [[#Ribbon world|ribbon world]].
This is the starting value for the random number generator that Factorio uses for generating the world. Know that 'random number' is really a misnomer in Factorio and on computers in general, as they aren't really random, instead being calculated with complicated algorithms that require a seed as startng value (For more detail, see  http://en.wikipedia.org/wiki/Random_seed).


So even with the same map-exchange string but a different seed maps can change dramatically, or appear very similar. It's up to chance.
The difficulty settings allow to change the [[Crafting#Recipe difficulties|recipe]]/technology difficulty and multiply the [[research|technology cost]]. Currently, setting the technology difficulty does not have an effect in vanilla. Furthermore, it can be controlled when the research queue is available: From the start, after launching a [[rocket silo|rocket]] or never.


====Map Exchange String====
[[Pollution]] can be enabled/disabled and further adjusted using the below settings.
A string generally looks like so:
>>>AAALABAABgADAwYAAAAEAAAAY29hbAMDAgoAAABjb3BwZXItb3Jl
AwMCCQAAAGNydWRlLW9pbAMDAgoAAABlbmVteS1iYXNlAwMCCAAAAGl
yb24tb3JlAwMCBQAAAHN0b25lAwMCORcrDUQ7AACMCwAAAAAAAAAAAA
ADAFR8w0Q=<<<


There is a thread for exchanging new strings: http://www.factorioforums.com/forum/viewtopic.php?f=36&t=5807
{| class="wikitable"
 
|-
=====Where can I use this string?=====
! Pollution setting        !! Description
It can be used in the map-generator: there is an extra field where the player can paste this string into. On windows computers, this may be done by selecting a string, right-clicking or pressing Control + C, then put it into the string field for the world generator with Control + V.
|-                      
 
| Absorption modifier      || Modifier of how much pollution is absorbed by trees and tiles.
=====Where can I get this string from?=====
|-
In the Load Game dialog select the game whose string you want, then click the Map Exchange String button in the lower left corner. When the string pops up, highlight it with your mouse and press Control-C to copy it. (Command-C on Mac.) You can now paste it in the map generator or send it to a friend.
| Attack cost modifier      || Modifier of how much pollution is absorbed by enemy attacks.
|-
| Minimum damage to trees  || Trees have 4 different stages of the progression towards being destroyed by pollution. Any pollution above this amount starts the process of moving a tree towards a more damaged stage.
|-
| Absorbed per damaged tree || Trees have 4 different stages of the progression towards being destroyed by pollution. This value specifies how much pollution is absorbed when moving to a more damaged stage.
|-
| Diffusion ratio          || The amount of pollution diffused into neighboring chunks per second.
|-
|}


==Generation==
=== Map exchange string ===
The map generator (world generator) is based on a modified [http://en.wikipedia.org/wiki/Perlin_noise Perlin noise algorithm].
A [[Types/AutoplaceSpecification#Noise|more detailed description]] is in the API document.


From the [http://www.factorioforums.com/forum/viewtopic.php?f=18&t=8016&p=63691#p63561 article which describes the generation]:
A map exchange string generally looks like this:
: [[File:Factorio-Perlin-Noise.png]]
Top: Normal settings, Middle: The same, but with higher '''frequency''' (note the same curve, but more condensed shape), Down: Same as top, but higher level = increased '''size'''.


The blue wavy line is an internal noise function, black line is a "level" that is used to determine resource placement, red lines are actual placed resources.
  >>>eNp1UTGIE0EU/WMu3F4EUUjhgR4prrDZJTlFJRyZURAR0d7Oz
The high frequency refers mainly to the noise function. Increasing the frequency increases count of resource fields and decreases their size and distance between them.
  WYiA5udOLsLnhaX4kptxEaraz3hOgu7wIEoKBxa2UVsLFROBC0U4
  p+dnWSNdw/+583/f97/fwbgGLhAADGgAEPqzAXSD/HI8JRZJZD9P
  leuVNyGtC0EKu1wV4qwGK3wiPfW3LYfc6NozBFKRv8qMFaOExnlE
  WDPtrZoOVGcx3igxgb0cKr8SKQ9c1eL5aOSGIcebCxlNl6H2nisD
  dkIC0YAtpIQjOWYOx7IKFEydGOeJCK61fTTO8228OMFt+416hqn9
  ivpKn475VGw1uylYSL6oeDKqXtnNc6dnL3RkyJOUsUzZccKuweW7
  ave8E5nKAeh6HYBahfQLuotCJB71e3LH+8+osTs5bGc7OWRYdtGr
  lhynR2YWrbkTEHHdP9RIKZpgi3yKodNiUlu6CQhD74+3/z1crdF/
  jz9/u5a+yYljUvVb3sr2y1MzusVDk3ck8caL+wqYDVHNE99oOTtG
  40vlJT1jap27Dy64dUSkKNHkG3eR1c7AXa0lpWpMtLN8NNu8smS9
  3R2D3yIVS2+pN0r7bKGk8lITm8wk1icZvHqChTbd6bLvbYddwqtZ
  2b4/w+KK8xElgsPX9F9OhP3uTQZAl9wd96e2DorwRT4wTu/vYd/A
  dl73Kk=<<<


This mechanism is used all through the map generation in factorio, with some adjustments. The map generator works tile by tile, so the resources are placed on a tile x if f(x) > 0. The amount of resources on the tile is given by f(x) * richness.
The map exchange string can be used to share all map generation settings between different players. The player can paste the string (using {{Keybinding|ctrl|V}}) into the map exchange string field and the game will set the generation settings to the settings saved in the string, resulting in a complete copy of the map when generated.


==Generating new Chunks==
The map exchange string can be retrieved from save files by going into the load game screen, selecting the desired map, clicking the map exchange string button in the upper right corner and copying the string from the window that pops up.
A map is endless by default, though its size can be limited by height and width - see above.


Because it is technically endless, the whole map isn't generated from the start. A new [[Chunk]] of map is generated only when needed.
For a technical description of the map exchange string, see [[map exchange string format]].


===Generating Invisible Chunks (Fog of War)===
== Mechanics ==


Around the visible chunks a perimeter of three chunks wide range of invisible chunks are generated (not for the limited parts).
=== Starting area ===


Invisible chunks are also generated if you produce very much pollution; the games generates so much (invisible) chunks as it needs to spread the pollution into the area.
There is a second internal starting area that is completely separate from the starting area that can be changed in the enemy settings tab. This starting area always has a constant size and affects the spawning of resources, cliffs and water directly at the spawn. The map generation logic makes sure that there is always at least one patch of [[coal]], [[iron ore]], [[copper ore]], and [[stone]] each. Furthermore, there is always a lake in the starting area, even when water is turned off, and there are never any cliffs there. [[Uranium ore]] and [[crude oil]] do not spawn in the starting area. The richness of the ore patches is slightly influenced by the frequency setting.[https://forums.factorio.com/viewtopic.php?p=432592#p432592]


Reason: This is for the natives, so that they can attack you from places, that you cannot see yet. This is also know as "fog of war".
=== Chunks ===


===Charting (Make Invisible Chunks Visible on Map)===
A map is endless by default, though its size can be limited by height and width — see above. Because it is technically endless, the whole map is not generated from the start. Instead, a new [[Map_structure#Chunk|chunk]] of the map is generated only when needed, similar to other procedurally generated world games.


As long as a chunk is invisible the part of the players map keeps black. This changes, when a chunk is '''[[Radar#Charting|charted]]''', which means when it is "touched" by radar. Either the players internal radar, which is always available, or the '''[[Radar]]''' entity. When a visible chunk is generated there might be also invisible generated.
==== Invisible chunks (fog of war) ====


An invisible chunk is eventually not made visible, even if you are so close, that you are able to see it in the character view (a black fog of war). This is, because of the above rule: a chunk is made visible, if it is touched by radar. Not character visibility. The players radar (or any radar) needs to be in range of that chunk to make it visible.
Outside of the visible chunk area, an invisible area of about 3 chunks wide is generated as a preloading mechanism. Enemies may be located inside these invisible chunks and can attack the player from there, while [[artillery turret]]s and [[artillery wagon|wagon]]s may automatically shoot enemy bases in these chunks if they are within their automatic range. Invisible chunks are also generated if pollution is generated heavily; the game generates (invisible) chunks as it needs to spread the pollution into the area.


===Limited Maps===
==== Charting (removing fog of war) ====


The player can limit the map size ('''limited width and height'''). Note that the player can also limit only the width or only the height, so they may generate "stripes" of land. For example, one could generate a map only 20 tiles high, but endless long!
As long as a chunk is invisible, the part of the players map stays black. This changes when a chunk is [[Radar#Charting|charted]], which means when it is "touched" by a radar. This can be either the player's internal radar, which is always available and continually charts chunks around the player, or the [[radar]] entity. If a far-away and thus ungenerated chunk is charted, it will be generated, together with the above-mentioned invisible 3 chunk radius of map around it.


A map is not bigger than this, there are also no invisible chunks generated beyond that limits.
==== Maximum map size and used memory ====


Everything around the map-limits '''is considered water'''. The player can place a [[Pump]] at the edge of such a map and it will suck water out of nothing.
The map size is limited to 2,000 x 2,000 kilometers; internally, this is a square 2,000,000 tiles on a side, with an area of 4,000,000,000,000 (4 trillion) square tiles (assuming 1 tile = 1 meter on a side yields 2,000 x 2,000 km = 4 million square km). In real-world terms, this is between the sizes of India and Australia (or about 40% the area of the United States, or over 10 times the area of Germany). It would take around 200 [[Time#Seconds|game-minutes]] (ca 3.3 hours real time) to reach that border from the center when riding a [[locomotive|train]] fueled with [[rocket fuel|rocket]] or [[nuclear fuel]]. This makes the world essentially endless for practical purposes. The generated chunks are fully mapped and stored in the player's RAM, which is the practical limiting factor of exploration.


===For Explorers===
Because chunks are only generated in and close around the area revealed by radar, it is possible to reach that border without overloading your computer, as the size of the map in computer memory is dependent only on chunks actually generated. If only a narrow stripe of land is explored to far away, this remains manageable.


If the player arrives at the current visible borders the needed chunks are generated. It generally makes no difference '''when''' these chunks are generated. Note, that if you go for example east, that for every generated chunk a perimeter of 3 more chunks are generated. That means a lot of work for the CPU. The map generation runs in "background" so it is possible, that the player "overruns" the map generator, if he drives very, very fast.
== History ==


=== Maximum Map Size and used Memory===
{{History|0.17.44|
* The resource frequency slider in the map generator settings has a smaller influence over the amount of ore in the starting area patches.
}}


The map size is limited to 2000 x 2000 kilometers (a quadrat with 2,000,000 tiles side-length, an area of 4,000,000,000,000 quadrat-tiles). This is between the size of India and Australia. It would take around 240 [[game-second|game-minutes]] (=4 hours) by train to reach that border from the center. So we can speak here from "endless".
{{History|0.17.0|
* Resource generation changed significantly:
** The starting area contains only iron, copper, coal and stone, in very predictable amounts. Uranium and oil are excluded from the starting area.
** Resource generation settings now have a much more dramatic effect. Increased the number of steps for each setting.
** Ore patches are slightly less frequent but richer.
** There will be a more balanced amount of resources within a large enough region.
** Many other small tweaks.
* Biter generation changed significantly:
** Biter richness slider removed, biter placement is only configured by size and frequency settings.
** Biter generation settings now have a much more dramatic effect. Increased the number of steps for each setting.
** Biter bases will increase in size, frequency and number of worms depending on the distance from player spawn.
** Worm size increases depending on the distance from player spawn.
** Small biter bases are now closer to the player spawn.
** At large distances from player spawn, biter base frequency is lower than before but biter bases are larger.
** Other small tweaks.
* Terrain generation changed significantly:
** Water is generated as large lakes instead of swamps.
** Tile generation improved. Tile placement respects biomes better.
** More predictable cliff placement.
** Better controls in the map generator GUI for water, tiles and cliffs.
* New map terrain type selectable: Island. Launch the rocket with only a limited amount of resources available on the map.
}}


Because only chunks are generated around the area, that is revealed by radar, it is with current computers possible to reach that border. This is, because the needed memory size of the map is limited only by the generated number of chunks in the game. Which is not so much, if you allocate just a small stripe of land.
{{History|0.16.0|
* Added cliffs.
* New terrains and new terrain generation.
* Trees can now be configured in the generate-map GUI.
* Terrain can be configured in the generate map GUI.
* Biters scale less with distance and there are generally less biters.
* No uranium as a starting resource also no uranium is ever generated near the starting area, you need to go look for it.
}}


The generated chunks are mapped and stored in the player's RAM, that is the limiting factor.
{{History|0.15.0|
* Extended map generator settings to include an advanced section.
* Added map generator presets.
* The map seed is used to generate unique maps instead of just shifting the starting position.
}}


==== Maps bigger than the active available RAM?====
{{History|0.13.7|
* Map size is now limited to 2000 km by 2000 km with a black bar rather than crashing when reaching this distance.
}}


Maps don't need to be stored completely in active RAM. Because in case of very large maps it is quite uncertain, that a chunk changes over time, there is currently not the need to keep all chunks in RAM; for example players reported games, which need 12 GB of RAM, but they had only 8, the remaining 4 GB had been swapped out to disk. It takes then of course long to load or save such a game, but it is possible to play those games without performance issue. ([https://forums.factorio.com/viewtopic.php?f=5&t=29566 How to store 4 trillion square tiles of map in just 8 GB RAM])
{{History|0.13.0|
* Map generator algorithm changed, further resource field now have greater richness.
}}


==See also==
{{C|Main}}
* [http://www.factorioforums.com/forum/viewtopic.php?f=5&t=7331 The Map Generator hates your guts, or dude where is my coal?]
* [http://www.factorioforums.com/forum/viewtopic.php?f=6&t=7924&p=63517#p63517 Some technical info]
* [http://www.factorioforums.com/forum/viewtopic.php?f=6&t=8624&p=69156#p69156 Temperature based biome-model] (how trees are placed)
* [http://www.factorioforums.com/forum/viewtopic.php?f=6&t=1593 Thread about definition of map map exchange string/seed]
* [http://www.factorioforums.com/forum/viewtopic.php?f=5&t=6447&p=50336#p50318 Definition of string and seed]

Revision as of 09:46, 11 August 2024

An example how the world generator might create a new map: Default settings with map seed 123456789

World generation is the procedure by which the in game landscape is generated. In short: a number of settings, editable at the start of a new world, define what that world will look like. This can dramatically alter gameplay — a new player is advised to start with the default settings before deciding to change their world.

Map generation presets

Overview of the map generation screen

A preset may be chosen in the top left dropdown instead of manually configuring the generation.

Default

Normal settings. The recommended way to play Factorio.

All sliders are set to the center position. Map height and width is unlimited, peaceful mode is disabled.

All other settings are set to their defaults:

Enemy expansion Default Evolution Default
Enabled Yes Enabled Yes
Maximum expansion distance 7 Time factor 40
Minimum group size 5 Destroy factor 200
Maximum group size 20 Pollution factor 9
Minimum cooldown (Minutes) 4
Maximum cooldown (Minutes) 60
Pollution Default Recipes/Technology Default
Enabled Yes Recipe difficulty Normal
Absorption modifier 100% Technology difficulty Normal
Attack cost modifier 100% Technology price multiplier 1
Minimum damage to trees 60 Research queue availability After the game is finished
Absorbed per damaged tree 10
Diffusion ratio 2%

Rich resources

Resources patches have a larger richness, so you don't have to expand far.

Difference from default: Resources have 200% richness instead of 100%.

Marathon

Recipes and technologies are more expensive.

Difference from default: Expensive recipes and technology, technology price multiplier 4.

Death world

Biters are more dangerous and evolve faster.

Difference from default: 200% enemy base frequency and 200% enemy base size, 75% starting area size, enemy evolution time factor is set to 200, pollution factor is set to 12. The pollution absorption modifier is set to 50% instead of 100%, same goes for the attack cost modifier.

Death world marathon

Recipes and technologies are expensive and biters are dangerous and plentiful. Only select this if you are a Factorio veteran.

Combines "Marathon" and "Death world" with some additional changes: Enemy evolution time factor is set to 150, pollution factor is set to 10. Attack cost modifier is set to 80% instead of 100% (50% for death world).

Rail world

Resource patches are large and spread far apart, to encourage train systems. Biters won't create any new bases or re-expand into cleared territory.

Difference from default: All resources are set to 33% frequency and 300% size. Water is set to 200% scale and 150% coverage. The evolution time factor is set to 20 from 40 and enemy expansion is disabled.

Ribbon world

The map height is limited to only 128 tiles, which introduces a range of challenges and interesting situations.

Difference from default: Map height is limited to 128. All resources are set to 300% frequency, 50% size and 200% richness. Water is set to 25% coverage and size. Starting area size is increased to 300%.

Island

A large island in an endless ocean.

Difference from default: Terrain map type is set to island.

Manual configuration

It is possible experiment with different settings by opening the map preview, changing the settings and observing their effects. This makes it possible to directly observe what exactly particular settings modify in the world, beyond the textual descriptions provided on this page.

The seed is the starting value for the random number generator that Factorio uses for generating the world based on the generation settings. This means that even with the same generation settings, the world can look very different depending on the seed.

All resources and terrain features can be disabled by unchecking the checkbox in front of them.

Resources

Frequency determines the number of resource patches in a given area. It does not affect resource patch size or richness. A setting of 200% frequency that means roughly double the patches can be found in a given area.

The size setting adjusts the size of the resource patches. Setting the slider to 200% means the surface area of the patch is doubled.

Richness defines the yield of every ore tile and every oil field. If richness is set to 200%, each ore tile and oil field contains about double the amount of ore/oil. Outside of this, resource patch richness increases by distance from the starting area.

Terrain

Setting the map type to island generates a single island around the spawn point and endless ocean beyond that. The normal map type generates endless terrain.

Water scale changes how much space there is between lakes. The smaller the scale, the swampier the terrain. Higher scale leads to bigger oceans separated by bigger landmasses. Water coverage influences the overall amount of water. Reducing it generates small lakes, increasing it generates large oceans.

The settings for trees behave in the same way. Higher scale increases the distance between forests while lower scale reduces it. High tree coverage allows to completely cover the world in trees, and low coverage nearly removes them from the world.

Cliff frequency influences how many cliff lines there are in the world. Higher frequency means more cliffs, lower frequency reduces their number. The continuity setting changes how long and unbroken the cliff lines are. Low continuity leads to very short lines, high continuity to long, nearly unbroken lines of cliffs.

The moisture settings control the distribution of grass versus desert. Higher bias generates more grass, lower bias generates more desert. Higher scale increases the size of the grass/desert areas, low scale leads to small grass and desert patches.

The terrain type setting controls the distribution of red desert versus sand. Higher bias generates more red desert, lower bias generates more sand. Higher scale increases the size of the red desert/sand areas, low scale leads to small red desert and sand patches.

Enemy

The enemy tab

Frequency determines the number of enemy bases in a given area. It does not affect enemy base size. A setting of 200% frequency that means roughly double the enemy bases can be found in a given area.

The size setting adjusts the size of enemy bases. Setting the slider to 200% means the surface area covered by the enemy bases is doubled.

When peaceful mode is turned on, the enemies don't begin fights, only responding if the player (or a structure) fires at them. Only the enemies located near the fired shot are aggravated and they do not call other enemies to join them. The aggravated enemies primarily attack the structures and players that initiated the aggression and also the structures that block their paths. After destroying their targets, most of the time the aggravated enemies will return to being peaceful, but some of them continue a nonstop rampage where they target nearby structures (but not faraway ones). Additionally, when a map is in peaceful mode, the enemies will not expand.

The starting area is the an almost circular radius around the spawn point that does not contain enemy bases. Increasing its size pushes the bases further out, decreasing its size generates enemy bases closer to the spawn point. The size setting does not have any other effects.

Enemy expansion can be enabled/disabled and further adjusted using the below settings.

Enemy expansion setting Description
Maximum expansion distance The maximum distance enemies will look to expand from other enemy bases.
Minimum group size The minimum size of an enemy expansion party modified by the current evolution level.
Maximum group size The maximum size of an enemy expansion party modified by the current evolution level.
Minimum cooldown (Minutes) The minimum time between enemy expansions being sent out.
Maximum cooldown (Minutes) The maximum time between enemy expansions being sent out.

Evolution can be enabled/disabled and further adjusted using the below settings.

Evolution setting Description
Time factor Controls how fast evolution increases over time.
Destroy factor Controls how fast evolution increases due to destroying enemy spawners.
Pollution factor Controls how fast evolution increases due to producing pollution.

Advanced

The map width and height allows to generate maps with finite resources and area. It is possible to limit generation in only direction, alike the ribbon world.

The difficulty settings allow to change the recipe/technology difficulty and multiply the technology cost. Currently, setting the technology difficulty does not have an effect in vanilla. Furthermore, it can be controlled when the research queue is available: From the start, after launching a rocket or never.

Pollution can be enabled/disabled and further adjusted using the below settings.

Pollution setting Description
Absorption modifier Modifier of how much pollution is absorbed by trees and tiles.
Attack cost modifier Modifier of how much pollution is absorbed by enemy attacks.
Minimum damage to trees Trees have 4 different stages of the progression towards being destroyed by pollution. Any pollution above this amount starts the process of moving a tree towards a more damaged stage.
Absorbed per damaged tree Trees have 4 different stages of the progression towards being destroyed by pollution. This value specifies how much pollution is absorbed when moving to a more damaged stage.
Diffusion ratio The amount of pollution diffused into neighboring chunks per second.

Map exchange string

A map exchange string generally looks like this:

  >>>eNp1UTGIE0EU/WMu3F4EUUjhgR4prrDZJTlFJRyZURAR0d7Oz
  WYiA5udOLsLnhaX4kptxEaraz3hOgu7wIEoKBxa2UVsLFROBC0U4
  p+dnWSNdw/+583/f97/fwbgGLhAADGgAEPqzAXSD/HI8JRZJZD9P
  leuVNyGtC0EKu1wV4qwGK3wiPfW3LYfc6NozBFKRv8qMFaOExnlE
  WDPtrZoOVGcx3igxgb0cKr8SKQ9c1eL5aOSGIcebCxlNl6H2nisD
  dkIC0YAtpIQjOWYOx7IKFEydGOeJCK61fTTO8228OMFt+416hqn9
  ivpKn475VGw1uylYSL6oeDKqXtnNc6dnL3RkyJOUsUzZccKuweW7
  ave8E5nKAeh6HYBahfQLuotCJB71e3LH+8+osTs5bGc7OWRYdtGr
  lhynR2YWrbkTEHHdP9RIKZpgi3yKodNiUlu6CQhD74+3/z1crdF/
  jz9/u5a+yYljUvVb3sr2y1MzusVDk3ck8caL+wqYDVHNE99oOTtG
  40vlJT1jap27Dy64dUSkKNHkG3eR1c7AXa0lpWpMtLN8NNu8smS9
  3R2D3yIVS2+pN0r7bKGk8lITm8wk1icZvHqChTbd6bLvbYddwqtZ
  2b4/w+KK8xElgsPX9F9OhP3uTQZAl9wd96e2DorwRT4wTu/vYd/A
  dl73Kk=<<<

The map exchange string can be used to share all map generation settings between different players. The player can paste the string (using CTRL + V) into the map exchange string field and the game will set the generation settings to the settings saved in the string, resulting in a complete copy of the map when generated.

The map exchange string can be retrieved from save files by going into the load game screen, selecting the desired map, clicking the map exchange string button in the upper right corner and copying the string from the window that pops up.

For a technical description of the map exchange string, see map exchange string format.

Mechanics

Starting area

There is a second internal starting area that is completely separate from the starting area that can be changed in the enemy settings tab. This starting area always has a constant size and affects the spawning of resources, cliffs and water directly at the spawn. The map generation logic makes sure that there is always at least one patch of coal, iron ore, copper ore, and stone each. Furthermore, there is always a lake in the starting area, even when water is turned off, and there are never any cliffs there. Uranium ore and crude oil do not spawn in the starting area. The richness of the ore patches is slightly influenced by the frequency setting.[1]

Chunks

A map is endless by default, though its size can be limited by height and width — see above. Because it is technically endless, the whole map is not generated from the start. Instead, a new chunk of the map is generated only when needed, similar to other procedurally generated world games.

Invisible chunks (fog of war)

Outside of the visible chunk area, an invisible area of about 3 chunks wide is generated as a preloading mechanism. Enemies may be located inside these invisible chunks and can attack the player from there, while artillery turrets and wagons may automatically shoot enemy bases in these chunks if they are within their automatic range. Invisible chunks are also generated if pollution is generated heavily; the game generates (invisible) chunks as it needs to spread the pollution into the area.

Charting (removing fog of war)

As long as a chunk is invisible, the part of the players map stays black. This changes when a chunk is charted, which means when it is "touched" by a radar. This can be either the player's internal radar, which is always available and continually charts chunks around the player, or the radar entity. If a far-away and thus ungenerated chunk is charted, it will be generated, together with the above-mentioned invisible 3 chunk radius of map around it.

Maximum map size and used memory

The map size is limited to 2,000 x 2,000 kilometers; internally, this is a square 2,000,000 tiles on a side, with an area of 4,000,000,000,000 (4 trillion) square tiles (assuming 1 tile = 1 meter on a side yields 2,000 x 2,000 km = 4 million square km). In real-world terms, this is between the sizes of India and Australia (or about 40% the area of the United States, or over 10 times the area of Germany). It would take around 200 game-minutes (ca 3.3 hours real time) to reach that border from the center when riding a train fueled with rocket or nuclear fuel. This makes the world essentially endless for practical purposes. The generated chunks are fully mapped and stored in the player's RAM, which is the practical limiting factor of exploration.

Because chunks are only generated in and close around the area revealed by radar, it is possible to reach that border without overloading your computer, as the size of the map in computer memory is dependent only on chunks actually generated. If only a narrow stripe of land is explored to far away, this remains manageable.

History

  • 0.17.44:
    • The resource frequency slider in the map generator settings has a smaller influence over the amount of ore in the starting area patches.
  • 0.17.0:
    • Resource generation changed significantly:
      • The starting area contains only iron, copper, coal and stone, in very predictable amounts. Uranium and oil are excluded from the starting area.
      • Resource generation settings now have a much more dramatic effect. Increased the number of steps for each setting.
      • Ore patches are slightly less frequent but richer.
      • There will be a more balanced amount of resources within a large enough region.
      • Many other small tweaks.
    • Biter generation changed significantly:
      • Biter richness slider removed, biter placement is only configured by size and frequency settings.
      • Biter generation settings now have a much more dramatic effect. Increased the number of steps for each setting.
      • Biter bases will increase in size, frequency and number of worms depending on the distance from player spawn.
      • Worm size increases depending on the distance from player spawn.
      • Small biter bases are now closer to the player spawn.
      • At large distances from player spawn, biter base frequency is lower than before but biter bases are larger.
      • Other small tweaks.
    • Terrain generation changed significantly:
      • Water is generated as large lakes instead of swamps.
      • Tile generation improved. Tile placement respects biomes better.
      • More predictable cliff placement.
      • Better controls in the map generator GUI for water, tiles and cliffs.
    • New map terrain type selectable: Island. Launch the rocket with only a limited amount of resources available on the map.
  • 0.16.0:
    • Added cliffs.
    • New terrains and new terrain generation.
    • Trees can now be configured in the generate-map GUI.
    • Terrain can be configured in the generate map GUI.
    • Biters scale less with distance and there are generally less biters.
    • No uranium as a starting resource also no uranium is ever generated near the starting area, you need to go look for it.
  • 0.15.0:
    • Extended map generator settings to include an advanced section.
    • Added map generator presets.
    • The map seed is used to generate unique maps instead of just shifting the starting position.
  • 0.13.7:
    • Map size is now limited to 2000 km by 2000 km with a black bar rather than crashing when reaching this distance.
  • 0.13.0:
    • Map generator algorithm changed, further resource field now have greater richness.