<?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=Curiosity</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=Curiosity"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Curiosity"/>
	<updated>2026-08-21T09:39:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Desynchronization&amp;diff=207137</id>
		<title>Desynchronization</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Desynchronization&amp;diff=207137"/>
		<updated>2024-11-27T10:34:45Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: /* Factorio multiplayer architecture */ fixed spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A desynchronization (desync) is a disagreement of the game state between the server and at least one client in a multiplayer game, this means the parties no longer run the simulation identically. &lt;br /&gt;
&lt;br /&gt;
== How desyncs happen ==&lt;br /&gt;
Desyncs are errors and should not occur during regular play, they can be caused by: &lt;br /&gt;
* a bug in Factorio code&lt;br /&gt;
* a bug in a mod/scenario&lt;br /&gt;
* a miscalculation on server or client hardware&lt;br /&gt;
Networking-, latency or performance problems do &#039;&#039;not&#039;&#039; cause desyncs.&lt;br /&gt;
&lt;br /&gt;
=== Factorio multiplayer architecture ===&lt;br /&gt;
Factorio multiplayer code uses deterministic lockstep to synchronize clients. This is a method of synchronizing a game from one computer to another by sending only the user inputs that control that game, rather than networking the state of the objects in the game itself. It means that all players&#039; games need to simulate every single tick of the game identically. If any computer does something ever-so-slightly different, a desynchronization (desync) occurs. The game includes processes to ensure any issues with network traffic do not cause desyncs.&lt;br /&gt;
&lt;br /&gt;
=== Player experience of desyncs ===&lt;br /&gt;
When a client detects a desync, it disconnects the player and starts to download files from the server (map and game state information) to include them in the [[#Desync_report|Desync report]], this will take longer than the normal map download. After the download is finished and the desync report has been generated the player is offered the options to view the report, quit or reconnect to continue playing. Depending on the cause of the desync, the client might immediately desync again when reconnecting.&lt;br /&gt;
&lt;br /&gt;
[[File:Desync report notification.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Desync report ===&lt;br /&gt;
The desync report will help mod/scenario makers or Factorio developers to fix the underlying bug, it contains both the player&#039;s and server&#039;s copy of the save game (map and game state). The player&#039;s copy is from when the desync occurred and titled &#039;&#039;desynced-level&#039;&#039;. With the server&#039;s copy being from when the automatic reconnection was made and titled &#039;&#039;reference-level.zip&#039;&#039;. A copy of the players Factorio log file is included titled &#039;&#039;log.txt&#039;&#039;. As the report contains two copies of the save game it may have a large file size. Furthermore, the save files that are made for the desync report contain more data than normal save files, further increasing their size.&lt;br /&gt;
&lt;br /&gt;
The desync report does not state the cause of the desync but rather is a record of the game state at the time of the desync.&lt;br /&gt;
&lt;br /&gt;
=== Next Steps ===&lt;br /&gt;
The next steps after a desync occurs is to start a desync investigation. In many situations restarting the server will work around the desync in the short term and allow all players to rejoin until the conditions for the bug to occur are re-created. However, a server restart isn&#039;t guaranteed success and may lead to no players being able to rejoin the server without desyncing.&lt;br /&gt;
&lt;br /&gt;
== Desync Investigations ==&lt;br /&gt;
In most cases when desyncs occur and mods or scenarios are being used they are the cause and need to be handled first. If they are found to not be the cause then it should be reported as a [[#Desync_reporting_of_core_Factorio_game|core Factorio desync]]. In both cases identifying the activity that triggers the desync is an important step. For example, whether it is tied to a player&#039;s action or activity that happens in the game (i.e. a train arriving at a station) or is a time-related event. In some cases, the desync may not be reproducible and so only a code investigation can work towards a fix.&lt;br /&gt;
&lt;br /&gt;
When desyncs occur and mods/scenarios are in the use there are 2 different approaches that can be taken to help get the issue fixed. The code investigation approach requires you to be familiar with Factorio modding and its coding rules. The less technical method is to identify the mod and activity that causes the desync through trial and error so it can be reported to the mod author.&lt;br /&gt;
&lt;br /&gt;
=== Identifying desync causing mod through trial and error ===&lt;br /&gt;
This is a less technical method aiming to identify the mod and its activity that seems to cause the desync so it can be reported to the mod/scenario author. The activity that causes the desync should be established prior to these activities being done to confirm if they are having an impact. These steps may affect the gameplay and should be done on a test save. &lt;br /&gt;
* Removing any newly added mods and rolling back (returning to the previous version) any updated mods to see if the issue still occurs.&lt;br /&gt;
* Removing mods from the game to rule them out as the cause.&lt;br /&gt;
Once the desync can no longer be reproduced the suspected mod can be re-added/updated and the desync recreated to confirm the mod and activity are the cause of the desync. As these steps require the server to be restarted this may in itself fix any desyncs in the short term until the conditions for the bug to occur are re-created.&lt;br /&gt;
&lt;br /&gt;
=== Code investigations with mods/scenarios involved ===&lt;br /&gt;
The desync report is a useful reference for investigating desyncs but it does not state the cause of the desync. Comparing the desync files and use of heavy mode can assist in identifying which mods and activities to review initially. Ideally, it is supplemented by an account of what was occurring and being done by players at the point of the desync occurring to assist with narrowing down the activities of code to review. However in many complicated scenarios this may not be known prior to the investigation.&lt;br /&gt;
&lt;br /&gt;
==== Code that causes desyncs ====&lt;br /&gt;
There are a number of ways mod and scenario code can cause desyncs, such as due to incorrect variable scoping, requiring or API event handling. Examples of these can be found in [[Tutorial:Modding tutorial/Gangsir#Multiplayer_and_desyncs|Gangsir&#039;s modding tutorial multiplayer and desyncs section]], with the full technical definition of usage constraints for API events in the [https://lua-api.factorio.com/latest/Data-Lifecycle.html Factorio API data lifecycle]. Not all instances of non-compliance will lead to desyncs or errors, but most will. For this reason, it is recommended to always maintain compliance to avoid risk and time-consuming testing. Instances of non-compliance found should be raised to the code author.&lt;br /&gt;
&lt;br /&gt;
==== Comparing game state &amp;amp; save files ====&lt;br /&gt;
The desync report files and heavy mode dumps contain a number of files that can be compared by any text comparison tool to look for differences. These files are generally sequelized dumps of Lua tables or c++ game objects and so are only partially human readable. The less human readable items can include floating point numbers serilaised (0x.HEXp+HEX) and &#039;&#039;magic&#039;&#039; unique identifier numbers for prototype instances in the c++ game state. These numbers and reference ids should generally be the same between files as the in-game entity they reference normally won&#039;t have changed between the 2 save game states being obtained. &lt;br /&gt;
When the data differs between files the source code of that mod/scenario must be examined for all interactions with that data item for any instances of non-compliance.&lt;br /&gt;
&lt;br /&gt;
==== Examining the desync files ====&lt;br /&gt;
Within each savegame&#039;s zip in the desync report are a number of files that when compared can show data changes. As the server copy of the save is obtained after the desync there may be genuine differences between the files. So differences aren&#039;t hard evidence of the cause of a desync, but only a pointer on where to investigate further.&lt;br /&gt;
&lt;br /&gt;
* script.dat - contains the scenario and mods [https://lua-api.factorio.com/latest/Global.html Factorio global tables]. Generally, the save&#039;s persistent data should be the same between the 2 saves. On rare occasions, there can be a difference due to how the information is written out to the file. Should a mod causes a player&#039;s game to desync it can cause the player&#039;s game to stop processing other mod activity mid tick. This can lead those mod&#039;s global tables to have differences between the player and the server copies despite having no code defects themselves.&lt;br /&gt;
* level_with_tags_tick_XXXX.dat - contains the current game state together with additional saving tags to aid human readability. This can show if entity states or chat messages differ. &#039;&#039;level.dat&#039;&#039; is the same information, but without the descriptive tags for data values.&lt;br /&gt;
&lt;br /&gt;
==== Using heavy mode command ====&lt;br /&gt;
[[Console#Normal_commands|Heavy mode]] is an in-game option that can be enabled to make Factorio save and load the game every tick. This allows Factorio to highlight if there are any changes in the game state between the save and subsequent load. Should a state change occur, a message is shown in-game and the save and load game states recorded to a &#039;&#039;dumps&#039;&#039; folder in the players [[Application directory#User_data_directory|user data folder]].&lt;br /&gt;
Typically this process will trigger for incorrect changing of data as part of the on_load event or local/global variables being changed and not persisted. The recorded game state is a dump of the internal game state, including entities, but does not include the mod&#039;s global table. This allows the checking if an entity&#039;s state has become different between the load and save state.&lt;br /&gt;
&lt;br /&gt;
This process can be used to partially test a mod for multiplayer compliance without the need of multiple players or a server.&lt;br /&gt;
&lt;br /&gt;
=== Desync reporting of core Factorio game ===&lt;br /&gt;
If no mod or scenario were involved in the desync, the desync report and activity information should be posted to the [https://forums.factorio.com/53851 Factorio forums bug report section].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.factorio.com/blog/post/fff-63 FFF 63] - How heavy mode works&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Pistol&amp;diff=207102</id>
		<title>Pistol</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Pistol&amp;diff=207102"/>
		<updated>2024-11-26T14:31:24Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: It&amp;#039;s actually hidden and disabled. Feel free to improve the wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Pistol}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Pistol&#039;&#039;&#039; is the most basic weapon in Factorio. In Freeplay mode, the player starts with a pistol and 10 [[firearm magazine]]s.&lt;br /&gt;
&lt;br /&gt;
The Pistol can only handle the smallest of enemy threats and the player will frequently take damage when trying to use it for self-defense. It is recommended to upgrade to the [[Submachine gun]] as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{History|2.0.7|&lt;br /&gt;
* Removed the crafting recipe.}}&lt;br /&gt;
&lt;br /&gt;
{{CombatNav}}&lt;br /&gt;
{{C|Weapons}}&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Sticker&amp;diff=191343</id>
		<title>Prototype/Sticker</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Sticker&amp;diff=191343"/>
		<updated>2023-05-03T07:00:49Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: according to Klonan on discord&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/Entity}}&lt;br /&gt;
Entity that sticks to another entity, and damages/slows it. Stickers can only be attached to [[Prototype/Unit]], [[Prototype/Character]], [[Prototype/Car]] and [[Prototype/SpiderVehicle]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|sticker}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/Entity]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|duration_in_ticks|[[Types/uint32|uint32]]}}&lt;br /&gt;
Must be &amp;gt; 0.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|animation|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|damage_interval|[[Types/uint32|uint32]]|1|optional=true}}&lt;br /&gt;
Interval between application of &amp;lt;code&amp;gt;damage_per_tick&amp;lt;/code&amp;gt;, in ticks.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spread_fire_entity|[[Types/string|string]]|optional=true}}&lt;br /&gt;
Name of an entity. If this is given, this sticker is considered a &amp;quot;fire sticker&amp;quot; for some functions, such as [[Types/BaseAttackParameters#fire_penalty|BaseAttackParameters#fire_penalty]] and [[Types/EntityPrototypeFlags#.22not-flammable.22|EntityPrototypeFlags#.22not-flammable.22]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|fire_spread_cooldown|[[Types/uint8|uint8]]|30|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|fire_spread_radius|[[Types/float|float]]|1|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|stickers_per_square_meter|[[Types/float|float]]|15|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|force_visibility|[[Types/ForceCondition|ForceCondition]]|&amp;quot;all&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|single_particle|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|damage_per_tick|[[Types/DamagePrototype|DamagePrototype]]||optional=true}}&lt;br /&gt;
Applied every &amp;lt;code&amp;gt;damage_interval&amp;lt;/code&amp;gt; ticks, so may not necessarily be &amp;quot;per tick&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|target_movement_modifier|[[Types/float|float]]|1|optional=true}}&lt;br /&gt;
Less than 1 to reduce movement speed, more than 1 to increase it.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|target_movement_modifier_from|[[Types/float|float]]|Value of &amp;lt;code&amp;gt;target_movement_modifier&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
The modifier value when the sticker is attached. It linearly changes over time to reach &amp;lt;code&amp;gt;target_movement_modifier_to&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|target_movement_modifier_to|[[Types/float|float]]|Value of &amp;lt;code&amp;gt;target_movement_modifier&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
The modifier value when the sticker expires. It linearly changes over time starting from &amp;lt;code&amp;gt;target_movement_modifier_from&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_speed_modifier|[[Types/float|float]]|1|optional=true}}&lt;br /&gt;
Less than 1 to reduce vehicle speed, more than 1 to increase it.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_speed_modifier_from|[[Types/float|float]]|Value of &amp;lt;code&amp;gt;vehicle_speed_modifier&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
Works similarly to &amp;lt;code&amp;gt;target_movement_modifier_from&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_speed_modifier_to|[[Types/float|float]]|Value of &amp;lt;code&amp;gt;vehicle_speed_modifier&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
Works similarly to &amp;lt;code&amp;gt;target_movement_modifier_to&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_friction_modifier|[[Types/float|float]]|1|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_friction_modifier_from|[[Types/float|float]]|Value of &amp;lt;code&amp;gt;vehicle_friction_modifier&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
Works similarly to &amp;lt;code&amp;gt;target_movement_modifier_from&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_friction_modifier_to|[[Types/float|float]]|Value of &amp;lt;code&amp;gt;vehicle_friction_modifier&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
Works similarly to &amp;lt;code&amp;gt;target_movement_modifier_to&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_box_type|[[Types/CursorBoxType|CursorBoxType]]|&amp;quot;entity&amp;quot;|optional=true}}&lt;br /&gt;
Using this property marks the sticker as a &amp;quot;selection sticker&amp;quot;, meaning that the selection box will be rendered around the entity when the sticker is on it.&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/Animation&amp;diff=191217</id>
		<title>Types/Animation</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/Animation&amp;diff=191217"/>
		<updated>2023-04-05T16:21:11Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: dice description + sprite/animation similarity note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
Specifies animation that can be used in the game.&lt;br /&gt;
&lt;br /&gt;
Note that if any frame of the animation is specified from the same source as any other [[Types/Sprite]] or frame of other animation, it will be shared.&lt;br /&gt;
&lt;br /&gt;
Also take a look at [[Types/Sprite]], as it shares many properties with animation and some of them may be better documented.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== layers ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
If this property is present, all Animation definitions have to be placed as entries in the array, and they will all be loaded from there. Each item (Animation definition) in the array may also have the &amp;lt;code&amp;gt;layers&amp;lt;/code&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
If this property is present, all other properties are ignored and the mandatory properties do not have to be defined.&lt;br /&gt;
&lt;br /&gt;
Layers may not be an empty table.&lt;br /&gt;
&lt;br /&gt;
=== hr_version ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the Animation.&lt;br /&gt;
&lt;br /&gt;
=== filename ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/FileName]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;&amp;quot;stripes&amp;quot;&amp;lt;/code&amp;gt; is not specified.&lt;br /&gt;
&lt;br /&gt;
=== priority ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpritePriority]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;medium&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== flags ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteFlags]]&lt;br /&gt;
&lt;br /&gt;
=== size ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]] or [[Types/table]] of [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
The width and height of the one frame. If this is an array, the first member of the array is the width and the second is the height. Otherwise the size is both width and height.&lt;br /&gt;
&lt;br /&gt;
Width and height may only be in the range of 0-8192.&lt;br /&gt;
&lt;br /&gt;
=== width ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; is not given. Width of one frame in pixels, from 0-8192.&lt;br /&gt;
&lt;br /&gt;
=== height ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; is not given. Height of one frame in pixels, from 0-8192.&lt;br /&gt;
&lt;br /&gt;
=== x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Horizontal position of the animation in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
=== y ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Vertical position of the animation in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
=== position ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Loaded only when &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; are both 0. The first member of the array is x and the second is y. &lt;br /&gt;
&lt;br /&gt;
=== shift ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/vector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: {0, 0}&lt;br /&gt;
&lt;br /&gt;
=== scale ===&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;
Values different than 1 specify the scale of the animation on default zoom.&lt;br /&gt;
Scale 2 means that the picture will be 2 times bigger on screen (and more pixelated).&lt;br /&gt;
&lt;br /&gt;
=== draw_as_shadow ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Only one of &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt; can be true. &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt; takes precedence over &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== draw_as_glow ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Only one of &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt; can be true. &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; takes precedence over &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Draws first as a normal sprite, and again as a light layer.&amp;lt;sup&amp;gt;[https://forums.factorio.com/91682]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== draw_as_light ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Only one of &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt; can be true.&lt;br /&gt;
&lt;br /&gt;
=== mipmap_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Only loaded if this is an icon (has flag &amp;quot;group=icon&amp;quot; or &amp;quot;group=gui&amp;quot;).&amp;lt;br&amp;gt;&lt;br /&gt;
Note: mipmap_count doesn&#039;t make sense in animation, as it is not possible to layout mipmaps in a way, that would load correctly both the animation and the mipmaps (besides animations with just one frame).[https://forums.factorio.com/viewtopic.php?p=549058#p549058]&lt;br /&gt;
&lt;br /&gt;
=== apply_runtime_tint ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
=== tint ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Color]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: {r=1, g=1, b=1, a=1} (white)&lt;br /&gt;
&lt;br /&gt;
=== blend_mode ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/BlendMode]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;normal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== load_in_minimal_mode ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Minimal mode is entered when mod loading fails. You are in it when you see the gray box after (part of) the loading screen that tells you a mod error ([https://cdn.discordapp.com/attachments/340530709712076801/532315796626472972/unknown.png Example]). If you are a modder, you can just ignore this property.&lt;br /&gt;
&lt;br /&gt;
=== premul_alpha ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: true&lt;br /&gt;
&lt;br /&gt;
Whether alpha should be premultiplied.&lt;br /&gt;
&lt;br /&gt;
=== generate_sdf ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Unused.&lt;br /&gt;
&lt;br /&gt;
=== run_mode ===&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;forward&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Possible values are:&lt;br /&gt;
*forward&lt;br /&gt;
*backward&lt;br /&gt;
*forward-then-backward&lt;br /&gt;
&lt;br /&gt;
=== frame_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Can&#039;t be 0.&lt;br /&gt;
&lt;br /&gt;
=== line_length ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Once the specified number of pictures is loaded, other pictures are loaded on other line.&lt;br /&gt;
This is to allow having longer animations in matrix, to input files with too high width.&lt;br /&gt;
The game engine limits the width of any input files to 8192px, so it is compatible with most graphics cards.&lt;br /&gt;
0 means that all the pictures are in one horizontal line.&lt;br /&gt;
&lt;br /&gt;
=== animation_speed ===&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;
Modifier of the animation playing speed, the default is 1, which means one animation frame per tick (60 fps).&lt;br /&gt;
The speed of playing can often vary depending on the usage (output of steam engine for example). Has to be greater than 0.&lt;br /&gt;
If &amp;lt;code&amp;gt;layers&amp;lt;/code&amp;gt; are used then the &amp;lt;code&amp;gt;animation_speed&amp;lt;/code&amp;gt; only has to be defined in one layer. All layers will run at the same speed.&lt;br /&gt;
&lt;br /&gt;
=== max_advance ===&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;: MAX_FLOAT&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;layers&amp;lt;/code&amp;gt; are used then &amp;lt;code&amp;gt;max_advance&amp;lt;/code&amp;gt; only has to be defined in one layer.&lt;br /&gt;
&lt;br /&gt;
=== repeat_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
How many times to repeat the animation to complete an animation cycle. E.g. if one layer is 10 frames, a second layer of 1 frame would need repeat_count = 10 to match the complete cycle.&lt;br /&gt;
&lt;br /&gt;
Can&#039;t be 0.&lt;br /&gt;
&lt;br /&gt;
=== dice ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
Number of slices this is sliced into when using the &amp;quot;optimized atlas packing&amp;quot; option. If you are a modder, you can just ignore this property.&lt;br /&gt;
&lt;br /&gt;
Example: If this is 4, the sprite will be sliced into a 4×4 grid.&lt;br /&gt;
&lt;br /&gt;
=== dice_x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;dice&amp;lt;/code&amp;gt; above, but this specifies only how many slices there are on the x axis.&lt;br /&gt;
&lt;br /&gt;
=== dice_y ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;dice&amp;lt;/code&amp;gt; above, but this specifies only how many slices there are on the y axis.&lt;br /&gt;
&lt;br /&gt;
=== frame_sequence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AnimationFrameSequence]]&lt;br /&gt;
&lt;br /&gt;
=== stripes ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table|table]] (array) of [[Types/Stripe|Stripe]]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Specification of animation of a beacon&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
animation =&lt;br /&gt;
{&lt;br /&gt;
  filename = &amp;quot;__base__/graphics/entity/beacon/beacon-antenna.png&amp;quot;,&lt;br /&gt;
  width = 54,&lt;br /&gt;
  height = 50,&lt;br /&gt;
  line_length = 8,&lt;br /&gt;
  frame_count = 32,&lt;br /&gt;
  shift = { -0.03125, -1.71875},&lt;br /&gt;
  animation_speed = 0.5&lt;br /&gt;
},&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property type usage|{{FULLPAGENAME}}?Animation]}}&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/SimpleEntity&amp;diff=191076</id>
		<title>Prototype/SimpleEntity</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/SimpleEntity&amp;diff=191076"/>
		<updated>2023-03-12T14:21:58Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: pictures/picture/animations priority by word of Klonan plus styling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithHealth}}&lt;br /&gt;
An extremely basic entity with no special functionality. Used for minable rocks.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|simple-entity}}&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|count_as_rock_for_filtered_deconstruction|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
Whether this entity should be treated as a rock for the purpose of deconstruction and for [[Prototype/Car#immune_to_rock_impacts]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|render_layer|[[Types/RenderLayer|RenderLayer]]|&amp;quot;object&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|secondary_draw_order|[[Types/int8|int8]]|0|optional=true}}&lt;br /&gt;
Used to determine render order for entities with the same &amp;lt;code&amp;gt;render_layer&amp;lt;/code&amp;gt; in the same position. Entities with a higher &amp;lt;code&amp;gt;secondary_draw_order&amp;lt;/code&amp;gt; are drawn on top.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|random_animation_offset|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|random_variation_on_create|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. If this is false, the entity will use the first variation instead of a random one.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|pictures|[[Types/SpriteVariations|SpriteVariations]]|optional=true}}&lt;br /&gt;
Simple entity must have one of &amp;lt;code&amp;gt;picture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pictures&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;animations&amp;lt;/code&amp;gt; defined.&lt;br /&gt;
&lt;br /&gt;
This property takes priority over the other two.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|picture|[[Types/Sprite|Sprite]]|optional=true}}&lt;br /&gt;
Simple entity must have one of &amp;lt;code&amp;gt;picture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pictures&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;animations&amp;lt;/code&amp;gt; defined.&lt;br /&gt;
&lt;br /&gt;
This property takes priority over &amp;lt;code&amp;gt;animations&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|animations|[[Types/AnimationVariations|AnimationVariations]]|optional=true}}&lt;br /&gt;
Simple entity must have one of &amp;lt;code&amp;gt;picture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pictures&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;animations&amp;lt;/code&amp;gt; defined.&lt;br /&gt;
&lt;br /&gt;
The other two properties take priority over this one.&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/MiningDrill&amp;diff=190891</id>
		<title>Prototype/MiningDrill</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/MiningDrill&amp;diff=190891"/>
		<updated>2023-02-27T21:30:20Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: clarify base_productivity behavior&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithOwner}}&lt;br /&gt;
A mining drill for automatically extracting resources from [[Prototype/ResourceEntity|resource entities]]. This prototype type is used by [[burner mining drill]], [[electric mining drill]] and [[pumpjack]] in vanilla.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|mining-drill}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits the properties of [[Prototype/EntityWithOwner]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vector_to_place_result|[[Types/vector|vector]]}}&lt;br /&gt;
The position where any item results are placed, when the mining drill is facing north (default direction). If the drill does not produce any solid items but uses a fluidbox output instead (e.g. pumpjacks), a vector of {0,0} disables the yellow arrow alt-mode indicator for the placed item location.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|resource_searching_radius|[[Types/double|double]]}}&lt;br /&gt;
The distance from the centre of the mining drill to search for resources in.&lt;br /&gt;
&lt;br /&gt;
This is 2.49 for electric mining drills (a 5x5 area) and 0.99 for burner mining drills (a 2x2 area). The drill searches resource outside its natural boundary box, which is 0.01 (the middle of the entity); making it 2.5 and 1.0 gives it another block radius.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
The amount of energy used by the drill while mining. Can&#039;t be less than or equal to 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mining_speed|[[Types/double|double]]}}&lt;br /&gt;
The speed of this drill.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}&lt;br /&gt;
The energy source of this mining drill.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|resource_categories|[[Types/table|array]] of [[Types/string|string]]}}&lt;br /&gt;
The names of the [[Prototype/ResourceCategory]] that can be mined by this drill. For a list on built-in categories, see [[Data.raw#resource-category]].&amp;lt;/br&amp;gt;&lt;br /&gt;
Note: Categories containing resources which produce items, fluids, or items+fluids may be combined on the same entity, but may not work as expected.&amp;lt;/br&amp;gt;&lt;br /&gt;
Examples: Miner does not rotate fluid-resulting resources until depletion. Fluid isn&#039;t output (fluid resource change and fluidbox matches previous fluid). Miner with no vector_to_place_result can&#039;t output an item result and halts.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|output_fluid_box|[[Types/FluidBox|FluidBox]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|input_fluid_box|[[Types/FluidBox|FluidBox]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|animations|[[Types/Animation4Way|Animation4Way]]|optional=true}}&lt;br /&gt;
Loaded only if &amp;lt;code&amp;gt;graphics_set&amp;lt;/code&amp;gt; does not exist.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|graphics_set|[[Types/MiningDrillGraphicsSet|MiningDrillGraphicsSet]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|wet_mining_graphics_set|[[Types/MiningDrillGraphicsSet|MiningDrillGraphicsSet]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_picture|[[Types/Sprite4Way|Sprite4Way]]|optional=true}}&lt;br /&gt;
Used by the [[pumpjack]] to have a static 4 way sprite.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|allowed_effects|[[Types/EffectTypeLimitation|EffectTypeLimitation]]|All effects are allowed|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|radius_visualisation_picture|[[Types/Sprite|Sprite]]|optional=true}}&lt;br /&gt;
The sprite used to show the range of the mining drill.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|circuit_wire_max_distance|[[Types/double|double]]|0|optional=true}}&lt;br /&gt;
The maximum circuit wire distance for this entity.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_copper_wires|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_circuit_wires|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_render_layer|[[Types/RenderLayer|RenderLayer]]|&amp;quot;lower-object&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_productivity|[[Types/float|float]]|0|optional=true}}&lt;br /&gt;
Productivity bonus that this machine always has. Any values below 0 will be changed to 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|monitor_visualization_tint|[[Types/Color|Color]]|optional=true}}&lt;br /&gt;
When this mining drill is connected to the circuit network, the resource that it is reading (either the entire resource patch, or the resource in the mining area of the drill, depending on circuit network setting), is tinted in this color when mousing over the mining drill.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|circuit_wire_connection_points|[[Types/table|table]] of [[Types/WireConnectionPoint|WireConnectionPoint]]|optional=true}}&lt;br /&gt;
Mandatory if circuit_wire_max_distance  &amp;gt; 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|circuit_connector_sprites|[[Types/table|table]] of [[Types/CircuitConnectorSprites|CircuitConnectorSprites]]|optional=true}}&lt;br /&gt;
Mandatory if circuit_wire_max_distance  &amp;gt; 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|module_specification|[[Types/ModuleSpecification|ModuleSpecification]]|optional=true}}&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/RocketSilo&amp;diff=190824</id>
		<title>Prototype/RocketSilo</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/RocketSilo&amp;diff=190824"/>
		<updated>2023-02-20T10:41:05Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: Clarify how rocket_parts_required works&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/AssemblingMachine}}&lt;br /&gt;
A [[rocket silo]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|rocket-silo}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/AssemblingMachine]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|active_energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|idle_energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|lamp_energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
May be 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_entity|[[Types/string|string]]}}&lt;br /&gt;
Name of a [[Prototype/RocketSiloRocket]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|satellite_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|satellite_shadow_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|arm_02_right_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|arm_01_back_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|arm_03_front_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|shadow_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hole_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hole_light_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_shadow_overlay_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_glow_overlay_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_back_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_front_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_day_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_front_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|red_lights_back_sprites|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|red_lights_front_sprites|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hole_clipping_box|[[Types/BoundingBox|BoundingBox]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_back_open_offset|[[Types/vector|vector]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_front_open_offset|[[Types/vector|vector]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|silo_fade_out_start_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|silo_fade_out_end_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|times_to_blink|[[Types/uint8|uint8]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|light_blinking_speed|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_opening_speed|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_parts_required|[[Types/uint32|uint32]]}}&lt;br /&gt;
The number of crafts that must complete to produce a rocket. This includes bonus crafts from productivity. Recipe products are ignored.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_night_sprite|[[Types/Sprite|Sprite]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_engine_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_rising_delay|[[Types/uint8|uint8]]|30|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|launch_wait_time|[[Types/uint8|uint8]]|120|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alarm_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_on_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_off_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|doors_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|raise_rocket_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alarm_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_on_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_off_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|doors_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|raise_rocket_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|flying_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_result_inventory_size|[[Types/ItemStackIndex|ItemStackIndex]]|0|optional=true}}&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/BaseAttackParameters&amp;diff=190677</id>
		<title>Types/BaseAttackParameters</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/BaseAttackParameters&amp;diff=190677"/>
		<updated>2023-01-17T05:51:27Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: /* ammo_categories */ improved wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The abstract base of all [[Types/AttackParameters|attack parameters]].&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
* [[Types/ProjectileAttackParameters]]&lt;br /&gt;
* [[Types/BeamAttackParameters]]&lt;br /&gt;
* [[Types/StreamAttackParameters]]&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
=== range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
Before an entity can attack, the distance (in tiles) between the entity and target must be less than or equal to this.&lt;br /&gt;
&lt;br /&gt;
=== cooldown ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
Number of ticks in which it will be possible to shoot again. If &amp;lt; 1, multiple shots can be performed in one tick.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
=== min_range ===&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;: 0&lt;br /&gt;
&lt;br /&gt;
The minimum distance (in tiles) between an entity and target. If a unit&#039;s target is less than this, the unit will attempt to move away before attacking. A [[Flamethrower turret]] does not move, but has a minimum range. Less than this, it is unable to target an enemy.&lt;br /&gt;
&lt;br /&gt;
=== turn_range ===&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;
If this is &amp;lt;= 0, it is set to 1. Arc from 0 to 1, so for example 0.25 is 90°. Used by the [[flamethrower turret]] in the base game. Arcs greater than 0.5 but less than 1 will be clamped to 0.5 as targeting in arcs larger than half circle is not implemented.[https://forums.factorio.com/94654]&lt;br /&gt;
&lt;br /&gt;
=== fire_penalty ===&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;: 0&lt;br /&gt;
&lt;br /&gt;
Used when searching for the nearest enemy, when this is &amp;gt; 0, enemies that aren&#039;t burning are preferred over burning enemies. Definition of &amp;quot;burning&amp;quot; for this: Entity has sticker attached to it, and the sticker has a [[Prototype/Sticker#spread_fire_entity|spread_fire_entity]] set.&lt;br /&gt;
&lt;br /&gt;
=== rotate_penalty ===&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;: 0&lt;br /&gt;
&lt;br /&gt;
A higher penalty will discourage turrets from targeting units that would take longer to turn to face.&lt;br /&gt;
&lt;br /&gt;
=== health_penalty ===&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;: 0&lt;br /&gt;
&lt;br /&gt;
A higher penalty will discourage turrets from targeting units with higher health. A negative penalty will encourage turrets to target units with higher health.&lt;br /&gt;
&lt;br /&gt;
=== range_mode ===&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;center-to-center&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Either &amp;quot;center-to-center&amp;quot; or &amp;quot;bounding-box-to-bounding-box&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== min_attack_distance ===&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;: &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If less than &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt;, the entity will choose a random distance between &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;min_attack_distance&amp;lt;/code&amp;gt; and attack from that distance.&lt;br /&gt;
&lt;br /&gt;
=== damage_modifier ===&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;
=== ammo_consumption_modifier ===&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;
Must be greater than or equal to 0.&lt;br /&gt;
&lt;br /&gt;
=== cooldown_deviation ===&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;: 0&lt;br /&gt;
&lt;br /&gt;
Must be between 0 and 1.&lt;br /&gt;
&lt;br /&gt;
=== warmup ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Number of ticks it takes for the weapon to actually shoot after the order for shooting has been made. This also allows to &amp;quot;adjust&amp;quot; the shooting animation to the effect of shooting.&lt;br /&gt;
&lt;br /&gt;
[[Types/CapsuleAction]]s cannot have attack_parameters with non-zero warmup.&lt;br /&gt;
&lt;br /&gt;
=== lead_target_for_projectile_speed ===&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;: 0&lt;br /&gt;
&lt;br /&gt;
Setting this to anything but zero causes homing projectiles to aim for the predicted location based on enemy movement instead of the current enemy location.&lt;br /&gt;
&lt;br /&gt;
Example from the base game flamethrower:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;lead_target_for_projectile_speed = 0.2* 0.75 * 1.5, -- this is same as particle horizontal speed of flamethrower fire stream&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== movement_slow_down_cooldown ===&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;: &amp;lt;code&amp;gt;cooldown&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== movement_slow_down_factor ===&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;
=== ammo_type ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AmmoType]]&lt;br /&gt;
&lt;br /&gt;
Can be mandatory.&lt;br /&gt;
&lt;br /&gt;
=== activation_type ===&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;shoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
One of &amp;quot;shoot&amp;quot;, &amp;quot;throw&amp;quot;, &amp;quot;consume&amp;quot; or &amp;quot;activate&amp;quot;. Used in tooltips to set the tooltip category. It is also used to get the locale keys for activation instructions and speed of the action for the tooltip.&lt;br /&gt;
&lt;br /&gt;
For example, an activation_type of &amp;quot;throw&amp;quot; will result in the tooltip category &amp;quot;thrown&amp;quot; and the tooltip locale keys &amp;quot;gui.instruction-to-throw&amp;quot; and &amp;quot;description.throwing-speed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== sound ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/LayeredSound]]&lt;br /&gt;
&lt;br /&gt;
Played once at the start of the attack if this is a [[Types/ProjectileAttackParameters]].&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;
=== cyclic_sound ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/CyclicSound]]&lt;br /&gt;
&lt;br /&gt;
Played during the attack.&lt;br /&gt;
&lt;br /&gt;
=== use_shooter_direction ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
=== ammo_categories ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] (array) of [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Names of [[Prototype/AmmoCategory]].&lt;br /&gt;
&lt;br /&gt;
=== ammo_category ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
The name of a [[Prototype/AmmoCategory]]. Mandatory if &amp;lt;code&amp;gt;ammo_type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ammo_categories&amp;lt;/code&amp;gt; is not given, otherwise ignored.&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Character&amp;diff=190598</id>
		<title>Prototype/Character</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Character&amp;diff=190598"/>
		<updated>2022-12-22T11:06:08Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: Some people in Discord have found this unclear&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithOwner}}&lt;br /&gt;
Entity that you move around on the screen during the campaign and freeplay. &lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|character}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
Inherits all properties from [[Prototype/EntityWithOwner]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mining_speed|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|running_speed|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|distance_per_frame|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|maximum_corner_sliding_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|heartbeat|[[Types/Sound|Sound]]}}&lt;br /&gt;
The sound file played when the character&#039;s health is low.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|eat|[[Types/Sound|Sound]]}}&lt;br /&gt;
The sound file played when the character eats (fish for example).&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|inventory_size|[[Types/ItemStackIndex|ItemStackIndex]]}}&lt;br /&gt;
Number of slots in the main inventory. May be 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|build_distance|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|drop_item_distance|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|reach_distance|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|reach_resource_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|item_pickup_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|loot_pickup_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ticks_to_keep_gun|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ticks_to_keep_aiming_direction|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ticks_to_stay_in_combat|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|damage_hit_tint|[[Types/Color|Color]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|running_sound_animation_positions|[[Types/table|table]] of [[Types/float|float]]}}&lt;br /&gt;
List of positions in the running animation when the walking sound is played.&lt;br /&gt;
    running_sound_animation_positions = {14, 29}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mining_with_tool_particles_animation_positions|[[Types/table|table]] of [[Types/float|float]]}}&lt;br /&gt;
List of positions in the mining with tool animation when the mining sound and mining particles are created.&lt;br /&gt;
    mining_with_tool_particles_animation_positions = {28}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|animations|[[Types/table|table]] of [[Types/CharacterArmorAnimation|CharacterArmorAnimation]]}}&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|crafting_categories|[[Types/table|table]] of [[Types/string|string]]|empty table|optional=true}}&lt;br /&gt;
Names of the crafting categories the character can craft recipes from. The built-in categories can be found [[Data.raw#recipe-category|here]]. See also [[Prototype/RecipeCategory]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mining_categories |[[Types/table|table]] of [[Types/string|string]]|empty table|optional=true}}&lt;br /&gt;
Names of the resource categories the character can mine resources from.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|enter_vehicle_distance|[[Types/double|double]]|3.0|optional=true}}&lt;br /&gt;
Must be &amp;gt;= 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tool_attack_distance|[[Types/double|double]]|1.5|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|respawn_time|[[Types/uint32|uint32]]|10|optional=true}}&lt;br /&gt;
Time in seconds. Must be positive&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|has_belt_immunity|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
Whether this character is moved by belts when standing on them.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|character_corpse|[[Types/string|string]]|optional=true}}&lt;br /&gt;
Name of the character corpse that is spawned when this character dies.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|footstep_particle_triggers|[[Types/FootstepTriggerEffectList|FootstepTriggerEffectList]]|optional=true}}&lt;br /&gt;
Triggered every tick of the running animation.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|synced_footstep_particle_triggers|[[Types/FootstepTriggerEffectList|FootstepTriggerEffectList]]|optional=true}}&lt;br /&gt;
Triggered when the running animation ([[#animations]]) rolls over the frames defined in &amp;lt;code&amp;gt;right_footprint_frames&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;left_footprint_frames&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|footprint_particles|[[Types/table|table]] of [[Types/FootprintParticle|FootprintParticle]]|optional=true}}&lt;br /&gt;
Array of footprint particles. Triggered when the running animation ([[#animations]]) rolls over the frames defined in &amp;lt;code&amp;gt;right_footprint_frames&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;left_footprint_frames&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|left_footprint_offset|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
Offset from the center of the entity for the left footprint. Used by &amp;lt;code&amp;gt;footprint_particles&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|right_footprint_offset|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
Offset from the center of the entity for the right footprint. Used by &amp;lt;code&amp;gt;footprint_particles&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|right_footprint_frames|[[Types/table|table]] of [[Types/float|float]]|optional=true}}&lt;br /&gt;
An array of [[Types/float|float]]. The frames in the running animation ([[#animations]]) where the right foot touches the ground.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|left_footprint_frames|[[Types/table|table]] of [[Types/float|float]]|optional=true}}&lt;br /&gt;
An array of [[Types/float|float]]. The frames in the running animation ([[#animations]]) where the left foot touches the ground.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tool_attack_result|[[Types/Trigger|Trigger]]|optional=true}}&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/RocketSilo&amp;diff=189434</id>
		<title>Prototype/RocketSilo</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/RocketSilo&amp;diff=189434"/>
		<updated>2022-06-29T17:13:01Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: Document missing properties (see https://forums.factorio.com/viewtopic.php?f=65&amp;amp;t=92227 )&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/AssemblingMachine}}&lt;br /&gt;
A [[rocket silo]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|rocket-silo}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/AssemblingMachine]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|active_energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|idle_energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|lamp_energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
May be 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_entity|[[Types/string|string]]}}&lt;br /&gt;
Name of a [[Prototype/RocketSiloRocket]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|satellite_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|satellite_shadow_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|arm_02_right_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|arm_01_back_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|arm_03_front_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|shadow_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hole_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hole_light_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_shadow_overlay_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_glow_overlay_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_back_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_front_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_day_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_front_sprite|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|red_lights_back_sprites|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|red_lights_front_sprites|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hole_clipping_box|[[Types/BoundingBox|BoundingBox]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_back_open_offset|[[Types/vector|vector]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_front_open_offset|[[Types/vector|vector]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|silo_fade_out_start_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|silo_fade_out_end_distance|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|times_to_blink|[[Types/uint8|uint8]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|light_blinking_speed|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_opening_speed|[[Types/double|double]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_parts_required|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_night_sprite|[[Types/Sprite|Sprite]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_engine_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alarm_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_on_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_off_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|doors_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|raise_rocket_trigger|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alarm_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_on_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|clamps_off_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|doors_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|raise_rocket_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|flying_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_result_inventory_size|[[Types/ItemStackIndex|ItemStackIndex]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rocket_rising_delay|[[Types/uint8|uint8]]|30|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|launch_wait_time|[[Types/uint8|uint8]]|120|optional=true}}&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/CustomInput&amp;diff=189214</id>
		<title>Prototype/CustomInput</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/CustomInput&amp;diff=189214"/>
		<updated>2022-05-27T16:32:22Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: Checking in game, some game controls are invalid. There&amp;#039;s also one new, based on locale strings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|PrototypeBase}}&lt;br /&gt;
Used for custom keyboard shortcuts/keybindings in mods. The key associated with the custom input can be changed in the options. This means that &amp;lt;code&amp;gt;key_sequence&amp;lt;/code&amp;gt; is simply the default keybinding.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|custom-input}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
Inherits all properties from [[PrototypeBase]].&lt;br /&gt;
&lt;br /&gt;
=== name ===&lt;br /&gt;
:&#039;&#039;See [[PrototypeBase#name]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inherited from [[PrototypeBase]]. It is also the name for the event that is raised when they key (combination) is pressed and action is &amp;quot;lua&amp;quot;, see [[Tutorial:Script interfaces]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|key_sequence|[[Types/string|string]]}}&lt;br /&gt;
The default key sequence for this custom input.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&amp;quot; (empty string) for unassigned&lt;br /&gt;
* &amp;quot;mouse-button-2&amp;quot; etc for mouse buttons, mouse-button-3 for middle mouse button&lt;br /&gt;
* &amp;quot;mouse-wheel-up&amp;quot;, &amp;quot;mouse-wheel-down&amp;quot;, &amp;quot;mouse-wheel-left&amp;quot;, &amp;quot;mouse-wheel-right&amp;quot; for mouse wheel&lt;br /&gt;
* &amp;quot; + &amp;quot; is used to separate modifier keys from normal keys: &amp;lt;code&amp;gt;&amp;quot;ALT + G&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* For modifier keys, the following names are used: &amp;quot;CONTROL&amp;quot;, &amp;quot;SHIFT&amp;quot;, &amp;quot;ALT&amp;quot;, &amp;quot;COMMAND&amp;quot;&lt;br /&gt;
* A keybinding can contain an unlimited amount of modifier keys (listed above) but only one normal key (listed below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40em;&amp;quot;&amp;gt;&lt;br /&gt;
These names are available for the normal keys&lt;br /&gt;
&amp;lt;pre class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A&lt;br /&gt;
B&lt;br /&gt;
C&lt;br /&gt;
D&lt;br /&gt;
E&lt;br /&gt;
F&lt;br /&gt;
G&lt;br /&gt;
H&lt;br /&gt;
I&lt;br /&gt;
J&lt;br /&gt;
K&lt;br /&gt;
L&lt;br /&gt;
M&lt;br /&gt;
N&lt;br /&gt;
O&lt;br /&gt;
P&lt;br /&gt;
Q&lt;br /&gt;
R&lt;br /&gt;
S&lt;br /&gt;
T&lt;br /&gt;
U&lt;br /&gt;
V&lt;br /&gt;
W&lt;br /&gt;
X&lt;br /&gt;
Y&lt;br /&gt;
Z&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
0&lt;br /&gt;
RETURN&lt;br /&gt;
ESCAPE&lt;br /&gt;
BACKSPACE&lt;br /&gt;
TAB&lt;br /&gt;
SPACE&lt;br /&gt;
MINUS&lt;br /&gt;
EQUALS&lt;br /&gt;
LEFTBRACKET&lt;br /&gt;
RIGHTBRACKET&lt;br /&gt;
BACKSLASH&lt;br /&gt;
NONUSHASH&lt;br /&gt;
SEMICOLON&lt;br /&gt;
APOSTROPHE&lt;br /&gt;
GRAVE&lt;br /&gt;
COMMA&lt;br /&gt;
PERIOD&lt;br /&gt;
SLASH&lt;br /&gt;
CAPSLOCK&lt;br /&gt;
F1&lt;br /&gt;
F2&lt;br /&gt;
F3&lt;br /&gt;
F4&lt;br /&gt;
F5&lt;br /&gt;
F6&lt;br /&gt;
F7&lt;br /&gt;
F8&lt;br /&gt;
F9&lt;br /&gt;
F10&lt;br /&gt;
F11&lt;br /&gt;
F12&lt;br /&gt;
PRINTSCREEN&lt;br /&gt;
SCROLLLOCK&lt;br /&gt;
PAUSE&lt;br /&gt;
INSERT&lt;br /&gt;
HOME&lt;br /&gt;
PAGEUP&lt;br /&gt;
DELETE&lt;br /&gt;
END&lt;br /&gt;
PAGEDOWN&lt;br /&gt;
RIGHT&lt;br /&gt;
LEFT&lt;br /&gt;
DOWN&lt;br /&gt;
UP&lt;br /&gt;
NUMLOCKCLEAR&lt;br /&gt;
KP_DIVIDE&lt;br /&gt;
KP_MULTIPLY&lt;br /&gt;
KP_MINUS&lt;br /&gt;
KP_PLUS&lt;br /&gt;
KP_ENTER&lt;br /&gt;
KP_1&lt;br /&gt;
KP_2&lt;br /&gt;
KP_3&lt;br /&gt;
KP_4&lt;br /&gt;
KP_5&lt;br /&gt;
KP_6&lt;br /&gt;
KP_7&lt;br /&gt;
KP_8&lt;br /&gt;
KP_9&lt;br /&gt;
KP_0&lt;br /&gt;
KP_PERIOD&lt;br /&gt;
NONUSBACKSLASH&lt;br /&gt;
APPLICATION&lt;br /&gt;
POWER&lt;br /&gt;
KP_EQUALS&lt;br /&gt;
F13&lt;br /&gt;
F14&lt;br /&gt;
F15&lt;br /&gt;
F16&lt;br /&gt;
F17&lt;br /&gt;
F18&lt;br /&gt;
F19&lt;br /&gt;
F20&lt;br /&gt;
F21&lt;br /&gt;
F22&lt;br /&gt;
F23&lt;br /&gt;
F24&lt;br /&gt;
EXECUTE&lt;br /&gt;
HELP&lt;br /&gt;
MENU&lt;br /&gt;
SELECT&lt;br /&gt;
STOP&lt;br /&gt;
AGAIN&lt;br /&gt;
UNDO&lt;br /&gt;
CUT&lt;br /&gt;
COPY&lt;br /&gt;
PASTE&lt;br /&gt;
FIND&lt;br /&gt;
MUTE&lt;br /&gt;
VOLUMEUP&lt;br /&gt;
VOLUMEDOWN&lt;br /&gt;
KP_COMMA&lt;br /&gt;
KP_EQUALSAS400&lt;br /&gt;
INTERNATIONAL1&lt;br /&gt;
INTERNATIONAL2&lt;br /&gt;
INTERNATIONAL3&lt;br /&gt;
INTERNATIONAL4&lt;br /&gt;
INTERNATIONAL5&lt;br /&gt;
INTERNATIONAL6&lt;br /&gt;
INTERNATIONAL7&lt;br /&gt;
INTERNATIONAL8&lt;br /&gt;
INTERNATIONAL9&lt;br /&gt;
LANG1&lt;br /&gt;
LANG2&lt;br /&gt;
LANG3&lt;br /&gt;
LANG4&lt;br /&gt;
LANG5&lt;br /&gt;
LANG6&lt;br /&gt;
LANG7&lt;br /&gt;
LANG8&lt;br /&gt;
LANG9&lt;br /&gt;
ALTERASE&lt;br /&gt;
SYSREQ&lt;br /&gt;
CANCEL&lt;br /&gt;
CLEAR&lt;br /&gt;
PRIOR&lt;br /&gt;
RETURN2&lt;br /&gt;
SEPARATOR&lt;br /&gt;
OUT&lt;br /&gt;
OPER&lt;br /&gt;
CLEARAGAIN&lt;br /&gt;
CRSEL&lt;br /&gt;
EXSEL&lt;br /&gt;
KP_00&lt;br /&gt;
KP_000&lt;br /&gt;
THOUSANDSSEPARATOR&lt;br /&gt;
DECIMALSEPARATOR&lt;br /&gt;
CURRENCYUNIT&lt;br /&gt;
CURRENCYSUBUNIT&lt;br /&gt;
KP_LEFTPAREN&lt;br /&gt;
KP_RIGHTPAREN&lt;br /&gt;
KP_LEFTBRACE&lt;br /&gt;
KP_RIGHTBRACE&lt;br /&gt;
KP_TAB&lt;br /&gt;
KP_BACKSPACE&lt;br /&gt;
KP_A&lt;br /&gt;
KP_B&lt;br /&gt;
KP_C&lt;br /&gt;
KP_D&lt;br /&gt;
KP_E&lt;br /&gt;
KP_F&lt;br /&gt;
KP_XOR&lt;br /&gt;
KP_POWER&lt;br /&gt;
KP_PERCENT&lt;br /&gt;
KP_LESS&lt;br /&gt;
KP_GREATER&lt;br /&gt;
KP_AMPERSAND&lt;br /&gt;
KP_DBLAMPERSAND&lt;br /&gt;
KP_VERTICALBAR&lt;br /&gt;
KP_DBLVERTICALBAR&lt;br /&gt;
KP_COLON&lt;br /&gt;
KP_HASH&lt;br /&gt;
KP_SPACE&lt;br /&gt;
KP_AT&lt;br /&gt;
KP_EXCLAM&lt;br /&gt;
KP_MEMSTORE&lt;br /&gt;
KP_MEMRECALL&lt;br /&gt;
KP_MEMCLEAR&lt;br /&gt;
KP_MEMADD&lt;br /&gt;
KP_MEMSUBTRACT&lt;br /&gt;
KP_MEMMULTIPLY&lt;br /&gt;
KP_MEMDIVIDE&lt;br /&gt;
KP_PLUSMINUS&lt;br /&gt;
KP_CLEAR&lt;br /&gt;
KP_CLEARENTRY&lt;br /&gt;
KP_BINARY&lt;br /&gt;
KP_OCTAL&lt;br /&gt;
KP_DECIMAL&lt;br /&gt;
KP_HEXADECIMAL&lt;br /&gt;
LCTRL&lt;br /&gt;
LSHIFT&lt;br /&gt;
LALT&lt;br /&gt;
LGUI&lt;br /&gt;
RCTRL&lt;br /&gt;
RSHIFT&lt;br /&gt;
RALT&lt;br /&gt;
RGUI&lt;br /&gt;
MODE&lt;br /&gt;
AUDIONEXT&lt;br /&gt;
AUDIOPREV&lt;br /&gt;
AUDIOSTOP&lt;br /&gt;
AUDIOPLAY&lt;br /&gt;
AUDIOMUTE&lt;br /&gt;
MEDIASELECT&lt;br /&gt;
WWW&lt;br /&gt;
MAIL&lt;br /&gt;
CALCULATOR&lt;br /&gt;
COMPUTER&lt;br /&gt;
AC_SEARCH&lt;br /&gt;
AC_HOME&lt;br /&gt;
AC_BACK&lt;br /&gt;
AC_FORWARD&lt;br /&gt;
AC_STOP&lt;br /&gt;
AC_REFRESH&lt;br /&gt;
AC_BOOKMARKS&lt;br /&gt;
BRIGHTNESSDOWN&lt;br /&gt;
BRIGHTNESSUP&lt;br /&gt;
DISPLAYSWITCH&lt;br /&gt;
KBDILLUMTOGGLE&lt;br /&gt;
KBDILLUMDOWN&lt;br /&gt;
KBDILLUMUP&lt;br /&gt;
EJECT&lt;br /&gt;
SLEEP&lt;br /&gt;
APP1&lt;br /&gt;
APP2&lt;br /&gt;
AUDIOREWIND&lt;br /&gt;
AUDIOFASTFORWARD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alternative_key_sequence|[[Types/string|string]]|optional=true}}&lt;br /&gt;
The alternative keybinding for this control. See [[#key_sequence]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|linked_game_control|[[Types/string|string]]|&amp;quot;&amp;quot;|optional=true}}&lt;br /&gt;
When a custom-input is linked to a game control it won&#039;t show up in the control-settings GUI and will fire when the linked control is pressed. [https://forums.factorio.com/53591]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 40em;&amp;quot;&amp;gt;&lt;br /&gt;
List of internal names of game controls&lt;br /&gt;
&amp;lt;pre class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
action-bar-select-page-1&lt;br /&gt;
action-bar-select-page-10&lt;br /&gt;
action-bar-select-page-2&lt;br /&gt;
action-bar-select-page-3&lt;br /&gt;
action-bar-select-page-4&lt;br /&gt;
action-bar-select-page-5&lt;br /&gt;
action-bar-select-page-6&lt;br /&gt;
action-bar-select-page-7&lt;br /&gt;
action-bar-select-page-8&lt;br /&gt;
action-bar-select-page-9&lt;br /&gt;
activate-tooltip&lt;br /&gt;
add-station&lt;br /&gt;
add-temporary-station&lt;br /&gt;
alt-zoom-in&lt;br /&gt;
alt-zoom-out&lt;br /&gt;
build&lt;br /&gt;
build-ghost&lt;br /&gt;
build-with-obstacle-avoidance&lt;br /&gt;
cancel-craft&lt;br /&gt;
cancel-craft-5&lt;br /&gt;
cancel-craft-all&lt;br /&gt;
clear-cursor&lt;br /&gt;
confirm-gui&lt;br /&gt;
confirm-message&lt;br /&gt;
connect-train&lt;br /&gt;
controller-gui-crafting-tab&lt;br /&gt;
controller-gui-logistics-tab&lt;br /&gt;
copy&lt;br /&gt;
copy-entity-settings&lt;br /&gt;
craft&lt;br /&gt;
craft-5&lt;br /&gt;
craft-all&lt;br /&gt;
cursor-split&lt;br /&gt;
cut&lt;br /&gt;
cycle-blueprint-backwards&lt;br /&gt;
cycle-blueprint-forwards&lt;br /&gt;
cycle-clipboard-backwards&lt;br /&gt;
cycle-clipboard-forwards&lt;br /&gt;
debug-reset-zoom&lt;br /&gt;
debug-reset-zoom-2x&lt;br /&gt;
debug-toggle-atlas-gui&lt;br /&gt;
debug-toggle-basic&lt;br /&gt;
debug-toggle-debug-settings&lt;br /&gt;
decrease-ui-scale&lt;br /&gt;
disconnect-train&lt;br /&gt;
drag-map&lt;br /&gt;
drop-cursor&lt;br /&gt;
editor-clone-item&lt;br /&gt;
editor-delete-item&lt;br /&gt;
editor-next-variation&lt;br /&gt;
editor-previous-variation&lt;br /&gt;
editor-remove-scripting-object&lt;br /&gt;
editor-reset-speed&lt;br /&gt;
editor-set-clone-brush-destination&lt;br /&gt;
editor-set-clone-brush-source&lt;br /&gt;
editor-speed-down&lt;br /&gt;
editor-speed-up&lt;br /&gt;
editor-switch-to-surface&lt;br /&gt;
editor-tick-once&lt;br /&gt;
editor-toggle-pause&lt;br /&gt;
fast-entity-split&lt;br /&gt;
fast-entity-transfer&lt;br /&gt;
flip-blueprint-horizontal&lt;br /&gt;
flip-blueprint-vertical&lt;br /&gt;
focus-search&lt;br /&gt;
increase-ui-scale&lt;br /&gt;
inventory-split&lt;br /&gt;
inventory-transfer&lt;br /&gt;
larger-terrain-building-area&lt;br /&gt;
logistic-networks&lt;br /&gt;
mine&lt;br /&gt;
move-down&lt;br /&gt;
move-left&lt;br /&gt;
move-right&lt;br /&gt;
move-up&lt;br /&gt;
next-active-quick-bar&lt;br /&gt;
next-player-in-replay&lt;br /&gt;
next-weapon&lt;br /&gt;
open-character-gui&lt;br /&gt;
open-gui&lt;br /&gt;
open-item&lt;br /&gt;
open-prototype-explorer-gui&lt;br /&gt;
open-prototypes-gui&lt;br /&gt;
open-technology-gui&lt;br /&gt;
open-trains-gui&lt;br /&gt;
order-to-follow&lt;br /&gt;
paste&lt;br /&gt;
paste-entity-settings&lt;br /&gt;
pause-game&lt;br /&gt;
pick-item&lt;br /&gt;
pick-items&lt;br /&gt;
place-in-chat&lt;br /&gt;
place-ping&lt;br /&gt;
previous-active-quick-bar&lt;br /&gt;
previous-mod&lt;br /&gt;
previous-technology&lt;br /&gt;
production-statistics&lt;br /&gt;
quick-bar-button-1&lt;br /&gt;
quick-bar-button-1-secondary&lt;br /&gt;
quick-bar-button-10&lt;br /&gt;
quick-bar-button-10-secondary&lt;br /&gt;
quick-bar-button-2&lt;br /&gt;
quick-bar-button-2-secondary&lt;br /&gt;
quick-bar-button-3&lt;br /&gt;
quick-bar-button-3-secondary&lt;br /&gt;
quick-bar-button-4&lt;br /&gt;
quick-bar-button-4-secondary&lt;br /&gt;
quick-bar-button-5&lt;br /&gt;
quick-bar-button-5-secondary&lt;br /&gt;
quick-bar-button-6&lt;br /&gt;
quick-bar-button-6-secondary&lt;br /&gt;
quick-bar-button-7&lt;br /&gt;
quick-bar-button-7-secondary&lt;br /&gt;
quick-bar-button-8&lt;br /&gt;
quick-bar-button-8-secondary&lt;br /&gt;
quick-bar-button-9&lt;br /&gt;
quick-bar-button-9-secondary&lt;br /&gt;
remove-pole-cables&lt;br /&gt;
reset-ui-scale&lt;br /&gt;
reverse-rotate&lt;br /&gt;
reverse-select&lt;br /&gt;
rotate&lt;br /&gt;
rotate-active-quick-bars&lt;br /&gt;
select-for-blueprint&lt;br /&gt;
select-for-cancel-deconstruct&lt;br /&gt;
shoot-enemy&lt;br /&gt;
shoot-selected&lt;br /&gt;
show-info&lt;br /&gt;
smaller-terrain-building-area&lt;br /&gt;
smart-pipette&lt;br /&gt;
stack-split&lt;br /&gt;
stack-transfer&lt;br /&gt;
toggle-blueprint-library&lt;br /&gt;
toggle-console&lt;br /&gt;
toggle-driving&lt;br /&gt;
toggle-filter&lt;br /&gt;
toggle-gui-debug&lt;br /&gt;
toggle-gui-glows&lt;br /&gt;
toggle-gui-shadows&lt;br /&gt;
toggle-gui-style-view&lt;br /&gt;
toggle-map&lt;br /&gt;
toggle-menu&lt;br /&gt;
undo&lt;br /&gt;
zoom-in&lt;br /&gt;
zoom-out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to use the same key sequence as the clear-cursor hotkey:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;key_sequence = &amp;quot;&amp;quot;&lt;br /&gt;
linked_game_control = &amp;quot;clear-cursor&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CustomInputEvent occurs before the game control.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|consuming|[[Types/ConsumingType|ConsumingType]]|&amp;quot;none&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|enabled|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
If this custom input is enabled. Disabled custom inputs exist but are not used by the game. If disabled, no event is raised when the input is used.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|enabled_while_spectating|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|enabled_while_in_cutscene|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|include_selected_prototype|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
If true, the type and name of the currently selected prototype will be provided as &amp;quot;selected_prototype&amp;quot; in the raised [https://lua-api.factorio.com/latest/events.html#Custom%20Input%20Events lua event]. This also works in GUI&#039;s, not just the game world.[https://forums.factorio.com/96125]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This will also return an item in the cursor (or item of a ghost in cursor) such as copper-wire or rail-planner, if nothing is beneath the cursor.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|item_to_spawn|[[Types/string|string]]|optional=true}}&lt;br /&gt;
Name of a [[Prototype/Item]]. It will be created when this input is pressed and action is set to &amp;quot;spawn-item&amp;quot;. The item must have the [[Types/ItemPrototypeFlags#.22spawnable.22|&amp;quot;spawnable&amp;quot;]] flag set.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|action|[[Types/string|string]]|&amp;quot;lua&amp;quot;|optional=true}}&lt;br /&gt;
One of &amp;quot;lua&amp;quot;, &amp;quot;spawn-item&amp;quot;, &amp;quot;toggle-personal-roboport&amp;quot;, &amp;quot;toggle-personal-logistic-requests&amp;quot; and &amp;quot;toggle-equipment-movement-bonus&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A [https://lua-api.factorio.com/latest/events.html#Custom%20Input%20Events lua event] is only raised if the action is &amp;quot;lua&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Generator&amp;diff=189001</id>
		<title>Prototype/Generator</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Generator&amp;diff=189001"/>
		<updated>2022-04-16T07:18:33Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: explain effectivity better&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithOwner}}&lt;br /&gt;
An entity that produces power from fluids, for example a [[steam engine]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|generator}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}&lt;br /&gt;
Must be an electric energy source.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|fluid_box|[[Types/FluidBox|FluidBox]]}}&lt;br /&gt;
This must have a filter if &amp;lt;code&amp;gt;max_power_output&amp;lt;/code&amp;gt; is not defined.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|horizontal_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vertical_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|effectivity|[[Types/double|double]]}}&lt;br /&gt;
How much energy the generator produces compared to how much energy it consumes.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|fluid_usage_per_tick|[[Types/double|double]]}}&lt;br /&gt;
The number of fluid units the generator uses per tick.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|maximum_temperature|[[Types/double|double]]}}&lt;br /&gt;
Used to calculate the &amp;lt;code&amp;gt;max_power_output&amp;lt;/code&amp;gt; if it is not defined and &amp;lt;code&amp;gt;burns_fluid&amp;lt;/code&amp;gt; is false. Then, the max power output is &amp;lt;code&amp;gt;(min(fluid_max_temp,&amp;amp;nbsp;maximum_temperature)&amp;amp;nbsp;-&amp;amp;nbsp;fluid_default_temp) × fluid_usage_per_tick × fluid_heat_capacity × effectivity&amp;lt;/code&amp;gt;, the fluid is the filter specified on the &amp;lt;code&amp;gt;fluid_box&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The maximum temperature to which the efficiency can increase. At this temperature the generator will run at 100% efficiency. Note: Higher temperature fluid can still be consumed.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|smoke|[[Types/table|table]] of [[Types/SmokeSource|SmokeSource]]|optional=true}}&lt;br /&gt;
Array of 1 or more smoke sources.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|burns_fluid|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
If set to true, the available power output is based on the [[Prototype/Fluid#fuel_value|fuel_value]] of the fluid. Otherwise, the available power output will be based on the fluid temperature.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|scale_fluid_usage|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
Scales the generator&#039;s fluid usage to its maximum power output.&lt;br /&gt;
&lt;br /&gt;
Setting this to true prevents the generator from overconsuming fluid, for example when higher than &amp;lt;code&amp;gt;maximum_temperature&amp;lt;/code&amp;gt; fluid is fed to the generator.&amp;lt;br&amp;gt;&lt;br /&gt;
If scale_fluid_usage is false, the generator consumes the full &amp;lt;code&amp;gt;fluid_usage_per_tick&amp;lt;/code&amp;gt; and any of the extra energy in the fluid (in the form of higher temperature) is wasted. The [[steam engine]] exhibits this behavior when fed steam from [[heat exchanger]]s.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|destroy_non_fuel_fluid|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
This property is used when:&lt;br /&gt;
* &amp;lt;code&amp;gt;burns_fluid&amp;lt;/code&amp;gt; is true and the fluid has a [[Prototype/Fluid#fuel_value|fuel_value]] of 0&lt;br /&gt;
* or &amp;lt;code&amp;gt;burns_fluid&amp;lt;/code&amp;gt; is false and the fluid is at default temperature&lt;br /&gt;
In these cases, this property determines whether the fluid should be destroyed, meaning that the fluid is consumed at the rate of &amp;lt;code&amp;gt;fluid_usage_per_tick&amp;lt;/code&amp;gt;, without producing any power.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|min_perceived_performance|[[Types/double|double]]|0.25|optional=true}}&lt;br /&gt;
Animation runs at least this fast. This corresponds to the sound.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|performance_to_sound_speedup|[[Types/double|double]]|0.5|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|max_power_output|[[Types/Energy|Energy]]|optional=true}}&lt;br /&gt;
The power production of the generator is capped to this value. This is also the value that is shown as the maximum power output in the tooltip of the generator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fluid_box&amp;lt;/code&amp;gt; must have a filter if this is not defined.&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/TransportBeltConnectable&amp;diff=188732</id>
		<title>Prototype/TransportBeltConnectable</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/TransportBeltConnectable&amp;diff=188732"/>
		<updated>2022-03-18T19:11:44Z</updated>

		<summary type="html">&lt;p&gt;Curiosity: missing word&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithOwner}}&lt;br /&gt;
Abstract class that anything that is a belt or can connect to belts uses.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|&#039;&#039;abstract&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
* [[Prototype/LinkedBelt]] &#039;&#039;&#039;linked-belt&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Loader1x1]] &#039;&#039;&#039;loader-1x1&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Loader1x2]] &#039;&#039;&#039;loader&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Splitter]] &#039;&#039;&#039;splitter&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/TransportBelt]] &#039;&#039;&#039;transport-belt&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/UndergroundBelt]] &#039;&#039;&#039;underground-belt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|speed|[[Types/double|double]]}}&lt;br /&gt;
The speed of the belt (since 0.17): &amp;lt;code&amp;gt;speed × 480 = x Items/second&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The raw value is expressed as the number of tiles traveled by each item on the belt per tick, relative to the belt&#039;s maximum density - e.g. &amp;lt;code&amp;gt;x items/second ÷ (4 items/lane × 2 lanes/belt × 60 ticks/second) = &amp;lt;speed&amp;gt; belts/tick&amp;lt;/code&amp;gt; where a &amp;quot;belt&amp;quot; is the size of one tile. See [[Transport_belts/Physics]] for more details.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|animation_speed_coefficient|[[Types/double|double]]|1|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|belt_animation_set|[[Types/table|table]]|optional=true}}&lt;br /&gt;
Either this, or all of the properties below this one have to be present.&lt;br /&gt;
&lt;br /&gt;
Table with the following properties:&lt;br /&gt;
&lt;br /&gt;
* animation_set - [[Types/RotatedAnimation|RotatedAnimation]] - Mandatory.&lt;br /&gt;
* east_index - [[Types/uint8|uint8]] - Optional. - Default: 1&lt;br /&gt;
* west_index - [[Types/uint8|uint8]] - Optional. - Default: 2&lt;br /&gt;
* north_index - [[Types/uint8|uint8]] - Optional. - Default: 3&lt;br /&gt;
* south_index - [[Types/uint8|uint8]] - Optional. - Default: 4&lt;br /&gt;
* starting_south_index - [[Types/uint8|uint8]] - Optional. - Default: 13&lt;br /&gt;
* ending_south_index - [[Types/uint8|uint8]] - Optional. - Default: 14&lt;br /&gt;
* starting_west_index - [[Types/uint8|uint8]] - Optional. - Default: 15&lt;br /&gt;
* ending_west_index - [[Types/uint8|uint8]] - Optional. - Default: 16&lt;br /&gt;
* starting_north_index - [[Types/uint8|uint8]] - Optional. - Default: 17&lt;br /&gt;
* ending_north_index - [[Types/uint8|uint8]] - Optional. - Default: 18&lt;br /&gt;
* starting_east_index - [[Types/uint8|uint8]] - Optional. - Default: 19&lt;br /&gt;
* ending_east_index - [[Types/uint8|uint8]] - Optional. - Default: 20&lt;br /&gt;
* ending_patch - [[Types/Sprite4Way|Sprite4Way]] - Optional.&lt;br /&gt;
* ends_with_stopper - [[Types/bool|bool]] - Optional. - Default: false&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|belt_horizontal|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|belt_vertical|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ending_top|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ending_bottom|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ending_side|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|starting_top|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|starting_bottom|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|starting_side|[[Types/Animation|Animation]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ending_patch|[[Types/Sprite4Way|Sprite4Way]]|optional=true}}&lt;br /&gt;
Always optional. Only read if &amp;lt;code&amp;gt;belt_animation_set&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|ends_with_stopper|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory values ==&lt;br /&gt;
Transport belt connectables have additional requirements for the properties inherited from [[Prototype/Entity]]:&lt;br /&gt;
* Transport belt connectable entities must collide with [[Types/CollisionMask#Layers|&amp;quot;transport-belt-layer&amp;quot;]].&lt;br /&gt;
* Transport belt connectable entities must have [[Types/CollisionMask#Collision_options|collision mask]] that collides with itself.&lt;br /&gt;
* Transport belt connectable entities cannot have collision mask that collides only with tiles (must collide with entities in some way).&lt;br /&gt;
* Transport belt connectable entities must have collision box of an appropriate minimal size, they should occupy more than half of every tile the entity covers.&lt;br /&gt;
* Transport belt connectable entities cannot have the [[Types/EntityPrototypeFlags#.22placeable-off-grid.22|&amp;quot;placeable-off-grid&amp;quot;]] flag specified.&lt;/div&gt;</summary>
		<author><name>Curiosity</name></author>
	</entry>
</feed>