<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cube</id>
	<title>Official Factorio Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cube"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Cube"/>
	<updated>2026-04-21T14:45:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=126176</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=126176"/>
		<updated>2016-07-19T08:55:53Z</updated>

		<summary type="html">&lt;p&gt;Cube: Clarified new influence calculation in starting area&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability_Calculation|Probability Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier_distance_bonus ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus to richness multiplier per tile of distance from starting point.&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== size_control_multiplier ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Magic. Based on sum of influences of noises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.12.x&lt;br /&gt;
&lt;br /&gt;
This value times the size control setting is added to influence right before sharpness filter.&lt;br /&gt;
Very small has a multiplier of -1, very big has 1.5.&lt;br /&gt;
This value is replaced by ```coverage``` parameter in 0.13.0.&lt;br /&gt;
&lt;br /&gt;
=== random_probability_penalty ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
A random value between 0 and this number is subtracted from a probability after sharpness filter.&lt;br /&gt;
Only works for entities.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
=== coverage ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Calculated from existing peaks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.0&lt;br /&gt;
&lt;br /&gt;
Sets a fraction of surface that should be covered by this item.&lt;br /&gt;
&lt;br /&gt;
Internally this adds an additive influence modifier, so that expected fraction of tiles where total influence &amp;gt; 0.5 (the threshold for sharpness filter) equals the parameter.&lt;br /&gt;
&lt;br /&gt;
Because of the autoplace system&#039;s complexity, this is only accurate on simple rules and does some simplification on the more complex ones:&lt;br /&gt;
* There is always just one combination of tile properties (see [[#Dimensions]]) for which the coverage is calculated. This combination is given by a first *_optimal value encountered of each type other than starting_area and tier_from_start. Starting_area value is fixed to 0 and tier_from_start to 4.&lt;br /&gt;
* min_influence and max_influence are completely ignored.&lt;br /&gt;
&lt;br /&gt;
=== starting_area_amount ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.10&lt;br /&gt;
&lt;br /&gt;
If this value is non zero, influence of this entity will be calculated differently in starting area:&lt;br /&gt;
For each entity with this parameter a position in starting area is selected and a blob is placed centered on this position.&lt;br /&gt;
The central tile of this blob will have approximately amount of resources selected by this value.&lt;br /&gt;
&lt;br /&gt;
=== starting_area_size ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.10&lt;br /&gt;
&lt;br /&gt;
See [[#starting_area_amount]].&lt;br /&gt;
Controls approximate radius of the blob in tiles.&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
You can see sheets on the generation of trees, doodads, biomes, water and tiles on this page: [[AutoplaceSheets]]&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
&lt;br /&gt;
There are two possible modes in which influence is calculated.&lt;br /&gt;
By default influence is calculated as a sum of influences of peaks (see next paragraph).&lt;br /&gt;
When [[#starting_area_amount]] parameter is non zero a position in starting area is selected and a blob is placed centered on this position.&lt;br /&gt;
Influence is then a maximum of the default calculated value and a value obtained from this blob.&lt;br /&gt;
&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions and sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability_Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences plus a [[#size_control_multiplier|bonus for autoplace control]], passed through a [[#sharpness|sharpening filter]], multiplied by [[#max_probability|max_probability]] and finally a random value gets subtracted.&lt;br /&gt;
&lt;br /&gt;
max_probability * sharpness_filter(sum of influences + size modifier from GUI) - random(0, random_probability_penalty)&lt;br /&gt;
&lt;br /&gt;
== Richness_Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * ([[#richness_multiplier|richness_multiplier]] + distance * [[#richness_multiplier_distance_bonus|richness_multiplier_distance_bonus]]) + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=126152</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=126152"/>
		<updated>2016-07-18T09:40:46Z</updated>

		<summary type="html">&lt;p&gt;Cube: Added starting_area_amount.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability_Calculation|Probability Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier_distance_bonus ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus to richness multiplier per tile of distance from starting point.&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== size_control_multiplier ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Magic. Based on sum of influences of noises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.12.x&lt;br /&gt;
&lt;br /&gt;
This value times the size control setting is added to influence right before sharpness filter.&lt;br /&gt;
Very small has a multiplier of -1, very big has 1.5.&lt;br /&gt;
This value is replaced by ```coverage``` parameter in 0.13.0.&lt;br /&gt;
&lt;br /&gt;
=== random_probability_penalty ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
A random value between 0 and this number is subtracted from a probability after sharpness filter.&lt;br /&gt;
Only works for entities.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
=== coverage ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Calculated from existing peaks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.0&lt;br /&gt;
&lt;br /&gt;
Sets a fraction of surface that should be covered by this item.&lt;br /&gt;
&lt;br /&gt;
Internally this adds an additive influence modifier, so that expected fraction of tiles where total influence &amp;gt; 0.5 (the threshold for sharpness filter) equals the parameter.&lt;br /&gt;
&lt;br /&gt;
Because of the autoplace system&#039;s complexity, this is only accurate on simple rules and does some simplification on the more complex ones:&lt;br /&gt;
* There is always just one combination of tile properties (see [[#Dimensions]]) for which the coverage is calculated. This combination is given by a first *_optimal value encountered of each type other than starting_area and tier_from_start. Starting_area value is fixed to 0 and tier_from_start to 4.&lt;br /&gt;
* min_influence and max_influence are completely ignored.&lt;br /&gt;
&lt;br /&gt;
=== starting_area_amount ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.10&lt;br /&gt;
&lt;br /&gt;
If this value is non zero, influence of this entity will be calculated differently in starting area:&lt;br /&gt;
For each entity with this parameter a position in starting area is selected and a blob is placed centered on this position.&lt;br /&gt;
The central tile of this blob will have approximately amount of resources selected by this value.&lt;br /&gt;
&lt;br /&gt;
=== starting_area_size ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.10&lt;br /&gt;
&lt;br /&gt;
See [[#starting_area_amount]].&lt;br /&gt;
Controls approximate radius of the blob in tiles.&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
You can see sheets on the generation of trees, doodads, biomes, water and tiles on this page: [[AutoplaceSheets]]&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
&lt;br /&gt;
There are two possible modes in which influence is calculated.&lt;br /&gt;
When  [[#starting_area_amount]] parameter is non zero a position in starting area is selected and a blob is placed centered on this position.&lt;br /&gt;
Otherwise influence is calculated as a sum of influences of peaks.&lt;br /&gt;
&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions and sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability_Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences plus a [[#size_control_multiplier|bonus for autoplace control]], passed through a [[#sharpness|sharpening filter]], multiplied by [[#max_probability|max_probability]] and finally a random value gets subtracted.&lt;br /&gt;
&lt;br /&gt;
max_probability * sharpness_filter(sum of influences + size modifier from GUI) - random(0, random_probability_penalty)&lt;br /&gt;
&lt;br /&gt;
== Richness_Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * ([[#richness_multiplier|richness_multiplier]] + distance * [[#richness_multiplier_distance_bonus|richness_multiplier_distance_bonus]]) + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=125234</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=125234"/>
		<updated>2016-05-25T08:41:20Z</updated>

		<summary type="html">&lt;p&gt;Cube: Autoplace changes for 0.13.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability_Calculation|Probability Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier_distance_bonus ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus to richness multiplier per tile of distance from starting point.&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== size_control_multiplier ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Magic. Based on sum of influences of noises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.12.x&lt;br /&gt;
&lt;br /&gt;
This value times the size control setting is added to influence right before sharpness filter.&lt;br /&gt;
Very small has a multiplier of -1, very big has 1.5.&lt;br /&gt;
This value is replaced by ```coverage``` parameter in 0.13.0.&lt;br /&gt;
&lt;br /&gt;
=== random_probability_penalty ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
A random value between 0 and this number is subtracted from a probability after sharpness filter.&lt;br /&gt;
Only works for entities.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
=== coverage ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Calculated from existing peaks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.13.0&lt;br /&gt;
&lt;br /&gt;
Sets a fraction of surface that should be covered by this item.&lt;br /&gt;
&lt;br /&gt;
Internally this adds an additive influence modifier, so that expected fraction of tiles where total influence &amp;gt; 0.5 (the threshold for sharpness filter) equals the parameter.&lt;br /&gt;
&lt;br /&gt;
Because of the autoplace system&#039;s complexity, this is only accurate on simple rules and does some simplification on the more complex ones:&lt;br /&gt;
* There is always just one combination of tile properties (see [[#Dimensions]]) for which the coverage is calculated. This combination is given by a first *_optimal value encountered of each type other than starting_area and tier_from_start. Starting_area value is fixed to 0 and tier_from_start to 4.&lt;br /&gt;
* min_influence and max_influence are completely ignored.&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
You can see sheets on the generation of trees, doodads, biomes, water and tiles on this page: [[AutoplaceSheets]]&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability_Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences plus a [[#size_control_multiplier|bonus for autoplace control]], passed through a [[#sharpness|sharpening filter]], multiplied by [[#max_probability|max_probability]] and finally a random value gets subtracted.&lt;br /&gt;
&lt;br /&gt;
max_probability * sharpness_filter(sum of influences + size modifier from GUI) - random(0, random_probability_penalty)&lt;br /&gt;
&lt;br /&gt;
== Richness_Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * ([[#richness_multiplier|richness_multiplier]] + distance * [[#richness_multiplier_distance_bonus|richness_multiplier_distance_bonus]]) + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=119956</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=119956"/>
		<updated>2015-06-29T10:29:27Z</updated>

		<summary type="html">&lt;p&gt;Cube: Added random_probability_penalty&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability_Calculation|Probability Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== size_control_multiplier ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Magic. Based on sum of influences of noises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.2&lt;br /&gt;
&lt;br /&gt;
This value times the size control setting is added to influence right before sharpness filter.&lt;br /&gt;
Very small has a multiplier of -1, very big has 1.5.&lt;br /&gt;
&lt;br /&gt;
=== random_probability_penalty ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
A random value between 0 and this number is subtracted from a probability after sharpness filter.&lt;br /&gt;
Only works for entities.&lt;br /&gt;
See [[#Probability_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence_Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
You can see sheets on the generation of trees, doodads, biomes, water and tiles on this page: [[AutoplaceSheets]]&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability_Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences plus a [[#size_control_multiplier|bonus for autoplace control]], passed through a [[#sharpness|sharpening filter]], multiplied by [[#max_probability|max_probability]] and finally a random value gets subtracted.&lt;br /&gt;
&lt;br /&gt;
max_probability * sharpness_filter(sum of influences + size modifier from GUI) - random(0, random_probability_penalty)&lt;br /&gt;
&lt;br /&gt;
== Richness_Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer&amp;diff=119634</id>
		<title>Multiplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer&amp;diff=119634"/>
		<updated>2015-06-11T08:58:35Z</updated>

		<summary type="html">&lt;p&gt;Cube: Headless server in 0.12.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
The multiplayer feature was introduced with v0.11.0 and will be thought only for &#039;&#039;Lan-parties&#039;&#039; or &#039;&#039;Low-latency internet&#039;&#039;, because there is no much lag latency hiding mechanics introduced.&lt;br /&gt;
&lt;br /&gt;
The game is technically a peer2peer game. Which means, there is no &#039;&#039;server&#039;&#039; needed.&lt;br /&gt;
&lt;br /&gt;
Anybody can join an existing game, if he knows the IP of the game. He connects to the game, the game stops and the second players game downloads the current map. If the first hoster stops, the second player can continue to play and the first player can rejoin at any time. If the game desynchronizes, the map is redownloaded automatically and the game can continue.&lt;br /&gt;
&lt;br /&gt;
== Playing over LAN / Internet ==&lt;br /&gt;
&lt;br /&gt;
Playing over Internet was not thought to work properly with v0.11. Noticeable lag could occur depending on connection speed/reaction time.&lt;br /&gt;
&lt;br /&gt;
* Both game instances need the installation of exactly same game-versions and mods. (Tip: Maybe someone has the scenario pack mod off?)&lt;br /&gt;
* For a more fluid game the &amp;quot;clients&amp;quot; can turn off autosave.&lt;br /&gt;
* Factorio uses the port &#039;&#039;&#039;34197&#039;&#039;&#039;. The port can be changed in the [[Application Directory|config]].&lt;br /&gt;
* Factorio uses &#039;&#039;&#039;UDP only,&#039;&#039;&#039; so make sure, you configured your router correctly. (The game builds it&#039;s own &amp;quot;reliable delivery&amp;quot; layer built on UDP to deal with packet loss and reordering issues.)&lt;br /&gt;
** Make sure, that there is no firewall or anti-virus blocking the UDP-packets.&lt;br /&gt;
** read further, look into &amp;quot;more guides&amp;quot;, to configure your router set up.&lt;br /&gt;
** It is necessary that all of the peers can communicate with each other. It is however in theory not necessary that all the peers have public IP address - this should work even behind a NAT. See [http://www.factorioforums.com/forum/viewtopic.php?f=30&amp;amp;p=51201#p50553 Cube in &#039;&#039;Cannot Have 3+ Players connected at the same time.]&#039;&#039;&lt;br /&gt;
* The hard limit for the number of players is [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6481&amp;amp;p=50661#p50586 65535]. :) &lt;br /&gt;
&lt;br /&gt;
=== Voice Chat ===&lt;br /&gt;
* it is recommended to use some voice chat (teamspeak, Skype), because you need to talk a lot (coordinate connection, building, handling attacks...). Teamspeak servers are posted in the [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer forum].&lt;br /&gt;
&lt;br /&gt;
=== Finding other Peers ===&lt;br /&gt;
&lt;br /&gt;
* use the [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer board in the forum].&lt;br /&gt;
* many players use other software like Hamachi or Evolve to meet other players ... This has the &amp;quot;advantage&amp;quot; of creating a virtual private network between the players. See down under software.&lt;br /&gt;
* some use also [http://www.factorioforums.com/forum/viewtopic.php?f=5&amp;amp;t=9136 Steam] to find others.&lt;br /&gt;
&lt;br /&gt;
== Factorio servers or Why Peer-to-Peer? ==&lt;br /&gt;
&lt;br /&gt;
There where some discussions about, why Factorio doesn&#039;t use the client+server-model, but instead uses the peer-to-peer-priniciple.&lt;br /&gt;
With v0.11 there will be no explicit support for making Factorio &amp;quot;servers&amp;quot;. That will come with v0.12!&lt;br /&gt;
&lt;br /&gt;
If you want to make a world running 24/7 you need to start whole Factorio on your &amp;quot;server&amp;quot; machine and keep it running, it works just as a peer. The server instance will then have a character in the game just like anybody else. &lt;br /&gt;
&lt;br /&gt;
Some links&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=38&amp;amp;p=74091#p73402 developer statement]&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=5&amp;amp;t=6077#p47283 Older statement]&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=38&amp;amp;p=70874 Good explanation]&lt;br /&gt;
&lt;br /&gt;
==== Headless server ====&lt;br /&gt;
{{Experimental|0.12.0}}&lt;br /&gt;
&lt;br /&gt;
A dedicated server can be started using the &#039;--start-server&#039; command line option.&lt;br /&gt;
In this mode:&lt;br /&gt;
* Graphics is not initialized (faster start up, less memory usage, works even on completely headless servers)&lt;br /&gt;
* Game starts immediately, loads a save given as a parameter to the command&lt;br /&gt;
* The server has no character in game&lt;br /&gt;
* game is paused while there are no players connected&lt;br /&gt;
* saves the game on exit (and autosaves normally)&lt;br /&gt;
&lt;br /&gt;
Workarounds in version 0.11.x:&lt;br /&gt;
&lt;br /&gt;
* Linux Headless server / vnc: http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6449&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6585 Dedicated Multiplayer Server Guide]&lt;br /&gt;
&lt;br /&gt;
== Game types ==&lt;br /&gt;
&lt;br /&gt;
=== Coop ===&lt;br /&gt;
&lt;br /&gt;
Coop-game runs without any further preparation ( http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6501 )&lt;br /&gt;
&lt;br /&gt;
=== PvP ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=14&amp;amp;t=8352 PvP with craftable biters]&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorio.com/blog/post/fff-76 Friday facts article]&lt;br /&gt;
&lt;br /&gt;
== More Tools/Infos ==&lt;br /&gt;
* use mods for planning. See [http://www.factorioforums.com/forum/viewtopic.php?f=14&amp;amp;t=6788 basic planner], [http://www.factorioforums.com/forum/viewtopic.php?f=14&amp;amp;t=4022 Planning-Tool-Mod]...&lt;br /&gt;
* look into [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer forum], most other questions are answered there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;And always remember that Factorio in v0.11 isn&#039;t intended to work well on internet connections, so keep patient. ;)&lt;br /&gt;
&lt;br /&gt;
== More Guides ==&lt;br /&gt;
&lt;br /&gt;
* [http://youtube.com/watch?v=MqsqRWNsbPM How To set up a Factorio Multiplayer Server | Guide | Tutorial], by Teaspoon&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6585 Dedicated Multiplayer Server Guide], by Icecube45&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6720 Tips to connect in multiplayer], by Nondre&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous tips ==&lt;br /&gt;
* the key for [[Console commands]] will now initiate a chat in MP. To execute commands you need to type &#039;/c&#039; before the command!&lt;br /&gt;
* Set the player&#039;s color using the command&lt;br /&gt;
 /c game.players[x].color = {r=0.7, g=0.5, b=0.1, a=0.9}&lt;br /&gt;
Where x is the player number. r, g and b are for red, green and blue respectively (possible values are between 0 and 1, use the right-most column on http://prideout.net/archive/colors.php). a is alpha channel aka Transparency of the color to the base texture. For single player, leave off the &amp;quot;[x]&amp;quot; to set the color.&lt;br /&gt;
&lt;br /&gt;
== Software for routing / establishing connection ==&lt;br /&gt;
&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6393&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6386&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=49&amp;amp;t=7690&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=7714 A guide for connecting with evolve]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer&amp;diff=119633</id>
		<title>Multiplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer&amp;diff=119633"/>
		<updated>2015-06-11T08:45:17Z</updated>

		<summary type="html">&lt;p&gt;Cube: Multplayer is now stable.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
The multiplayer feature was introduced with v0.11.0 and will be thought only for &#039;&#039;Lan-parties&#039;&#039; or &#039;&#039;Low-latency internet&#039;&#039;, because there is no much lag latency hiding mechanics introduced.&lt;br /&gt;
&lt;br /&gt;
The game is technically a peer2peer game. Which means, there is no &#039;&#039;server&#039;&#039; needed.&lt;br /&gt;
&lt;br /&gt;
Anybody can join an existing game, if he knows the IP of the game. He connects to the game, the game stops and the second players game downloads the current map. If the first hoster stops, the second player can continue to play and the first player can rejoin at any time. If the game desynchronizes, the map is redownloaded automatically and the game can continue.&lt;br /&gt;
&lt;br /&gt;
== Playing over LAN / Internet ==&lt;br /&gt;
&lt;br /&gt;
Playing over Internet was not thought to work properly with v0.11. Noticeable lag could occur depending on connection speed/reaction time.&lt;br /&gt;
&lt;br /&gt;
* Both game instances need the installation of exactly same game-versions and mods. (Tip: Maybe someone has the scenario pack mod off?)&lt;br /&gt;
* For a more fluid game the &amp;quot;clients&amp;quot; can turn off autosave.&lt;br /&gt;
* Factorio uses the port &#039;&#039;&#039;34197&#039;&#039;&#039;. The port can be changed in the [[Application Directory|config]].&lt;br /&gt;
* Factorio uses &#039;&#039;&#039;UDP only,&#039;&#039;&#039; so make sure, you configured your router correctly. (The game builds it&#039;s own &amp;quot;reliable delivery&amp;quot; layer built on UDP to deal with packet loss and reordering issues.)&lt;br /&gt;
** Make sure, that there is no firewall or anti-virus blocking the UDP-packets.&lt;br /&gt;
** read further, look into &amp;quot;more guides&amp;quot;, to configure your router set up.&lt;br /&gt;
** It is necessary that all of the peers can communicate with each other. It is however in theory not necessary that all the peers have public IP address - this should work even behind a NAT. See [http://www.factorioforums.com/forum/viewtopic.php?f=30&amp;amp;p=51201#p50553 Cube in &#039;&#039;Cannot Have 3+ Players connected at the same time.]&#039;&#039;&lt;br /&gt;
* The hard limit for the number of players is [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6481&amp;amp;p=50661#p50586 65535]. :) &lt;br /&gt;
&lt;br /&gt;
=== Voice Chat ===&lt;br /&gt;
* it is recommended to use some voice chat (teamspeak, Skype), because you need to talk a lot (coordinate connection, building, handling attacks...). Teamspeak servers are posted in the [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer forum].&lt;br /&gt;
&lt;br /&gt;
=== Finding other Peers ===&lt;br /&gt;
&lt;br /&gt;
* use the [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer board in the forum].&lt;br /&gt;
* many players use other software like Hamachi or Evolve to meet other players ... This has the &amp;quot;advantage&amp;quot; of creating a virtual private network between the players. See down under software.&lt;br /&gt;
* some use also [http://www.factorioforums.com/forum/viewtopic.php?f=5&amp;amp;t=9136 Steam] to find others.&lt;br /&gt;
&lt;br /&gt;
== Factorio servers or Why Peer-to-Peer? ==&lt;br /&gt;
&lt;br /&gt;
There where some discussions about, why Factorio doesn&#039;t use the client+server-model, but instead uses the peer-to-peer-priniciple.&lt;br /&gt;
With v0.11 there will be no explicit support for making Factorio &amp;quot;servers&amp;quot;. That will come with v0.12!&lt;br /&gt;
&lt;br /&gt;
If you want to make a world running 24/7 you need to start whole Factorio on your &amp;quot;server&amp;quot; machine and keep it running, it works just as a peer. The server instance will then have a character in the game just like anybody else. &lt;br /&gt;
&lt;br /&gt;
Some links&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=38&amp;amp;p=74091#p73402 developer statement]&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=5&amp;amp;t=6077#p47283 Older statement]&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=38&amp;amp;p=70874 Good explanation]&lt;br /&gt;
&lt;br /&gt;
==== Headless server ====&lt;br /&gt;
&lt;br /&gt;
* Linux Headless server / vnc (Maybe too soon?): http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6449&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6585 Dedicated Multiplayer Server Guide]&lt;br /&gt;
&lt;br /&gt;
== Game types ==&lt;br /&gt;
&lt;br /&gt;
=== Coop ===&lt;br /&gt;
&lt;br /&gt;
Coop-game runs without any further preparation ( http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6501 )&lt;br /&gt;
&lt;br /&gt;
=== PvP ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=14&amp;amp;t=8352 PvP with craftable biters]&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorio.com/blog/post/fff-76 Friday facts article]&lt;br /&gt;
&lt;br /&gt;
== More Tools/Infos ==&lt;br /&gt;
* use mods for planning. See [http://www.factorioforums.com/forum/viewtopic.php?f=14&amp;amp;t=6788 basic planner], [http://www.factorioforums.com/forum/viewtopic.php?f=14&amp;amp;t=4022 Planning-Tool-Mod]...&lt;br /&gt;
* look into [http://www.factorioforums.com/forum/viewforum.php?f=53 multiplayer forum], most other questions are answered there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;And always remember that Factorio in v0.11 isn&#039;t intended to work well on internet connections, so keep patient. ;)&lt;br /&gt;
&lt;br /&gt;
== More Guides ==&lt;br /&gt;
&lt;br /&gt;
* [http://youtube.com/watch?v=MqsqRWNsbPM How To set up a Factorio Multiplayer Server | Guide | Tutorial], by Teaspoon&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6585 Dedicated Multiplayer Server Guide], by Icecube45&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6720 Tips to connect in multiplayer], by Nondre&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous tips ==&lt;br /&gt;
* the key for [[Console commands]] will now initiate a chat in MP. To execute commands you need to type &#039;/c&#039; before the command!&lt;br /&gt;
* Set the player&#039;s color using the command&lt;br /&gt;
 /c game.players[x].color = {r=0.7, g=0.5, b=0.1, a=0.9}&lt;br /&gt;
Where x is the player number. r, g and b are for red, green and blue respectively (possible values are between 0 and 1, use the right-most column on http://prideout.net/archive/colors.php). a is alpha channel aka Transparency of the color to the base texture. For single player, leave off the &amp;quot;[x]&amp;quot; to set the color.&lt;br /&gt;
&lt;br /&gt;
== Software for routing / establishing connection ==&lt;br /&gt;
&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6393&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6386&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=49&amp;amp;t=7690&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=7714 A guide for connecting with evolve]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Log_file&amp;diff=117531</id>
		<title>Log file</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Log_file&amp;diff=117531"/>
		<updated>2015-01-14T09:49:02Z</updated>

		<summary type="html">&lt;p&gt;Cube: added example for posting log files on the forum.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Log files store details about the run of Factorio and contain information that help when solving bugs.&lt;br /&gt;
Log files exist from version 0.10.0.&lt;br /&gt;
&lt;br /&gt;
== Log File Location ==&lt;br /&gt;
Factorio keeps log files in the [[Application Directory]], that is next to the saves and mods directories.&lt;br /&gt;
&lt;br /&gt;
The file you need most of the time is &#039;&#039;&#039;factorio-current.log&#039;&#039;&#039;.&lt;br /&gt;
Backup copy of the log file from previous run is in factorio-previous.log.&lt;br /&gt;
&lt;br /&gt;
== Bug Reporting ==&lt;br /&gt;
Log files are important for finding crashes, especially ones related to automatic updates and graphic settings.&lt;br /&gt;
Please attach the current log file to all crash reports.&lt;br /&gt;
&lt;br /&gt;
=== How to post bug report on the forum ===&lt;br /&gt;
use the [code] bbcode tag, or if it is long then use also [spoiler] tag.&lt;br /&gt;
Example bbcode:&lt;br /&gt;
 [spoiler=log file][code]&lt;br /&gt;
 353957.462433  Info Logger.cpp:148: 2015:01:14 10:44:20; Factorio 0.11.12 (Build 13084, linux64)&lt;br /&gt;
 353957.642242  Info ModManager.cpp:204: Loading mod core 0.0.0 (data.lua)&lt;br /&gt;
 353957.688258  Info ModManager.cpp:204: Loading mod base 0.11.12 (data.lua)&lt;br /&gt;
 353958.522936  Info ModManager.cpp:204: Loading mod Belts+ 0.1.0 (data.lua)&lt;br /&gt;
 353959.314368  Info ModManager.cpp:204: Loading mod Force Fields 1.0.0 (data.lua)&lt;br /&gt;
 353960.008032  Info ModManager.cpp:204: Loading mod Robo-Charge 0.3.2 (data.lua)&lt;br /&gt;
 353960.844953  Info ModManager.cpp:204: Loading mod Treefarm-Mod 1.2.4 (data.lua)&lt;br /&gt;
 353961.587995  Info ModManager.cpp:204: Loading mod UraniumPower 0.3.0 (data.lua)&lt;br /&gt;
 353962.365319  Info ModManager.cpp:204: Loading mod Yuoki 0.2.20 (data.lua)&lt;br /&gt;
 353963.513723  Info ModManager.cpp:204: Loading mod base 0.11.12 (data-updates.lua)&lt;br /&gt;
 353974.654409  Info AtlasSystem.cpp:152: Initial atlas bitmap size is 8192&lt;br /&gt;
 353974.718934  Info AtlasSystem.cpp:91: Created atlas bitmap 8192x8182&lt;br /&gt;
 353974.722727  Info AtlasSystem.cpp:91: Created atlas bitmap 8192x6347&lt;br /&gt;
 354011.404610  Notice Scenario.cpp:126: Loading map /home/cube/development/factorio/Factorio/saves/x1.zip&lt;br /&gt;
 354011.443453  Info Scenario.cpp:160: Map version 0.11.10-0&lt;br /&gt;
 354011.457256  Info PrototypeMigrationList.cpp:82: Activating migration Treefarm-Mod/100.json&lt;br /&gt;
 354011.457406  Info PrototypeMigrationList.cpp:82: Activating migration Treefarm-Mod/110.json&lt;br /&gt;
 354011.596778  Notice MigrationList.cpp:65: Applying migration: Robot Charging Station: RoboCharge.lua&lt;br /&gt;
 354011.610766  Notice MigrationList.cpp:65: Applying migration: Yuoki Industries: Yuoki_0.2.6.lua&lt;br /&gt;
 354015.703084  Info LocaleProvider.cpp:114: Using locale files from the pre 0.11.0 structure (__Treefarm-Mod__/script-locale/en.cfg)&lt;br /&gt;
 354019.170917  Info GlobalContext.cpp:470: Goodbye&lt;br /&gt;
 [/code][/spoiler]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Privacy ==&lt;br /&gt;
Log files (in 0.10.5 and later) contain date and time of your Factorio session, your updater login name and full paths for some files belonging to Factorio or mods.&lt;br /&gt;
Before 0.10.5 the log also could contain your updater token (not a password :-) ) as a part of update request URLs.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Application_directory&amp;diff=117217</id>
		<title>Application directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Application_directory&amp;diff=117217"/>
		<updated>2014-12-18T10:44:29Z</updated>

		<summary type="html">&lt;p&gt;Cube: Fixed the errors.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
The application directory stores&lt;br /&gt;
* the saves (every save is a zip-file)&lt;br /&gt;
* the [[Mods]]&lt;br /&gt;
* scenarios&lt;br /&gt;
* configuration&lt;br /&gt;
* [[Log File]] (since v0.10.0).&lt;br /&gt;
&lt;br /&gt;
The directory structure is self-explaining.&lt;br /&gt;
&lt;br /&gt;
You can delete for example the configuration-file; it will be generated new with the defaults.&lt;br /&gt;
&lt;br /&gt;
It is recommended to create backups from this directory, before you install a new version.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
=== Installation by Zip-package ===&lt;br /&gt;
Application directory is the same as the unpacked factorio directory.&lt;br /&gt;
&lt;br /&gt;
For example, if you unpacked the zip to&lt;br /&gt;
 C:\Factorio&lt;br /&gt;
Then your saves can be found in &lt;br /&gt;
 C:\Factorio\saves&lt;br /&gt;
and mods in &lt;br /&gt;
 C:\Factorio\mods&lt;br /&gt;
&lt;br /&gt;
=== Installation via Installer ===&lt;br /&gt;
Installation package follows UAC. For that case the factorio directory is where you install it (Program files by default) and the user data (saves, player data etc) are stored in&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\Factorio&lt;br /&gt;
Windows Vista and newer (UAC active):&lt;br /&gt;
 %appdata%\factorio&lt;br /&gt;
&lt;br /&gt;
== MacOSx ==&lt;br /&gt;
The application should be by default installed in the Apps-folder.&lt;br /&gt;
&lt;br /&gt;
Whereas the data is stored under&lt;br /&gt;
 /users/&amp;lt;replace with your username&amp;gt;/Library/Application Support/factorio&lt;br /&gt;
&lt;br /&gt;
Which is equivalent to&lt;br /&gt;
 ~/Library/Application Support/factorio&lt;br /&gt;
You can type in this into the finder (press SHIFT-COMMAND-G for goto folder) and put in exactly this line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you still don&#039;t see this folder it might be invisible for you.&#039;&#039;&#039; Search in the internet for for example about &#039;&#039;&amp;quot;make library folder visible macos&amp;quot;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example link: http://finerthings.in/featured/lion-library-folder-visible/&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
Data is stored under&lt;br /&gt;
 ~/.factorio&lt;br /&gt;
&lt;br /&gt;
==Changing the application directory==&lt;br /&gt;
&lt;br /&gt;
It is possible to change the application directory location for Factorio. This can be done by editing the location of the &amp;quot;write-data&amp;quot; entry in the file &#039;&#039;config.ini&#039;&#039;. This affects the location of mods, scenario and temp. If you want to move only the location of your save files you can [[Application_Directory/Changing_the_save_directory|change the the save directory using symlinks]].&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer&amp;diff=116028</id>
		<title>Multiplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer&amp;diff=116028"/>
		<updated>2014-11-04T15:55:58Z</updated>

		<summary type="html">&lt;p&gt;Cube: Factorio doesn&amp;#039;t use TCP.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Experimental|Alpha 0.11.0}}&lt;br /&gt;
&lt;br /&gt;
The multiplayer feature will be introduced with v0.11.0 and will be thought only for &#039;&#039;Lan-parties&#039;&#039; or &#039;&#039;Low-latency internet&#039;&#039;, because there is no much lag latency hiding mechanics introduced.&lt;br /&gt;
&lt;br /&gt;
There is no &#039;&#039;server&#039;&#039; needed. Anybody can join an existing game, if he knows the IP of the game. He connects to the game, the game stops and the second players game downloads the current map. If the first hoster stops, the second player can continue to play and the first player can rejoin at any time. If the game desynchronizes, the map is redownloaded automatically and the game can continue&lt;br /&gt;
&lt;br /&gt;
There will be no explicit support for making Factorio servers. If you want to make a world running 24/7 you need to start whole Factorio on your server machine and keep it running. The server instance will then have a character in the game just like anybody else. (http://www.factorioforums.com/forum/viewtopic.php?f=38&amp;amp;t=6220&amp;amp;hilit=server&amp;amp;start=40#p48983) (or you can use lua commands to get rid of the character)&lt;br /&gt;
&lt;br /&gt;
Some links&lt;br /&gt;
* About how multiplayer is planned to work: TODO&lt;br /&gt;
* Interesting article: http://www.factorioforums.com/forum/viewtopic.php?f=5&amp;amp;t=6077#p47283&lt;br /&gt;
&lt;br /&gt;
== Playing over LAN ==&lt;br /&gt;
&lt;br /&gt;
Both game instances need the installation of exactly same game-versions and mods!&lt;br /&gt;
&lt;br /&gt;
== Playing over LAN/Internet ==&lt;br /&gt;
&lt;br /&gt;
Factorio uses the port 34197. The port can be changed in the [[Application Directory|config]].&lt;br /&gt;
&lt;br /&gt;
Factorio uses only UDP. (The game builds it&#039;s own &amp;quot;reliable delivery&amp;quot; layer built on UDP to deal with packet loss and reordering issues.)&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
http://www.factorioforums.com/forum/viewtopic.php?f=5&amp;amp;t=6284#p49393&lt;br /&gt;
&lt;br /&gt;
Report bugs and read Reportes bugs: http://www.factorioforums.com/forum/viewforum.php?f=52&lt;br /&gt;
&lt;br /&gt;
Read this: http://www.factorioforums.com/forum/viewtopic.php?f=52&amp;amp;t=6283&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous tips ==&lt;br /&gt;
* the key for [[Console commands]] will now initiate a chat in MP. To execute commands you need to type &#039;/c&#039; before the command!&lt;br /&gt;
* The key-combination SHIFT+SPACE pauses the game, even when typing in the chat input box. To prevent this from happening, change the keybinding in Options -&amp;gt; Other -&amp;gt; Pause game (bottom right)&lt;br /&gt;
* Set the player&#039;s color using the command&lt;br /&gt;
 /c game.player[x].color = {r=0.7, g=0.5, b=0.1, a=0.9}&lt;br /&gt;
Where x is the player number. r, g and b are for red, green and blue respectively (possible values are between 0 and 1, use the right-most column on http://prideout.net/archive/colors.php). a is alpha channel aka Transparency of the color to the base texture. For single player, leave off the &amp;quot;[x]&amp;quot; to set the color.&lt;br /&gt;
&lt;br /&gt;
== Software for routing / establishing connection ==&lt;br /&gt;
&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6393&lt;br /&gt;
* http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6386&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Headless server ==&lt;br /&gt;
&lt;br /&gt;
http://www.factorioforums.com/forum/viewtopic.php?f=53&amp;amp;t=6449&lt;br /&gt;
&lt;br /&gt;
{{Stub/sandbox}}&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Car&amp;diff=114392</id>
		<title>Prototype/Car</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Car&amp;diff=114392"/>
		<updated>2014-10-21T09:41:52Z</updated>

		<summary type="html">&lt;p&gt;Cube: Formating fixes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basics==&lt;br /&gt;
Entity with specialized properties for acceleration, braking, and turning.&lt;br /&gt;
Extends the [[Prototype/EntityWithHealth]]&lt;br /&gt;
== Usage in base==&lt;br /&gt;
*[[Car]]&lt;br /&gt;
* Since 0.11.0: [[Tank]]&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== pictures ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedSprite]]&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.10.12&lt;br /&gt;
&lt;br /&gt;
=== animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedAnimation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
Default animation speed is 1 frame / tile.&lt;br /&gt;
&lt;br /&gt;
=== turret_animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedAnimation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
Optional. Default animation speed is 1 frame / tile.&lt;br /&gt;
&lt;br /&gt;
=== acceleration_per_energy ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.10.12&lt;br /&gt;
&lt;br /&gt;
=== effectivity ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
Same meaning as the old acceleration_per_energy.&lt;br /&gt;
Modifies the efficiency of energy transfer from burner output to wheels.&lt;br /&gt;
&lt;br /&gt;
=== breaking_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.10.12&lt;br /&gt;
&lt;br /&gt;
=== braking_power ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Energy]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
=== consumption ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Energy]]&lt;br /&gt;
&lt;br /&gt;
=== friction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
=== rotation_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
=== turret_rotation_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.01&lt;br /&gt;
&lt;br /&gt;
=== turret_return_timeout ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32_t]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 60&lt;br /&gt;
&lt;br /&gt;
Timeout in ticks specifying how long the turret must be inactive to return to the default position.&lt;br /&gt;
&lt;br /&gt;
=== burner ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/EnergySource]]-Burner&lt;br /&gt;
&lt;br /&gt;
=== inventory_size ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/InventorySize]]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
    {&lt;br /&gt;
    type = &amp;quot;car&amp;quot;,&lt;br /&gt;
    name = &amp;quot;car&amp;quot;,&lt;br /&gt;
    icon = &amp;quot;__base__/graphics/icons/car.png&amp;quot;,&lt;br /&gt;
    flags = {&amp;quot;pushable&amp;quot;, &amp;quot;placeable-neutral&amp;quot;, &amp;quot;player-creation&amp;quot;},&lt;br /&gt;
    minable = {mining_time = 1, result = &amp;quot;car&amp;quot;},&lt;br /&gt;
    max_health = 500,&lt;br /&gt;
    corpse = &amp;quot;medium-remnants&amp;quot;,&lt;br /&gt;
    resistances = &lt;br /&gt;
    {&lt;br /&gt;
      {&lt;br /&gt;
        type = &amp;quot;fire&amp;quot;,&lt;br /&gt;
        percent = 50&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    collision_box = {{-0.7, -1}, {0.7, 1}},&lt;br /&gt;
    selection_box = {{-0.7, -1}, {0.7, 1}},&lt;br /&gt;
    acceleration_per_energy = 0.001,&lt;br /&gt;
    breaking_speed = 0.01,&lt;br /&gt;
    burner =&lt;br /&gt;
    {&lt;br /&gt;
      effectivity = 1,&lt;br /&gt;
      fuel_inventory_size = 1,&lt;br /&gt;
      smoke =&lt;br /&gt;
      {&lt;br /&gt;
        {&lt;br /&gt;
          name = &amp;quot;smoke&amp;quot;,&lt;br /&gt;
          deviation = {0.25, 0.25},&lt;br /&gt;
          frequency = 50,&lt;br /&gt;
          position = {0, 1.5},&lt;br /&gt;
          slow_down_factor = 0.9,&lt;br /&gt;
          starting_frame = 3,&lt;br /&gt;
          starting_frame_deviation = 5,&lt;br /&gt;
          starting_frame_speed = 0,&lt;br /&gt;
          starting_frame_speed_deviation = 5&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    consumption = 10,&lt;br /&gt;
    friction = 0.02,&lt;br /&gt;
    light = {intensity = 0.4, size = 25},&lt;br /&gt;
    pictures =&lt;br /&gt;
    {&lt;br /&gt;
      filename = &amp;quot;__base__/graphics/entity/car/car-sheet.png&amp;quot;,&lt;br /&gt;
      line_length = 8,&lt;br /&gt;
      frame_width = 130,&lt;br /&gt;
      frame_height = 93,&lt;br /&gt;
      shift = {0.5, 0},&lt;br /&gt;
      axially_symmetrical = false,&lt;br /&gt;
      direction_count = 64&lt;br /&gt;
    },&lt;br /&gt;
    rotation_speed = 0.015,&lt;br /&gt;
    weight = 50,&lt;br /&gt;
    inventory_size = 12&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Car&amp;diff=114391</id>
		<title>Prototype/Car</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Car&amp;diff=114391"/>
		<updated>2014-10-21T09:40:42Z</updated>

		<summary type="html">&lt;p&gt;Cube: Added prototype changes in 0.11.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basics==&lt;br /&gt;
Entity with specialized properties for acceleration, braking, and turning.&lt;br /&gt;
Extends the [[Prototype/EntityWithHealth]]&lt;br /&gt;
== Usage in base==&lt;br /&gt;
*[[Car]]&lt;br /&gt;
* Since 0.11.0: [[Tank]]&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== pictures ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedSprite]]&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.10.12&lt;br /&gt;
&lt;br /&gt;
=== animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedAnimation]]&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
Default animation speed is 1 frame / tile.&lt;br /&gt;
&lt;br /&gt;
=== turret_animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedAnimation]]&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
Optional. Default animation speed is 1 frame / tile.&lt;br /&gt;
&lt;br /&gt;
=== acceleration_per_energy ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.10.12&lt;br /&gt;
&lt;br /&gt;
=== effectivity ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
Same meaning as the old acceleration_per_energy.&lt;br /&gt;
Modifies the efficiency of energy transfer from burner output to wheels.&lt;br /&gt;
&lt;br /&gt;
=== breaking_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&#039;&#039;&#039;Until&#039;&#039;&#039;: 0.10.12&lt;br /&gt;
&lt;br /&gt;
=== braking_power ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Energy]]&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&lt;br /&gt;
=== consumption ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Energy]]&lt;br /&gt;
&lt;br /&gt;
=== friction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
=== rotation_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
=== turret_rotation_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.01&lt;br /&gt;
&lt;br /&gt;
=== turret_return_timeout ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32_t]]&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.11.0&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 60&lt;br /&gt;
&lt;br /&gt;
Timeout in ticks specifying how long the turret must be inactive to return to the default position.&lt;br /&gt;
&lt;br /&gt;
=== burner ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/EnergySource]]-Burner&lt;br /&gt;
&lt;br /&gt;
=== inventory_size ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/InventorySize]]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
    {&lt;br /&gt;
    type = &amp;quot;car&amp;quot;,&lt;br /&gt;
    name = &amp;quot;car&amp;quot;,&lt;br /&gt;
    icon = &amp;quot;__base__/graphics/icons/car.png&amp;quot;,&lt;br /&gt;
    flags = {&amp;quot;pushable&amp;quot;, &amp;quot;placeable-neutral&amp;quot;, &amp;quot;player-creation&amp;quot;},&lt;br /&gt;
    minable = {mining_time = 1, result = &amp;quot;car&amp;quot;},&lt;br /&gt;
    max_health = 500,&lt;br /&gt;
    corpse = &amp;quot;medium-remnants&amp;quot;,&lt;br /&gt;
    resistances = &lt;br /&gt;
    {&lt;br /&gt;
      {&lt;br /&gt;
        type = &amp;quot;fire&amp;quot;,&lt;br /&gt;
        percent = 50&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    collision_box = {{-0.7, -1}, {0.7, 1}},&lt;br /&gt;
    selection_box = {{-0.7, -1}, {0.7, 1}},&lt;br /&gt;
    acceleration_per_energy = 0.001,&lt;br /&gt;
    breaking_speed = 0.01,&lt;br /&gt;
    burner =&lt;br /&gt;
    {&lt;br /&gt;
      effectivity = 1,&lt;br /&gt;
      fuel_inventory_size = 1,&lt;br /&gt;
      smoke =&lt;br /&gt;
      {&lt;br /&gt;
        {&lt;br /&gt;
          name = &amp;quot;smoke&amp;quot;,&lt;br /&gt;
          deviation = {0.25, 0.25},&lt;br /&gt;
          frequency = 50,&lt;br /&gt;
          position = {0, 1.5},&lt;br /&gt;
          slow_down_factor = 0.9,&lt;br /&gt;
          starting_frame = 3,&lt;br /&gt;
          starting_frame_deviation = 5,&lt;br /&gt;
          starting_frame_speed = 0,&lt;br /&gt;
          starting_frame_speed_deviation = 5&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    consumption = 10,&lt;br /&gt;
    friction = 0.02,&lt;br /&gt;
    light = {intensity = 0.4, size = 25},&lt;br /&gt;
    pictures =&lt;br /&gt;
    {&lt;br /&gt;
      filename = &amp;quot;__base__/graphics/entity/car/car-sheet.png&amp;quot;,&lt;br /&gt;
      line_length = 8,&lt;br /&gt;
      frame_width = 130,&lt;br /&gt;
      frame_height = 93,&lt;br /&gt;
      shift = {0.5, 0},&lt;br /&gt;
      axially_symmetrical = false,&lt;br /&gt;
      direction_count = 64&lt;br /&gt;
    },&lt;br /&gt;
    rotation_speed = 0.015,&lt;br /&gt;
    weight = 50,&lt;br /&gt;
    inventory_size = 12&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Application_directory&amp;diff=111198</id>
		<title>Application directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Application_directory&amp;diff=111198"/>
		<updated>2014-08-01T12:01:31Z</updated>

		<summary type="html">&lt;p&gt;Cube: Link to log file page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The application directory stores&lt;br /&gt;
* the saves (every save is a zip-file)&lt;br /&gt;
* the [[Mods]]&lt;br /&gt;
* scenarios&lt;br /&gt;
* configuration&lt;br /&gt;
* [[Log File]] (since v0.10.0).&lt;br /&gt;
&lt;br /&gt;
The directory structure is self-explaining.&lt;br /&gt;
&lt;br /&gt;
You can delete for example the configuration-file; it will be generated new with the defaults.&lt;br /&gt;
&lt;br /&gt;
It is recommended to create backups from this directory, before you install a new version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation by Zip-package ==&lt;br /&gt;
Zip package is just one Factorio directory that doesn&#039;t need to be installed, all the saves are there locally easy to find.&lt;br /&gt;
&lt;br /&gt;
== Installation via Installer ==&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
Installation package follows UAC. For that case the factorio directory is where you install it (Program files by default) and the user data (saves, player data etc) are stored in&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\Factorio&lt;br /&gt;
Windows Vista and newer (UAC active):&lt;br /&gt;
 %appdata%\factorio&lt;br /&gt;
contained&lt;br /&gt;
=== MacOSx ===&lt;br /&gt;
The application should be by default installed in the Apps-folder.&lt;br /&gt;
&lt;br /&gt;
Whereas the data is stored under&lt;br /&gt;
 /users/&amp;lt;replace with your username&amp;gt;/Library/Application Support/factorio&lt;br /&gt;
&lt;br /&gt;
Which is equivalent to&lt;br /&gt;
 ~/Library/Application Support/factorio&lt;br /&gt;
You can type in this into the finder (press SHIFT-COMMAND-G for goto folder) and put in exactly this line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you still don&#039;t see this folder it might be invisible for you.&#039;&#039;&#039; Search in the internet for for example about &#039;&#039;&amp;quot;make library folder visible macos&amp;quot;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example link: http://finerthings.in/featured/lion-library-folder-visible/&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Data is stored under&lt;br /&gt;
 ~/.factorio&lt;br /&gt;
&lt;br /&gt;
==Changing the save directory==&lt;br /&gt;
&lt;br /&gt;
It is possible to change the save directory for Factorio. This can be done by editing the location of the &amp;quot;write-data&amp;quot; entry in the &#039;&#039;config-paths.cfg&#039;&#039; file, though this also affects the location of the other directories (mods, scenario, temp). If you want to move only the location of your save files you can [[Application_Directory/Changing_the_save_directory|change the the save directory using symlinks]].&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Log_file&amp;diff=111197</id>
		<title>Log file</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Log_file&amp;diff=111197"/>
		<updated>2014-08-01T12:00:39Z</updated>

		<summary type="html">&lt;p&gt;Cube: Created page with &amp;quot;Log files store details about the run of Factorio and contain information that help when solving bugs. Log files exist from version 0.10.0.  == Log File Location == Factorio k...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Log files store details about the run of Factorio and contain information that help when solving bugs.&lt;br /&gt;
Log files exist from version 0.10.0.&lt;br /&gt;
&lt;br /&gt;
== Log File Location ==&lt;br /&gt;
Factorio keeps log files in the [[Application Directory]], that is next to the saves and mods directories.&lt;br /&gt;
&lt;br /&gt;
The file you need most of the time is &#039;&#039;&#039;factorio-current.log&#039;&#039;&#039;.&lt;br /&gt;
Backup copy of the log file from previous run is in factorio-previous.log.&lt;br /&gt;
&lt;br /&gt;
== Bug Reporting ==&lt;br /&gt;
Log files are important for finding crashes, especially ones related to automatic updates and graphic settings.&lt;br /&gt;
Please attach the current log file to all crash reports.&lt;br /&gt;
&lt;br /&gt;
== Privacy ==&lt;br /&gt;
Log files (in 0.10.5 and later) contain date and time of your Factorio session, your updater login name and full paths for some files belonging to Factorio or mods.&lt;br /&gt;
Before 0.10.5 the log also could contain your updater token (not a password :-) ) as a part of update request URLs.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Application_directory&amp;diff=111196</id>
		<title>Application directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Application_directory&amp;diff=111196"/>
		<updated>2014-08-01T11:46:19Z</updated>

		<summary type="html">&lt;p&gt;Cube: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The application directory stores&lt;br /&gt;
* the saves (every save is a zip-file)&lt;br /&gt;
* the [[Mods]]&lt;br /&gt;
* scenarios&lt;br /&gt;
* configuration&lt;br /&gt;
* logs (since v0.10.0).&lt;br /&gt;
&lt;br /&gt;
The directory structure is self-explaining.&lt;br /&gt;
&lt;br /&gt;
You can delete for example the configuration-file; it will be generated new with the defaults.&lt;br /&gt;
&lt;br /&gt;
It is recommended to create backups from this directory, before you install a new version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation by Zip-package ==&lt;br /&gt;
Zip package is just one Factorio directory that doesn&#039;t need to be installed, all the saves are there locally easy to find.&lt;br /&gt;
&lt;br /&gt;
== Installation via Installer ==&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
Installation package follows UAC. For that case the factorio directory is where you install it (Program files by default) and the user data (saves, player data etc) are stored in&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\Factorio&lt;br /&gt;
Windows Vista and newer (UAC active):&lt;br /&gt;
 %appdata%\factorio&lt;br /&gt;
&lt;br /&gt;
=== MacOSx ===&lt;br /&gt;
The application should be by default installed in the Apps-folder.&lt;br /&gt;
&lt;br /&gt;
Whereas the data is stored under&lt;br /&gt;
 /users/&amp;lt;replace with your username&amp;gt;/Library/Application Support/factorio&lt;br /&gt;
&lt;br /&gt;
Which is equivalent to&lt;br /&gt;
 ~/Library/Application Support/factorio&lt;br /&gt;
You can type in this into the finder (press SHIFT-COMMAND-G for goto folder) and put in exactly this line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you still don&#039;t see this folder it might be invisible for you.&#039;&#039;&#039; Search in the internet for for example about &#039;&#039;&amp;quot;make library folder visible macos&amp;quot;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example link: http://finerthings.in/featured/lion-library-folder-visible/&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Data is stored under&lt;br /&gt;
 ~/.factorio&lt;br /&gt;
&lt;br /&gt;
==Changing the save directory==&lt;br /&gt;
&lt;br /&gt;
It is possible to change the save directory for Factorio. This can be done by editing the location of the &amp;quot;write-data&amp;quot; entry in the &#039;&#039;config-paths.cfg&#039;&#039; file, though this also affects the location of the other directories (mods, scenario, temp). If you want to move only the location of your save files you can [[Application_Directory/Changing_the_save_directory|change the the save directory using symlinks]].&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User_talk:Preizhour&amp;diff=110762</id>
		<title>User talk:Preizhour</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User_talk:Preizhour&amp;diff=110762"/>
		<updated>2014-07-04T14:12:30Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;factorio&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [[Help:Contents|help pages]].&lt;br /&gt;
Again, welcome and have fun! [[User:Slpwnd|Slpwnd]] ([[User talk:Slpwnd|talk]]) 09:41, 4 July 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m not sure that you read your forum PMs, but you should do it now :-), there were some problems with the edits you made recently&lt;br /&gt;
--[[User:Cube|Cube]] ([[User talk:Cube|talk]]) 16:12, 4 July 2014 (CEST)&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=108195</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=108195"/>
		<updated>2014-02-27T16:18:55Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== size_control_multiplier ===&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Magic. Based on sum of influences of noises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.2&lt;br /&gt;
&lt;br /&gt;
This value times the size control setting is added to influence right before sharpness filter.&lt;br /&gt;
Very small has a multiplier of -1, very big has 1.5.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences plus a [[#size_control_multiplier|bonus for autoplace control]], passed through a [[#sharpness|sharpening filter]]&lt;br /&gt;
and multiplied by [[#max_probability|max_probability]]&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=108194</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=108194"/>
		<updated>2014-02-27T15:09:16Z</updated>

		<summary type="html">&lt;p&gt;Cube: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== size_control_multiplier ==&lt;br /&gt;
&#039;&#039;&#039; Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Magic. Based on sum of influences of noises.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.2&lt;br /&gt;
&lt;br /&gt;
This value times the size control setting is added to  probability.&lt;br /&gt;
Very small has a multiplier of -1, very big has 1.5.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences, passed through a [[#sharpness|sharpening filter]]&lt;br /&gt;
and multiplied by [[#max_probability|max_probability]]&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107952</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107952"/>
		<updated>2014-02-12T15:46:13Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity (has no effect when placing tiles). Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences, passed through a [[#sharpness|sharpening filter]]&lt;br /&gt;
and multiplied by [[#max_probability|max_probability]]&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107943</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107943"/>
		<updated>2014-02-12T13:45:00Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Order for placing the entity. Entities whose order compares less are placed earlier (this influences placing multiple entities which collide with itself), from entities with equal order string only one with the highest probability is placed.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences, passed through a [[#sharpness|sharpening filter]]&lt;br /&gt;
and multiplied by [[#max_probability|max_probability]]&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107351</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107351"/>
		<updated>2014-01-07T14:53:03Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== tile_restriction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of specifications, see below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: empty list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Restricts surfaces or transition the entity can appear on.&lt;br /&gt;
&lt;br /&gt;
Contains list of specifications, each specification is a single [[Types/string]] with the ID of an allowed tile, or a &lt;br /&gt;
list of two [[Types/string]]s for entities allowed on transitions.&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences, passed through a [[#sharpness|sharpening filter]]&lt;br /&gt;
and multiplied by [[#max_probability|max_probability]]&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107350</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=107350"/>
		<updated>2014-01-07T10:05:02Z</updated>

		<summary type="html">&lt;p&gt;Cube: Adding max_probability for 0.9.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_probability ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.9.0&lt;br /&gt;
&lt;br /&gt;
Multiplier for output of the sharpness filter.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences, passed through a [[#sharpness|sharpening filter]]&lt;br /&gt;
and multiplied by [[#max_probability|max_probability]]&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106692</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106692"/>
		<updated>2013-12-05T12:11:42Z</updated>

		<summary type="html">&lt;p&gt;Cube: Undo revision 106691 by Cube (talk) (this will not get it to 0.8)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a [[#sharpness|sharpening filter]].&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106691</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106691"/>
		<updated>2013-12-05T12:08:26Z</updated>

		<summary type="html">&lt;p&gt;Cube: /* Autoplace Peaks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_shift ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Number to add to noise value (before applying the peak influence).&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a [[#sharpness|sharpening filter]].&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=106564</id>
		<title>Prototype/Entity</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=106564"/>
		<updated>2013-11-28T10:53:39Z</updated>

		<summary type="html">&lt;p&gt;Cube: added example to entity autoplace.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basics==&lt;br /&gt;
The common properties of all entities in the game.&lt;br /&gt;
Entity is basically everything that can be on the map (except tiles).&lt;br /&gt;
For in game script access to entity, take a look at [[Lua/Entity]]&lt;br /&gt;
== Extensions ==&lt;br /&gt;
*[[Prototype/EntityWithHealth]]&lt;br /&gt;
**[[Prototype/Accumulator]]&lt;br /&gt;
**[[Prototype/Character]]&lt;br /&gt;
**[[Prototype/Unit]]&lt;br /&gt;
**[[Prototype/PipeConnectable]]&lt;br /&gt;
**[[Prototype/Car]]&lt;br /&gt;
**[[Prototype/Market]]&lt;br /&gt;
*[[Prototype/Resource]]&lt;br /&gt;
*[[Prototype/ItemEntity]]&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== type ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Specification of the [[Prototypes/EntityPrototypeTypes|type]] of the prototype.&lt;br /&gt;
&lt;br /&gt;
=== name ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Unique identification of the prototype.&lt;br /&gt;
&lt;br /&gt;
=== flags ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/EntityPrototypeFlags]]&lt;br /&gt;
&lt;br /&gt;
=== icon ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/FileName]]&lt;br /&gt;
&lt;br /&gt;
Mandatory for entities that have at least one of these flags active placeable-neutral, placeable-player, placeable-neutral.&lt;br /&gt;
&lt;br /&gt;
The icon will be used in the editor building selection.&lt;br /&gt;
    icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== collision_box ===&lt;br /&gt;
&#039;&#039;&#039;Type: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Empty={{0, 0}, {0, 0}} it means no collisions.&lt;br /&gt;
&lt;br /&gt;
Specification of the entity collision boundaries.&lt;br /&gt;
&lt;br /&gt;
Empty collision box is used for smoke, projectiles, particles, explosions etc.&lt;br /&gt;
    collision_box = {{-0.4, -0.4}, {0.4, 0.4}}&lt;br /&gt;
The {0,0} coordinate in the collision box will match the entity position.&lt;br /&gt;
&lt;br /&gt;
It should be near the center of the collision box, to keep correct entity drawing order.&lt;br /&gt;
&lt;br /&gt;
Note, that for buildings, it is custom to leave 0.1 wide border between the edge of the tile and the edge of the building, this lets the player move between the building and electric poles/inserters etc. and prevents stucked items on transport belt in some special casese (curves around the corner etc).&lt;br /&gt;
&lt;br /&gt;
=== selection_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Empty = {{0, 0}, {0, 0}}&lt;br /&gt;
&lt;br /&gt;
Specification of the entity selection area.&lt;br /&gt;
When empty  the entity will have no selection area (and thus is not selectable).&lt;br /&gt;
    selection_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
The selection box is usualy little bit bigger than the collision box, for tilable entities (like buildings) it should match the tile size of the building.&lt;br /&gt;
&lt;br /&gt;
=== drawing_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: The value of selection_box&lt;br /&gt;
&lt;br /&gt;
Specification of space needed to see the whole entity.&lt;br /&gt;
&lt;br /&gt;
This is used to calculate the correct zoom and positioning in the entity info gui.&lt;br /&gt;
    drawing_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
&lt;br /&gt;
=== sticker_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: The value of collision box.&lt;br /&gt;
&lt;br /&gt;
Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.&lt;br /&gt;
It is optional and the collision box is used when not specified.&lt;br /&gt;
   sticker_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
&lt;br /&gt;
=== weight ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Weight of the entity used for physics calculation when car hits something.&lt;br /&gt;
    weight = 5.7&lt;br /&gt;
&lt;br /&gt;
=== minable ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/MinableProperties]]&lt;br /&gt;
&lt;br /&gt;
=== emissions_per_tick ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Amount of emissions created (positive number) or cleaned (negative number) every tick by the entity.&lt;br /&gt;
This is passive, and it is independent concept of the emissions of machines, these are created actively depending on the power consumption.&lt;br /&gt;
Currently used just for trees.&lt;br /&gt;
    emissions_per_tick = -0.0005 -- cleaning effect of big tree&lt;br /&gt;
&lt;br /&gt;
=== fast_replacable_group ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
=== tile_width ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/unsigned]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: calculated by the collision box width rounded up.&lt;br /&gt;
&lt;br /&gt;
Used to determine how the center of the entity should be positioned when building (unless the offgrid [[Types/EntityPrototypeFlags|flag]] is specified).&lt;br /&gt;
When the tile width is odd, the center will be in the center of the tile, when it is even, the center is on the tile transition.&lt;br /&gt;
&lt;br /&gt;
=== tile_height ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/unsigned]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: calculated by the collision box height rounded up.&lt;br /&gt;
&lt;br /&gt;
=== autoplace ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AutoplaceSpecification]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Entity is not autoplacable&lt;br /&gt;
&lt;br /&gt;
Used to specify the rules for placing this entity during map generation.&lt;br /&gt;
&lt;br /&gt;
    autoplace =&lt;br /&gt;
    {&lt;br /&gt;
      sharpness = 0.5,&lt;br /&gt;
      control = &amp;quot;forest&amp;quot;,&lt;br /&gt;
      peaks =&lt;br /&gt;
      {&lt;br /&gt;
        {&lt;br /&gt;
          influence = 0.2,&lt;br /&gt;
          water_optimal = 0.3,&lt;br /&gt;
          water_range = 0.2,&lt;br /&gt;
          water_max_range = 0.4&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          influence = 0.9,&lt;br /&gt;
          noise_layer = &amp;quot;trees&amp;quot;,&lt;br /&gt;
          noise_persistence = 0.5,&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
    {&lt;br /&gt;
      type = &amp;quot;container&amp;quot;,&lt;br /&gt;
      name = &amp;quot;wooden-chest&amp;quot;,&lt;br /&gt;
      icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;,&lt;br /&gt;
      flags = {&amp;quot;placeable-neutral&amp;quot;, &amp;quot;player-creation&amp;quot;},&lt;br /&gt;
      minable = {mining_time = 1, result = &amp;quot;wooden-chest&amp;quot;},&lt;br /&gt;
      collision_box = {{-0.4, -0.4}, {0.4, 0.4}},&lt;br /&gt;
      selection_box = {{-0.5, -0.5}, {0.5, 0.5}},&lt;br /&gt;
      max_health = 50,&lt;br /&gt;
      corpse = &amp;quot;small-remnants&amp;quot;,&lt;br /&gt;
      fast_replaceable_group = &amp;quot;container&amp;quot;,&lt;br /&gt;
      inventory_size = 16,&lt;br /&gt;
      picture =&lt;br /&gt;
      {&lt;br /&gt;
        filename = &amp;quot;__base__/graphics/entity/wooden-chest/wooden-chest.png&amp;quot;,&lt;br /&gt;
        priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
        width = 46,&lt;br /&gt;
        height = 33,&lt;br /&gt;
        shift = {0.3, 0}&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=106563</id>
		<title>Prototype/Entity</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=106563"/>
		<updated>2013-11-28T10:51:52Z</updated>

		<summary type="html">&lt;p&gt;Cube: /* autoplace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basics==&lt;br /&gt;
The common properties of all entities in the game.&lt;br /&gt;
Entity is basically everything that can be on the map (except tiles).&lt;br /&gt;
For in game script access to entity, take a look at [[Lua/Entity]]&lt;br /&gt;
== Extensions ==&lt;br /&gt;
*[[Prototype/EntityWithHealth]]&lt;br /&gt;
**[[Prototype/Accumulator]]&lt;br /&gt;
**[[Prototype/Character]]&lt;br /&gt;
**[[Prototype/Unit]]&lt;br /&gt;
**[[Prototype/PipeConnectable]]&lt;br /&gt;
**[[Prototype/Car]]&lt;br /&gt;
**[[Prototype/Market]]&lt;br /&gt;
*[[Prototype/Resource]]&lt;br /&gt;
*[[Prototype/ItemEntity]]&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== type ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Specification of the [[Prototypes/EntityPrototypeTypes|type]] of the prototype.&lt;br /&gt;
&lt;br /&gt;
=== name ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Unique identification of the prototype.&lt;br /&gt;
&lt;br /&gt;
=== flags ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/EntityPrototypeFlags]]&lt;br /&gt;
&lt;br /&gt;
=== icon ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/FileName]]&lt;br /&gt;
&lt;br /&gt;
Mandatory for entities that have at least one of these flags active placeable-neutral, placeable-player, placeable-neutral.&lt;br /&gt;
&lt;br /&gt;
The icon will be used in the editor building selection.&lt;br /&gt;
    icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== collision_box ===&lt;br /&gt;
&#039;&#039;&#039;Type: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Empty={{0, 0}, {0, 0}} it means no collisions.&lt;br /&gt;
&lt;br /&gt;
Specification of the entity collision boundaries.&lt;br /&gt;
&lt;br /&gt;
Empty collision box is used for smoke, projectiles, particles, explosions etc.&lt;br /&gt;
    collision_box = {{-0.4, -0.4}, {0.4, 0.4}}&lt;br /&gt;
The {0,0} coordinate in the collision box will match the entity position.&lt;br /&gt;
&lt;br /&gt;
It should be near the center of the collision box, to keep correct entity drawing order.&lt;br /&gt;
&lt;br /&gt;
Note, that for buildings, it is custom to leave 0.1 wide border between the edge of the tile and the edge of the building, this lets the player move between the building and electric poles/inserters etc. and prevents stucked items on transport belt in some special casese (curves around the corner etc).&lt;br /&gt;
&lt;br /&gt;
=== selection_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Empty = {{0, 0}, {0, 0}}&lt;br /&gt;
&lt;br /&gt;
Specification of the entity selection area.&lt;br /&gt;
When empty  the entity will have no selection area (and thus is not selectable).&lt;br /&gt;
    selection_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
The selection box is usualy little bit bigger than the collision box, for tilable entities (like buildings) it should match the tile size of the building.&lt;br /&gt;
&lt;br /&gt;
=== drawing_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: The value of selection_box&lt;br /&gt;
&lt;br /&gt;
Specification of space needed to see the whole entity.&lt;br /&gt;
&lt;br /&gt;
This is used to calculate the correct zoom and positioning in the entity info gui.&lt;br /&gt;
    drawing_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
&lt;br /&gt;
=== sticker_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: The value of collision box.&lt;br /&gt;
&lt;br /&gt;
Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.&lt;br /&gt;
It is optional and the collision box is used when not specified.&lt;br /&gt;
   sticker_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
&lt;br /&gt;
=== weight ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Weight of the entity used for physics calculation when car hits something.&lt;br /&gt;
    weight = 5.7&lt;br /&gt;
&lt;br /&gt;
=== minable ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/MinableProperties]]&lt;br /&gt;
&lt;br /&gt;
=== emissions_per_tick ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Amount of emissions created (positive number) or cleaned (negative number) every tick by the entity.&lt;br /&gt;
This is passive, and it is independent concept of the emissions of machines, these are created actively depending on the power consumption.&lt;br /&gt;
Currently used just for trees.&lt;br /&gt;
    emissions_per_tick = -0.0005 -- cleaning effect of big tree&lt;br /&gt;
&lt;br /&gt;
=== fast_replacable_group ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
=== tile_width ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/unsigned]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: calculated by the collision box width rounded up.&lt;br /&gt;
&lt;br /&gt;
Used to determine how the center of the entity should be positioned when building (unless the offgrid [[Types/EntityPrototypeFlags|flag]] is specified).&lt;br /&gt;
When the tile width is odd, the center will be in the center of the tile, when it is even, the center is on the tile transition.&lt;br /&gt;
&lt;br /&gt;
=== tile_height ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/unsigned]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: calculated by the collision box height rounded up.&lt;br /&gt;
&lt;br /&gt;
=== autoplace ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AutoplaceSpecification]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Entity is not autoplacable&lt;br /&gt;
&lt;br /&gt;
Used to specify the rules for placing this entity during map generation.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
    {&lt;br /&gt;
      type = &amp;quot;container&amp;quot;,&lt;br /&gt;
      name = &amp;quot;wooden-chest&amp;quot;,&lt;br /&gt;
      icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;,&lt;br /&gt;
      flags = {&amp;quot;placeable-neutral&amp;quot;, &amp;quot;player-creation&amp;quot;},&lt;br /&gt;
      minable = {mining_time = 1, result = &amp;quot;wooden-chest&amp;quot;},&lt;br /&gt;
      collision_box = {{-0.4, -0.4}, {0.4, 0.4}},&lt;br /&gt;
      selection_box = {{-0.5, -0.5}, {0.5, 0.5}},&lt;br /&gt;
      max_health = 50,&lt;br /&gt;
      corpse = &amp;quot;small-remnants&amp;quot;,&lt;br /&gt;
      fast_replaceable_group = &amp;quot;container&amp;quot;,&lt;br /&gt;
      inventory_size = 16,&lt;br /&gt;
      picture =&lt;br /&gt;
      {&lt;br /&gt;
        filename = &amp;quot;__base__/graphics/entity/wooden-chest/wooden-chest.png&amp;quot;,&lt;br /&gt;
        priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
        width = 46,&lt;br /&gt;
        height = 33,&lt;br /&gt;
        shift = {0.3, 0}&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=106562</id>
		<title>Prototype/Entity</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=106562"/>
		<updated>2013-11-28T10:43:06Z</updated>

		<summary type="html">&lt;p&gt;Cube: /* Extensions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basics==&lt;br /&gt;
The common properties of all entities in the game.&lt;br /&gt;
Entity is basically everything that can be on the map (except tiles).&lt;br /&gt;
For in game script access to entity, take a look at [[Lua/Entity]]&lt;br /&gt;
== Extensions ==&lt;br /&gt;
*[[Prototype/EntityWithHealth]]&lt;br /&gt;
**[[Prototype/Accumulator]]&lt;br /&gt;
**[[Prototype/Character]]&lt;br /&gt;
**[[Prototype/Unit]]&lt;br /&gt;
**[[Prototype/PipeConnectable]]&lt;br /&gt;
**[[Prototype/Car]]&lt;br /&gt;
**[[Prototype/Market]]&lt;br /&gt;
*[[Prototype/Resource]]&lt;br /&gt;
*[[Prototype/ItemEntity]]&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
=== type ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Specification of the [[Prototypes/EntityPrototypeTypes|type]] of the prototype.&lt;br /&gt;
&lt;br /&gt;
=== name ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Unique identification of the prototype.&lt;br /&gt;
&lt;br /&gt;
=== flags ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/EntityPrototypeFlags]]&lt;br /&gt;
&lt;br /&gt;
=== icon ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/FileName]]&lt;br /&gt;
&lt;br /&gt;
Mandatory for entities that have at least one of these flags active placeable-neutral, placeable-player, placeable-neutral.&lt;br /&gt;
&lt;br /&gt;
The icon will be used in the editor building selection.&lt;br /&gt;
    icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== collision_box ===&lt;br /&gt;
&#039;&#039;&#039;Type: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Empty={{0, 0}, {0, 0}} it means no collisions.&lt;br /&gt;
&lt;br /&gt;
Specification of the entity collision boundaries.&lt;br /&gt;
&lt;br /&gt;
Empty collision box is used for smoke, projectiles, particles, explosions etc.&lt;br /&gt;
    collision_box = {{-0.4, -0.4}, {0.4, 0.4}}&lt;br /&gt;
The {0,0} coordinate in the collision box will match the entity position.&lt;br /&gt;
&lt;br /&gt;
It should be near the center of the collision box, to keep correct entity drawing order.&lt;br /&gt;
&lt;br /&gt;
Note, that for buildings, it is custom to leave 0.1 wide border between the edge of the tile and the edge of the building, this lets the player move between the building and electric poles/inserters etc. and prevents stucked items on transport belt in some special casese (curves around the corner etc).&lt;br /&gt;
&lt;br /&gt;
=== selection_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: Empty = {{0, 0}, {0, 0}}&lt;br /&gt;
&lt;br /&gt;
Specification of the entity selection area.&lt;br /&gt;
When empty  the entity will have no selection area (and thus is not selectable).&lt;br /&gt;
    selection_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
The selection box is usualy little bit bigger than the collision box, for tilable entities (like buildings) it should match the tile size of the building.&lt;br /&gt;
&lt;br /&gt;
=== drawing_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: The value of selection_box&lt;br /&gt;
&lt;br /&gt;
Specification of space needed to see the whole entity.&lt;br /&gt;
&lt;br /&gt;
This is used to calculate the correct zoom and positioning in the entity info gui.&lt;br /&gt;
    drawing_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
&lt;br /&gt;
=== sticker_box ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AABBbox]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: The value of collision box.&lt;br /&gt;
&lt;br /&gt;
Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.&lt;br /&gt;
It is optional and the collision box is used when not specified.&lt;br /&gt;
   sticker_box = {{-0.5, -0.5}, {0.5, 0.5}}&lt;br /&gt;
&lt;br /&gt;
=== weight ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Weight of the entity used for physics calculation when car hits something.&lt;br /&gt;
    weight = 5.7&lt;br /&gt;
&lt;br /&gt;
=== minable ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/MinableProperties]]&lt;br /&gt;
&lt;br /&gt;
=== emissions_per_tick ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Amount of emissions created (positive number) or cleaned (negative number) every tick by the entity.&lt;br /&gt;
This is passive, and it is independent concept of the emissions of machines, these are created actively depending on the power consumption.&lt;br /&gt;
Currently used just for trees.&lt;br /&gt;
    emissions_per_tick = -0.0005 -- cleaning effect of big tree&lt;br /&gt;
&lt;br /&gt;
=== fast_replacable_group ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
=== tile_width ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/unsigned]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: calculated by the collision box width rounded up.&lt;br /&gt;
&lt;br /&gt;
Used to determine how the center of the entity should be positioned when building (unless the offgrid [[Types/EntityPrototypeFlags|flag]] is specified).&lt;br /&gt;
When the tile width is odd, the center will be in the center of the tile, when it is even, the center is on the tile transition.&lt;br /&gt;
&lt;br /&gt;
=== tile_height ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/unsigned]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: calculated by the collision box height rounded up.&lt;br /&gt;
&lt;br /&gt;
=== autoplace ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AutoplaceSpecification]]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
    {&lt;br /&gt;
      type = &amp;quot;container&amp;quot;,&lt;br /&gt;
      name = &amp;quot;wooden-chest&amp;quot;,&lt;br /&gt;
      icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;,&lt;br /&gt;
      flags = {&amp;quot;placeable-neutral&amp;quot;, &amp;quot;player-creation&amp;quot;},&lt;br /&gt;
      minable = {mining_time = 1, result = &amp;quot;wooden-chest&amp;quot;},&lt;br /&gt;
      collision_box = {{-0.4, -0.4}, {0.4, 0.4}},&lt;br /&gt;
      selection_box = {{-0.5, -0.5}, {0.5, 0.5}},&lt;br /&gt;
      max_health = 50,&lt;br /&gt;
      corpse = &amp;quot;small-remnants&amp;quot;,&lt;br /&gt;
      fast_replaceable_group = &amp;quot;container&amp;quot;,&lt;br /&gt;
      inventory_size = 16,&lt;br /&gt;
      picture =&lt;br /&gt;
      {&lt;br /&gt;
        filename = &amp;quot;__base__/graphics/entity/wooden-chest/wooden-chest.png&amp;quot;,&lt;br /&gt;
        priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
        width = 46,&lt;br /&gt;
        height = 33,&lt;br /&gt;
        shift = {0.3, 0}&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype_definitions&amp;diff=106561</id>
		<title>Prototype definitions</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype_definitions&amp;diff=106561"/>
		<updated>2013-11-28T10:40:13Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Warning ==&lt;br /&gt;
This is work in progress of descrption of the prototype specification possibilities.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The game is in early stage, and the interface will change in the future for sure.&#039;&#039;&#039;&lt;br /&gt;
== Basics ==&lt;br /&gt;
* Prototype objects are specified in lua script called data.lua in the root of every mod (base game works as mod as well)&lt;br /&gt;
* Individual objects are usually sorted into different groups in the prototypes folder.&lt;br /&gt;
== Prototypes ==&lt;br /&gt;
* [[Prototype/Entity]]&lt;br /&gt;
** [[Prototype/EntityWithHealth]]&lt;br /&gt;
*** [[Prototype/Accumulator]]&lt;br /&gt;
*** [[Prototype/Character]]&lt;br /&gt;
*** [[Prototype/Unit]]&lt;br /&gt;
*** [[Prototype/PipeConnectable]]&lt;br /&gt;
*** [[Prototype/Car]]&lt;br /&gt;
*** [[Prototype/AssemblingMachine]]&lt;br /&gt;
*** [[Prototype/Market]]&lt;br /&gt;
*** [[Prototype/Inserter]]&lt;br /&gt;
** [[Prototype/Resource]]&lt;br /&gt;
** [[Prototype/ItemEntity]]&lt;br /&gt;
* [[Prototype/Tile]]&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106560</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106560"/>
		<updated>2013-11-28T10:34:16Z</updated>

		<summary type="html">&lt;p&gt;Cube: /* Autoplace Peaks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence Calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a [[#sharpness|sharpening filter]].&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106476</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106476"/>
		<updated>2013-11-08T16:48:41Z</updated>

		<summary type="html">&lt;p&gt;Cube: fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;neutral&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Influence ceiling.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a [[#sharpness|sharpening filter]].&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106473</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106473"/>
		<updated>2013-11-08T16:06:37Z</updated>

		<summary type="html">&lt;p&gt;Cube: Added new field force.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== force ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;enemy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since&#039;&#039;&#039;: 0.8.0&lt;br /&gt;
&lt;br /&gt;
Force of the placed entity. One of &amp;quot;enemy&amp;quot;, &amp;quot;player&amp;quot; or &amp;quot;neutral&amp;quot;. Only matters for EntityWithForce or EntityWithOwner.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Influence ceiling.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a [[#sharpness|sharpening filter]].&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/int32&amp;diff=106133</id>
		<title>Types/int32</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/int32&amp;diff=106133"/>
		<updated>2013-10-20T23:20:56Z</updated>

		<summary type="html">&lt;p&gt;Cube: Created page with &amp;quot;32 bit signed number.  The range is [-2^31, 2^31 - 1)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;32 bit signed number.&lt;br /&gt;
&lt;br /&gt;
The range is [-2^31, 2^31 - 1)&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106125</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106125"/>
		<updated>2013-10-20T22:43:11Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Influence ceiling.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get influence of -1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Peaks may reference a number of tile properties, specifying range of optimal values of the property&lt;br /&gt;
and a range over which it is interpolated to no effect.&lt;br /&gt;
&lt;br /&gt;
Currently the properties are:&lt;br /&gt;
* starting_area_weight -- Number from 1 (inside starting area) to 0 (not influenced by starting area).&lt;br /&gt;
* roughness -- a number between -1.5 and 1.5 which describe roughness of the terrain. In 0.7.2 roughness is visible only on the edges of lakes (smooth vs jagged).&lt;br /&gt;
* elevation -- elevation of the terrain, up to 5000. Values smaller than 0 mean under water (elevation &amp;lt; 0 doesn&#039;t imply water tile, though)&lt;br /&gt;
* water -- amount of available water on tile. Very simple dependence on elevation for now.&lt;br /&gt;
* temperature -- average temperature on tile. Depends on elevation and some noise.&lt;br /&gt;
* tier_from_start -- Distance from start in starting area sizes, rounded to integers.&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
Influence of a peak is obtained by calculating a distance from each of its dimensions.&lt;br /&gt;
A sum of these individual distances is used as a distance from optimal conditions.&lt;br /&gt;
&lt;br /&gt;
Based on this distance a peak gets influence between -1 and 1, which is then multiplied&lt;br /&gt;
by the noise function, if it is specified, and by the [[#influence|influence]] constant (or by [[#influence|influence]] + [[#richness_influence|richness_influence]]&lt;br /&gt;
if calculating richness).&lt;br /&gt;
Finally this value is clamped to a range between [[#min_influence|min_influence]] and [[#max_influence|max_influence]].&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a [[#sharpness|sharpening filter]].&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise multiplied with its influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use (see [[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
If the autoplace specification has a [[#control|control]] selected, then its influence is affected by the row in map generator gui.&lt;br /&gt;
Autoplace controls must be defined before use, see [[Prototype/AutoplaceControl]].&lt;br /&gt;
&lt;br /&gt;
* Frequency -- If frequency is set to low, then it increases number of octaves for all noises in this specification&lt;br /&gt;
* Size -- Set to large adds a bonus to all the final influence, also very slightly increases number of octaves&lt;br /&gt;
* Richness -- Adds a simple multiplier to richness.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering why we can &amp;quot;very slightly increase number of octaves&amp;quot; and not just add whole octaves, it is because we sacrificed a goat to gods of computer graphics and to Ken Perlin in particular.&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106122</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106122"/>
		<updated>2013-10-20T22:08:10Z</updated>

		<summary type="html">&lt;p&gt;Cube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Influence ceiling.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
See [[#Noise]].&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
See [[#Noise]]&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get zero weight.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
== Influence Calculation ==&lt;br /&gt;
&lt;br /&gt;
== Probability Calculation ==&lt;br /&gt;
Probability of placing an entity at a given position is calculated as a sum of influences and passed through a sharpening filter ([[#sharpness]]).&lt;br /&gt;
&lt;br /&gt;
== Richness Calculation ==&lt;br /&gt;
If an entity is to be placed at a position and it a resource or a part of an enemy base, then richness is calculated in the next step.&lt;br /&gt;
as sum of influences * [[#richness_multiplier|richness_multiplier]] + [[#richness_base|richness_base]].&lt;br /&gt;
&lt;br /&gt;
Note, that when calculating richness, influences of individual peaks use [[#richness_influence|richness_influence]] bonus.&lt;br /&gt;
&lt;br /&gt;
== Noise ==&lt;br /&gt;
A peak may have a noise added to its value before multiplication by influence.&lt;br /&gt;
Noise used is a 2D multioctave perlin noise ( http://freespace.virgin.net/hugo.elias/models/m_perlin.htm ).&lt;br /&gt;
Range of the noise is approximately from -1.5 to 1.5.&lt;br /&gt;
&lt;br /&gt;
Factorio uses up to 256 different (non correlated) layers of perlin noise, a noise layer has to be defined as a prototype before use ([[Prototype/NoiseLayer]]).&lt;br /&gt;
&lt;br /&gt;
Intended use is to have noise layers separate for different types of objects that might appear (trees vs dry_trees vs enemy-bases).&lt;br /&gt;
Also it has proven useful not to mix peaks containing noise with peaks referencing tile properties.&lt;br /&gt;
&lt;br /&gt;
== Dimensions ==&lt;br /&gt;
Each peak&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106120</id>
		<title>Types/AutoplaceSpecification</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AutoplaceSpecification&amp;diff=106120"/>
		<updated>2013-10-20T21:22:08Z</updated>

		<summary type="html">&lt;p&gt;Cube: Created page with &amp;quot;Autoplace specification is used to determine which entities are placed when generating map. Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoplace specification is used to determine which entities are placed when generating map.&lt;br /&gt;
Currently (0.7.3) it is used for enemy bases, resources and other entities (trees, fishes, ...).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
Autoplace specification consists of a set of peaks that describe conditions for placing the entity and&lt;br /&gt;
several parameters.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== sharpness ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
[[File:sharpness.png|thumb|Example of sharpness filter with value 0.5]]&lt;br /&gt;
&lt;br /&gt;
Parameter of the sharpness filter for post-processing probability of entity placement. Value of 0 disables the filter, with value 1, the filter is a step function centered around 0.5.&lt;br /&gt;
See [[#Probability calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_base ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_multiplier ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
See [[#Richness calculation]].&lt;br /&gt;
&lt;br /&gt;
=== control ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/AutoplaceControl|autoplace control]] that applies to this entity.&lt;br /&gt;
&lt;br /&gt;
=== peaks ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: list of [[#Autoplace Peaks]]&lt;br /&gt;
&lt;br /&gt;
If this property is missing, then the whole autoplace specification is interpreted as a single peak&lt;br /&gt;
&lt;br /&gt;
== Autoplace Peaks ==&lt;br /&gt;
&lt;br /&gt;
=== influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Influence multiplier.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Influence ceiling.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== min_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: min double&lt;br /&gt;
&lt;br /&gt;
Minimal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== max_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Maximal influence (after all calculations) of current peak.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== richness_influence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Bonus for influence multiplier when calculating richness.&lt;br /&gt;
See [[#Influence calculation]].&lt;br /&gt;
&lt;br /&gt;
=== noise_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID of [[Prototype/NoiseLayer|noise layer]] to use for this peak.&lt;br /&gt;
If empty, then no noise is added to this peak.&lt;br /&gt;
&lt;br /&gt;
See http://freespace.virgin.net/hugo.elias/models/m_perlin.htm.&lt;br /&gt;
&lt;br /&gt;
=== noise_persistence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Persistence of the noise.&lt;br /&gt;
&lt;br /&gt;
=== noise_octaves_difference ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Difference between number of octaves of the world and of the noise.&lt;br /&gt;
&lt;br /&gt;
=== *_optimal ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Optimal value of a tile property. If the property is close to this value, peak influence is 1.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that is still considered optimal.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_max_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
Distance from the optimal parameters that get zero weight.&lt;br /&gt;
See [[#Dimensions]].&lt;br /&gt;
&lt;br /&gt;
=== *_top_property_limit ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: max double&lt;br /&gt;
&lt;br /&gt;
Limit distance from the optimum on a single (positive) side. This is pure magic.&lt;br /&gt;
See [[#Dimensions]].&lt;/div&gt;</summary>
		<author><name>Cube</name></author>
	</entry>
</feed>