<?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=Xiretza</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=Xiretza"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Xiretza"/>
	<updated>2026-04-22T23:54:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200428</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200428"/>
		<updated>2024-10-18T22:17:44Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: /* 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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;POST /generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by the game server once on startup to obtain a public identifier and a shared secret.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Shared secret between game server and auth server, opaque string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Server identifier, opaque string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;POST /generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by a client when attempting to join a game server.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Game server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;yymmddHHMMSS&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it must have been generated by the authentication server (because only it shares knowledge of the server padlock), thereby attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
# Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
# Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
# Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The game server should additionally verify that the &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; is not too far in the past (so leaked user-server-keys cannot be reused indefinitely), but it is currently unknown whether this is done, and if so, what the expiry time is.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200427</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200427"/>
		<updated>2024-10-18T22:13:44Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: &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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;POST /generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by the game server once on startup to obtain a public identifier and a shared secret.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Shared secret between game server and auth server, opaque string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Server identifier, opaque string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;POST /generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by a client when attempting to join a game server.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Game server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;YYMMDDhhmmss&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it must have been generated by the authentication server (because only it shares knowledge of the server padlock), thereby attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
# Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
# Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
# Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The game server should additionally verify that the &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; is not too far in the past (so leaked user-server-keys cannot be reused indefinitely), but it is currently unknown whether this is done, and if so, what the expiry time is.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Factorio_HTTP_API_usage_guidelines&amp;diff=200426</id>
		<title>Factorio HTTP API usage guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Factorio_HTTP_API_usage_guidelines&amp;diff=200426"/>
		<updated>2024-10-18T22:12:32Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: /* Internal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
Third party clients are welcome to use our HTTP APIs if they provide a benefit to players and creators in the Factorio community.&lt;br /&gt;
We ask developers to:&lt;br /&gt;
* ensure user privacy, e.g. by properly securing account secrets like passwords, tokens or API keys.&lt;br /&gt;
* respect server resources, e.g. by using exponential backoff in case of errors.&lt;br /&gt;
* communicate that their tool/library is in no way sanctioned by or associated with Wube Software.&lt;br /&gt;
We reserve the right to ban or rate limit abusive clients, IP addresses or accounts. Unless stated otherwise, our APIs should be considered internal.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
=== Internal ===&lt;br /&gt;
* These APIs are only supported for use with the official Factorio game clients or websites.&lt;br /&gt;
* Up-to-date documentation is not guaranteed.&lt;br /&gt;
* We strive to support very old Factorio releases, so these APIs won&#039;t change much most of the time.&lt;br /&gt;
&lt;br /&gt;
=== Public ===&lt;br /&gt;
* These APIs are intended to support developers building integrations with the official Factorio game clients or websites.&lt;br /&gt;
* Documentation will be kept up-to-date.&lt;br /&gt;
* Breaking changes to these APIs are communicated in a reasonable timeframe.&lt;br /&gt;
&lt;br /&gt;
=== Experimental ===&lt;br /&gt;
* Short-lived, unstable APIs&lt;br /&gt;
* For testing new features with the community&lt;br /&gt;
&lt;br /&gt;
== APIs ==&lt;br /&gt;
=== Internal ===&lt;br /&gt;
* [[Download API]]&lt;br /&gt;
* [[Matchmaking API]]&lt;br /&gt;
* [[Mod portal API]]&lt;br /&gt;
* [[Web authentication API]]&lt;br /&gt;
* [[Multiplayer authentication API]]&lt;br /&gt;
&lt;br /&gt;
=== Public ===&lt;br /&gt;
* [[Mod upload API]]&lt;br /&gt;
* [[Mod details API ]]&lt;br /&gt;
* [[Mod images API ]]&lt;br /&gt;
* [[Mod publish API ]]&lt;br /&gt;
&lt;br /&gt;
=== Experimental ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200424</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200424"/>
		<updated>2024-10-18T22:12:06Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Xiretza moved page User:Xiretza/Sandbox/Multiplayer authentication API to Multiplayer authentication API&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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by the game server once on startup to obtain a public identifier and a shared secret.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Shared secret between game server and auth server, opaque string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Server identifier, opaque string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by a client when attempting to join a game server.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Game server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;YYMMDDhhmmss&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it must have been generated by the authentication server (because only it shares knowledge of the server padlock), thereby attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
# Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
# Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
# Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The game server should additionally verify that the &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; is not too far in the past (so leaked user-server-keys cannot be reused indefinitely), but it is currently unknown whether this is done, and if so, what the expiry time is.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200423</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200423"/>
		<updated>2024-10-18T22:11:05Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: &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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by the game server once on startup to obtain a public identifier and a shared secret.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Shared secret between game server and auth server, opaque string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Server identifier, opaque string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by a client when attempting to join a game server.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || Set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; in all observed requests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Game server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;YYMMDDhhmmss&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it must have been generated by the authentication server (because only it shares knowledge of the server padlock), thereby attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
# Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
# Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
# Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The game server should additionally verify that the &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; is not too far in the past (so leaked user-server-keys cannot be reused indefinitely), but it is currently unknown whether this is done, and if so, what the expiry time is.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200422</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200422"/>
		<updated>2024-10-18T22:10:10Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: &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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by the game server once on startup to obtain a public identifier and a shared secret.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Shared secret between game server and auth server, opaque string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Server identifier, opaque string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by a client when attempting to join a game server.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Game server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;YYMMDDhhmmss&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it must have been generated by the authentication server (because only it shares knowledge of the server padlock), thereby attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
# Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
# Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
# Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The game server should additionally verify that the &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; is not too far in the past (so leaked user-server-keys cannot be reused indefinitely), but it is currently unknown whether this is done, and if so, what the expiry time is.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200421</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200421"/>
		<updated>2024-10-18T22:09:30Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: &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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by the game server once on startup to obtain a public identifier and a shared secret.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Shared secret between game server and auth server, opaque string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Server identifier, opaque string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
This endpoint is called by a client when attempting to join a game server.&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Game server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;YYMMDDhhmmss&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it must have been generated by the authentication server (because only it shares knowledge of the server padlock), thereby attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
# Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
# Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
# Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The game server should additionally verify that the &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; is not too far in the past (so leaked user-server-keys cannot be reused indefinitely), but it is currently unknown whether this is done, and if so, what the expiry time is.&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200420</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200420"/>
		<updated>2024-10-18T21:59:51Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: &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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Opaque random string, shared secret between game server and auth server&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Opaque game server identifier&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-user-server-key-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ x-www-form-urlencoded body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || The player&#039;s username, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt; || User auth token, as obtained from the [[Web authentication API]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sever_hash&amp;lt;/code&amp;gt; || Server&#039;s identifier, transmitted during connection establishment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; || string || Base-64 encoded user-server-key&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt; || string || Timestamp when &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; was issued, in &amp;lt;code&amp;gt;YYMMDDhhmmss&amp;lt;/code&amp;gt; format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User-server-key algorithm ==&lt;br /&gt;
&lt;br /&gt;
The game server verifies the join by calculating its own version of the user-server-key using the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt;, username, and &amp;lt;code&amp;gt;server_key_timestamp&amp;lt;/code&amp;gt;. If it matches the &amp;lt;code&amp;gt;server_key&amp;lt;/code&amp;gt; transmitted by the client, it knows that it was generated by the authentication server, attesting the validity of the user&#039;s credentials.&lt;br /&gt;
&lt;br /&gt;
The algorithm is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Concatenate the padlock, username and timestamp strings, separated by underscores.&lt;br /&gt;
2. Generate an MD5 HMAC over the resulting string, with the server padlock as the key&lt;br /&gt;
3. Base64-encode the result&lt;br /&gt;
&lt;br /&gt;
As an illustrative example, using shell commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ padlock=ZjX+YSCEZgdFMVCzLLt8F8NOoWAmAG9WkUwv1dir4gg=&lt;br /&gt;
$ username=Xiretza&lt;br /&gt;
$ timestamp=240208183717&lt;br /&gt;
&lt;br /&gt;
$ printf &#039;%s_%s_%s&#039; &amp;quot;$username&amp;quot; &amp;quot;$padlock&amp;quot; &amp;quot;$timestamp&amp;quot; | openssl mac -digest md5 -macopt &amp;quot;key:$padlock&amp;quot; -binary HMAC | base64&lt;br /&gt;
nV89TIBaIOvwUDQwrdK0/Q==&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200418</id>
		<title>Multiplayer authentication API</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Multiplayer_authentication_API&amp;diff=200418"/>
		<updated>2024-10-18T21:43:54Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Created page with &amp;quot;&amp;lt;div align=&amp;quot;center&amp;quot; class=&amp;quot;stub&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Category:&amp;#039;&amp;#039;&amp;#039; Internal API&amp;lt;/div&amp;gt;  The multiplayer authentication API allows multiplayer servers (be they dedicated headless servers or games hosted from within a client) to verify that a connecting user is who they claim to be.  An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].  All endpoints are...&amp;quot;&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 multiplayer authentication API allows multiplayer servers (be they dedicated [[Multiplayer#Dedicated/Headless_server|headless servers]] or games hosted from within a client) to verify that a connecting user is who they claim to be.&lt;br /&gt;
&lt;br /&gt;
An overview of the API architecture is given in [https://www.factorio.com/blog/post/fff-139 FFF-139].&lt;br /&gt;
&lt;br /&gt;
All endpoints are relative to the &amp;lt;code&amp;gt;https://auth.factorio.com/&amp;lt;/code&amp;gt; URL.&lt;br /&gt;
&lt;br /&gt;
== API endpoints ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/generate-server-padlock-2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== Request ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Query parameters&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api_version&amp;lt;/code&amp;gt; || always set to &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; by clients&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ JSON body&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; || string || Opaque random string&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;server_hash&amp;lt;/code&amp;gt; || string || Opaque identifier generated from the &amp;lt;code&amp;gt;server_padlock&amp;lt;/code&amp;gt; and a secret internal to the auth server&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=News&amp;diff=145763</id>
		<title>News</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=News&amp;diff=145763"/>
		<updated>2017-08-23T21:42:53Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fix single digit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- CURRENT NEWS - PLEASE ARCHIVE BELOW &lt;br /&gt;
     Only maximal 10 news should be new, the rest should be archived...&lt;br /&gt;
&lt;br /&gt;
If the main page isn&#039;t updated for you, visit: &lt;br /&gt;
http://www.factorioforums.com/wiki/index.php?title=Main_Page&amp;amp;action=purge&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Latest ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:600px&amp;quot;&amp;gt;&lt;br /&gt;
What should be in the news and what not?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;The Factorio News in this wiki should be that kind of news, which - viewed from some future (for example in a year) - will be still relevant information. Examples:&lt;br /&gt;
&lt;br /&gt;
* Good: A player has made an interesting tweak in building a factory, which never has been seen before.&lt;br /&gt;
* Bad: Some youtuber has made his 100th Let&#039;s play about Factorio.&lt;br /&gt;
* Good: The developers announce Greenlight Campaign of Factorio&lt;br /&gt;
* Bad: There is a serious bug in MacOS-Version and you need to update to the current.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:2;-moz-column-count:2;-webkit-column-count:2&amp;quot;&amp;gt;&lt;br /&gt;
* Aug 18 FFF #204: [https://www.factorio.com/blog/post/fff-204 Another day, another optimisation]&lt;br /&gt;
* Aug 11 FFF #203: [https://www.factorio.com/blog/post/fff-203 Logistic buffer chest]&lt;br /&gt;
* Aug 04 FFF #202: [https://www.factorio.com/blog/post/fff-202 High res circuit connectors]&lt;br /&gt;
* Jul 28 FFF #201: [https://www.factorio.com/blog/post/fff-201 0.15 Stable, but not really]&lt;br /&gt;
* Jul 21 FFF #200: [https://www.factorio.com/blog/post/fff-200 Plans for 0.16]&lt;br /&gt;
* Jul 14 FFF #199: [https://www.factorio.com/blog/post/fff-199 The story of tile transitions]&lt;br /&gt;
* Jul 07 FFF #198: [https://www.factorio.com/blog/post/fff-198 Rail segment visualisation]&lt;br /&gt;
* Jun 30 FFF #197: [https://www.factorio.com/blog/post/fff-197 Chugging along]&lt;br /&gt;
* Jun 23 FFF #196: [https://www.factorio.com/blog/post/fff-196 Back on track]&lt;br /&gt;
* Jun 16 FFF #195: [https://www.factorio.com/blog/post/fff-195 Poles re-design]&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;&#039;&#039;&#039;[[News#Archive|Older news...]]&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ARCHIVED NEWS (not included on main page) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Archive ==&lt;br /&gt;
&#039;&#039;Archived news don&#039;t appear on the main page.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 2017 ===&lt;br /&gt;
&lt;br /&gt;
==== June ====&lt;br /&gt;
&lt;br /&gt;
* Jun 09 FFF #194: [https://www.factorio.com/blog/post/fff-194 Automated combinator pipeline]&lt;br /&gt;
* Jun 03 FFF #193: [https://www.factorio.com/blog/post/fff-193 Party planning &amp;amp; plans]&lt;br /&gt;
&lt;br /&gt;
==== May ====&lt;br /&gt;
&lt;br /&gt;
* May 26 FFF #192: [https://www.factorio.com/blog/post/fff-192 One million]&lt;br /&gt;
* May 19 FFF #191: [https://www.factorio.com/blog/post/fff-191 Gui improvements]&lt;br /&gt;
* May 12 FFF #190: [https://www.factorio.com/blog/post/fff-190 The quiet days]&lt;br /&gt;
* May 05 FFF #189: [https://www.factorio.com/blog/post/fff-189 Specifying the 1.0].&lt;br /&gt;
&lt;br /&gt;
==== April ====&lt;br /&gt;
&lt;br /&gt;
* Apr 28 FFF #188: [https://www.factorio.com/blog/post/fff-188 Bug, Bug, Desync].&lt;br /&gt;
* Apr 21 FFF #187: [https://www.factorio.com/blog/post/fff-187 Space science &amp;amp; 0.15 graphics].&lt;br /&gt;
* Apr 14 FFF #186: [https://www.factorio.com/blog/post/fff-186 Marathon testing].&lt;br /&gt;
* Apr 07 FFF #185: [https://www.factorio.com/blog/post/fff-185 Progress report].&lt;br /&gt;
&lt;br /&gt;
==== March ====&lt;br /&gt;
&lt;br /&gt;
* Mar 31 FFF #184: [https://www.factorio.com/blog/post/fff-184 Five years of Factorio].&lt;br /&gt;
* Mar 23 FFF #183: [https://www.factorio.com/blog/post/fff-183 Aiming for the release date].&lt;br /&gt;
* Mar 17 FFF #182: [https://www.factorio.com/blog/post/fff-182 Optimizations, always more optimizations].&lt;br /&gt;
* Mar 10 FFF #181: [https://www.factorio.com/blog/post/fff-181 Calm before the storm].&lt;br /&gt;
* Mar 03 FFF #180: [https://www.factorio.com/blog/post/fff-180 Map improvements].&lt;br /&gt;
&lt;br /&gt;
==== February ====&lt;br /&gt;
&lt;br /&gt;
* Feb 24 FFF #179: [https://www.factorio.com/blog/post/fff-179 New resource graphics &amp;amp; concrete].&lt;br /&gt;
* Feb 17 FFF #178: [https://www.factorio.com/blog/post/fff-178 Minimal mode and Mini-tutorials].&lt;br /&gt;
* Feb 10 FFF #177: [https://www.factorio.com/blog/post/fff-177 Difficulty settings].&lt;br /&gt;
* Feb 03 FFF #176: [https://www.factorio.com/blog/post/fff-176 Belts optimization for 0.15].&lt;br /&gt;
&lt;br /&gt;
==== January ====&lt;br /&gt;
&lt;br /&gt;
* Jan 27 FFF #175: [https://www.factorio.com/blog/post/fff-175 Programmable speaker].&lt;br /&gt;
* Jan 20 FFF #174: [https://www.factorio.com/blog/post/fff-174 Mod gui].&lt;br /&gt;
* Jan 13 FFF #173: [https://www.factorio.com/blog/post/fff-173 Nuclear stuff is almost done].&lt;br /&gt;
* Jan 07 FFF #172: [https://www.factorio.com/blog/post/fff-172 Blending and Rendering].&lt;br /&gt;
&lt;br /&gt;
===2016===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[News/2016|Archived news from 2016]]&lt;br /&gt;
&lt;br /&gt;
===2015===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[News/2015|Archived news from 2015]]&lt;br /&gt;
&lt;br /&gt;
===2014===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[News/2014|Archived news from 2014]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Languages}}&lt;br /&gt;
{{C|Main}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Rocket_damage_(research)&amp;diff=125817</id>
		<title>Archive:Rocket damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Rocket_damage_(research)&amp;diff=125817"/>
		<updated>2016-07-02T22:40:11Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fix a single wrong % sign&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name=Rocket damage&lt;br /&gt;
|icon=rocket-damage&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = alien-technology + rocketry&lt;br /&gt;
|allows = rocket-damage,2-5&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus}}rocket damage bonus: 10%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|1|Rocket damage}} Rocket damage&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|2|Rocket damage}} Rocket damage&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;250&amp;lt;/big&amp;gt; || 10% || 20%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|3|Rocket damage}} Rocket damage&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 40%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|4|Rocket damage}} Rocket damage&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || 20% || 60%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|5|Rocket damage}} Rocket damage&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 20% || 80%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Rocket_damage_(research)&amp;diff=125816</id>
		<title>Archive:Rocket damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Rocket_damage_(research)&amp;diff=125816"/>
		<updated>2016-07-02T22:39:10Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fix infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name=Rocket damage&lt;br /&gt;
|icon=rocket-damage&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = alien-technology + rocketry&lt;br /&gt;
|allows = rocket-damage,2-5&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus}}rocket damage bonus: 10%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|1|Rocket damage}} Rocket damage&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|2|Rocket damage}} Rocket damage&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;250&amp;lt;/big&amp;gt; || 10% || %20&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|3|Rocket damage}} Rocket damage&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 40%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|4|Rocket damage}} Rocket damage&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || 20% || 60%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-damage|5|Rocket damage}} Rocket damage&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 20% || 80%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Fluid_handling_(research)&amp;diff=125815</id>
		<title>Fluid handling (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Fluid_handling_(research)&amp;diff=125815"/>
		<updated>2016-07-02T22:36:25Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: fix some icons&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
| cost           = time, 30 + science pack 1 + science pack 2&lt;br /&gt;
| costmultiplier = 75&lt;br /&gt;
| requirements   = oil processing&lt;br /&gt;
| allows         = &lt;br /&gt;
| effects        = storage tank + small pump + empty barrel + crude-oil-barrel + empty-crude-oil-barrel&lt;br /&gt;
}}&lt;br /&gt;
[[Fluid handling]] is a technology that gives the player access to more advanced ways to interact with liquids.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Oil processing]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Laser_shooting_speed_(research)&amp;diff=125814</id>
		<title>Laser shooting speed (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Laser_shooting_speed_(research)&amp;diff=125814"/>
		<updated>2016-07-02T22:32:54Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fix infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Laser turret shooting speed&lt;br /&gt;
|icon = laser-turret-speed&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = laser-turrets&lt;br /&gt;
|allows = laser-turret-speed,2-6&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} laser-turret shooting speed bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
These technologies cause laser turrets to shoot more often, assuming they can collect energy quickly enough.  Each shot costs a constant 800kJ; as the turrets shoot faster, they will require more power to operate effectively.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect !! Relative &amp;lt;br/&amp;gt;effect !! shots per &amp;lt;br/&amp;gt; second !! power (MW)&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-speed|1|Laser turret shooting speed}} Laser turret shooting&amp;amp;nbsp;speed&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 20% || 20% || 20% || 3.6 || 2.88&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-speed|2|Laser turret shooting speed}} Laser turret shooting&amp;amp;nbsp;speed&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 40% || 16.7% || 4.2 || 3.36&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-speed|3|Laser turret shooting speed}} Laser turret shooting&amp;amp;nbsp;speed&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}}  &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 70% || 21.4% || 5.1 || 4.08&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-speed|4|Laser turret shooting speed}} Laser turret shooting&amp;amp;nbsp;speed&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 100% || 17.6% || 6 || 4.8&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-speed|5|Laser turret shooting speed}} Laser turret shooting&amp;amp;nbsp;speed&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 130% || 15% || 6.9 || 5.52 &lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-speed|6|Laser turret shooting speed}} Laser turret shooting&amp;amp;nbsp;speed&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 30% || 160% || 13% || 7.8 || 6.24&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Laser turret shooting speed 6 has a relatively small effect, consider researching Laser turret damage upgrade 5 and 6 instead.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Laser turret damage upgrade]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Lab_research_speed_(research)&amp;diff=125813</id>
		<title>Lab research speed (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Lab_research_speed_(research)&amp;diff=125813"/>
		<updated>2016-07-02T22:30:35Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fix infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Lab efficiency&lt;br /&gt;
|icon = lab-effectivity&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = electronics&lt;br /&gt;
|allows = lab-effectivity,2-4&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus}} Laboratory speed bonus: 20%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Boosts the researching speed of laboratories.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect || Relative&amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|lab-effectivity|1|Lab efficiency}} Lab efficiency&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 20% || 20%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|lab-effectivity|2|Lab efficiency}} Lab efficiency&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || 30% || 50% || 25%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|lab-effectivity|3|Lab efficiency}} Lab efficiency&amp;amp;nbsp;3 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;250&amp;lt;/big&amp;gt; || 40% || 90% || 26.7%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|lab-effectivity|4|Lab efficiency}} Lab efficiency&amp;amp;nbsp;4 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;500&amp;lt;/big&amp;gt; || 50% || 140% || 26.3%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Gun_turret_damage_(research)&amp;diff=125812</id>
		<title>Archive:Gun turret damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Gun_turret_damage_(research)&amp;diff=125812"/>
		<updated>2016-07-02T22:25:30Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fix infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Gun turret damage upgrade&lt;br /&gt;
|icon = gun-turret-damage&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = turrets&lt;br /&gt;
|allows = gun-turret-damage,2-6&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} Gun-turret attack bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|gun-turret-damage|1|Gun turret damage upgrade}} Gun turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|gun-turret-damage|2|Gun turret damageupgrade}} Gun turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 10% || 20%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|gun-turret-damage|3|Gun turret damageupgrade}} Gun turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 40%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|gun-turret-damage|4|Gun turret damageupgrade}} Gun turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 60%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|gun-turret-damage|5|Gun turret damageupgrade}} Gun turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 80%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|gun-turret-damage|6|Gun turret damageupgrade}} Gun turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 40% || 120%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Worker_robot_cargo_size_(research)&amp;diff=125811</id>
		<title>Worker robot cargo size (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Worker_robot_cargo_size_(research)&amp;diff=125811"/>
		<updated>2016-07-02T22:22:21Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name=Logistic robot cargo size&lt;br /&gt;
|icon=logistic-robot-storage&lt;br /&gt;
|extra1=&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements=logistic-robotics&lt;br /&gt;
|allows=logistic-robot-storage,2-3&lt;br /&gt;
|extra2=&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus}} Logistic robot storage bonus: 1}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Increases the amount of items a robot can transport at once.&lt;br /&gt;
&lt;br /&gt;
It is directly related to [[Inserter item stack size bonus]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect !! Relative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-storage|1|Logistic robot cargo size}} Logistic robot cargo&amp;amp;nbsp;size&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 1 || 1 || 100%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-storage|2|Logistic robot cargo size}} Logistic robot cargo&amp;amp;nbsp;size&amp;amp;nbsp;2 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 1 || 2 || 50%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-storage|3|Logistic robot cargo size}} Logistic robot cargo&amp;amp;nbsp;size&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;450&amp;lt;/big&amp;gt; || 1 || 3 || 33.3%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Worker_robot_speed_(research)&amp;diff=125810</id>
		<title>Worker robot speed (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Worker_robot_speed_(research)&amp;diff=125810"/>
		<updated>2016-07-02T22:20:22Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Logistic robot speed&lt;br /&gt;
|icon = logistic-robot-speed&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = logistic robotics&lt;br /&gt;
|allows = logistic robot speed, 2-5&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} Logistic robot speed bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The [[Logistic robot speed]] bonus also aplies to [[Construction robot]]s.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative effect&amp;lt;sup&amp;gt;&amp;lt;i&amp;gt;[1]&amp;lt;/i&amp;gt;&amp;lt;/sup&amp;gt; !! Relative effect&amp;lt;sup&amp;gt;&amp;lt;i&amp;gt;[2]&amp;lt;/i&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-speed|1|Logistic robot speed}} Logistic robot speed&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 35% || 35% || 35%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-speed|2|Logistic robot speed}} Logistic robot speed&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 40% || 75% || 29.6%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-speed|3|Logistic robot speed}} Logistic robot speed&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || 45% || 120% || 25.7%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-speed|4|Logistic robot speed}} Logistic robot speed&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;250&amp;lt;/big&amp;gt; || 55% || 175% || 25%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|logistic-robot-speed|5|Logistic robot speed}} Logistic robot speed&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;500&amp;lt;/big&amp;gt; || 65% || 240% || 23.6%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;&amp;lt;i&amp;gt;[1]&amp;lt;/i&amp;gt;&amp;lt;/sup&amp;gt; percent bonus compared to bot without speed research&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;&amp;lt;i&amp;gt;[2]&amp;lt;/i&amp;gt;&amp;lt;/sup&amp;gt; percent bonus compared to bot with speed research of previous tier&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Rocket_shooting_speed_(research)&amp;diff=125809</id>
		<title>Archive:Rocket shooting speed (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Rocket_shooting_speed_(research)&amp;diff=125809"/>
		<updated>2016-07-02T21:35:45Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Rocket shooting speed&lt;br /&gt;
|icon = rocket-speed&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = alien technology + rocketry&lt;br /&gt;
|allows = rocket shooting speed,2-5 + rocket defense&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} rocket shooting speed bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-speed|1|Rocket shooting speed}} Rocket shooting speed&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 20%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-speed|2|Rocket shooting speed}} Rocket shooting speed&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;250&amp;lt;/big&amp;gt; || 20% || 40%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-speed|3|Rocket shooting speed}} Rocket shooting speed&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 30% || 70%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-speed|4|Rocket shooting speed}} Rocket shooting speed&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || 30% || 100%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|rocket-speed|5|Rocket shooting speed}} Rocket shooting speed&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 30% || 130%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Laser_turret_damage_(research)&amp;diff=125808</id>
		<title>Archive:Laser turret damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Laser_turret_damage_(research)&amp;diff=125808"/>
		<updated>2016-07-02T21:32:11Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard for real&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name         = Laser turret damage upgrade&lt;br /&gt;
|icon         = laser-turret-damage&lt;br /&gt;
|extra1       =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = laser turrets&lt;br /&gt;
|allows       = laser-turret-damage,2-6&lt;br /&gt;
|extra2       =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} laser-turret damage bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect !! Relative &amp;lt;br/&amp;gt; effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|1|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 10% || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|2|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 10% || 20% || 9.0%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|3|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 40% || 16.7%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|4|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 60% || 14.3%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|5|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 80% || 12.5%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|6|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 40% || 120% || 22.2%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Turrets deal 20/22/24/28/32/36/44 damage, depending on upgrade. As the enemies do not yet have laser resistance, they deal full damage.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hits to kill, assuming only laser turrets are used:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Laser Turret&amp;lt;br/&amp;gt;Damage !! Hits for&amp;lt;br/&amp;gt;Small Biter !! Hits for&amp;lt;br/&amp;gt;Medium Biter !! Hits for&amp;lt;br/&amp;gt;Large Biter !! Hits for&amp;lt;br/&amp;gt;Small Spitter!! Hits for&amp;lt;br/&amp;gt;Medium Spitter!! Hits for&amp;lt;br/&amp;gt;Large Spitter&lt;br /&gt;
|-&lt;br /&gt;
| 20  || 1 || 4 || 19 || 1 || 3 || 10&lt;br /&gt;
|-&lt;br /&gt;
| 22  || 1 || 4 || 18 || 1 || 3 || 10&lt;br /&gt;
|-&lt;br /&gt;
| 24  || 1 || 4 || 16 || 1 || 3 || 9&lt;br /&gt;
|-&lt;br /&gt;
| 28  || 1 || 3 || 14 || 1 || 2 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 32  || 1 || 3 || 12 || 1 || 2 || 7&lt;br /&gt;
|-&lt;br /&gt;
| 36  || 1 || 3 || 11 || 1 || 2 || 6&lt;br /&gt;
|-&lt;br /&gt;
| 44  || 1 || 2 ||  9 || 1 || 2 || 5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Laser turret shooting speed]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Laser_turret_damage_(research)&amp;diff=125807</id>
		<title>Archive:Laser turret damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Laser_turret_damage_(research)&amp;diff=125807"/>
		<updated>2016-07-02T21:31:34Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name         = Laser turret damage upgrade&lt;br /&gt;
|icon         = laser-turret-damage&lt;br /&gt;
|extra1       =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = laser turrets&lt;br /&gt;
|allows       = laser turret damage,2-6&lt;br /&gt;
|extra2       =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} laser-turret damage bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect !! Relative &amp;lt;br/&amp;gt; effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|1|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 10% || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|2|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 10% || 20% || 9.0%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|3|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 40% || 16.7%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|4|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 60% || 14.3%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|5|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 80% || 12.5%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|laser-turret-damage|6|Laser turret damage upgrade}} Laser turret damage&amp;amp;nbsp;upgrade&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 40% || 120% || 22.2%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Turrets deal 20/22/24/28/32/36/44 damage, depending on upgrade. As the enemies do not yet have laser resistance, they deal full damage.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hits to kill, assuming only laser turrets are used:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Laser Turret&amp;lt;br/&amp;gt;Damage !! Hits for&amp;lt;br/&amp;gt;Small Biter !! Hits for&amp;lt;br/&amp;gt;Medium Biter !! Hits for&amp;lt;br/&amp;gt;Large Biter !! Hits for&amp;lt;br/&amp;gt;Small Spitter!! Hits for&amp;lt;br/&amp;gt;Medium Spitter!! Hits for&amp;lt;br/&amp;gt;Large Spitter&lt;br /&gt;
|-&lt;br /&gt;
| 20  || 1 || 4 || 19 || 1 || 3 || 10&lt;br /&gt;
|-&lt;br /&gt;
| 22  || 1 || 4 || 18 || 1 || 3 || 10&lt;br /&gt;
|-&lt;br /&gt;
| 24  || 1 || 4 || 16 || 1 || 3 || 9&lt;br /&gt;
|-&lt;br /&gt;
| 28  || 1 || 3 || 14 || 1 || 2 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 32  || 1 || 3 || 12 || 1 || 2 || 7&lt;br /&gt;
|-&lt;br /&gt;
| 36  || 1 || 3 || 11 || 1 || 2 || 6&lt;br /&gt;
|-&lt;br /&gt;
| 44  || 1 || 2 ||  9 || 1 || 2 || 5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Laser turret shooting speed]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Character_logistic_slots_(research)&amp;diff=125806</id>
		<title>Archive:Character logistic slots (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Character_logistic_slots_(research)&amp;diff=125806"/>
		<updated>2016-07-02T21:28:56Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Character logistic slots&lt;br /&gt;
|icon = character-logistic-slots&lt;br /&gt;
|extra1 =&lt;br /&gt;
  Allows player to order items from storage and provider chests. These items will be delivered by the logistic robots.&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = logistic robotics&lt;br /&gt;
|allows = character logistic slots,2-4&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus}} Character receives 5 more logistic slots}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Allows player to order [[Items]] from the [[Logistic network]]. Works exactly like the [[Requester chest]].&lt;br /&gt;
&lt;br /&gt;
These items will be delivered by the [[Logistic robot]]s, as long as the character is inside a [[Robotic network]]. If the character goes outside, the logistic bots stop and try to deliver into another Requester chest.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|character-logistic-slots|1|Character logistic slots}} Character logistic slots&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || +5 slots || 5 slots&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|character-logistic-slots|2|Character logistic slots}} Character logistic slots&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || +5 slots || 10 slots&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|character-logistic-slots|3|Character logistic slots}} Character logistic slots&amp;amp;nbsp;3 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || +5 slots || 15 slots&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|character-logistic-slots|4|Character logistic slots}} Character logistic slots&amp;amp;nbsp;4 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;150&amp;lt;/big&amp;gt; || +5 slots || 20 slots&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Bullet_shooting_speed_(research)&amp;diff=125805</id>
		<title>Archive:Bullet shooting speed (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Bullet_shooting_speed_(research)&amp;diff=125805"/>
		<updated>2016-07-02T21:25:56Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Bullet shooting speed&lt;br /&gt;
|icon = bullet-speed&lt;br /&gt;
|extra1 =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements=military&lt;br /&gt;
|allows=bullet-speed,2-6&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} Bullet shooting speed bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The [[Bullet shooting speed]] technologies affects firerate of the [[Pistol]], [[Submachine gun]], [[Gun turret]], and [[Defender capsule]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|bullet-speed|1|Bullet shooting speed}} Bullet shooting speed&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 20% || 20%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|bullet-speed|2|Bullet shooting speed}} Bullet shooting speed&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 40%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|bullet-speed|3|Bullet shooting speed}} Bullet shooting speed&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 30% || 70%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|bullet-speed|4|Bullet shooting speed}} Bullet shooting speed&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 100%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|bullet-speed|5|Bullet shooting speed}} Bullet shooting speed&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 130%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|bullet-speed|6|Bullet shooting speed}} Bullet shooting speed&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 30% || 160%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Bullet damage]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Efficiency_module_(research)&amp;diff=125804</id>
		<title>Efficiency module (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Efficiency_module_(research)&amp;diff=125804"/>
		<updated>2016-07-02T21:23:37Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed Infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name = Efficiency module&lt;br /&gt;
|icon = efficiency module&lt;br /&gt;
|extra1 = &lt;br /&gt;
  Efficiency modules decrease the energy consumption of machines.&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = module&lt;br /&gt;
|allows       = efficiency module,2-3&lt;br /&gt;
|extra2 =&lt;br /&gt;
  {{InfocardVRow|Effects|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|effectivity-module||Efficiency module}} Efficiency module|| {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || {{icon|effectivity-module||Efficiency module}} &lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|effectivity-module|2|Efficiency module}} Efficiency module&amp;amp;nbsp;2|| {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;75&amp;lt;/big&amp;gt; || {{icon|effectivity-module-2||Efficiency module 2}} &lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|effectivity-module|3|Efficiency module}} Efficiency module&amp;amp;nbsp;3|| {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || {{icon|effectivity-module-3||Efficiency module 3}} &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Research]]&lt;br /&gt;
*[[Research#Technologies|Technologies]]&lt;br /&gt;
*[[Module]]s&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Shotgun_shell_shooting_speed_(research)&amp;diff=125803</id>
		<title>Archive:Shotgun shell shooting speed (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Shotgun_shell_shooting_speed_(research)&amp;diff=125803"/>
		<updated>2016-07-02T21:18:13Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name         = Shotgun shell shooting speed&lt;br /&gt;
|icon         = shotgun-shell-speed&lt;br /&gt;
|extra1       =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = military&lt;br /&gt;
|allows       = shotgun shell shooting speed&lt;br /&gt;
|extra2       =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} Shotgun shell shooting speed bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The [[Shotgun shell shooting speed]] technologies affects firerate of the [[Shotgun]] and the [[Combat shotgun]].&lt;br /&gt;
&lt;br /&gt;
==Levels==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect !! Relative&amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-speed|1|Shotgun shell shooting speed}} Shotgun shell shooting speed&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 20% || 20% || 20%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-speed|2|Shotgun shell shooting speed}} Shotgun shell shooting speed&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 40% || 16.7%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-speed|3|Shotgun shell shooting speed}} Shotgun shell shooting speed&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 30% || 70% || 21.4%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-speed|4|Shotgun shell shooting speed}} Shotgun shell shooting speed&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 100% || 17.6%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-speed|5|Shotgun shell shooting speed}} Shotgun shell shooting speed&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 130% || 15%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-speed|6|Shotgun shell shooting speed}} Shotgun shell shooting speed&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 30% || 160% || 13.0%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Shotgun shell damage]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Shotgun_shell_damage_(research)&amp;diff=125802</id>
		<title>Archive:Shotgun shell damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Shotgun_shell_damage_(research)&amp;diff=125802"/>
		<updated>2016-07-02T21:14:02Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name         = Shotgun shell damage&lt;br /&gt;
|icon         = shotgun-shell-damage&lt;br /&gt;
|extra1       =&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = military&lt;br /&gt;
|allows       = shotgun shell damage&lt;br /&gt;
|extra2       =&lt;br /&gt;
  {{InfocardVRow|Effects|{{icon|bonus||}} shotgun-shell damage bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The [[Shotgun shell damage]] technologies affects damage of the [[Shotgun]] and the [[Combat shotgun]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect || Relative&amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-damage|1|Shotgun shell damage}} Shotgun shell damage&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || 10% || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-damage|2|Shotgun shell damage}} Shotgun shell damage&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 10% || 20% || 9.0%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-damage|3|Shotgun shell damage}} Shotgun shell damage&amp;amp;nbsp;3 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 40% || 16.7%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-damage|4|Shotgun shell damage}} Shotgun shell damage&amp;amp;nbsp;4 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 60% || 14.3%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-damage|5|Shotgun shell damage}} Shotgun shell damage&amp;amp;nbsp;5 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 20% || 80% || 12.5%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|shotgun-shell-damage|6|Shotgun shell damage}} Shotgun shell damage&amp;amp;nbsp;6 || {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || 40% || 120% || 22.2%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Shotgun shell shooting speed]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Portable_solar_panel&amp;diff=125801</id>
		<title>Portable solar panel</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Portable_solar_panel&amp;diff=125801"/>
		<updated>2016-07-02T19:04:22Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Made infobox properly transcludable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Item&lt;br /&gt;
|name         = Portable solar panel&lt;br /&gt;
|icon         = portable-solar-panel&lt;br /&gt;
|extra1       = Can be inserted into armor.&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;text-align: left;&amp;quot;&amp;gt;Max. power output:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1.0 kW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
|dimensions   = 1x1&lt;br /&gt;
|input        = time, 10 + solar panel, 5 + processing unit + steel plate, 5&lt;br /&gt;
|technologies = portable solar panel&lt;br /&gt;
|producers    = manual + assembling machine 2 + assembling machine 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portable solar panels&#039;&#039;&#039; are the basic power generating units for [[Modular armor]]. They provide only a small amount of power, and only during the daytime.&lt;br /&gt;
&lt;br /&gt;
Portable solar panels can be used to slowly recharge [[Energy shield]]s out of combat, but are nearly useless for [[Personal laser defense]] or [[Basic exoskeleton equipment]], even with a large number of [[Battery|Batteries]].&lt;br /&gt;
&lt;br /&gt;
Portable solar panels are 1x1 in size and are therefore primarily used in [[Basic modular armor]], which has a 5x5 grid that cannot usefully hold a much more powerful 4x4 [[Portable fusion reactor]].  (It could store one, but there would be no room for anything to use the power.)&lt;br /&gt;
&lt;br /&gt;
The more advanced armors should almost always use portable fusion reactors instead.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;See also:&#039;&#039;&#039;&lt;br /&gt;
* [[Modular armor]]&lt;br /&gt;
* [[Basic modular armor]]&lt;br /&gt;
* [[Portable fusion reactor]]&lt;br /&gt;
&lt;br /&gt;
{{EquipNav}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Items]]&lt;br /&gt;
[[Category:Equipment]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Productivity_module_(research)&amp;diff=125800</id>
		<title>Productivity module (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Productivity_module_(research)&amp;diff=125800"/>
		<updated>2016-07-02T19:01:06Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name         = Productivity module&lt;br /&gt;
|extra1       = Productivity modules push the machine productivity to the limit (Enables to make more products from the same amount of ingredients) but they increase the energy consumption.&lt;br /&gt;
  {{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements = module&lt;br /&gt;
|allows       = productivity module,2-3&lt;br /&gt;
|extra2       =&lt;br /&gt;
  {{InfocardVRow|Effects|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|productivity-module||Productivity module}} Productivity module|| {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;50&amp;lt;/big&amp;gt; || {{icon|Productivity-module||Productivity module}} &lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|productivity-module|2|Productivity module}} Productivity module&amp;amp;nbsp;2|| {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;75&amp;lt;/big&amp;gt; || {{icon|Productivity-module-2||Productivity module 2}} &lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|productivity-module|3|Productivity module}} Productivity module&amp;amp;nbsp;3|| {{icon|Time icon|60|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;300&amp;lt;/big&amp;gt; || {{icon|Productivity-module-3||Productivity module 3}} &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
* [[Module]]s&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Archive:Combat_robot_damage_(research)&amp;diff=125798</id>
		<title>Archive:Combat robot damage (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Archive:Combat_robot_damage_(research)&amp;diff=125798"/>
		<updated>2016-07-02T18:50:04Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Fixed infocard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{Technology&lt;br /&gt;
|name=Combat robot damage&lt;br /&gt;
|icon=combat-robot-damage&lt;br /&gt;
|extra1=&lt;br /&gt;
{{InfocardVRow|Cost|&#039;&#039;see table&#039;&#039;}}&lt;br /&gt;
|requirements=combat robotics&lt;br /&gt;
|allows=combat-robot-damage&lt;br /&gt;
|extra2=&lt;br /&gt;
{{InfocardVRow|Effects|{{icon|bonus||}} Combat robot laser damage bonus: x%}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The [[Combat robot damage]] technologies affects damage of combat robots ([[Distractor capsule]] and [[Destroyer capsule]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Technology !! Cost !! Effects !! Cumulative &amp;lt;br/&amp;gt;effect !! Relative&amp;lt;br/&amp;gt;effect&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|combat-robot-damage|1|Combat robot damage}} Combat robot damage&amp;amp;nbsp;1 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 10% || 10% || 10%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|combat-robot-damage|2|Combat robot damage}} Combat robot damage&amp;amp;nbsp;2 || {{icon|Time icon|30|time}} {{icon|science-pack-1|1|Science pack 1}} {{icon|science-pack-2|1|Science pack 2}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 15% || 25% || 13.6%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|combat-robot-damage|3|Combat robot damage}} Combat robot damage&amp;amp;nbsp;3 || {{icon|Time icon|30|time}} {{icon|science-pack-1|2|Science pack 1}} {{icon|science-pack-2|2|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 20% || 45% || 16%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|combat-robot-damage|4|Combat robot damage}} Combat robot damage&amp;amp;nbsp;4 || {{icon|Time icon|30|time}} {{icon|science-pack-1|2|Science pack 1}} {{icon|science-pack-2|2|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;100&amp;lt;/big&amp;gt; || 25% || 70% || 17.2%&lt;br /&gt;
|-&lt;br /&gt;
| {{icontech|combat-robot-damage|5|Combat robot damage}} Combat robot damage&amp;amp;nbsp;5 || {{icon|Time icon|30|time}} {{icon|science-pack-1|2|Science pack 1}} {{icon|science-pack-2|2|Science pack 2}} {{icon|science-pack-3|1|Science pack 3}} {{icon|alien-science-pack|1|Alien science pack}} &amp;lt;big&amp;gt;X&amp;amp;nbsp;200&amp;lt;/big&amp;gt; || 30% || 100% || 17.6%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Research#Technologies|Technologies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Template:ConvertName&amp;diff=125795</id>
		<title>Template:ConvertName</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Template:ConvertName&amp;diff=125795"/>
		<updated>2016-07-02T18:13:22Z</updated>

		<summary type="html">&lt;p&gt;Xiretza: Added &amp;quot; (research)&amp;quot; to combat robot damage researches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
| time = time icon&lt;br /&gt;
&amp;lt;!-- ITEMS --&amp;gt;&lt;br /&gt;
| active provider chest = logistic-chest-active-provider&lt;br /&gt;
| advanced circuit = advanced-circuit&lt;br /&gt;
| alien artifact = alien-artifact&lt;br /&gt;
| alien science pack = alien-science-pack&lt;br /&gt;
| arithmetic combinator = arithmetic-combinator&lt;br /&gt;
| assembling machine 1 = assembling-machine-1&lt;br /&gt;
| assembling machine 2 = assembling-machine-2&lt;br /&gt;
| assembling machine 3 = assembling-machine-3&lt;br /&gt;
| basic accumulator = basic-accumulator&lt;br /&gt;
| basic beacon = basic-beacon&lt;br /&gt;
| basic electric discharge defense remote = basic-electric-discharge-defense-remote&lt;br /&gt;
| basic exoskeleton equipment = basic-exoskeleton-equipment&lt;br /&gt;
| basic grenade = basic-grenade&lt;br /&gt;
| basic modular armor = basic-modular-armor&lt;br /&gt;
| basic oil processing = basic-oil-processing&lt;br /&gt;
| battery = battery&lt;br /&gt;
| battery equipment = battery-equipment&lt;br /&gt;
| battery equipment mk2 = battery-mk2-equipment&lt;br /&gt;
| battery mk1 = battery-equipment&lt;br /&gt;
| battery mk2 = battery-mk2-equipment&lt;br /&gt;
| big electric pole = big-electric-pole&lt;br /&gt;
| blueprint = blueprint&lt;br /&gt;
| boiler = boiler&lt;br /&gt;
| burner inserter = burner-inserter&lt;br /&gt;
| burner mining drill = burner-mining-drill&lt;br /&gt;
| cannon shell = cannon-shell&lt;br /&gt;
| cannon shells = cannon-shell&lt;br /&gt;
| car = car&lt;br /&gt;
| cargo wagon = cargo-wagon&lt;br /&gt;
| chemical plant = chemical-plant&lt;br /&gt;
| coal = coal&lt;br /&gt;
| combat shotgun = combat-shotgun&lt;br /&gt;
| concrete = concrete&lt;br /&gt;
| constant combinator = constant-combinator&lt;br /&gt;
| construction robot = construction-robot&lt;br /&gt;
| copper cable = copper-cable&lt;br /&gt;
| copper ore = copper-ore&lt;br /&gt;
| copper plate = copper-plate&lt;br /&gt;
| crude oil = crude-oil&lt;br /&gt;
| curved rail = curved-rail&lt;br /&gt;
| decider combinator = decider-combinator&lt;br /&gt;
| deconstruction planner = deconstruction-planner&lt;br /&gt;
| defender = defender&lt;br /&gt;
| defender capsule = defender-capsule&lt;br /&gt;
| destroyer = destroyer&lt;br /&gt;
| destroyer capsule = destroyer-capsule&lt;br /&gt;
| diesel locomotive = diesel-locomotive&lt;br /&gt;
| discharge defense = basic-electric-discharge-defense-equipment&lt;br /&gt;
| distractor = distractor&lt;br /&gt;
| distractor capsule = distractor-capsule&lt;br /&gt;
| efficiency module = effectivity-module&lt;br /&gt;
| efficiency module 2 = effectivity-module-2&lt;br /&gt;
| efficiency module 3 = effectivity-module-3&lt;br /&gt;
| electric engine unit = electric-engine-unit&lt;br /&gt;
| electric furnace = electric-furnace&lt;br /&gt;
| electric mining drill = basic-mining-drill&lt;br /&gt;
| electronic circuit = electronic-circuit&lt;br /&gt;
| empty barrel = empty-barrel&lt;br /&gt;
| energy shield = energy-shield-equipment&lt;br /&gt;
| energy shield mk2 = energy-shield-mk2-equipment&lt;br /&gt;
| engine unit = engine-unit&lt;br /&gt;
| explosive cannon shell = explosive-cannon-shell&lt;br /&gt;
| explosive cannon shells = explosive-cannon-shell&lt;br /&gt;
| explosive rocket = explosive-rocket&lt;br /&gt;
| explosives = explosives&lt;br /&gt;
| express splitter = express-splitter&lt;br /&gt;
| express transport belt = express-transport-belt&lt;br /&gt;
| express underground belt = express-transport-belt-to-ground&lt;br /&gt;
| fast inserter = fast-inserter&lt;br /&gt;
| fast splitter = fast-splitter&lt;br /&gt;
| fast transport belt = fast-transport-belt&lt;br /&gt;
| fast underground belt = fast-transport-belt-to-ground&lt;br /&gt;
| flamethrower = flame-thrower&lt;br /&gt;
| flamethrower ammo = flame-thrower-ammo&lt;br /&gt;
| flying robot frame = flying-robot-frame&lt;br /&gt;
| gate = gate&lt;br /&gt;
| green wire = green-wire&lt;br /&gt;
| gun turret = gun-turret&lt;br /&gt;
| heavy armor = heavy-armor&lt;br /&gt;
| heavy oil = heavy-oil&lt;br /&gt;
| inserter = basic-inserter&lt;br /&gt;
| iron armor = basic-armor&lt;br /&gt;
| iron axe = iron-axe&lt;br /&gt;
| iron chest = iron-chest&lt;br /&gt;
| iron gear wheel = iron-gear-wheel&lt;br /&gt;
| iron ore = iron-ore&lt;br /&gt;
| iron plate = iron-plate&lt;br /&gt;
| iron stick = iron-stick&lt;br /&gt;
| lab = lab&lt;br /&gt;
| lamp = small-lamp&lt;br /&gt;
| land mine = land-mine&lt;br /&gt;
| laser turret = laser-turret&lt;br /&gt;
| light oil = light-oil&lt;br /&gt;
| logistic robot = logistic-robot&lt;br /&gt;
| long handed inserter = long-handed-inserter&lt;br /&gt;
| low density structure = rocket-structure&lt;br /&gt;
| lubricant = lubricant&lt;br /&gt;
| medium electric pole = medium-electric-pole&lt;br /&gt;
| night vision = night-vision-equipment&lt;br /&gt;
| offshore pump = offshore-pump&lt;br /&gt;
| oil refinery = oil-refinery&lt;br /&gt;
| passive provider chest = logistic-chest-passive-provider&lt;br /&gt;
| personal laser defense = basic-laser-defense-equipment&lt;br /&gt;
| personal roboport = personal-roboport-equipment&lt;br /&gt;
| petroleum gas = petroleum-gas&lt;br /&gt;
| piercing round magazine = piercing-bullet-magazine&lt;br /&gt;
| piercing rounds magazine = piercing-bullet-magazine&lt;br /&gt;
| piercing shotgun shell = piercing-shotgun-shell&lt;br /&gt;
| piercing shotgun shells = piercing-shotgun-shell&lt;br /&gt;
| pipe = pipe&lt;br /&gt;
| pipe-to-ground = pipe-to-ground&lt;br /&gt;
| pistol = pistol&lt;br /&gt;
| plastic bar = plastic-bar&lt;br /&gt;
| poison capsule = poison-capsule&lt;br /&gt;
| portable fusion reactor = fusion-reactor-equipment&lt;br /&gt;
| portable solar panel = solar-panel-equipment&lt;br /&gt;
| power armor = power-armor&lt;br /&gt;
| power armor mk2 = power-armor-mk2&lt;br /&gt;
| processing unit = processing-unit&lt;br /&gt;
| productivity module = productivity-module&lt;br /&gt;
| productivity module 2 = productivity-module-2&lt;br /&gt;
| productivity module 3 = productivity-module-3&lt;br /&gt;
| pumpjack = pumpjack&lt;br /&gt;
| radar = radar&lt;br /&gt;
| rail chain signal = rail-chain-signal&lt;br /&gt;
| rail signal = rail-signal&lt;br /&gt;
| raw fish = fish&lt;br /&gt;
| raw wood = raw-wood&lt;br /&gt;
| red wire = red-wire&lt;br /&gt;
| regular magazine = basic-bullet-magazine&lt;br /&gt;
| repair pack = repair-pack&lt;br /&gt;
| requester chest = logistic-chest-requester&lt;br /&gt;
| roboport = roboport&lt;br /&gt;
| rocket = rocket&lt;br /&gt;
| rocket control unit = rocket-control-unit&lt;br /&gt;
| rocket fuel = rocket-fuel&lt;br /&gt;
| rocket launcher = rocket-launcher&lt;br /&gt;
| rocket part = rocket-part&lt;br /&gt;
| rocket silo = rocket-silo&lt;br /&gt;
| satellite = satellite&lt;br /&gt;
| science pack 1 = science-pack-1&lt;br /&gt;
| science pack 2 = science-pack-2&lt;br /&gt;
| science pack 3 = science-pack-3&lt;br /&gt;
| shotgun = shotgun&lt;br /&gt;
| shotgun shell = shotgun-shell&lt;br /&gt;
| shotgun shells = shotgun-shell&lt;br /&gt;
| slowdown capsule = slowdown-capsule&lt;br /&gt;
| small electric pole = small-electric-pole&lt;br /&gt;
| small pump = small-pump&lt;br /&gt;
| smart chest = smart-chest&lt;br /&gt;
| smart inserter = smart-inserter&lt;br /&gt;
| solar panel = solar-panel&lt;br /&gt;
| solid fuel = solid-fuel&lt;br /&gt;
| solid fuel from heavy oil = solid-fuel-from-heavy-oil&lt;br /&gt;
| solid fuel from light oil = solid-fuel-from-light-oil&lt;br /&gt;
| solid fuel from petroleum gas = solid-fuel-from-petroleum-gas&lt;br /&gt;
| speed module = speed-module&lt;br /&gt;
| speed module 2 = speed-module-2&lt;br /&gt;
| speed module 3 = speed-module-3&lt;br /&gt;
| splitter = basic-splitter&lt;br /&gt;
| steam engine = steam-engine&lt;br /&gt;
| steel axe = Steel-axe&lt;br /&gt;
| steel chest = steel-chest&lt;br /&gt;
| steel furnace = steel-furnace&lt;br /&gt;
| steel plate = steel-plate&lt;br /&gt;
| stone = stone&lt;br /&gt;
| stone brick = stone-brick&lt;br /&gt;
| stone furnace = stone-furnace&lt;br /&gt;
| stone wall = stone-wall&lt;br /&gt;
| storage chest = logistic-chest-storage&lt;br /&gt;
| storage tank = storage-tank&lt;br /&gt;
| straight rail = straight-rail&lt;br /&gt;
| submachine gun = submachine-gun&lt;br /&gt;
| substation = substation&lt;br /&gt;
| sulfur = sulfur&lt;br /&gt;
| sulfuric acid = sulfuric-acid&lt;br /&gt;
| tank = tank&lt;br /&gt;
| train stop = train-stop&lt;br /&gt;
| transport belt = basic-transport-belt&lt;br /&gt;
| underground belt = basic-transport-belt-to-ground&lt;br /&gt;
| water = water&lt;br /&gt;
| wood = wood&lt;br /&gt;
| wooden chest = wooden-chest&lt;br /&gt;
&amp;lt;!-- TECHNOLOGIES --&amp;gt;&lt;br /&gt;
| advanced electronics (research) = advanced-electronics-research&lt;br /&gt;
| advanced electronics 2 (research) = advanced-electronics-2-research&lt;br /&gt;
| advanced material processing (research) = advanced-material-processing-research&lt;br /&gt;
| advanced material processing 2 (research) = advanced-material-processing-research&lt;br /&gt;
| advanced oil processing (research) = oil-processing-research&lt;br /&gt;
| alien technology (research) = alien-technology-research&lt;br /&gt;
| armor crafting (research) = armor-making-research&lt;br /&gt;
| armor crafting 1 (research) = armor-making-research&lt;br /&gt;
| armor crafting 2 (research) = armor-making-research&lt;br /&gt;
| armor crafting 3 (research) = armor-making-research&lt;br /&gt;
| automated construction (research) = automated-construction-research&lt;br /&gt;
| automated rail transportation (research) = automated-rail-transportation-research&lt;br /&gt;
| automation (research) = automation-research&lt;br /&gt;
| automation 2 (research) = automation-research&lt;br /&gt;
| automation 3 (research) = automation-research&lt;br /&gt;
| automobilism (research) = automobilism-research&lt;br /&gt;
| basic exoskeleton equipment (research) = basic-exoskeleton-equipment-research&lt;br /&gt;
| battery (research) = battery-research&lt;br /&gt;
| battery equipment (research) = battery-equipment-research&lt;br /&gt;
| battery equipment mk2 (research) = battery-mk2-equipment-research&lt;br /&gt;
| bullet damage (research) = bullet-damage-research&lt;br /&gt;
| bullet damage 1 (research) = bullet-damage-research&lt;br /&gt;
| bullet damage 2 (research) = bullet-damage-research&lt;br /&gt;
| bullet damage 3 (research) = bullet-damage-research&lt;br /&gt;
| bullet damage 4 (research) = bullet-damage-research&lt;br /&gt;
| bullet damage 5 (research) = bullet-damage-research&lt;br /&gt;
| bullet damage 6 (research) = bullet-damage-research&lt;br /&gt;
| bullet shooting speed (research) = bullet-speed-research&lt;br /&gt;
| bullet shooting speed 1 (research) = bullet-speed-research&lt;br /&gt;
| bullet shooting speed 2 (research) = bullet-speed-research&lt;br /&gt;
| bullet shooting speed 3 (research) = bullet-speed-research&lt;br /&gt;
| bullet shooting speed 4 (research) = bullet-speed-research&lt;br /&gt;
| bullet shooting speed 5 (research) = bullet-speed-research&lt;br /&gt;
| bullet shooting speed 6 (research) = bullet-speed-research&lt;br /&gt;
| character logistic slots (research) = character-logistic-slots-research&lt;br /&gt;
| character logistic slots 1 (research) = character-logistic-slots-research&lt;br /&gt;
| character logistic slots 2 (research) = character-logistic-slots-research&lt;br /&gt;
| character logistic slots 3 (research) = character-logistic-slots-research&lt;br /&gt;
| character logistic slots 4 (research) = character-logistic-slots-research&lt;br /&gt;
| character logistic slots 5 (research) = character-logistic-slots-research&lt;br /&gt;
| character logistic trash slots (research) = character-logistic-trash-slots-research&lt;br /&gt;
| character logistic trash slots 1 (research) = character-logistic-trash-slots-research&lt;br /&gt;
| character logistic trash slots 2 (research) = character-logistic-trash-slots-research&lt;br /&gt;
| circuit network (research) = circuit-network-research&lt;br /&gt;
| combat robotics (research) = combat-robotics-research&lt;br /&gt;
| combat robotics 1 (research) = combat-robotics-research&lt;br /&gt;
| combat robotics 2 (research) = combat-robotics-research&lt;br /&gt;
| combat robotics 3 (research) = combat-robotics-research&lt;br /&gt;
| combat robot damage (research) = combat-robot-damage-research&lt;br /&gt;
| combat robot damage 1 (research) = combat-robot-damage-research&lt;br /&gt;
| combat robot damage 2 (research) = combat-robot-damage-research&lt;br /&gt;
| combat robot damage 3 (research) = combat-robot-damage-research&lt;br /&gt;
| combat robot damage 4 (research) = combat-robot-damage-research&lt;br /&gt;
| combat robot damage 5 (research) = combat-robot-damage-research&lt;br /&gt;
| concrete (research) = concrete-research&lt;br /&gt;
| construction robotics (research) = construction-robotics-research&lt;br /&gt;
| discharge defense (research) = basic-electric-discharge-defense-equipment-research&lt;br /&gt;
| effect transmission (research) = effect-transmission-research&lt;br /&gt;
| efficiency module (research) = effectivity-module-research&lt;br /&gt;
| efficiency module 1 (research) = effectivity-module-research&lt;br /&gt;
| efficiency module 2 (research) = effectivity-module-research&lt;br /&gt;
| efficiency module 3 (research) = effectivity-module-research&lt;br /&gt;
| electronics (research) = electronics-research&lt;br /&gt;
| electric energy accumulators 1 (research) = electric-energy-acumulators-research&lt;br /&gt;
| electric energy distribution 1 (research) = electric-energy-distribution-research&lt;br /&gt;
| electric energy distribution 2 (research) = electric-energy-distribution-research&lt;br /&gt;
| electric engine (research) = electric-engine-research&lt;br /&gt;
| energy shield equipment (research) = energy-shield-equipment-research&lt;br /&gt;
| energy shield mk2 equipment (research) = energy-shield-mk2-equipment-research&lt;br /&gt;
| engine (research) = engine-research&lt;br /&gt;
| explosive rocketry (research) = explosive-rocketry-research&lt;br /&gt;
| explosives (research) = explosives-research&lt;br /&gt;
| flame thrower (research) = flame-thrower-research&lt;br /&gt;
| flammables (research) = flammables-research&lt;br /&gt;
| flight (research) = flying-research&lt;br /&gt;
| fluid handling (research) = fluid-handling-research&lt;br /&gt;
| follower robot count (research) = follower-robots-research&lt;br /&gt;
| follower robot count 1 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 2 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 3 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 4 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 5 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 6 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 7 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 8 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 9 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 10 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 11 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 12 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 13 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 14 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 15 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 16 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 17 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 18 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 19 (research) = follower-robots-research&lt;br /&gt;
| follower robot count 20 (research) = follower-robots-research&lt;br /&gt;
| gates (research) = gates-research&lt;br /&gt;
| gun turret damage upgrade (research) = gun-turret-damage-research&lt;br /&gt;
| gun turret damage upgrade 1 (research) = gun-turret-damage-research&lt;br /&gt;
| gun turret damage upgrade 2 (research) = gun-turret-damage-research&lt;br /&gt;
| gun turret damage upgrade 3 (research) = gun-turret-damage-research&lt;br /&gt;
| gun turret damage upgrade 4 (research) = gun-turret-damage-research&lt;br /&gt;
| gun turret damage upgrade 5 (research) = gun-turret-damage-research&lt;br /&gt;
| gun turret damage upgrade 6 (research) = gun-turret-damage-research&lt;br /&gt;
| inserter item stack size bonus (research) = inserter-stack-size-bonus-research&lt;br /&gt;
| inserter item stack size bonus 1 (research) = inserter-stack-size-bonus-research&lt;br /&gt;
| inserter item stack size bonus 2 (research) = inserter-stack-size-bonus-research&lt;br /&gt;
| inserter item stack size bonus 3 (research) = inserter-stack-size-bonus-research&lt;br /&gt;
| inserter item stack size bonus 4 (research) = inserter-stack-size-bonus-research&lt;br /&gt;
| lab efficiency (research) = research-effectivity-research&lt;br /&gt;
| lab efficiency 1 (research) = research-effectivity-research&lt;br /&gt;
| lab efficiency 2 (research) = research-effectivity-research&lt;br /&gt;
| lab efficiency 3 (research) = research-effectivity-research&lt;br /&gt;
| lab efficiency 4 (research) = research-effectivity-research&lt;br /&gt;
| land mines (research) = land-mine-research&lt;br /&gt;
| laser (research) = laser-research&lt;br /&gt;
| laser turret damage upgrade (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret damage upgrade 1 (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret damage upgrade 2 (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret damage upgrade 3 (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret damage upgrade 4 (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret damage upgrade 5 (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret damage upgrade 6 (research) = laser-turret-damage-research&lt;br /&gt;
| laser turret shooting speed (research) = laser-turret-speed-research&lt;br /&gt;
| laser turret shooting speed 1 (research) = laser-turret-speed-research&lt;br /&gt;
| laser turret shooting speed 2 (research) = laser-turret-speed-research&lt;br /&gt;
| laser turret shooting speed 3 (research) = laser-turret-speed-research&lt;br /&gt;
| laser turret shooting speed 4 (research) = laser-turret-speed-research&lt;br /&gt;
| laser turret shooting speed 5 (research) = laser-turret-speed-research&lt;br /&gt;
| laser turret shooting speed 6 (research) = laser-turret-speed-research&lt;br /&gt;
| laser turrets (research) = laser-turrets-research&lt;br /&gt;
| logistic robot cargo size (research) = logistic-robot-storage-research&lt;br /&gt;
| logistic robot cargo size 1 (research) = logistic-robot-storage-research&lt;br /&gt;
| logistic robot cargo size 2 (research) = logistic-robot-storage-research&lt;br /&gt;
| logistic robot cargo size 3 (research) = logistic-robot-storage-research&lt;br /&gt;
| logistic robot speed (research) = logistic-robot-speed-research&lt;br /&gt;
| logistic robot speed 1 (research) = logistic-robot-speed-research&lt;br /&gt;
| logistic robot speed 2 (research) = logistic-robot-speed-research&lt;br /&gt;
| logistic robot speed 3 (research) = logistic-robot-speed-research&lt;br /&gt;
| logistic robot speed 4 (research) = logistic-robot-speed-research&lt;br /&gt;
| logistic robot speed 5 (research) = logistic-robot-speed-research&lt;br /&gt;
| logistic robotics (research) = logistic-robotics-research&lt;br /&gt;
| logistic system (research) = logistic-system-research&lt;br /&gt;
| logistics (research) = logistics-research&lt;br /&gt;
| logistics 2 (research) = logistics-research&lt;br /&gt;
| logistics 3 (research) = logistics-research&lt;br /&gt;
| military (research) = military-research&lt;br /&gt;
| military 1 (research) = military-research&lt;br /&gt;
| military 2 (research) = military-research&lt;br /&gt;
| military 3 (research) = military-research&lt;br /&gt;
| military 4 (research) = military-research&lt;br /&gt;
| modules (research) = module-research&lt;br /&gt;
| night vision (research) = night-vision-equipment-research&lt;br /&gt;
| oil processing (research) = oil-gathering-research&lt;br /&gt;
| optics (research) = optics-research&lt;br /&gt;
| personal laser defense (research) = basic-laser-defense-equipment-research&lt;br /&gt;
| personal roboport (research) = personal-roboport-equipment-research&lt;br /&gt;
| plastics (research) = plastics-research&lt;br /&gt;
| portable fusion reactor (research) = fusion-reactor-equipment-research&lt;br /&gt;
| portable solar panel (research) = solar-panel-equipment-research&lt;br /&gt;
| power armor (research) = power-armor-research&lt;br /&gt;
| power armor 2 (research) = power-armor-mk2-research&lt;br /&gt;
| productivity module (research) = productivity-module-research&lt;br /&gt;
| productivity module 1 (research) = productivity-module-research&lt;br /&gt;
| productivity module 2 (research) = productivity-module-research&lt;br /&gt;
| productivity module 3 (research) = productivity-module-research&lt;br /&gt;
| rail signals (research) = rail-signals-research&lt;br /&gt;
| railway (research) = railway-research&lt;br /&gt;
| robotics (research) = robotics-research&lt;br /&gt;
| rocket damage (research) = rocket-damage-research&lt;br /&gt;
| rocket damage 1 (research) = rocket-damage-research&lt;br /&gt;
| rocket damage 2 (research) = rocket-damage-research&lt;br /&gt;
| rocket damage 3 (research) = rocket-damage-research&lt;br /&gt;
| rocket damage 4 (research) = rocket-damage-research&lt;br /&gt;
| rocket damage 5 (research) = rocket-damage-research&lt;br /&gt;
| rocket shooting speed (research) = rocket-speed-research&lt;br /&gt;
| rocket shooting speed 1 (research) = rocket-speed-research&lt;br /&gt;
| rocket shooting speed 2 (research) = rocket-speed-research&lt;br /&gt;
| rocket shooting speed 3 (research) = rocket-speed-research&lt;br /&gt;
| rocket shooting speed 4 (research) = rocket-speed-research&lt;br /&gt;
| rocket shooting speed 5 (research) = rocket-speed-research&lt;br /&gt;
| rocket silo (research) = rocket-silo-research&lt;br /&gt;
| rocketry (research) = rocketry-research&lt;br /&gt;
| shotgun shell damage (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell damage 1 (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell damage 2 (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell damage 3 (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell damage 4 (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell damage 5 (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell damage 6 (research) = shotgun-shell-damage-research&lt;br /&gt;
| shotgun shell shooting speed (research) = shotgun-shell-speed-research&lt;br /&gt;
| shotgun shell shooting speed 1 (research) = shotgun-shell-speed-research&lt;br /&gt;
| shotgun shell shooting speed 2 (research) = shotgun-shell-speed-research&lt;br /&gt;
| shotgun shell shooting speed 3 (research) = shotgun-shell-speed-research&lt;br /&gt;
| shotgun shell shooting speed 4 (research) = shotgun-shell-speed-research&lt;br /&gt;
| shotgun shell shooting speed 5 (research) = shotgun-shell-speed-research&lt;br /&gt;
| shotgun shell shooting speed 6 (research) = shotgun-shell-speed-research&lt;br /&gt;
| solar energy (research) = solar-energy-research&lt;br /&gt;
| speed module (research) = speed-module-research&lt;br /&gt;
| speed module 1 (research) = speed-module-research&lt;br /&gt;
| speed module 2 (research) = speed-module-research&lt;br /&gt;
| speed module 3 (research) = speed-module-research&lt;br /&gt;
| steel processing (research) = steel-processing-research&lt;br /&gt;
| stone walls (research) = stone-walls-research&lt;br /&gt;
| sulfur processing (research) = sulfur-processing-research&lt;br /&gt;
| tanks (research) = tanks-research&lt;br /&gt;
| toolbelt (research) = toolbelt-research&lt;br /&gt;
| turrets (research) = turrets-research&lt;br /&gt;
&amp;lt;!-- LEGACY --&amp;gt;&lt;br /&gt;
| advanced chemistry (research) = advanced-chemistry-research&lt;br /&gt;
| chemistry (research) = chemistry-research&lt;br /&gt;
| filter inserter = filter-inserter&lt;br /&gt;
| iron working (research)= iron-working-research&lt;br /&gt;
| rocket defense = rocket-defense&lt;br /&gt;
| rocket defense (research) = rocket-defense&lt;br /&gt;
&amp;lt;!-- OTHER --&amp;gt;&lt;br /&gt;
| hand&lt;br /&gt;
| manual = hand_icon&lt;br /&gt;
| #default = {{{1|error}}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xiretza</name></author>
	</entry>
</feed>