<?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=Asdff45</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=Asdff45"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Asdff45"/>
	<updated>2026-04-22T20:05:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Mod_portal_API&amp;diff=200169</id>
		<title>Mod portal API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Mod_portal_API&amp;diff=200169"/>
		<updated>2024-10-15T15:57:09Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: add score to response&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div align=&amp;quot;center&amp;quot; class=&amp;quot;stub&amp;quot;&amp;gt;&#039;&#039;&#039;Category:&#039;&#039;&#039; [[Factorio_HTTP_API_usage_guidelines#Internal|Internal API]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Mod Portal API is used to both browse and download all mods available on the [https://mods.factorio.com/ official Factorio mod portal]. Using the API does not require any kind of authentication or account information and can be viewed simply by following the URLs below in any web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://mods.factorio.com/api/mods&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More detailed information about a particular mod can be obtained by retrieving the following URL, where {name} is the mod&#039;s name field in the result object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://mods.factorio.com/api/mods/{name}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get even more information about a mod, you can use the following URL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://mods.factorio.com/api/mods/{name}/full&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== /api/mods ===&lt;br /&gt;
&lt;br /&gt;
GET Parameters (sent as query parameters):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Values !! Description&lt;br /&gt;
|-&lt;br /&gt;
| hide_deprecated || {boolean} || Only return non-deprecated mods. &lt;br /&gt;
|-&lt;br /&gt;
| page ||{an integer}||Page number you would like to show. Makes it so you can see a certain part of the list without getting detail on all&lt;br /&gt;
|-&lt;br /&gt;
| page_size ||{an integer or &#039;max&#039;}||The amount of results to show in your search&lt;br /&gt;
|-&lt;br /&gt;
| sort || {enum, one of name, created_at or updated_at} || Sort results by this property. Defaults to name when not defined. Ignored for &amp;lt;code&amp;gt;page_size=max&amp;lt;/code&amp;gt; queries.&lt;br /&gt;
|-&lt;br /&gt;
| sort_order || {enum, one of asc or desc} || Sort results ascending or descending. Defaults to descending when not defined. Ignored for &amp;lt;code&amp;gt;page_size=max&amp;lt;/code&amp;gt; queries.&lt;br /&gt;
|-&lt;br /&gt;
| namelist || {array of strings} || Return only mods that match the given names. Either comma-separated names or supply the namelist parameter more than once. Response will include &amp;lt;code&amp;gt;releases&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;latest_release&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| version || {enum, one of 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 1.0 or 1.1} || Only return non-deprecated mods compatible with this Factorio version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Returns [[#Mod List Response]]&lt;br /&gt;
&lt;br /&gt;
=== /api/mods/{mod_name} ===&lt;br /&gt;
&lt;br /&gt;
Return short information of a specific mod.&lt;br /&gt;
&lt;br /&gt;
See [[#Result Entry]], &amp;quot;Short&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
=== /api/mods/{mod_name}/full ===&lt;br /&gt;
&lt;br /&gt;
Returns more information of a mod.&lt;br /&gt;
&lt;br /&gt;
See [[#Result Entry]], &amp;quot;Full&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
== JSON Object Types ==&lt;br /&gt;
&lt;br /&gt;
=== Mod List Response ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pagination || [[#Pagination|Pagination]] || See [[#Pagination]]&lt;br /&gt;
|-&lt;br /&gt;
| results || [[#Result Entry|Result]][] || A list of mods, matching any filters you specified.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pagination ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| count || Integer || Total number of mods that match your specified filters.&lt;br /&gt;
|-&lt;br /&gt;
| links || [[#Pagination_Links|Links]] || Utility links to mod portal api requests, preserving all filters and search queries.&lt;br /&gt;
|-&lt;br /&gt;
| page || Integer || The current page number.&lt;br /&gt;
|-&lt;br /&gt;
| page_count || Integer || The total number of pages returned.&lt;br /&gt;
|-&lt;br /&gt;
| page_size || Integer || The number of results per page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pagination Links ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| first || String(URL) || URL to the first page of the results, or null if you&#039;re already on the first page.&lt;br /&gt;
|- &lt;br /&gt;
| prev || String(URL) || URL to the previous page of the results, or null if you&#039;re already on the first page.&lt;br /&gt;
|-&lt;br /&gt;
| next || String(URL) || URL to the next page of the results, or null if you&#039;re already on the last page.&lt;br /&gt;
|-&lt;br /&gt;
| last || String(URL) || URL to the last page of the results, or null if you&#039;re already on the last page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Result Entry ===&lt;br /&gt;
&lt;br /&gt;
Fields returned by the api/mods endpoint are marked with a check (✓) in the &amp;quot;api/mods endpoint&amp;quot; column, those returned by the api/mods/{name} endpoint are marked with a check in the &amp;quot;Short&amp;quot; column and those returned by the api/mods/{name}/full endpoint are marked in the &amp;quot;Full&amp;quot; column. Fields may be absent if there is no data.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !!+ style=&#039;writing-mode:vertical-lr;vertical-align:bottom;font-size:90%&#039; | api/mods endpoint !!+ style=&#039;writing-mode:vertical-lr;vertical-align:bottom;font-size:90%&#039; | Short !!+ style=&#039;writing-mode:vertical-lr;vertical-align:bottom;font-size:90%&#039; | Full !! Description&lt;br /&gt;
|-&lt;br /&gt;
| latest_release || [[#Releases|Release]]? || ✓ || ||&lt;br /&gt;
| The latest version of the mod available for download. Absent when the &amp;lt;code&amp;gt;namelist&amp;lt;/code&amp;gt; [[#/api/mods|parameter]] is used.&lt;br /&gt;
|-&lt;br /&gt;
| downloads_count || Integer || ✓ || ✓ || ✓&lt;br /&gt;
| Number of downloads.&lt;br /&gt;
|-&lt;br /&gt;
| name || String || ✓ || ✓ || ✓&lt;br /&gt;
| The mod&#039;s machine-readable ID string.&lt;br /&gt;
|-&lt;br /&gt;
| owner || String || ✓ || ✓ || ✓&lt;br /&gt;
| The Factorio username of the mod&#039;s author.&lt;br /&gt;
|-&lt;br /&gt;
| releases || [[#Releases|Release]][] || ✓* || ✓ || ✓&lt;br /&gt;
| A list of different versions of the mod available for download. See [[#Releases]]. *Only when using &amp;lt;code&amp;gt;namelist&amp;lt;/code&amp;gt; [[#/api/mods|parameter]].&lt;br /&gt;
|-&lt;br /&gt;
| summary || String || ✓ || ✓ || ✓&lt;br /&gt;
| A shorter mod description.&lt;br /&gt;
|-&lt;br /&gt;
| title || String || ✓ || ✓ || ✓&lt;br /&gt;
| The mod&#039;s human-readable name.&lt;br /&gt;
|-&lt;br /&gt;
| category || [[Mod_details_API#Category|Category]]? || ✓ || ✓ || ✓&lt;br /&gt;
| A single category describing the mod. See [[Mod_details_API#Category]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| score || Integer || ✓ || ✓* || ✓*&lt;br /&gt;
| The score of the mod. *Only when not 0.&lt;br /&gt;
|-&lt;br /&gt;
| thumbnail || String(relative URL) || || ✓ || ✓&lt;br /&gt;
| The relative path to the thumbnail of the mod. For mods that have no thumbnail it may be absent or default to &amp;lt;code&amp;gt;&amp;quot;/assets/.thumb.png&amp;quot;&amp;lt;/code&amp;gt;. Prepend &amp;quot;assets-mod.factorio.com&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| changelog || String || || || ✓&lt;br /&gt;
| A string describing the recent changes to a mod.&lt;br /&gt;
|- &lt;br /&gt;
| created_at || String(ISO 8601) || || || ✓&lt;br /&gt;
| ISO 8601 for when the mod was created.&lt;br /&gt;
|-&lt;br /&gt;
| description || String || || || ✓&lt;br /&gt;
| A longer description of the mod, in text only format.&lt;br /&gt;
|-&lt;br /&gt;
| source_url || String || || || ✓&lt;br /&gt;
| A URL to the mod&#039;s source code.&lt;br /&gt;
|-&lt;br /&gt;
| github_path || String || || || ✓&lt;br /&gt;
| Deprecated: Use &amp;lt;code&amp;gt;source_url&amp;lt;/code&amp;gt; instead. A link to the mod&#039;s github project page, just prepend &amp;quot;github.com/&amp;quot;. Can be blank (&amp;quot;&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| homepage || String || || || ✓&lt;br /&gt;
| Usually a URL to the mod&#039;s main project page, but can be any string.&lt;br /&gt;
|-&lt;br /&gt;
| tags || [[#Tags|Tag]][] || || || ✓&lt;br /&gt;
| A list of tag names that categorize the mod. See [[#Tags]].&lt;br /&gt;
|-&lt;br /&gt;
| license || [[#License]][] || || || ✓&lt;br /&gt;
| The license that applies to the mod. See [[#License]].&lt;br /&gt;
|-&lt;br /&gt;
| deprecated || Boolean? || || || ✓&lt;br /&gt;
| &amp;lt;ref&amp;gt;&amp;lt;/ref&amp;gt;True if the mod is marked as deprecated by its owner. Absent when false.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Releases ===&lt;br /&gt;
&lt;br /&gt;
Only difference here between the api/mods/{name} endpoint and the api/mods/{name}/full endpoint is that the full one includes an array of dependencies in the info_json object.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| download_url || String &lt;br /&gt;
| Path to download for a mod. starts with &amp;quot;/download&amp;quot; and does not include a full url. See [[#Downloading Mods]]&lt;br /&gt;
|-&lt;br /&gt;
| file_name || String &lt;br /&gt;
| The file name of the release. Always seems to follow the pattern &amp;quot;{name}_{version}.zip&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| info_json || Object &lt;br /&gt;
| A copy of the mod&#039;s info.json file, only contains factorio_version in short version, also contains an array of dependencies in full version&lt;br /&gt;
|- &lt;br /&gt;
| released_at || String(ISO 8601) &lt;br /&gt;
| ISO 8601 for when the mod was released.&lt;br /&gt;
|-&lt;br /&gt;
| version || String &lt;br /&gt;
| The version string of this mod release. Used to determine dependencies. &lt;br /&gt;
|-&lt;br /&gt;
| sha1 || String &lt;br /&gt;
| The sha1 key for the file&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
&lt;br /&gt;
Currently, there are only a fixed number of tags available, these include:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! id !! type !! name !! title !! description&lt;br /&gt;
|-&lt;br /&gt;
| 12 || t || transportation || Transportation || Transportation of the player, be it vehicles or teleporters.&lt;br /&gt;
|-&lt;br /&gt;
| 13 || t || logistics || Logistics || Augmented or new ways of transporting materials - belts, inserters, pipes!&lt;br /&gt;
|-&lt;br /&gt;
| ?? || t || combat || Combat || New ways to deal with enemies, be it attack or defense.&lt;br /&gt;
|-&lt;br /&gt;
| 17 || t || enemies || Enemies || Changes to enemies or entirely new enemies to deal with.&lt;br /&gt;
|-&lt;br /&gt;
| 18 || t || armor || Armor || Armors or armor equipment.&lt;br /&gt;
|-&lt;br /&gt;
| ?? || t || environment || Environment || Map generation and terrain modification.&lt;br /&gt;
|-&lt;br /&gt;
| 20 || t || logistic-network || Logistics Network || Related to roboports and logistic robots&lt;br /&gt;
|-&lt;br /&gt;
| ?? || t || circuit-network || Circuit network || Entities which interact with the circuit network.&lt;br /&gt;
|- &lt;br /&gt;
| 21 || t || storage || Storage || More than just chests.&lt;br /&gt;
|-&lt;br /&gt;
| 22 || t || power || Power Production || Changes to power production and distribution.&lt;br /&gt;
|-&lt;br /&gt;
| 23 || t || manufacturing || Manufacture || Furnaces, assembling machines, production chains&lt;br /&gt;
|-&lt;br /&gt;
| 24 || t || blueprints || Blueprints || Change blueprint behavior.&lt;br /&gt;
|-&lt;br /&gt;
| 25 || t || cheats || Cheats || Play it your way.&lt;br /&gt;
|- &lt;br /&gt;
| 27 || t || mining || Mining || New ores and resources as well as machines.&lt;br /&gt;
|-&lt;br /&gt;
| ?? || t || fluids || Fluids || Things related to oil and other fluids.&lt;br /&gt;
|-&lt;br /&gt;
| 29 || t || trains || Trains || Trains are great, but what if they could do even more?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== License ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| description || String || A short description of the license.&lt;br /&gt;
|-&lt;br /&gt;
| id || String || The unique id of the license.&lt;br /&gt;
|-&lt;br /&gt;
| name || String || The internal name of the license.&lt;br /&gt;
|-&lt;br /&gt;
| title || String || The human-readable title of the license.&lt;br /&gt;
|-&lt;br /&gt;
| url || String || Usually a URL to the full license text, but can be any string.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| message || String ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downloading Mods ==&lt;br /&gt;
&lt;br /&gt;
You can get the full url by appending the download_url to mods.factorio.com, but if you&#039;re not authenticated, you will be redirected to mods.factorio.com/login. Logging in to that would give you access to the file. Fortunately, there&#039;s a better way to do this. Simply adding username and token parameters to the download url will prevent the redirecting and let you download the file immediately. The token can be acquired from a json file called &amp;quot;player-data.json&amp;quot;, located in the User Data directory (see [[Application_directory#User_data_directory]]). You can also get the token by using the [[Web_authentication_API | Web Authentication API]].&lt;br /&gt;
&lt;br /&gt;
Example usage:&lt;br /&gt;
https://mods.factorio.com/{download_url}?username={username}&amp;amp;token={token}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Web_authentication_API&amp;diff=199955</id>
		<title>Web authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Web_authentication_API&amp;diff=199955"/>
		<updated>2024-10-03T19:50:03Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Update possible return codes and values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div align=&amp;quot;center&amp;quot; class=&amp;quot;stub&amp;quot;&amp;gt;&#039;&#039;&#039;Category:&#039;&#039;&#039; [[Factorio_HTTP_API_usage_guidelines#Internal|Internal API]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Factorio&#039;s Web Authentication API endpoint gives you a token in exchange for your username and password, which is used by several other Factorio web API endpoints. The authentication endpoint is located at:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://auth.factorio.com/api-login&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Authentication requires sending an HTTP POST request (Content-Type: &amp;lt;code&amp;gt;application/x-www-form-urlencoded&amp;lt;/code&amp;gt;) with these parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| username&lt;br /&gt;
| Required.&lt;br /&gt;
| Account username or e-mail.&lt;br /&gt;
|-&lt;br /&gt;
| password&lt;br /&gt;
| Required.&lt;br /&gt;
| Account password.&lt;br /&gt;
|- &lt;br /&gt;
| api_version&lt;br /&gt;
| Default: 1&lt;br /&gt;
| Currently 6.&lt;br /&gt;
|-&lt;br /&gt;
| require_game_ownership&lt;br /&gt;
| Not required.&lt;br /&gt;
| If set to &#039;true&#039;, will fail authentication if the user account hasn&#039;t actually purchased Factorio.&lt;br /&gt;
|-&lt;br /&gt;
| email_authentication_code&lt;br /&gt;
| Not required.&lt;br /&gt;
| If a previous login failed with &amp;lt;code&amp;gt;email-authentication-required&amp;lt;/code&amp;gt;, email authentication can be completed by including the code sent to the user via mail.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This endpoint always returns JSON encoded data. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ HTTP Status codes&lt;br /&gt;
|-&lt;br /&gt;
! API-Version&lt;br /&gt;
! Success&lt;br /&gt;
! Error&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;= 3&lt;br /&gt;
| 200&lt;br /&gt;
| 401&lt;br /&gt;
|-&lt;br /&gt;
! &amp;gt;= 4&lt;br /&gt;
| 200&lt;br /&gt;
| 200&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Success json&lt;br /&gt;
|-&lt;br /&gt;
! API-Version&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;= 1&lt;br /&gt;
| []&lt;br /&gt;
| Array of hexadecimal encoded auth tokens&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt;= 2&lt;br /&gt;
| token&lt;br /&gt;
| Auth token is a hexadecimal encoded byte string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt;= 2&lt;br /&gt;
| username&lt;br /&gt;
| The username of the logged in user. &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Error json&lt;br /&gt;
|-&lt;br /&gt;
! API-Version&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
|-&lt;br /&gt;
| all&lt;br /&gt;
| data&lt;br /&gt;
| Always empty object &amp;quot;{}&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| all&lt;br /&gt;
| error&lt;br /&gt;
| Error codes like &amp;lt;code&amp;gt;login-failed&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;email-authentication-required&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| all&lt;br /&gt;
| message&lt;br /&gt;
| A more detailed error message that can be shown to the user &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;= 3&lt;br /&gt;
| status&lt;br /&gt;
| Same value as the Status Code&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
Clients causing a lot of errors like &amp;lt;code&amp;gt;login-failed&amp;lt;/code&amp;gt; will be rate limited.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=187615</id>
		<title>Prototype/Entity</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Entity&amp;diff=187615"/>
		<updated>2021-11-25T13:34:58Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: grammar mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|PrototypeBase}}&lt;br /&gt;
Abstract base of all entities in the game.&lt;br /&gt;
Entity is basically everything that can be on the map (except tiles).&lt;br /&gt;
For in game script access to entity, take a look at [http://lua-api.factorio.com/latest/LuaEntity.html LuaEntity]&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|&#039;&#039;abstract&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;factorio-list&amp;quot;&amp;gt;&lt;br /&gt;
* [[Prototype/Arrow]] &#039;&#039;&#039;arrow&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/ArtilleryFlare]] &#039;&#039;&#039;artillery-flare&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/ArtilleryProjectile]] &#039;&#039;&#039;artillery-projectile&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Beam]] &#039;&#039;&#039;beam&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/CharacterCorpse]] &#039;&#039;&#039;character-corpse&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Cliff]] &#039;&#039;&#039;cliff&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Corpse]] &#039;&#039;&#039;corpse&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/RailRemnants]] &#039;&#039;&#039;rail-remnants&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/DeconstructibleTileProxy]] &#039;&#039;&#039;deconstructible-tile-proxy&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/EntityGhost]] &#039;&#039;&#039;entity-ghost&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/EntityParticle]] &#039;&#039;&#039;particle&#039;&#039;&#039; (for migration, cannot be used)&lt;br /&gt;
** [[Prototype/LeafParticle]] &#039;&#039;&#039;leaf-particle&#039;&#039;&#039; (for migration, cannot be used)&lt;br /&gt;
* [[Prototype/EntityWithHealth]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
** [[Prototype/Accumulator]] &#039;&#039;&#039;accumulator&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/ArtilleryTurret]] &#039;&#039;&#039;artillery-turret&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Beacon]] &#039;&#039;&#039;beacon&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Boiler]] &#039;&#039;&#039;boiler&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/BurnerGenerator]] &#039;&#039;&#039;burner-generator&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Character]] &#039;&#039;&#039;character&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Combinator]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
*** [[Prototype/ArithmeticCombinator]] &#039;&#039;&#039;arithmetic-combinator&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/DeciderCombinator]] &#039;&#039;&#039;decider-combinator&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/ConstantCombinator]] &#039;&#039;&#039;constant-combinator&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Container]] &#039;&#039;&#039;container&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/LogisticContainer]] &#039;&#039;&#039;logistic-container&#039;&#039;&#039;&lt;br /&gt;
**** [[Prototype/InfinityContainer]] &#039;&#039;&#039;infinity-container&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/CraftingMachine]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
*** [[Prototype/AssemblingMachine]] &#039;&#039;&#039;assembling-machine&#039;&#039;&#039;&lt;br /&gt;
**** [[Prototype/RocketSilo]] &#039;&#039;&#039;rocket-silo&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/Furnace]] &#039;&#039;&#039;furnace&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/ElectricEnergyInterface]] &#039;&#039;&#039;electric-energy-interface&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/ElectricPole]] &#039;&#039;&#039;electric-pole&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/EnemySpawner]] &#039;&#039;&#039;unit-spawner&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Fish]] &#039;&#039;&#039;fish&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/FlyingRobot]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
*** [[Prototype/CombatRobot]] &#039;&#039;&#039;combat-robot&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/RobotWithLogisticInterface]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
**** [[Prototype/ConstructionRobot]] &#039;&#039;&#039;construction-robot&#039;&#039;&#039;&lt;br /&gt;
**** [[Prototype/LogisticRobot]] &#039;&#039;&#039;logistic-robot&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Gate]] &#039;&#039;&#039;gate&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Generator]] &#039;&#039;&#039;generator&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/HeatInterface]] &#039;&#039;&#039;heat-interface&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/HeatPipe]] &#039;&#039;&#039;heat-pipe&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Inserter]] &#039;&#039;&#039;inserter&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Lab]] &#039;&#039;&#039;lab&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Lamp]] &#039;&#039;&#039;lamp&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/LandMine]] &#039;&#039;&#039;land-mine&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/LinkedContainer]] &#039;&#039;&#039;linked-container&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Market]] &#039;&#039;&#039;market&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/MiningDrill]] &#039;&#039;&#039;mining-drill&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/OffshorePump]] &#039;&#039;&#039;offshore-pump&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Pipe]] &#039;&#039;&#039;pipe&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/InfinityPipe]] &#039;&#039;&#039;infinity-pipe&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/PipeToGround]] &#039;&#039;&#039;pipe-to-ground&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/PlayerPort]] &#039;&#039;&#039;player-port&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/PowerSwitch]] &#039;&#039;&#039;power-switch&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/ProgrammableSpeaker]] &#039;&#039;&#039;programmable-speaker&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Pump]] &#039;&#039;&#039;pump&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Radar]] &#039;&#039;&#039;radar&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Rail]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
*** [[Prototype/CurvedRail]] &#039;&#039;&#039;curved-rail&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/StraightRail]] &#039;&#039;&#039;straight-rail&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/RailSignalBase]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
*** [[Prototype/RailChainSignal]] &#039;&#039;&#039;rail-chain-signal&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/RailSignal]] &#039;&#039;&#039;rail-signal&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Reactor]] &#039;&#039;&#039;reactor&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Roboport]] &#039;&#039;&#039;roboport&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/SimpleEntity]] &#039;&#039;&#039;simple-entity&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/SimpleEntityWithOwner]] &#039;&#039;&#039;simple-entity-with-owner&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/SimpleEntityWithForce]] &#039;&#039;&#039;simple-entity-with-force&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/SolarPanel]] &#039;&#039;&#039;solar-panel&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/SpiderLeg]] &#039;&#039;&#039;spider-leg&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/StorageTank]] &#039;&#039;&#039;storage-tank&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/TrainStop]] &#039;&#039;&#039;train-stop&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/TransportBeltConnectable]] &amp;lt;abstract&amp;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;
** [[Prototype/Tree]] &#039;&#039;&#039;tree&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Turret]] &#039;&#039;&#039;turret&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/AmmoTurret]] &#039;&#039;&#039;ammo-turret&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/ElectricTurret]] &#039;&#039;&#039;electric-turret&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/FluidTurret]] &#039;&#039;&#039;fluid-turret&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Unit]] &#039;&#039;&#039;unit&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Vehicle]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
*** [[Prototype/Car]] &#039;&#039;&#039;car&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/RollingStock]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
**** [[Prototype/ArtilleryWagon]] &#039;&#039;&#039;artillery-wagon&#039;&#039;&#039;&lt;br /&gt;
**** [[Prototype/CargoWagon]] &#039;&#039;&#039;cargo-wagon&#039;&#039;&#039;&lt;br /&gt;
**** [[Prototype/FluidWagon]] &#039;&#039;&#039;fluid-wagon&#039;&#039;&#039;&lt;br /&gt;
**** [[Prototype/Locomotive]] &#039;&#039;&#039;locomotive&#039;&#039;&#039;&lt;br /&gt;
*** [[Prototype/SpiderVehicle]] &#039;&#039;&#039;spider-vehicle&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/Wall]] &#039;&#039;&#039;wall&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Explosion]] &#039;&#039;&#039;explosion&#039;&#039;&#039;&lt;br /&gt;
** [[Prototype/FlameThrowerExplosion]] &#039;&#039;&#039;flame-thrower-explosion&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/FireFlame]] &#039;&#039;&#039;fire&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/FluidStream]] &#039;&#039;&#039;stream&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/FlyingText]] &#039;&#039;&#039;flying-text&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/HighlightBoxEntity]] &#039;&#039;&#039;highlight-box&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/ItemEntity]] &#039;&#039;&#039;item-entity&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/ItemRequestProxy]] &#039;&#039;&#039;item-request-proxy&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/ParticleSource]] &#039;&#039;&#039;particle-source&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Projectile]] &#039;&#039;&#039;projectile&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/ResourceEntity]] &#039;&#039;&#039;resource&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/RocketSiloRocket]] &#039;&#039;&#039;rocket-silo-rocket&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/RocketSiloRocketShadow]] &#039;&#039;&#039;rocket-silo-rocket-shadow&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Smoke]] &amp;lt;abstract&amp;gt;&lt;br /&gt;
** [[Prototype/SimpleSmoke]] &#039;&#039;&#039;smoke&#039;&#039;&#039; (for migration, cannot be used)&lt;br /&gt;
** [[Prototype/SmokeWithTrigger]] &#039;&#039;&#039;smoke-with-trigger&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/SpeechBubble]] &#039;&#039;&#039;speech-bubble&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/Sticker]] &#039;&#039;&#039;sticker&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/TileGhost]] &#039;&#039;&#039;tile-ghost&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
Inherits all properties from [[PrototypeBase]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|icons, icon,  icon_size (IconSpecification)|[[Types/IconSpecification|IconSpecification]]}}&lt;br /&gt;
An icon is mandatory for entities that have at least one of these flags active: placeable-neutral, placeable-player, placeable-enemy.&lt;br /&gt;
&lt;br /&gt;
The icon will be used in the editor building selection and the bonus gui.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== order ===&lt;br /&gt;
:&#039;&#039;See [[PrototypeBase#order]]&#039;&#039;&lt;br /&gt;
Inherited from [[PrototypeBase]].&lt;br /&gt;
&lt;br /&gt;
The order string is taken from the items in &amp;lt;code&amp;gt;placeable_by&amp;lt;/code&amp;gt; if they exist, or from an item that has its [[Prototype/Item#place_result|place_result]] set to this entity if it exists.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|collision_box|[[Types/BoundingBox|BoundingBox]]|Empty=&amp;lt;nowiki&amp;gt;{{0, 0}, {0, 0}} means no collisions.&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
Specification of the entity collision boundaries.&lt;br /&gt;
&lt;br /&gt;
Empty collision box is used for smoke, projectiles, particles, explosions etc.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;collision_box = {{-0.4, -0.4}, {0.4, 0.4}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The {0,0} coordinate in the collision box will match the entity position.&lt;br /&gt;
&lt;br /&gt;
It should be near the center of the collision box, to keep correct entity drawing order. It must include the {0,0} coordinate.&lt;br /&gt;
&lt;br /&gt;
Note, that for buildings, it is customary to leave 0.1 wide border between the edge of the tile and the edge of the building, this lets the player move between the building and electric poles/inserters etc.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|collision_mask|[[Types/CollisionMask|CollisionMask]]|&amp;lt;nowiki&amp;gt;{&amp;quot;item-layer&amp;quot;, &amp;quot;object-layer&amp;quot;, &amp;quot;player-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
Two entities can collide only if they share a layer from the collision mask.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
NOTE: &#039;&#039;&#039;Some entity types have their own default&#039;&#039;&#039; that differs from the above default. They are listed here:&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Prototype/Arrow]] - no masks&lt;br /&gt;
* [[Prototype/ArtilleryFlare]] - no masks&lt;br /&gt;
* [[Prototype/ArtilleryProjectile]] - no masks&lt;br /&gt;
* [[Prototype/Beam]] - no masks&lt;br /&gt;
* [[Prototype/Car]] - &amp;lt;code&amp;gt;{&amp;quot;player-layer&amp;quot;, &amp;quot;train-layer&amp;quot;, &amp;quot;consider-tile-transitions&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Character]] - &amp;lt;code&amp;gt;{&amp;quot;player-layer&amp;quot;, &amp;quot;train-layer&amp;quot;, &amp;quot;consider-tile-transitions&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/CharacterCorpse]] - no masks&lt;br /&gt;
* [[Prototype/Cliff]] - &amp;lt;code&amp;gt;{ &amp;quot;item-layer&amp;quot;, &amp;quot;object-layer&amp;quot;, &amp;quot;player-layer&amp;quot;, &amp;quot;water-tile&amp;quot;, &amp;quot;not-colliding-with-itself&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Corpse]] - no masks&lt;br /&gt;
* [[Prototype/DeconstructibleTileProxy]] - &amp;lt;code&amp;gt;{&amp;quot;ground-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/EntityGhost]] - &amp;lt;code&amp;gt;{&amp;quot;ghost-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/EntityParticle]] - no masks&lt;br /&gt;
* [[Prototype/Explosion]] - no masks&lt;br /&gt;
* [[Prototype/FireFlame]] - no masks&lt;br /&gt;
* [[Prototype/Fish]] - &amp;lt;code&amp;gt;{&amp;quot;ground-tile&amp;quot;, &amp;quot;colliding-with-tiles-only&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/FluidStream]] - no masks&lt;br /&gt;
* [[Prototype/FlyingRobot]] - no masks&lt;br /&gt;
* [[Prototype/FlyingText]] - no masks&lt;br /&gt;
* [[Prototype/Gate]] - &amp;lt;code&amp;gt;{&amp;quot;item-layer&amp;quot;, &amp;quot;object-layer&amp;quot;, &amp;quot;player-layer&amp;quot;, &amp;quot;water-tile&amp;quot;, &amp;quot;train-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/HeatPipe]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;floor-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/HighlightBoxEntity]] - no masks&lt;br /&gt;
* [[Prototype/ItemEntity]] - &amp;lt;code&amp;gt;{&amp;quot;item-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/ItemRequestProxy]] - no masks&lt;br /&gt;
* [[Prototype/LandMine]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/LinkedBelt]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;item-layer&amp;quot;, &amp;quot;transport-belt-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Loader1x1]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;item-layer&amp;quot;, &amp;quot;transport-belt-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Loader1x2]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;item-layer&amp;quot;, &amp;quot;transport-belt-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/ParticleSource]] - no masks&lt;br /&gt;
* [[Prototype/PlayerPort]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;floor-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Projectile]] - no masks&lt;br /&gt;
* [[Prototype/Rail]] - &amp;lt;code&amp;gt;{&amp;quot;item-layer&amp;quot;, &amp;quot;object-layer&amp;quot;,  &amp;quot;rail-layer&amp;quot;, &amp;quot;floor-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/RailSignalBase]] - &amp;lt;code&amp;gt;{&amp;quot;floor-layer&amp;quot;, &amp;quot;rail-layer&amp;quot;, &amp;quot;item-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/ResourceEntity]] - &amp;lt;code&amp;gt;{&amp;quot;resource-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/RollingStock]] - &amp;lt;code&amp;gt;{&amp;quot;train-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Smoke]] - no masks&lt;br /&gt;
* [[Prototype/SpeechBubble]] - no masks&lt;br /&gt;
* [[Prototype/SpiderLeg]] - &amp;lt;code&amp;gt;{&amp;quot;player-layer&amp;quot;, &amp;quot;rail-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Splitter]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;item-layer&amp;quot;, &amp;quot;transport-belt-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Sticker]] - no masks&lt;br /&gt;
* [[Prototype/TileGhost]] - &amp;lt;code&amp;gt;{&amp;quot;ghost-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/TransportBelt]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;floor-layer&amp;quot;, &amp;quot;transport-belt-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/UndergroundBelt]] - &amp;lt;code&amp;gt;{&amp;quot;object-layer&amp;quot;, &amp;quot;item-layer&amp;quot;, &amp;quot;transport-belt-layer&amp;quot;, &amp;quot;water-tile&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Unit]] - &amp;lt;code&amp;gt;{&amp;quot;player-layer&amp;quot;, &amp;quot;train-layer&amp;quot;, &amp;quot;not-colliding-with-itself&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Prototype/Vehicle]] - &amp;lt;code&amp;gt;{&amp;quot;player-layer&amp;quot;, &amp;quot;train-layer&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|map_generator_bounding_box|[[Types/BoundingBox|BoundingBox]]|The value of collision box.|optional=true}}&lt;br /&gt;
Used instead of the collision box during map generation. Allows space entities differently during map generation, for example if the box is bigger, the entities will be placed farther apart.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_box|[[Types/BoundingBox|BoundingBox]]|&amp;lt;nowiki&amp;gt;Empty = {{0, 0}, {0, 0}}&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
Specification of the entity selection area.&lt;br /&gt;
When empty  the entity will have no selection area (and thus is not selectable).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;selection_box = {{-0.5, -0.5}, {0.5, 0.5}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The selection box is usually a little bit bigger than the collision box, for tilable entities (like buildings) it should match the tile size of the building.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|drawing_box|[[Types/BoundingBox|BoundingBox]]|&amp;lt;nowiki&amp;gt;Empty = {{0, 0}, {0, 0}} (selection_box is used instead)&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
Specification of space needed to see the whole entity. &lt;br /&gt;
&lt;br /&gt;
This is used to calculate the correct zoom and positioning in the entity info gui.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;drawing_box = {{-0.5, -0.5}, {0.5, 0.5}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|sticker_box|[[Types/BoundingBox|BoundingBox]]|The value of collision box.|optional=true}}&lt;br /&gt;
Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.&lt;br /&gt;
It is optional and the collision box is used when not specified.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;sticker_box = {{-0.5, -0.5}, {0.5, 0.5}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|hit_visualization_box|[[Types/BoundingBox|BoundingBox]]|&amp;lt;nowiki&amp;gt;Empty = {{0, 0}, {0, 0}}&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
Where beams should hit the entity. Useful if the bounding box only covers part of the entity (e.g. feet of the character) and beams only hitting there would look weird.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|trigger_target_mask|[[Types/TriggerTargetMask|TriggerTargetMask]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|flags|[[Types/EntityPrototypeFlags|EntityPrototypeFlags]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|minable|[[Types/MinableProperties|MinableProperties]]|not minable|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|subgroup|[[Types/string|string]]|optional=true}}&lt;br /&gt;
The name of the subgroup this entity should be sorted into in the map editor building selection.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|allow_copy_paste|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selectable_in_game|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_priority|[[Types/uint8|uint8]]|50|optional=true}}&lt;br /&gt;
The entity with the higher number is selectable before the entity with the lower number. When two entities have the same selection priority, the one with the highest [[Types/CollisionMask|collision mask]] (as determined by the order on that page) is selected.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|remove_decoratives|[[Types/string|string]]|&amp;quot;automatic&amp;quot;|optional=true}}&lt;br /&gt;
Either &amp;quot;automatic&amp;quot;, &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. Whether this entity should remove decoratives that collide with it when this entity is built. When set to &amp;quot;automatic&amp;quot;, if the entity type is considered a building (e.g. an assembling machine or a wall) it will remove decoratives.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|emissions_per_second|[[Types/double|double]]|0|optional=true}}&lt;br /&gt;
Amount of emissions created (positive number) or cleaned (negative number) every second by the entity.&lt;br /&gt;
This is passive, and it is independent concept of the emissions of machines, these are created actively depending on the power consumption.&lt;br /&gt;
Currently used just for trees.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;emissions_per_second = -0.001 -- cleaning effect of big tree&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|shooting_cursor_size|[[Types/double|double]]|optional=true}}&lt;br /&gt;
The cursor size used when shooting at this entity.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|created_smoke|[[Types/CreateTrivialSmokeEffectItem|CreateTrivialSmokeEffectItem]]|The &amp;quot;smoke-building&amp;quot;-smoke|optional=true}}&lt;br /&gt;
The smoke that is shown when the entity is placed.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|working_sound|[[Types/WorkingSound|WorkingSound]]|optional=true}}&lt;br /&gt;
Will also work on entities that don&#039;t actually do work.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|created_effect|[[Types/Trigger|Trigger]]|optional=true}}&lt;br /&gt;
The effect/trigger that happens when the entity is placed.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|build_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mined_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mining_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|rotated_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|vehicle_impact_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
When playing this sound, the volume is scaled by the speed of the vehicle when colliding with this entity.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|open_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|close_sound|[[Types/Sound|Sound]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|radius_visualisation_specification|[[Types/RadiusVisualisationSpecification|RadiusVisualisationSpecification]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|build_base_evolution_requirement|[[Types/double|double]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alert_icon_shift|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alert_icon_scale|[[Types/float|float]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|fast_replaceable_group|[[Types/string|string]]|&amp;quot;&amp;quot;|optional=true}}&lt;br /&gt;
This allows you to replace an entity that&#039;s already placed, with a different one in your inventory. For example, replacing a burner inserter with a fast inserter.&lt;br /&gt;
&lt;br /&gt;
This is simply a string, so any string can be used here. The entity that should be replaced simply has to use the same string here.&lt;br /&gt;
&lt;br /&gt;
The ones the game uses are:&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;container&amp;quot;&lt;br /&gt;
    &amp;quot;furnace&amp;quot;&lt;br /&gt;
    &amp;quot;transport-belt&amp;quot;&lt;br /&gt;
    &amp;quot;electric-pole&amp;quot;&lt;br /&gt;
    &amp;quot;steam-engine&amp;quot;&lt;br /&gt;
    &amp;quot;inserter&amp;quot;&lt;br /&gt;
    &amp;quot;long-handed-inserter&amp;quot;&lt;br /&gt;
    &amp;quot;pipe&amp;quot;&lt;br /&gt;
    &amp;quot;assembling-machine&amp;quot;&lt;br /&gt;
    &amp;quot;wall&amp;quot;&lt;br /&gt;
    &amp;quot;loader&amp;quot;&lt;br /&gt;
    &amp;quot;rail-signal&amp;quot;&lt;br /&gt;
    &amp;quot;mining-drill&amp;quot;&lt;br /&gt;
    &amp;quot;pumpjack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|next_upgrade|[[Types/string|string]]|optional=true}}&lt;br /&gt;
Name of the entity that will be automatically selected as the upgrade of this entity when using the [[upgrade planner]] without configuration.&lt;br /&gt;
&lt;br /&gt;
This entity may not have &#039;not-upgradable&#039; flag set and must be minable. This entity mining result must not contain item product with &amp;quot;hidden&amp;quot; flag set. Mining results with no item products are allowed. The entity may not be a [[Prototype/RollingStock]].&amp;lt;br&amp;gt;&lt;br /&gt;
The upgrade target entity needs to have the same bounding box, collision mask, and fast replaceable group as this entity. The upgrade target entity must have least 1 item that builds it that isn&#039;t hidden.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|placeable_by|[[Types/ItemToPlace|ItemToPlace]] or [[Types/table|table]] of [[Types/ItemToPlace|ItemToPlace]]|optional=true}}&lt;br /&gt;
Item that when placed creates this entity. Determines which item is picked when &amp;quot;Q&amp;quot; (smart pipette) is used on the entity, determines which item is needed in a blueprint of this entity.&lt;br /&gt;
&lt;br /&gt;
The item count specified here can&#039;t be larger than the stack size of that item.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|remains_when_mined|[[Types/string|string]] or [[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
The entity that remains when this one is mined, deconstructed or fast-replaced. The entity wont actually be spawned if it would collide with the entity that is in the process of being mined.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|additional_pastable_entities|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
Names of the entity prototypes this entity prototype can be pasted on to in addition to the standard supported types.&lt;br /&gt;
This is used to allow copying between types that aren&#039;t compatible on the C++ code side, by allowing mods to receive the [https://lua-api.factorio.com/latest/events.html#on_entity_settings_pasted on_entity_settings_pasted] event for the given entity and do the setting pasting via script.&amp;lt;br&amp;gt;&lt;br /&gt;
 additional_pastable_entities = {&amp;quot;steel-chest&amp;quot;, &amp;quot;iron-chest&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tile_width|[[Types/uint32|uint32]]|calculated by the collision box width rounded up.|optional=true}}&lt;br /&gt;
Used to determine how the center of the entity should be positioned when building (unless the offgrid [[Types/EntityPrototypeFlags|flag]] is specified).&lt;br /&gt;
When the tile width is odd, the center will be in the center of the tile, when it is even, the center is on the tile transition.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tile_height|[[Types/uint32|uint32]]|calculated by the collision box height rounded up.|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|autoplace|[[Types/AutoplaceSpecification|AutoplaceSpecification]]|nil (entity is not autoplacable)|optional=true}}&lt;br /&gt;
Used to specify the rules for placing this entity during map generation.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|map_color|[[Types/Color|Color]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|friendly_map_color|[[Types/Color|Color]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|enemy_map_color|[[Types/Color|Color]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|water_reflection|[[Types/WaterReflectionDefinition|WaterReflectionDefinition]]|optional=true}}&lt;br /&gt;
May also be defined inside &amp;lt;code&amp;gt;graphics_set&amp;lt;/code&amp;gt; instead of directly in the entity prototype. This is useful for entities that use the a &amp;lt;code&amp;gt;graphics_set&amp;lt;/code&amp;gt; property to define their graphics, because then all graphics can be defined in one place.&amp;lt;br&amp;gt;&lt;br /&gt;
Currently only renders for [[Prototype/EntityWithHealth]].[https://forums.factorio.com/100703]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;{&lt;br /&gt;
    type = &amp;quot;container&amp;quot;,&lt;br /&gt;
    name = &amp;quot;wooden-chest&amp;quot;,&lt;br /&gt;
    icon = &amp;quot;__base__/graphics/icons/wooden-chest.png&amp;quot;,&lt;br /&gt;
    flags = {&amp;quot;placeable-neutral&amp;quot;, &amp;quot;player-creation&amp;quot;},&lt;br /&gt;
    minable = {mining_time = 1, result = &amp;quot;wooden-chest&amp;quot;},&lt;br /&gt;
    max_health = 100,&lt;br /&gt;
    corpse = &amp;quot;small-remnants&amp;quot;,&lt;br /&gt;
    collision_box = {{-0.35, -0.35}, {0.35, 0.35}},&lt;br /&gt;
    fast_replaceable_group = &amp;quot;container&amp;quot;,&lt;br /&gt;
    selection_box = {{-0.5, -0.5}, {0.5, 0.5}},&lt;br /&gt;
    inventory_size = 16,&lt;br /&gt;
    open_sound = { filename = &amp;quot;__base__/sound/wooden-chest-open.ogg&amp;quot; },&lt;br /&gt;
    close_sound = { filename = &amp;quot;__base__/sound/wooden-chest-close.ogg&amp;quot; },&lt;br /&gt;
    vehicle_impact_sound =  { filename = &amp;quot;__base__/sound/car-wood-impact.ogg&amp;quot;, volume = 1.0 },&lt;br /&gt;
    picture =&lt;br /&gt;
    {&lt;br /&gt;
      filename = &amp;quot;__base__/graphics/entity/wooden-chest/wooden-chest.png&amp;quot;,&lt;br /&gt;
      priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
      width = 46,&lt;br /&gt;
      height = 33,&lt;br /&gt;
      shift = {0.25, 0.015625}&lt;br /&gt;
    },&lt;br /&gt;
    circuit_wire_connection_point =&lt;br /&gt;
    {&lt;br /&gt;
      shadow =&lt;br /&gt;
      {&lt;br /&gt;
        red = {0.734375, 0.453125},&lt;br /&gt;
        green = {0.609375, 0.515625},&lt;br /&gt;
      },&lt;br /&gt;
      wire =&lt;br /&gt;
      {&lt;br /&gt;
        red = {0.40625, 0.21875},&lt;br /&gt;
        green = {0.40625, 0.375},&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18),&lt;br /&gt;
    circuit_wire_max_distance = 9&lt;br /&gt;
  }&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/FluidBox&amp;diff=187461</id>
		<title>Types/FluidBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/FluidBox&amp;diff=187461"/>
		<updated>2021-11-10T15:15:41Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Fixed link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
[[File:Fluidboxes.png|thumb|550px|Visual representation of base_area, base_level and height. When all the fluidboxes are connected, the water leaves fluidbox A and flows into the other 3 boxes through fluidbox B until the water level is equal in all boxes. For more info about fluids, see [[Fluid system#See also]].]]&lt;br /&gt;
Used to set the fluid amount an entity can hold, as well as the connection points for pipes leading into and out of the entity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each entity can have multiple fluidboxes.&lt;br /&gt;
It can come from a [[Types/EnergySource#Fluid_energy_source]], any fluidbox or normal property storage tanks and pumps.&lt;br /&gt;
&lt;br /&gt;
Each fluidbox should store only ONE type of fluid.&lt;br /&gt;
It accepts to store multiple different fluids, which is fluid mixing and not wanted.&lt;br /&gt;
To avoid fluid mixing, you can setup a filter for certain fluids.&lt;br /&gt;
Crafting machines will automatically disable unused fluidboxes.&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
=== pipe_connections ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/PipeConnectionDefinition]]&lt;br /&gt;
&lt;br /&gt;
Max number of members is 255.&lt;br /&gt;
&lt;br /&gt;
Connection points to connect to other fluidboxes. This is also marked as blue arrows in alt mode.&lt;br /&gt;
Fluid may flow in or out depending on the `type` field of each connection.&lt;br /&gt;
Connection points may depend on the direction the entity is facing.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== base_area ===&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;
Must be greater than 0.&lt;br /&gt;
&lt;br /&gt;
=== base_level ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
=== height ===&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;
Must be greater than 0.&lt;br /&gt;
&lt;br /&gt;
=== filter ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Name of a [[Prototype/Fluid]]. Can be used to specify which fluid is allowed to enter this fluid box. [https://forums.factorio.com/viewtopic.php?f=28&amp;amp;t=46302]&lt;br /&gt;
&lt;br /&gt;
=== render_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RenderLayer]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;object&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== pipe_covers ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Sprite4Way]]&lt;br /&gt;
&lt;br /&gt;
The pictures to show when another fluid box connects to this one.&lt;br /&gt;
&lt;br /&gt;
=== pipe_picture ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Sprite4Way]]&lt;br /&gt;
&lt;br /&gt;
=== minimum_temperature ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
The minimum temperature allowed into the fluidbox. Only applied if a &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; is specified [https://forums.factorio.com/viewtopic.php?p=496738#p496738].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;minimum_temperature = 100.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== maximum_temperature ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
The maximum temperature allowed into the fluidbox. Only applied if a &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; is specified [https://forums.factorio.com/viewtopic.php?p=496738#p496738].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;maximum_temperature = 1000.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== production_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;None&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
* &amp;quot;None&amp;quot;&lt;br /&gt;
* &amp;quot;input&amp;quot;&lt;br /&gt;
* &amp;quot;input-output&amp;quot;&lt;br /&gt;
* &amp;quot;output&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== secondary_draw_order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Set the secondary draw order for all orientations. Used to determine render order for sprites with the same &amp;lt;code&amp;gt;render_layer&amp;lt;/code&amp;gt; in the same position. Sprites 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;
=== secondary_draw_orders ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/int8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: {north = 1, east = 1, south = 1, west = 1}&lt;br /&gt;
&lt;br /&gt;
Set the secondary draw order for each orientation. Used to determine render order for sprites with the same &amp;lt;code&amp;gt;render_layer&amp;lt;/code&amp;gt; in the same position. Sprites 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;
== Example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;fluid_box =&lt;br /&gt;
    {&lt;br /&gt;
      base_area = 1,&lt;br /&gt;
      height = 2,&lt;br /&gt;
      base_level = -1,&lt;br /&gt;
      pipe_covers = pipecoverspictures(),&lt;br /&gt;
      pipe_connections =&lt;br /&gt;
      {&lt;br /&gt;
        {type = &amp;quot;input-output&amp;quot;, position = {-2, 0.5}},&lt;br /&gt;
        {type = &amp;quot;input-output&amp;quot;, position = {2, 0.5}}&lt;br /&gt;
      },&lt;br /&gt;
      production_type = &amp;quot;input-output&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/FluidBox&amp;diff=187460</id>
		<title>Types/FluidBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/FluidBox&amp;diff=187460"/>
		<updated>2021-11-10T15:13:08Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Changed previous description to be more english-like&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
[[File:Fluidboxes.png|thumb|550px|Visual representation of base_area, base_level and height. When all the fluidboxes are connected, the water leaves fluidbox A and flows into the other 3 boxes through fluidbox B until the water level is equal in all boxes. For more info about fluids, see [[Fluid system#See also]].]]&lt;br /&gt;
Used to set the fluid amount an entity can hold, as well as the connection points for pipes leading into and out of the entity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each entity can have multiple fluidboxes.&lt;br /&gt;
It can come from a [[fluid energy source]], any fluidbox and normal property storage tanks and pumps.&lt;br /&gt;
&lt;br /&gt;
Each fluidbox should store only ONE type of fluid.&lt;br /&gt;
It accepts to store multiple different fluids, which is fluid mixing and not wanted.&lt;br /&gt;
To avoid fluid mixing, you can setup a filter for certain fluids.&lt;br /&gt;
Crafting machines will automatically disable unused fluidboxes.&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
=== pipe_connections ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/PipeConnectionDefinition]]&lt;br /&gt;
&lt;br /&gt;
Max number of members is 255.&lt;br /&gt;
&lt;br /&gt;
Connection points to connect to other fluidboxes. This is also marked as blue arrows in alt mode.&lt;br /&gt;
Fluid may flow in or out depending on the `type` field of each connection.&lt;br /&gt;
Connection points may depend on the direction the entity is facing.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== base_area ===&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;
Must be greater than 0.&lt;br /&gt;
&lt;br /&gt;
=== base_level ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
=== height ===&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;
Must be greater than 0.&lt;br /&gt;
&lt;br /&gt;
=== filter ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Name of a [[Prototype/Fluid]]. Can be used to specify which fluid is allowed to enter this fluid box. [https://forums.factorio.com/viewtopic.php?f=28&amp;amp;t=46302]&lt;br /&gt;
&lt;br /&gt;
=== render_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RenderLayer]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;object&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== pipe_covers ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Sprite4Way]]&lt;br /&gt;
&lt;br /&gt;
The pictures to show when another fluid box connects to this one.&lt;br /&gt;
&lt;br /&gt;
=== pipe_picture ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Sprite4Way]]&lt;br /&gt;
&lt;br /&gt;
=== minimum_temperature ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
The minimum temperature allowed into the fluidbox. Only applied if a &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; is specified [https://forums.factorio.com/viewtopic.php?p=496738#p496738].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;minimum_temperature = 100.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== maximum_temperature ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
The maximum temperature allowed into the fluidbox. Only applied if a &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; is specified [https://forums.factorio.com/viewtopic.php?p=496738#p496738].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;maximum_temperature = 1000.0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== production_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;None&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Possible values:&lt;br /&gt;
* &amp;quot;None&amp;quot;&lt;br /&gt;
* &amp;quot;input&amp;quot;&lt;br /&gt;
* &amp;quot;input-output&amp;quot;&lt;br /&gt;
* &amp;quot;output&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== secondary_draw_order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Set the secondary draw order for all orientations. Used to determine render order for sprites with the same &amp;lt;code&amp;gt;render_layer&amp;lt;/code&amp;gt; in the same position. Sprites 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;
=== secondary_draw_orders ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/int8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: {north = 1, east = 1, south = 1, west = 1}&lt;br /&gt;
&lt;br /&gt;
Set the secondary draw order for each orientation. Used to determine render order for sprites with the same &amp;lt;code&amp;gt;render_layer&amp;lt;/code&amp;gt; in the same position. Sprites 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;
== Example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;fluid_box =&lt;br /&gt;
    {&lt;br /&gt;
      base_area = 1,&lt;br /&gt;
      height = 2,&lt;br /&gt;
      base_level = -1,&lt;br /&gt;
      pipe_covers = pipecoverspictures(),&lt;br /&gt;
      pipe_connections =&lt;br /&gt;
      {&lt;br /&gt;
        {type = &amp;quot;input-output&amp;quot;, position = {-2, 0.5}},&lt;br /&gt;
        {type = &amp;quot;input-output&amp;quot;, position = {2, 0.5}}&lt;br /&gt;
      },&lt;br /&gt;
      production_type = &amp;quot;input-output&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/RoboportEquipment&amp;diff=187170</id>
		<title>Prototype/RoboportEquipment</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/RoboportEquipment&amp;diff=187170"/>
		<updated>2021-10-11T10:02:22Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: made sentence more english&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/Equipment}}&lt;br /&gt;
Used by [[personal roboport]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|roboport-equipment}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/Equipment]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharging_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
The animation played at each charging point when a robot is charging there.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_and_station_height|[[Types/float|float]]}}&lt;br /&gt;
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charge_approach_distance|[[Types/float|float]]}}&lt;br /&gt;
Presumably, the distance from the roboport at which robots will wait to charge.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|construction_radius|[[Types/float|float]]}}&lt;br /&gt;
Can&#039;t be negative.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_energy|[[Types/Energy|Energy]]}}&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_and_station_shadow_height_offset|[[Types/float|float]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_logistic_radius_visualization|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_construction_radius_visualization|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharging_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
The light emitted when charging a robot.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_station_count|[[Types/uint32|uint32]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_distance|[[Types/float|float]]|0.0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_station_shift|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_threshold_distance|[[Types/float|float]]|1.0|optional=true}}&lt;br /&gt;
This defines how far away a robot can be to be charged, however a bot is still required to reach a charging spot and cannot have full battery.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_vertical_acceleration|[[Types/float|float]]|0.01|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|stationing_offset|[[Types/vector|vector]]||optional=true}}&lt;br /&gt;
The offset from the center of the roboport at which robots will enter and exit.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_limit|[[Types/ItemCountType|ItemCountType]]|max uint|optional=true}}&lt;br /&gt;
How many robots can exist in the network (cumulative).&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robots_shrink_when_entering_and_exiting|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_offsets|[[Types/table|table]] of [[Types/vector|vector]]|optional=true}}&lt;br /&gt;
The offsets from the centre of the roboport at which robots will charge.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_minimum|[[Types/Energy|Energy]]|0.2 * energy_source.buffer_capacity|optional=true}}&lt;br /&gt;
Minimum amount of energy that needs to available inside the roboport&#039;s buffer so that robots can be spawned.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|burner|[[Types/EnergySource|EnergySource]]|optional=true}}&lt;br /&gt;
Must be a burner energy source. Add this is if the roboport should be fueled directly instead of using power from the equipment grid.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|power|[[Types/Energy|Energy]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;burner&amp;lt;/code&amp;gt; is present. The size of the buffer of the burner energy source, so effectively the amount of power that the energy source can produce per tick.&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/RoboportEquipment&amp;diff=187169</id>
		<title>Prototype/RoboportEquipment</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/RoboportEquipment&amp;diff=187169"/>
		<updated>2021-10-11T09:57:57Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Capitalization on sentence begin and spaces after &amp;#039;,&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/Equipment}}&lt;br /&gt;
Used by [[personal roboport]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|roboport-equipment}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/Equipment]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharging_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
The animation played at each charging point when a robot is charging there.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_and_station_height|[[Types/float|float]]}}&lt;br /&gt;
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charge_approach_distance|[[Types/float|float]]}}&lt;br /&gt;
Presumably, the distance from the roboport at which robots will wait to charge.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|construction_radius|[[Types/float|float]]}}&lt;br /&gt;
Can&#039;t be negative.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_energy|[[Types/Energy|Energy]]}}&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_and_station_shadow_height_offset|[[Types/float|float]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_logistic_radius_visualization|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_construction_radius_visualization|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharging_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
The light emitted when charging a robot.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_station_count|[[Types/uint32|uint32]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_distance|[[Types/float|float]]|0.0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_station_shift|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_threshold_distance|[[Types/float|float]]|1.0|optional=true}}&lt;br /&gt;
This defines how long can robot charging from this robopot, however bots are still required to reach charging spot and bot cannot be full battery.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_vertical_acceleration|[[Types/float|float]]|0.01|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|stationing_offset|[[Types/vector|vector]]||optional=true}}&lt;br /&gt;
The offset from the centre of the roboport at which robots will enter and exit.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_limit|[[Types/ItemCountType|ItemCountType]]|max uint|optional=true}}&lt;br /&gt;
How many robots can exist in the network (cumulative).&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robots_shrink_when_entering_and_exiting|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_offsets|[[Types/table|table]] of [[Types/vector|vector]]|optional=true}}&lt;br /&gt;
The offsets from the centre of the roboport at which robots will charge.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_minimum|[[Types/Energy|Energy]]|0.2 * energy_source.buffer_capacity|optional=true}}&lt;br /&gt;
Minimum amount of energy that needs to available inside the roboport&#039;s buffer so that robots can be spawned.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|burner|[[Types/EnergySource|EnergySource]]|optional=true}}&lt;br /&gt;
Must be a burner energy source. Add this is if the roboport should be fueled directly instead of using power from the equipment grid.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|power|[[Types/Energy|Energy]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;burner&amp;lt;/code&amp;gt; is present. The size of the buffer of the burner energy source, so effectively the amount of power that the energy source can produce per tick.&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Roboport&amp;diff=187168</id>
		<title>Prototype/Roboport</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Roboport&amp;diff=187168"/>
		<updated>2021-10-11T09:50:24Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Capitalization and spaces after &amp;#039;.&amp;#039; and &amp;#039;,&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithHealth}}&lt;br /&gt;
A [[roboport]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|roboport}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_source|[[Types/EnergySource|EnergySource]]}}&lt;br /&gt;
The roboport&#039;s energy source. Must be an electric or void energy source.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|energy_usage|[[Types/Energy|Energy]]}}&lt;br /&gt;
The amount of energy the roboport uses when idle.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharge_minimum|[[Types/Energy|Energy]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_slots_count|[[Types/ItemStackIndex|ItemStackIndex]]}}&lt;br /&gt;
The number of robot slots in the roboport.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|material_slots_count|[[Types/ItemStackIndex|ItemStackIndex]]}}&lt;br /&gt;
The number of repair pack slots in the roboport.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_patch|[[Types/Sprite|Sprite]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|base_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
The animation played when the roboport is idle.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_animation_up|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|door_animation_down|[[Types/Animation|Animation]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|request_to_open_door_timeout|[[Types/uint32|uint32]]}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharging_animation|[[Types/Animation|Animation]]}}&lt;br /&gt;
The animation played at each charging point when a robot is charging there.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_and_station_height|[[Types/float|float]]}}&lt;br /&gt;
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charge_approach_distance|[[Types/float|float]]}}&lt;br /&gt;
The distance from the roboport at which robots will wait to charge.&lt;br /&gt;
Notablely, if robots are already in range, then it will simplely wait at spot.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|logistics_radius|[[Types/float|float]]}}&lt;br /&gt;
Can&#039;t be negative.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|construction_radius|[[Types/float|float]]}}&lt;br /&gt;
Can&#039;t be negative.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_energy|[[Types/Energy|Energy]]}}&lt;br /&gt;
The amount of energy that is given to a robot per tick.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|open_door_trigger_effect|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|close_door_trigger_effect|[[Types/TriggerEffect|TriggerEffect]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|default_available_logistic_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|default_total_logistic_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|default_available_construction_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|default_total_construction_output_signal|[[Types/SignalIDConnector|SignalIDConnector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|circuit_wire_connection_point|[[Types/WireConnectionPoint|WireConnectionPoint]]|optional=true}}&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|circuit_connector_sprites|[[Types/CircuitConnectorSprites|CircuitConnectorSprites]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|spawn_and_station_shadow_height_offset|[[Types/float|float]]|0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_logistic_radius_visualization|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|draw_construction_radius_visualization|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|recharging_light|[[Types/LightDefinition|LightDefinition]]|optional=true}}&lt;br /&gt;
The light emitted when charging a robot.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_station_count|[[Types/uint32|uint32]]|0|optional=true}}&lt;br /&gt;
How many charging point this roboport has, if value is 0, roboport will try to use charging_offsets to know charging point instead.&lt;br /&gt;
(in vanilla game, roboport charging point is defined by charging_offsets)&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_distance|[[Types/float|float]]|0.0|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_station_shift|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_threshold_distance|[[Types/float|float]]|1.0|optional=true}}&lt;br /&gt;
Unused. (only used in [[Prototype/RoboportEquipment|personal roboport]])&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_vertical_acceleration|[[Types/float|float]]|0.01|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|stationing_offset|[[Types/vector|vector]]|optional=true}}&lt;br /&gt;
The offset from the centre of the roboport at which robots will enter and exit.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robot_limit|[[Types/ItemCountType|ItemCountType]]|max uint|optional=true}}&lt;br /&gt;
Unused. (only used in [[Prototype/RoboportEquipment|personal roboport]])&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|robots_shrink_when_entering_and_exiting|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|charging_offsets|[[Types/table|table]] of [[Types/vector|vector]]|optional=true}}&lt;br /&gt;
The offsets from the centre of the roboport at which robots will charge. Only used if charging_station_count is equal to zero.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|logistics_connection_distance|[[Types/float|float]]|optional=true}}&lt;br /&gt;
Must be &amp;gt;= &amp;lt;code&amp;gt;logistics_radius&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/MiningDrill&amp;diff=186946</id>
		<title>Prototype/MiningDrill</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/MiningDrill&amp;diff=186946"/>
		<updated>2021-09-23T01:18:06Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: New line for example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/EntityWithHealth}}&lt;br /&gt;
A mining drill.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|mining-drill}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
This prototype inherits the properties of [[Prototype/EntityWithHealth]].&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).&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.&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>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/WorkingVisualisation&amp;diff=186945</id>
		<title>Types/WorkingVisualisation</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/WorkingVisualisation&amp;diff=186945"/>
		<updated>2021-09-22T14:53:02Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: New line for each definition for readability&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used by crafting machines to display different graphics when the machine is running.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== render_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RenderLayer]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;object&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== fadeout ===&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;
=== synced_fadeout ===&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;
=== constant_speed ===&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;
Whether the animations are always played at the same speed, not adjusted to the machine speed.&lt;br /&gt;
&lt;br /&gt;
=== always_draw ===&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;
=== animated_shift ===&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;
=== align_to_waypoint ===&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;
=== secondary_draw_order ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/int8]]&lt;br /&gt;
&lt;br /&gt;
Used to determine render order for sprites with the same &amp;lt;code&amp;gt;render_layer&amp;lt;/code&amp;gt; in the same position. Sprites 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;
=== draw_as_sprite ===&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;
=== 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;
=== light ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/LightDefinition]]&lt;br /&gt;
&lt;br /&gt;
=== effect ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Either &amp;quot;flicker&amp;quot;, &amp;quot;uranium-glow&amp;quot; or &amp;quot;none&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== apply_recipe_tint ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Either &amp;quot;primary&amp;quot;, &amp;quot;secondary&amp;quot;, &amp;quot;tertiary&amp;quot;, &amp;quot;quaternary&amp;quot; or &amp;quot;none&amp;quot;. Used by [[Prototype/CraftingMachine]].&lt;br /&gt;
&lt;br /&gt;
=== apply_tint ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
Either &amp;quot;resource-color&amp;quot;, &amp;quot;input-fluid-base-color&amp;quot;, &amp;quot;input-fluid-flow-color&amp;quot;, &amp;quot;status&amp;quot; or &amp;quot;none&amp;quot;. Used by [[Prototype/CraftingMachine]] (&amp;quot;status&amp;quot; only) and [[Prototype/MiningDrill]].&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;status&amp;quot; on CraftingMachine, the colors are specified via [[Prototype/CraftingMachine#status_colors]].&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;status&amp;quot; on MiningDrill, the colors are specified via [[Types/MiningDrillGraphicsSet#status_colors]].&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;resource-color&amp;quot;, the colors are specified via [[Prototype/ResourceEntity#mining_visualisation_tint]].&lt;br /&gt;
&lt;br /&gt;
=== north_animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
Either these animations for the directions are loaded (though they are still optional), or &amp;lt;code&amp;gt;animation&amp;lt;/code&amp;gt; is loaded.&lt;br /&gt;
&lt;br /&gt;
=== west_animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
Either these animations for the directions are loaded (though they are still optional), or &amp;lt;code&amp;gt;animation&amp;lt;/code&amp;gt; is loaded.&lt;br /&gt;
&lt;br /&gt;
=== south_animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
Either these animations for the directions are loaded (though they are still optional), or &amp;lt;code&amp;gt;animation&amp;lt;/code&amp;gt; is loaded.&lt;br /&gt;
&lt;br /&gt;
=== east_animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
Either these animations for the directions are loaded (though they are still optional), or &amp;lt;code&amp;gt;animation&amp;lt;/code&amp;gt; is loaded.&lt;br /&gt;
&lt;br /&gt;
=== animation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Animation]]&lt;br /&gt;
&lt;br /&gt;
If this is present, this is loaded, otherwise the animation properties for each direction are loaded.&lt;br /&gt;
&lt;br /&gt;
=== north_position ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/vector]]&lt;br /&gt;
&lt;br /&gt;
=== west_position ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/vector]]&lt;br /&gt;
&lt;br /&gt;
=== south_position ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/vector]]&lt;br /&gt;
&lt;br /&gt;
=== east_position ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/vector]]&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/SelectionTool&amp;diff=186944</id>
		<title>Prototype/SelectionTool</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/SelectionTool&amp;diff=186944"/>
		<updated>2021-09-22T12:58:09Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/ItemWithLabel}}&lt;br /&gt;
Used in the base game as a base for the blueprint item and the deconstruction item.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|selection-tool}}&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
* [[Prototype/BlueprintItem]] &#039;&#039;&#039;blueprint&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/CopyPasteTool]] &#039;&#039;&#039;copy-paste-tool&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/DeconstructionItem]] &#039;&#039;&#039;deconstruction-item&#039;&#039;&#039;&lt;br /&gt;
* [[Prototype/UpgradeItem]] &#039;&#039;&#039;upgrade-item&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/ItemWithLabel]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_color|[[Types/Color|Color]]}}&lt;br /&gt;
The color of the rectangle used when standard selection is done in-game.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_selection_color|[[Types/Color|Color]]}}&lt;br /&gt;
The color of the rectangle used when alt-selection is done in-game.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_mode|[[Types/table|table]] of [[Types/string|string]]}}&lt;br /&gt;
A list of selection mode flags that define how the selection tool selects things in-game.&lt;br /&gt;
&lt;br /&gt;
Possible values are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flag !! meaning&lt;br /&gt;
|-&lt;br /&gt;
| blueprint  || The normal rules for acceptable entities in blueprints&lt;br /&gt;
|-&lt;br /&gt;
| deconstruct || The normal rules for acceptable entities for deconstruction&lt;br /&gt;
|-&lt;br /&gt;
| cancel-deconstruct || The normal rules for acceptable entities for cancel deconstruction&lt;br /&gt;
|-&lt;br /&gt;
| items || Item entities&lt;br /&gt;
|-&lt;br /&gt;
| trees || Trees&lt;br /&gt;
|-&lt;br /&gt;
| buildable-type || Buildable entities as defined by the game&lt;br /&gt;
|-&lt;br /&gt;
| nothing || Nothing&lt;br /&gt;
|-&lt;br /&gt;
| items-to-place || The entity has an item that builds the entity&lt;br /&gt;
|-&lt;br /&gt;
| any-entity || Any entity&lt;br /&gt;
|-&lt;br /&gt;
| any-tile || Any tile&lt;br /&gt;
|-&lt;br /&gt;
| same-force || The entity force matches that of the player doing the selection&lt;br /&gt;
|-&lt;br /&gt;
| not-same-force || The entity force does not match that of the player doing the selection&lt;br /&gt;
|-&lt;br /&gt;
| friend || The entity force is friend to that of the player doing the selection&lt;br /&gt;
|-&lt;br /&gt;
| enemy || The entity force is enemy to that of the player doing the selection&lt;br /&gt;
|-&lt;br /&gt;
| upgrade || The normal rules for acceptable entities in upgrade planners&lt;br /&gt;
|-&lt;br /&gt;
| cancel-upgrade || The normal rules for acceptable entities for cancel upgrade&lt;br /&gt;
|-&lt;br /&gt;
| downgrade || The normal rules for acceptable entities for downgrade&lt;br /&gt;
|-&lt;br /&gt;
| entity-with-health ||&lt;br /&gt;
|-&lt;br /&gt;
| entity-with-force ||&lt;br /&gt;
|-&lt;br /&gt;
| entity-with-owner ||&lt;br /&gt;
|-&lt;br /&gt;
| avoid-rolling-stock || The entity is not a [[Prototype/RollingStock]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_selection_mode|[[Types/table|table]] of [[Types/string|string]]}}&lt;br /&gt;
A list of selection mode flags that define how the selection tool alt-selects things in-game. Possible values are identical to normal selection_mode.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_cursor_box_type|[[Types/CursorBoxType|CursorBoxType]]}}&lt;br /&gt;
The type of cursor box used to render selection of entities/tiles when standard selecting.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_selection_cursor_box_type|[[Types/CursorBoxType|CursorBoxType]]}}&lt;br /&gt;
The type of cursor box used to render selection of entities/tiles when alt selecting.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|reverse_selection_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|selection_count_button_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_selection_count_button_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;alt_selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|reverse_selection_count_button_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;reverse_selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|chart_selection_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|chart_alt_selection_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;alt_selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|chart_reverse_selection_color|[[Types/Color|Color]]|Value of &amp;lt;code&amp;gt;reverse_selection_color&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|reverse_selection_mode|[[Types/table|table]] of [[Types/string|string]]|Value of &amp;lt;code&amp;gt;selection_mode&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
A list of selection mode flags that define how the selection tool reverse-selects things in-game. Possible values are identical to normal selection_mode.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|reverse_selection_cursor_box_type|[[Types/CursorBoxType|CursorBoxType]]|Value of &amp;lt;code&amp;gt;selection_cursor_box_type&amp;lt;/code&amp;gt;|optional=true}}&lt;br /&gt;
The type of cursor box used to render selection of entities/tiles when reverse-selecting.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|always_include_tiles|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
If tiles should be included in the selection regardless of entities also being in the selection. This is a visual only setting.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mouse_cursor|[[Types/string|string]]|&amp;quot;selection-tool-cursor&amp;quot;|optional=true}}&lt;br /&gt;
Name of a [[Prototype/MouseCursor]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|entity_filters|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
Array of [[Prototype/Entity]] names.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_entity_filters|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
Array of [[Prototype/Entity]] names.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|entity_type_filters|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_entity_type_filters|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tile_filters|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
Array of [[Prototype/Tile]] names.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_tile_filters|[[Types/table|table]] of [[Types/string|string]]|optional=true}}&lt;br /&gt;
Array of [[Prototype/Tile]] names.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|entity_filter_mode|[[Types/string|string]]|&amp;quot;whitelist&amp;quot;|optional=true}}&lt;br /&gt;
One of &amp;quot;whitelist&amp;quot; and &amp;quot;blacklist&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_entity_filter_mode|[[Types/string|string]]|&amp;quot;whitelist&amp;quot;|optional=true}}&lt;br /&gt;
One of &amp;quot;whitelist&amp;quot; and &amp;quot;blacklist&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tile_filter_mode|[[Types/string|string]]|&amp;quot;whitelist&amp;quot;|optional=true}}&lt;br /&gt;
One of &amp;quot;whitelist&amp;quot; and &amp;quot;blacklist&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|alt_tile_filter_mode|[[Types/string|string]]|&amp;quot;whitelist&amp;quot;|optional=true}}&lt;br /&gt;
One of &amp;quot;whitelist&amp;quot; and &amp;quot;blacklist&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/SpriteNWaySheet&amp;diff=184074</id>
		<title>Types/SpriteNWaySheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/SpriteNWaySheet&amp;diff=184074"/>
		<updated>2020-12-24T03:16:50Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Surround new draw_as_* descriptions with &amp;lt;code&amp;gt;tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used in [[Types/Sprite4Way]] and [[Types/Sprite8Way]]&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&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;
Technically optional, but path to sprite cannot be empty.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== frames ===&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;: 4 if this is used in [[Types/Sprite4Way]], 8 if used in [[Types/Sprite8Way]]&lt;br /&gt;
&lt;br /&gt;
Specifies how many of the directions of the SpriteNWay are filled up with this sheet.&lt;br /&gt;
&lt;br /&gt;
=== hr_version ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteNWaySheet]]&lt;br /&gt;
&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the SpriteNWaySheet.&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 sprite. 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 the picture 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 the picture 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 sprite 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 sprite 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;
In tiles. util.by_pixel() can be used to divide the shift by 32 which is the usual pixel height/width of 1 tile in normal resolution. Note that 32 pixel tile height/width is not enforced anywhere - any other tile height or width is also possible.&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 sprite 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;).&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;
== Example ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;sheet =&lt;br /&gt;
{&lt;br /&gt;
  filename = &amp;quot;__base__/graphics/entity/burner-inserter/burner-inserter-platform.png&amp;quot;,&lt;br /&gt;
  priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
  width = 46,&lt;br /&gt;
  height = 46,&lt;br /&gt;
  shift = {0.09375, 0},&lt;br /&gt;
  hr_version =&lt;br /&gt;
  {&lt;br /&gt;
    filename = &amp;quot;__base__/graphics/entity/burner-inserter/hr-burner-inserter-platform.png&amp;quot;,&lt;br /&gt;
    priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
    width = 105,&lt;br /&gt;
    height = 79,&lt;br /&gt;
    shift = util.by_pixel(1.5, 7.5-1),&lt;br /&gt;
    scale = 0.5&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/Sprite&amp;diff=184073</id>
		<title>Types/Sprite</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/Sprite&amp;diff=184073"/>
		<updated>2020-12-24T03:12:59Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Surround new draw_as_* descriptions with &amp;lt;code&amp;gt;tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
Specifies one picture that can be used in the game.&lt;br /&gt;
&lt;br /&gt;
When there is more than one sprite or [[Types/Animation|animation]] frame with the same source file and dimensions/position in the game, they all share the same memory.&lt;br /&gt;
== Mandatory properties ==&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;
Technically optional, but path to sprite cannot be empty.&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/Sprite]]&lt;br /&gt;
&lt;br /&gt;
If this property is present, all Sprite definitions have to be placed as entries in the array, and they will all be loaded from there. Each item (Sprite 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/Sprite]]&lt;br /&gt;
&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the sprite.&lt;br /&gt;
&lt;br /&gt;
=== slice or dice ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&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;
=== slice_x or dice_x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;slice&amp;lt;/code&amp;gt; or &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;
=== slice_y or dice_y ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;slice&amp;lt;/code&amp;gt; or &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;
=== 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 sprite. 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 the picture 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 the picture 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 sprite 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 sprite 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;
In tiles. util.by_pixel() can be used to divide the shift by 32 which is the usual pixel height/width of 1 tile in normal resolution. Note that 32 pixel tile height/width is not enforced anywhere - any other tile height or width is also possible.&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 sprite 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;).&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;
== Example ==&lt;br /&gt;
    &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;picture =&lt;br /&gt;
    {&lt;br /&gt;
      filename = &amp;quot;__base__/graphics/entity/basic-accumulator/basic-accumulator.png&amp;quot;,&lt;br /&gt;
      priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
      width = 124,&lt;br /&gt;
      height = 103,&lt;br /&gt;
      shift = {0.7, -0.2}&lt;br /&gt;
    }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property type usage|{{FULLPAGENAME}}?Sprite]}}&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/RotatedSprite&amp;diff=184072</id>
		<title>Types/RotatedSprite</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/RotatedSprite&amp;diff=184072"/>
		<updated>2020-12-24T02:41:50Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Surround new draw_as_* descriptions with &amp;lt;code&amp;gt;tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
Specifies series of sprites used to visualise different rotations of the object.&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
=== direction_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint16]]&lt;br /&gt;
&lt;br /&gt;
Count of direction (frames) specified.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&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;
Either this or &amp;lt;code&amp;gt;&amp;quot;filenames&amp;quot;&amp;lt;/code&amp;gt; has to be non-empty.&lt;br /&gt;
&lt;br /&gt;
=== filenames ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[types/table]] of [[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;
Array of filenames. Either this or &amp;lt;code&amp;gt;&amp;quot;filename&amp;quot;&amp;lt;/code&amp;gt; has to be non-empty.&lt;br /&gt;
&lt;br /&gt;
=== layers ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/RotatedSprite]]&lt;br /&gt;
&lt;br /&gt;
If this property is present, all RotatedSprite definitions have to be placed as entries in the array, and they will all be loaded from there. Each item (RotatedSprite 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/RotatedSprite]]&lt;br /&gt;
&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the RotatedSprite.&lt;br /&gt;
&lt;br /&gt;
=== slice or dice ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&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;
=== slice_x or dice_x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;slice&amp;lt;/code&amp;gt; or &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;
=== slice_y or dice_y ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;slice&amp;lt;/code&amp;gt; or &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;
=== 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 sprite. 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 the picture 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 the picture 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 sprite 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 sprite 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;
In tiles. util.by_pixel() can be used to divide the shift by 32 which is the usual pixel height/width of 1 tile in normal resolution. Note that 32 pixel tile height/width is not enforced anywhere - any other tile height or width is also possible.&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 sprite 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;).&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;
=== axially_symmetrical ===&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;
When set to true, left the same picture is used for left/right direction, just flipped, this can save half of the space required, but is not usable once the picture contains shadows etc.&lt;br /&gt;
&lt;br /&gt;
=== back_equals_front ===&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;
=== apply_projection ===&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;
Used to fix the inconsistency of direction of the entity in 3d when rendered and direction on the screen (where the 45 degree angle for projection is used).&lt;br /&gt;
&lt;br /&gt;
=== counterclockwise ===&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;
Set to true to indicate sprites in the spritesheet are in counterclockwise order.&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;Defult&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Used to specify the individual images in grid.&lt;br /&gt;
0 means that all the picture are in one horizontal line.&lt;br /&gt;
&lt;br /&gt;
=== allow_low_quality_rotation ===&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;
=== lines_per_file ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint64]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;&amp;quot;filenames&amp;quot;&amp;lt;/code&amp;gt; exists.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;pictures =&lt;br /&gt;
    {&lt;br /&gt;
      layers =&lt;br /&gt;
      {&lt;br /&gt;
        {&lt;br /&gt;
          filename = &amp;quot;__base__/graphics/entity/radar/radar.png&amp;quot;,&lt;br /&gt;
          priority = &amp;quot;low&amp;quot;,&lt;br /&gt;
          width = 98,&lt;br /&gt;
          height = 128,&lt;br /&gt;
          apply_projection = false,&lt;br /&gt;
          direction_count = 64,&lt;br /&gt;
          line_length = 8,&lt;br /&gt;
          shift = util.by_pixel(1, -16),&lt;br /&gt;
          hr_version =&lt;br /&gt;
          {&lt;br /&gt;
            filename = &amp;quot;__base__/graphics/entity/radar/hr-radar.png&amp;quot;,&lt;br /&gt;
            priority = &amp;quot;low&amp;quot;,&lt;br /&gt;
            width = 196,&lt;br /&gt;
            height = 254,&lt;br /&gt;
            apply_projection = false,&lt;br /&gt;
            direction_count = 64,&lt;br /&gt;
            line_length = 8,&lt;br /&gt;
            shift = util.by_pixel(1, -16),&lt;br /&gt;
            scale = 0.5&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          filename = &amp;quot;__base__/graphics/entity/radar/radar-shadow.png&amp;quot;,&lt;br /&gt;
          priority = &amp;quot;low&amp;quot;,&lt;br /&gt;
          width = 172,&lt;br /&gt;
          height = 94,&lt;br /&gt;
          apply_projection = false,&lt;br /&gt;
          direction_count = 64,&lt;br /&gt;
          line_length = 8,&lt;br /&gt;
          shift = util.by_pixel(39,3),&lt;br /&gt;
          draw_as_shadow = true,&lt;br /&gt;
          hr_version =&lt;br /&gt;
          {&lt;br /&gt;
            filename = &amp;quot;__base__/graphics/entity/radar/hr-radar-shadow.png&amp;quot;,&lt;br /&gt;
            priority = &amp;quot;low&amp;quot;,&lt;br /&gt;
            width = 343,&lt;br /&gt;
            height = 186,&lt;br /&gt;
            apply_projection = false,&lt;br /&gt;
            direction_count = 64,&lt;br /&gt;
            line_length = 8,&lt;br /&gt;
            shift = util.by_pixel(39.25,3),&lt;br /&gt;
            draw_as_shadow = true,&lt;br /&gt;
            scale = 0.5&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prototype property type usage|{{FULLPAGENAME}}}}&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/RotatedAnimation&amp;diff=184071</id>
		<title>Types/RotatedAnimation</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/RotatedAnimation&amp;diff=184071"/>
		<updated>2020-12-24T02:22:23Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Surround new draw_as_* descriptions with &amp;lt;code&amp;gt;tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
=== direction_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&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/RotatedAnimation]]&lt;br /&gt;
&lt;br /&gt;
If this property is present, all RotatedAnimation definitions have to be placed as entries in the array, and they will all be loaded from there. Each item (RotatedAnimation 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/RotatedAnimation]]&lt;br /&gt;
&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the RotatedAnimation.&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;stripes&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;filenames&amp;lt;/code&amp;gt; is not specified.&lt;br /&gt;
&lt;br /&gt;
=== filenames ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[types/table]] of [[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;
Only loaded if &amp;lt;code&amp;gt;stripes&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
=== slice ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;filenames&amp;lt;/code&amp;gt; is present.&lt;br /&gt;
&lt;br /&gt;
=== lines_per_file ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;filenames&amp;lt;/code&amp;gt; is present.&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;).&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;&#039;&#039;&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;
=== 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 avoid pictures with too big width.&lt;br /&gt;
The game engine limits the width of any input picture to 2048px, so it is compatible with most graphics cards.&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;
&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;
=== 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;
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;
=== dice_x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&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;
=== frame_sequence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AnimationFrameSequence]]&lt;br /&gt;
&lt;br /&gt;
=== still_frame ===&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;
=== axially_symmetrical ===&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;
If true, &amp;lt;code&amp;gt;direction_count&amp;lt;/code&amp;gt; must be greater than 1.&lt;br /&gt;
&lt;br /&gt;
=== counterclockwise ===&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;
=== middle_orientation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RealOrientation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
=== orientation_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;
Automatically clamped to be between 0 and 1.&lt;br /&gt;
&lt;br /&gt;
=== apply_projection ===&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;
=== 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;
{{Prototype property type usage|{{FULLPAGENAME}}}}&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/Animation&amp;diff=184070</id>
		<title>Types/Animation</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/Animation&amp;diff=184070"/>
		<updated>2020-12-24T02:19:26Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: Surround new draw_as_* descriptions with &amp;lt;code&amp;gt;tag&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;
== 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;).&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;
=== 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 avoid pictures with too big width.&lt;br /&gt;
The game engine limits the width of any input picture to 2048px, so it is compatible with most graphics cards.&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;
&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;
=== 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;
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;
=== dice_x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&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;
=== 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>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Sprite&amp;diff=184069</id>
		<title>Prototype/Sprite</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Sprite&amp;diff=184069"/>
		<updated>2020-12-23T02:13:08Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: use &amp;lt;code&amp;gt; around targets in new draw_as_glow and draw_as_light&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent}}&lt;br /&gt;
Specifies a picture that can be used with https://lua-api.factorio.com/latest/Concepts.html#SpritePath during runtime.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|sprite}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|type|[[Types/string|string]]}}&lt;br /&gt;
Must be &amp;quot;sprite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|name|[[Types/string|string]]}}&lt;br /&gt;
Name of the sprite. Must be unique. Can be used as a https://lua-api.factorio.com/latest/Concepts.html#SpritePath.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|filename|[[Types/FileName|FileName]]|&amp;quot;&amp;quot;}}&lt;br /&gt;
Technically optional, but path to sprite cannot be empty.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|layers|[[Types/table|table]] of [[Types/Sprite|Sprite]]|optional=true}}&lt;br /&gt;
If this property is present, all Sprite definitions have to be placed as entries in the array, and they will all be loaded from there. Each item (Sprite 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;
{{Prototype property|hr_version|[[Types/Sprite|Sprite]]|optional=true}}&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the sprite.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|slice or dice|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&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;
{{Prototype property|slice_x or dice_x|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&lt;br /&gt;
Same as &amp;lt;code&amp;gt;slice&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;
{{Prototype property|slice_y or dice_y|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&lt;br /&gt;
Same as &amp;lt;code&amp;gt;slice&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;
{{Prototype property|priority|[[Types/SpritePriority|SpritePriority]]|&amp;quot;medium&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|flags|[[Types/SpriteFlags|SpriteFlags]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|size|[[Types/SpriteSizeType|SpriteSizeType]] or [[Types/table|table]] of [[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&lt;br /&gt;
The width and height of the sprite. 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;
{{Prototype property|width|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; is not given. Width of the picture in pixels, from 0-8192.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|height|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; is not given. Height of the picture in pixels, from 0-8192.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|x|[[Types/SpriteSizeType|SpriteSizeType]]|0|optional=true}}&lt;br /&gt;
Horizontal position of the sprite in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|y|[[Types/SpriteSizeType|SpriteSizeType]]|0|optional=true}}&lt;br /&gt;
Vertical position of the sprite in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|position|[[Types/table|table]] of [[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&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;
{{Prototype property|shift|[[Types/vector|vector]]|&amp;lt;nowiki&amp;gt;{0, 0}&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
In tiles. util.by_pixel() can be used to divide the shift by 32 which is the usual pixel height/width of 1 tile in normal resolution. Note that 32 pixel tile height/width is not enforced anywhere - any other tile height or width is also possible.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|scale|[[Types/double|double]]|1|optional=true}}&lt;br /&gt;
Values different than 1 specify the scale of the sprite 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;
{{Prototype property|draw_as_shadow|[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|draw_as_glow |[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|draw_as_light |[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|mipmap_count|[[Types/uint8|uint8]]|0|optional=true}}&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;).&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|apply_runtime_tint|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tint|[[Types/Color|Color]]|&amp;lt;nowiki&amp;gt;{r=1, g=1, b=1, a=1} (white)&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|blend_mode|[[Types/BlendMode|BlendMode]]|&amp;quot;normal&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|load_in_minimal_mode|[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|premul_alpha|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
Whether alpha should be premultiplied.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|generate_sdf|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
    {&lt;br /&gt;
      type = &amp;quot;sprite&amp;quot;&lt;br /&gt;
      name = &amp;quot;accumulator-sprite&amp;quot;,&lt;br /&gt;
      filename = &amp;quot;__base__/graphics/entity/basic-accumulator/basic-accumulator.png&amp;quot;,&lt;br /&gt;
      priority = &amp;quot;extra-high&amp;quot;,&lt;br /&gt;
      width = 124,&lt;br /&gt;
      height = 103,&lt;br /&gt;
      shift = {0.7, -0.2}&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/Animation&amp;diff=184068</id>
		<title>Prototype/Animation</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/Animation&amp;diff=184068"/>
		<updated>2020-12-23T00:41:33Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: use &amp;lt;code&amp;gt; around targets in new draw_as_glow and draw_as_light&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent}}&lt;br /&gt;
Specifies a animation that can be used by https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.draw_animation during runtime.&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|animation}}&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|type|[[Types/string|string]]}}&lt;br /&gt;
Must be &amp;quot;animation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|name|[[Types/string|string]]}}&lt;br /&gt;
Name of the animation. Must be unique. Used in https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.draw_animation.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|layers|[[Types/table|table]] of [[Types/Animation|Animation]]|optional=true}}&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;
{{Prototype property|hr_version|[[Types/Animation|Animation]]|optional=true}}&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;
{{Prototype property|filename|[[Types/FileName|FileName]]|&amp;quot;&amp;quot;|optional=true}}&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;stripes&amp;lt;/code&amp;gt; is not specified.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|priority|[[Types/SpritePriority|SpritePriority]]|&amp;quot;medium&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|flags|[[Types/SpriteFlags|SpriteFlags]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|size|[[Types/SpriteSizeType|SpriteSizeType]] or [[Types/table|table]] of [[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&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;
{{Prototype property|width|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&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;
{{Prototype property|height|[[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&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;
{{Prototype property|x|[[Types/SpriteSizeType|SpriteSizeType]]|0|optional=true}}&lt;br /&gt;
Horizontal position of the animation in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|y|[[Types/SpriteSizeType|SpriteSizeType]]|0|optional=true}}&lt;br /&gt;
Vertical position of the animation in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|position|[[Types/table|table]] of [[Types/SpriteSizeType|SpriteSizeType]]|optional=true}}&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;
{{Prototype property|shift|[[Types/vector|vector]]|&amp;lt;nowiki&amp;gt;{0, 0}&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|scale|[[Types/double|double]]|1|optional=true}}&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;
{{Prototype property|draw_as_shadow|[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|draw_as_glow |[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|draw_as_light |[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|mipmap_count|[[Types/uint8|uint8]]|0|optional=true}}&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;).&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|apply_runtime_tint|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|tint|[[Types/Color|Color]]|&amp;lt;nowiki&amp;gt;{r=1, g=1, b=1, a=1} (white)&amp;lt;/nowiki&amp;gt;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|blend_mode|[[Types/BlendMode|BlendMode]]|&amp;quot;normal&amp;quot;|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|load_in_minimal_mode|[[Types/bool|bool]]|false|optional=true}}&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;
{{Prototype property|premul_alpha|[[Types/bool|bool]]|true|optional=true}}&lt;br /&gt;
Whether alpha should be premultiplied.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|generate_sdf|[[Types/bool|bool]]|false|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|run_mode|[[Types/string|string]]|&amp;quot;forward&amp;quot;|optional=true}}&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;
{{Prototype property|frame_count|[[Types/uint32|uint32]]|1|optional=true}}&lt;br /&gt;
Can&#039;t be 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|line_length|[[Types/uint32|uint32]]|0|optional=true}}&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 avoid pictures with too big width.&lt;br /&gt;
The game engine limits the width of any input picture to 2048px, so it is compatible with most graphics cards.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|animation_speed|[[Types/float|float]]|1|optional=true}}&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;
&lt;br /&gt;
{{Prototype property|max_advance|[[Types/float|float]]|MAX_FLOAT|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|repeat_count|[[Types/uint8|uint8]]|1|optional=true}}&lt;br /&gt;
Can&#039;t be 0.&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|dice|[[Types/uint8|uint8]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|dice_x|[[Types/uint8|uint8]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|dice_y|[[Types/uint8|uint8]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|frame_sequence|[[Types/AnimationFrameSequence|AnimationFrameSequence]]|optional=true}}&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|stripes|[[Types/table|table]] of [[Types/Stripe|Stripe]]|optional=true}}&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/AnimatedVector&amp;diff=182744</id>
		<title>Types/AnimatedVector</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/AnimatedVector&amp;diff=182744"/>
		<updated>2020-10-07T16:56:05Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used by [[Prototype/FluidTurret]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
=== rotations ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/table]]&lt;br /&gt;
&lt;br /&gt;
An array of tables with the following key/value pairs:&lt;br /&gt;
* frames - [[Types/table|array]] of [[Types/vector]] - Mandatory. Sizes of all &amp;lt;code&amp;gt;frames&amp;lt;/code&amp;gt; arrays must be the same.&lt;br /&gt;
* render_layer - [[Types/RenderLayer]] - Optional.&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== render_layer ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RenderLayer]]&lt;br /&gt;
&lt;br /&gt;
Default render layer for the rotations.&lt;br /&gt;
&lt;br /&gt;
=== direction_shift ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]]&lt;br /&gt;
&lt;br /&gt;
Table with the following optional key/value pairs:&lt;br /&gt;
* north - [[Types/vector]]&lt;br /&gt;
* east - [[Types/vector]]&lt;br /&gt;
* south - [[Types/vector]]&lt;br /&gt;
* west - [[Types/vector]]&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Prototype/UpgradeItem&amp;diff=182598</id>
		<title>Prototype/UpgradeItem</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Prototype/UpgradeItem&amp;diff=182598"/>
		<updated>2020-09-24T02:01:20Z</updated>

		<summary type="html">&lt;p&gt;Asdff45: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Prototype parent|Prototype/SelectionTool}}&lt;br /&gt;
An [[upgrade planner]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype TOC|upgrade-item}}&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
This prototype inherits all the properties from [[Prototype/SelectionTool]].&lt;br /&gt;
&lt;br /&gt;
{{Prototype property|mapper_count|[[Types/ItemStackIndex|ItemStackIndex]]|0|optional=true}}&lt;br /&gt;
Can&#039;t be &amp;gt; 255.&lt;br /&gt;
&lt;br /&gt;
== Differing defaults ==&lt;br /&gt;
&amp;lt;code&amp;gt;show_in_library&amp;lt;/code&amp;gt; defaults to true instead of false. &amp;lt;code&amp;gt;show_in_library&amp;lt;/code&amp;gt; is unused as of 0.18.13 as the ability to show any selection tools in the blueprint library was removed.&lt;br /&gt;
&lt;br /&gt;
== Mandatory values ==&lt;br /&gt;
Upgrade items must have a stack size of 1.&lt;br /&gt;
&lt;br /&gt;
== Ignored properties ==&lt;br /&gt;
&#039;&#039;&#039;Prototype/UpgradeItem&#039;&#039;&#039; ignores the following properties that it inherits from [[Prototype/SelectionTool]]:&lt;br /&gt;
* selection_mode (forced to be &amp;quot;upgrade&amp;quot;)&lt;br /&gt;
* alt_selection_mode (forced to be &amp;quot;cancel-upgrade&amp;quot;)&lt;br /&gt;
* always_include_tiles (forced to be false)&lt;br /&gt;
* entity_filters&lt;br /&gt;
* entity_type_filters&lt;br /&gt;
* tile_filters&lt;br /&gt;
* entity_filter_mode&lt;br /&gt;
* tile_filter_mode&lt;br /&gt;
* alt_entity_filters&lt;br /&gt;
* alt_entity_type_filters&lt;br /&gt;
* alt_tile_filters&lt;br /&gt;
* alt_entity_filter_mode&lt;br /&gt;
* alt_tile_filter_mode&lt;/div&gt;</summary>
		<author><name>Asdff45</name></author>
	</entry>
</feed>