<?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=Sir+Fendi</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=Sir+Fendi"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Sir_Fendi"/>
	<updated>2026-06-07T23:01:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=196493</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=196493"/>
		<updated>2024-02-20T22:27:20Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: added &amp;amp; fixed: Enable/Disable enemy bases entirely&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
The &#039;&#039;&#039;console&#039;&#039;&#039; is Factorio&#039;s in-game command-line interface. See [[command line parameters]] for the command line interface of the Factorio executable.&lt;br /&gt;
&lt;br /&gt;
The in-game console can be used for:&lt;br /&gt;
&lt;br /&gt;
* Chatting with other players&lt;br /&gt;
* Occasional status updates&lt;br /&gt;
* Running commands / scripts / cheats&lt;br /&gt;
&lt;br /&gt;
There are three types of commands:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[#Normal commands|Normal]]&#039;&#039;&#039; - Display information about the game and customize your experience.&lt;br /&gt;
* &#039;&#039;&#039;[[#Multiplayer commands|Multiplayer]]&#039;&#039;&#039; - Message filtering, banning users, etc.&lt;br /&gt;
* &#039;&#039;&#039;[[#Scripting and cheat commands|Scripting/Cheating]]&#039;&#039;&#039; - Run small Lua scripts (but they &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;disable achievements for the save game&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Using the console ===&lt;br /&gt;
The console display can be toggled with the {{keybinding|/}} (slash) or {{keybinding|~}} (tilde) keys.&lt;br /&gt;
&lt;br /&gt;
You can customize the keys via &#039;&#039;&#039;Settings menu → Controls → Toggle chat (and Lua console)&#039;&#039;&#039;.&lt;br /&gt;
When the console is open, you&#039;ll see a blinking cursor at the bottom of the screen; type your message or command and hit &#039;&#039;&#039;Return&#039;&#039;&#039; to send it (this will also close the console).&lt;br /&gt;
Documentation about message and command prefixes can be found further down this page.&lt;br /&gt;
&lt;br /&gt;
The console supports [[rich text]] tags. These tags are useful for sharing blueprints, marking map locations in chat or adding icons to map markers and train stations. Ctrl + Alt-clicking the map or ground will automatically insert a GPS tag and post it into the console. Shift-clicking most things with the console open will insert a tag for that thing into the console.&lt;br /&gt;
&lt;br /&gt;
When the console is closed, only the most recent messages/commands will be displayed, but they will gradually fade away (opening the console will immediately re-display all recent messages).&lt;br /&gt;
Note that by default, all executed commands are made visible to all users. The fade-out time can be changed via &#039;&#039;&#039;Settings menu → Interface → Chat message delay&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The console can be cleared with the &#039;&#039;&#039;/clear&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
Use the {{keybinding|&amp;amp;uarr;}} and {{keybinding|&amp;amp;darr;}} keys to scroll through the console history. The {{keybinding|Tab}} key provides intelligent code completion on commands, options and player names.&lt;br /&gt;
&lt;br /&gt;
== Normal commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Command&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Example&lt;br /&gt;
! style=&amp;quot;width:46%&amp;quot;| Description&lt;br /&gt;
! style=&amp;quot;width:4%&amp;quot;| Admin only&lt;br /&gt;
|-&lt;br /&gt;
| /alerts &amp;lt;enable/disable/mute/unmute&amp;gt; &amp;lt;alert&amp;gt;&lt;br /&gt;
| /alerts disable turret_fire&lt;br /&gt;
| Enables, disables, mutes, or unmutes the given  [[alerts|alert]] type. Available alerts: entity_destroyed, entity_under_attack, not_enough_construction_robots, no_material_for_construction, not_enough_repair packs, turret_fire, custom, no_storage, train_out_of_fuel, fluid_mixing.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /clear&lt;br /&gt;
| /clear&lt;br /&gt;
| Clears the console.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /color &amp;lt;color&amp;gt;&lt;br /&gt;
| /color 20 255 255&lt;br /&gt;
| Changes your color. Can either be one of the pre-defined colors or [[:Wikipedia:RGB_color_space|RGB value]] in the format of “# # #”. Available colors: default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /enable-research-queue&lt;br /&gt;
| /enable-research-queue&lt;br /&gt;
| Enables the [[research]] queue.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /evolution&lt;br /&gt;
| /evolution&lt;br /&gt;
| Prints info about the alien evolution factor.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /help [command]&lt;br /&gt;
| /help&lt;br /&gt;
| Prints a list of available commands, the optional argument can specify the command that should be described.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /h [command]&lt;br /&gt;
| /h&lt;br /&gt;
| Same as /help.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /mute-programmable-speaker &amp;lt;mute/unmute&amp;gt; &amp;lt;local/everyone&amp;gt;&lt;br /&gt;
| /mute-programmable-speaker mute local&lt;br /&gt;
| Mutes or unmutes the global sounds created by the Programmable Speaker. Use “local” to mute just the local client. Admins can use “everyone” to mute the sounds for everyone on the server.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /perf-avg-frames &amp;lt;number&amp;gt;&lt;br /&gt;
| /perf-avg-frames 100&lt;br /&gt;
| Number of ticks/updates used to average performance counters. Default is 100. Value of 5-10 is recommended for fast convergence, but numbers will jitter more rapidly.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /permissions&lt;br /&gt;
| /permissions&lt;br /&gt;
| Opens the permissions GUI.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /permissions &amp;lt;action&amp;gt; &amp;lt;parameters&amp;gt;&lt;br /&gt;
| /permissions add-player DeveloperGroup kovarex&lt;br /&gt;
| Available actions are add-player &amp;lt;group&amp;gt; &amp;lt;player&amp;gt;, create-group &amp;lt;name&amp;gt;, delete-group &amp;lt;group&amp;gt;, edit-group &amp;lt;group&amp;gt; &amp;lt;input_action&amp;gt; &amp;lt;true/false&amp;gt;, get-player-group &amp;lt;player&amp;gt;, remove-player &amp;lt;group&amp;gt; &amp;lt;player&amp;gt;, rename-group &amp;lt;group&amp;gt; &amp;lt;new_name&amp;gt; and reset&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /reset-tips&lt;br /&gt;
| /reset-tips&lt;br /&gt;
| Resets the state of the tips and tricks as if the game was just started for the first time.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /screenshot [x resolution] [y resolution] [zoom]&lt;br /&gt;
| /screenshot&lt;br /&gt;
| Takes a screenshot with the GUI hidden, centered on the player. It is saved in the &amp;quot;script-output&amp;quot; subfolder of your [[User data directory]].  Resolution is optional and defaults to the current window size. Zoom is optional and defaults to 1.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /seed&lt;br /&gt;
| /seed&lt;br /&gt;
| Prints the starting map seed.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /time&lt;br /&gt;
| /time&lt;br /&gt;
| Prints info about how old the map is.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /toggle-action-logging&lt;br /&gt;
| /toggle-action-logging&lt;br /&gt;
| Toggles logging all input actions performed by the game. This value isn’t persisted between game restarts and only affects your local game in multiplayer sessions.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /toggle-heavy-mode&lt;br /&gt;
| /toggle-heavy-mode&lt;br /&gt;
| Used to investigate [[Desynchronization#Using_heavy_mode_command|desyncs]]. Will slow down the game and make multiplayer unplayable.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unlock-shortcut-bar&lt;br /&gt;
| /unlock-shortcut-bar&lt;br /&gt;
| Unlocks all [[shortcut bar]] items, including blueprint string import, copy &amp;amp; paste, deconstruction and upgrade planner.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /unlock-tips&lt;br /&gt;
| /unlock-tips&lt;br /&gt;
| Unlocks all tips and tricks entries.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /version&lt;br /&gt;
| /version&lt;br /&gt;
| Prints the current game version.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Command&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Example&lt;br /&gt;
! style=&amp;quot;width:46%&amp;quot;| Description&lt;br /&gt;
! style=&amp;quot;width:4%&amp;quot;| Admin only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;message&amp;gt;&lt;br /&gt;
| Hello team!&lt;br /&gt;
| Console input that does not start with {{keybinding|/}} is shown as a chat message to your team.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /admin&lt;br /&gt;
| /admin&lt;br /&gt;
| Opens the player management GUI.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /admins&lt;br /&gt;
| /admins&lt;br /&gt;
| Prints a list of game admins.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /ban &amp;lt;player&amp;gt; &amp;lt;reason&amp;gt;&lt;br /&gt;
| /ban xTROLLx Throwing grenades in base&lt;br /&gt;
| Bans the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /bans&lt;br /&gt;
| /bans&lt;br /&gt;
| Prints a list of banned players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /banlist &amp;lt;add/remove/get/clear&amp;gt; &amp;lt;player&amp;gt;&lt;br /&gt;
| /banlist get&lt;br /&gt;
| Adds or removes a player from the banlist. Same as /ban or /unban.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /config &amp;lt;get/set&amp;gt; &amp;lt;option&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
| /config set password hunter2&lt;br /&gt;
| Gets or sets various multiplayer game settings. Available configs are: afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public. The units for the options afk-auto-kick and autosave-interval are in minutes.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /delete-blueprint-library &amp;lt;player&amp;gt;&lt;br /&gt;
| /delete-blueprint-library everybody confirm&lt;br /&gt;
| Deletes the blueprint library storage for the given offline player from the save file. Enter “everybody confirm” to delete the storage of all offline players.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /demote &amp;lt;player&amp;gt;&lt;br /&gt;
| /demote AzureDiamond&lt;br /&gt;
| Demotes the player from admin.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;player&amp;gt;&lt;br /&gt;
| /ignore Cthon98&lt;br /&gt;
| Prevents the chat from showing messages from this player. Admin messages are still shown.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /ignores&lt;br /&gt;
| /ignores&lt;br /&gt;
| Prints a list of ignored players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /kick &amp;lt;player&amp;gt; &amp;lt;reason&amp;gt;&lt;br /&gt;
| /kick xTROLLx Throwing grenades in base&lt;br /&gt;
| Kicks the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /mute &amp;lt;player&amp;gt;&lt;br /&gt;
| /mute Cthon98&lt;br /&gt;
| Prevents the player from saying anything in chat.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /mutes&lt;br /&gt;
| /mutes&lt;br /&gt;
| All players that are muted (can’t talk in chat).&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /open &amp;lt;player&amp;gt;&lt;br /&gt;
| /open AzureDiamond&lt;br /&gt;
| Opens another player’s inventory.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /o &amp;lt;player&amp;gt;&lt;br /&gt;
| /o AzureDiamond&lt;br /&gt;
| Same as /open.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /players [online/o/count/c]&lt;br /&gt;
| /players&lt;br /&gt;
| Prints a list of players in the game. (parameter online/o, it prints only players that are online, count/c prints only count)&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /p [online/o/count/c]&lt;br /&gt;
| /p o c&lt;br /&gt;
| Same as /players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /promote &amp;lt;player&amp;gt;&lt;br /&gt;
| /promote AzureDiamond&lt;br /&gt;
| Promotes the player to admin.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /purge &amp;lt;player&amp;gt;&lt;br /&gt;
| /purge Cthon98&lt;br /&gt;
| Clears all the messages from this player from the chat log.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /reply &amp;lt;message&amp;gt;&lt;br /&gt;
| /reply oh, really?&lt;br /&gt;
| Replies to the last player that whispered to you.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /r &amp;lt;message&amp;gt;&lt;br /&gt;
| /r oh, really?&lt;br /&gt;
| Same as /reply.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /server-save&lt;br /&gt;
| /server-save&lt;br /&gt;
| Saves the game on the server in a multiplayer game.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /shout &amp;lt;message&amp;gt;&lt;br /&gt;
| /shout Hello world!&lt;br /&gt;
| Sends a message to all players including other forces.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /s &amp;lt;message&amp;gt;&lt;br /&gt;
| /s Hello world!&lt;br /&gt;
| Same as /shout.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /swap-players &amp;lt;player&amp;gt; [player]&lt;br /&gt;
| /swap-players AzureDiamond&lt;br /&gt;
| Swaps your character with the given player’s character, or if two players are given swaps the two player characters.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unban &amp;lt;player&amp;gt;&lt;br /&gt;
| /unban xTROLLx&lt;br /&gt;
| Unbans the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unignore &amp;lt;player&amp;gt;&lt;br /&gt;
| /unignore Cthon98&lt;br /&gt;
| Allows the chat to show messages from this player.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /unmute &amp;lt;player&amp;gt;&lt;br /&gt;
| /unmute Cthon98&lt;br /&gt;
| Allows the player to talk in chat again.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /whisper &amp;lt;player&amp;gt; &amp;lt;message&amp;gt;&lt;br /&gt;
| /whisper AzureDiamond that&#039;s what I see&lt;br /&gt;
| Sends a message to the specified player.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /w &amp;lt;player&amp;gt; &amp;lt;message&amp;gt;&lt;br /&gt;
| /w AzureDiamond that&#039;s what I see&lt;br /&gt;
| Same as /whisper.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /whitelist &amp;lt;add/remove/get/clear&amp;gt; [player]&lt;br /&gt;
| /whitelist get&lt;br /&gt;
| Adds or removes a player from the whitelist, where only whitelisted players can join the game. Enter nothing for “player” when using “get” to print a list of all whitelisted players. An empty whitelist disables the whitelist functionality allowing anyone to join.&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripting and cheat commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| /cheat &amp;lt;all&amp;gt;&lt;br /&gt;
| Researches all technologies and enables cheat mode. Using the &#039;&#039;&#039;all&#039;&#039;&#039; option also gives the player some additional items.&lt;br /&gt;
|-&lt;br /&gt;
| /command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed).&lt;br /&gt;
|-&lt;br /&gt;
| /c &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed).&lt;br /&gt;
|-&lt;br /&gt;
| /editor&lt;br /&gt;
| Toggles the map editor.&lt;br /&gt;
|-&lt;br /&gt;
| /measured-command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) and measures time it took.&lt;br /&gt;
|-&lt;br /&gt;
| /mc &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) and measures time it took.&lt;br /&gt;
|-&lt;br /&gt;
| /silent-command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) without printing it to the console.&lt;br /&gt;
|-&lt;br /&gt;
| /sc &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) without printing it to the console.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a very powerful feature, which also allows cheating, and as such &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;achievements will be permanently disabled for the save&amp;lt;/span&amp;gt; as soon as you use a script command.&lt;br /&gt;
&lt;br /&gt;
== Basic example scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Use it as calculator ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(1234*5678)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zoom beyond normal bounds ===&lt;br /&gt;
Note that zooming too far out can cause performance hits. Be careful.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.zoom=0.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mine faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.manual_mining_speed_modifier=1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Craft faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.manual_crafting_speed_modifier=1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unlock and research all technologies ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.research_all_technologies()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Undo this with the command in the next section.&lt;br /&gt;
&lt;br /&gt;
Note: Specific technologies can be researched using the [[map editor]] by shift clicking the &amp;quot;start research&amp;quot; button on the technology GUI.&lt;br /&gt;
&lt;br /&gt;
=== Unresearch all technologies ===&lt;br /&gt;
This does not reset manually applied bonuses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, tech in pairs(game.player.force.technologies) do &lt;br /&gt;
	tech.researched=false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Specific technologies can be unresearched using the [[map editor]] by clicking the &amp;quot;un-research&amp;quot; button on the technology GUI.&lt;br /&gt;
&lt;br /&gt;
=== Reset your force ===&lt;br /&gt;
This resets all data for your force, including kill and production statistics, technologies, bonuses and charting status.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.reset()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Always show rail block visualization ===&lt;br /&gt;
Permanently show the rail block visualization instead of only when holding a rail signal. Disable by replacing true with false.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.game_view_settings.show_rail_block_visualisation = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Set all trains to Automatic mode ===&lt;br /&gt;
Set all trains to automatic mode - for example after building them with a blueprint. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for key,ent in pairs (game.player.surface.find_entities_filtered{name=&amp;quot;locomotive&amp;quot;}) do &lt;br /&gt;
    ent.train.manual_mode = false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inventory manipulation scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Cheat mode ===&lt;br /&gt;
Allows for infinite free crafting. Disable by replacing true with false.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.cheat_mode=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Refill resources (refill oil, iron etc.) ===&lt;br /&gt;
While holding the cursor over a resource tile in-game:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.amount=7500&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can refill all resources in the map with the following command. Change ore.amount to the desired value.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c surface = game.player.surface&lt;br /&gt;
for _, ore in pairs(surface.find_entities_filtered({type=&amp;quot;resource&amp;quot;})) do&lt;br /&gt;
    ore.amount = 10000&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add items to the player&#039;s inventory ===&lt;br /&gt;
Replace iron-plate with the [[data.raw|internal name]] of the item desired.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.insert{name=&amp;quot;iron-plate&amp;quot;, count=100}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For instance, here&#039;s a stack of the god-mode energy system interface:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.insert{name=&amp;quot;electric-energy-interface&amp;quot;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several god-mode items available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;infinity-chest&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;infinity-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;electric-energy-interface&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;heat-interface&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a powerful armor with equipment and some tools for construction:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c	local player = game.player&lt;br /&gt;
player.insert{name=&amp;quot;power-armor-mk2&amp;quot;, count = 1}&lt;br /&gt;
local p_armor = player.get_inventory(5)[1].grid&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;energy-shield-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;energy-shield-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;personal-roboport-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;night-vision-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;battery-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;battery-mk2-equipment&amp;quot;})&lt;br /&gt;
player.insert{name=&amp;quot;construction-robot&amp;quot;, count = 25}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Increase player inventory slots ===&lt;br /&gt;
Gives 100 additional bonus inventory slots to your entire force. Used by the [[Toolbelt (research)]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.character_inventory_slots_bonus=100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== World manipulation scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Reveal the map around the player ===&lt;br /&gt;
&lt;br /&gt;
Reveals the map around the player, similar to a [[radar]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local radius=150&lt;br /&gt;
game.player.force.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or from start position&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local radius=150&lt;br /&gt;
game.player.force.chart(game.player.surface, {{x = -radius, y = -radius}, {x = radius, y = radius}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Change 150 to the desired radius, higher values take longer.&lt;br /&gt;
&lt;br /&gt;
=== Hide revealed map ===&lt;br /&gt;
&lt;br /&gt;
Hides all revealed chunks, inverted map revealing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local force = game.player.force&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  force.unchart_chunk({x = chunk.x, y = chunk.y}, surface)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reveal all generated map ===&lt;br /&gt;
&lt;br /&gt;
Revels all of the generated map to the player&#039;s team.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.chart_all()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete chunks ===&lt;br /&gt;
If much of the map is revealed, it increases the size of the save file. The following command cancels the generation of all chunks that are currently queued for generation and removes chunks outside a 32 chunks radius around 0,0. Note that this will remove player entities if there are any on these chunks.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface;&lt;br /&gt;
game.player.force.cancel_charting(surface); &lt;br /&gt;
local chunk_radius = 32;&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  if (chunk.x &amp;lt; -chunk_radius or chunk.x &amp;gt; chunk_radius or chunk.y &amp;lt; -chunk_radius or chunk.y &amp;gt; chunk_radius) then&lt;br /&gt;
    surface.delete_chunk(chunk)&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete unrevealed chunks ===&lt;br /&gt;
This command deletes chunks that are not revealed by the player. Can be used after the command for [[#Hide revealed map|hiding revealed map]] to delete the chunks not covered by radar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;/c local surface = game.player.surface&lt;br /&gt;
local force = game.player.force&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  if not force.is_chunk_charted(surface, chunk) then&lt;br /&gt;
    surface.delete_chunk(chunk)&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turn off night ===&lt;br /&gt;
Enables eternal day.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.always_day=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change game speed ===&lt;br /&gt;
0.5 is half speed, 1 is default, 2 is double speed, etc. Minimum is 0.01. This can be used for a lot of things like when you know you will have to wait for long periods of time for something to complete. Increasing will decrease performance, be careful.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.speed=X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Freeze time ===&lt;br /&gt;
Stops the advancement of the time. Unfreezes it if you by replace &amp;quot;true&amp;quot; with &amp;quot;false&amp;quot;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.freeze_daytime=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove all pollution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.clear_pollution()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Completely turn off pollution ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, surface in pairs(game.surfaces) do&lt;br /&gt;
  surface.clear_pollution()&lt;br /&gt;
end&lt;br /&gt;
game.map_settings.pollution.enabled = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add a lot of pollution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.pollute(game.player.position, 1000000)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Where speakers are, who placed them ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local speakers = game.player.surface.find_entities_filtered{force = game.player.force, type=&amp;quot;programmable-speaker&amp;quot;}&lt;br /&gt;
for key, speaker in pairs(speakers) do&lt;br /&gt;
    game.player.print(speaker.last_user.name .. &amp;quot; placed a speaker at [gps=&amp;quot; .. speaker.position.x .. &amp;quot;,&amp;quot; .. speaker.position.y .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable friendly fire for your force ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.friendly_fire = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add new resource patch ===&lt;br /&gt;
This creates a new 11×11 patch of resources, centered on the player character, where the ground is not water.&lt;br /&gt;
The patch it creates is perfectly square but it randomizes the amount similar to natural generation, with fewer ore at the edges and more ore in the center.&lt;br /&gt;
The default numbers result in a patch with 2500-3000 ore.&lt;br /&gt;
&lt;br /&gt;
If you want a larger patch, change &amp;quot;local size = 5&amp;quot; to a larger number.&lt;br /&gt;
A larger patch will have exponentially more ore.&lt;br /&gt;
Entering a number above 30 is not recommended.&lt;br /&gt;
&lt;br /&gt;
If you want a richer patch, change &amp;quot;local density = 10&amp;quot; to a larger number.&lt;br /&gt;
Entering a very large number shouldn&#039;t hurt anything but you probably don&#039;t need to go above 100.&lt;br /&gt;
&lt;br /&gt;
To choose which resource is spawned, change &amp;quot;stone&amp;quot; near the bottom to &amp;quot;iron-ore&amp;quot;, &amp;quot;copper-ore&amp;quot;, &amp;quot;coal&amp;quot;, or &amp;quot;uranium-ore&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local ore=nil&lt;br /&gt;
local size=5&lt;br /&gt;
local density=10&lt;br /&gt;
for y=-size, size do&lt;br /&gt;
	for x=-size, size do&lt;br /&gt;
		a=(size+1-math.abs(x))*10&lt;br /&gt;
		b=(size+1-math.abs(y))*10&lt;br /&gt;
		if a&amp;lt;b then&lt;br /&gt;
			ore=math.random(a*density-a*(density-8), a*density+a*(density-8))&lt;br /&gt;
		end&lt;br /&gt;
		if b&amp;lt;a then&lt;br /&gt;
			ore=math.random(b*density-b*(density-8), b*density+b*(density-8))&lt;br /&gt;
		end&lt;br /&gt;
		if surface.get_tile(game.player.position.x+x, game.player.position.y+y).collides_with(&amp;quot;ground-tile&amp;quot;) then&lt;br /&gt;
			surface.create_entity({name=&amp;quot;stone&amp;quot;, amount=ore, position={game.player.position.x+x, game.player.position.y+y}})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more flexibility, the [[map editor]] can also be used to create/alter/remove resource patches.&lt;br /&gt;
&lt;br /&gt;
=== Remove resources around the player ===&lt;br /&gt;
Removes all resource patches from the ground in a 50 x 50 area around the player.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local size=50&lt;br /&gt;
local pos=game.player.position&lt;br /&gt;
&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type=&amp;quot;resource&amp;quot;}) &lt;br /&gt;
	do e.destroy() &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add new oil patch ===&lt;br /&gt;
This creates 9 crude oil patches in a 3×3 square.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for y=0,2 do&lt;br /&gt;
	for x=0,2 do&lt;br /&gt;
		game.player.surface.create_entity({name=&amp;quot;crude-oil&amp;quot;, amount=100000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or randomly without any collision:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local position=nil&lt;br /&gt;
for i=1,9 do&lt;br /&gt;
	position=game.player.surface.find_non_colliding_position(&amp;quot;crude-oil&amp;quot;, game.player.position, 0, i/2+1.5)&lt;br /&gt;
	if position then &lt;br /&gt;
		game.player.surface.create_entity({name=&amp;quot;crude-oil&amp;quot;, amount=100000, position=position})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regenerate resources ===&lt;br /&gt;
For solid resources like iron, destroys all resource entities and creates resource entities as in the original map generation. For fluid resources like oil, sets the yield of all existing resource entities to the original amount. Regenerates resources on the entire surface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{type=&amp;quot;resource&amp;quot;}) do&lt;br /&gt;
  if e.prototype.infinite_resource then&lt;br /&gt;
    e.amount = e.initial_amount&lt;br /&gt;
  else&lt;br /&gt;
    e.destroy()&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
local non_infinites = {}&lt;br /&gt;
for resource, prototype in pairs(game.get_filtered_entity_prototypes{{filter=&amp;quot;type&amp;quot;, type=&amp;quot;resource&amp;quot;}}) do&lt;br /&gt;
  if not prototype.infinite_resource then&lt;br /&gt;
    table.insert(non_infinites, resource)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
surface.regenerate_entity(non_infinites)&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{type=&amp;quot;mining-drill&amp;quot;}) do&lt;br /&gt;
    e.update_connections()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Count entities ===&lt;br /&gt;
Counts all entities whose name includes the string in local entity.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local entity=&amp;quot;belt&amp;quot;&lt;br /&gt;
local surface=game.player.surface&lt;br /&gt;
local count=0&lt;br /&gt;
for key, ent in pairs(surface.find_entities_filtered({force=game.player.force})) do&lt;br /&gt;
	if string.find(ent.name,entity) then&lt;br /&gt;
		count=count+1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
game.player.print(count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turn off cliff generation ===&lt;br /&gt;
Sets size to &amp;quot;none&amp;quot;. Only effective on chunks that are generated after using this command. Use [[#Remove all cliffs]] to delete existing cliffs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local mgs = game.player.surface.map_gen_settings&lt;br /&gt;
mgs.cliff_settings.cliff_elevation_0 = 1024&lt;br /&gt;
game.player.surface.map_gen_settings = mgs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove all cliffs ===&lt;br /&gt;
Removes all cliffs existing cliffs from the world. Use [[#Turn off cliff generation]] to turn off cliff generation in new chunks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, v in pairs(game.player.surface.find_entities_filtered{type=&amp;quot;cliff&amp;quot;}) do&lt;br /&gt;
  v.destroy()&lt;br /&gt;
end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all decoratives ===&lt;br /&gt;
Delete the decoratives that can be found in the world.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.destroy_decoratives({})&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change map generation settings ===&lt;br /&gt;
This allows to change the map generation settings for new chunks; it does not alter already generated chunks. [[#Delete chunks|Deleted chunks]] are affected by the setting change because they are newly generated when they get explored again.&lt;br /&gt;
&lt;br /&gt;
To change resource generation settings, replace &amp;quot;iron-ore&amp;quot; with the [[Data.raw#resource|resource]] that should be changed and replace &amp;quot;very-high&amp;quot; with the desired [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] in the following command. Replace &amp;quot;iron-ore&amp;quot; with &amp;quot;enemy-base&amp;quot; to change the enemy base generation settings. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local resource = &amp;quot;iron-ore&amp;quot;&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.autoplace_controls[resource].size = &amp;quot;very-high&amp;quot;&lt;br /&gt;
mgs.autoplace_controls[resource].frequency = &amp;quot;very-high&amp;quot;&lt;br /&gt;
mgs.autoplace_controls[resource].richness = &amp;quot;very-high&amp;quot;&lt;br /&gt;
surface.map_gen_settings = mgs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change water generation settings, replace &amp;quot;very-high&amp;quot; with the desired [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] in the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.water = &amp;quot;very-high&amp;quot; --[[ size]]&lt;br /&gt;
mgs.terrain_segmentation  = &amp;quot;very-high&amp;quot; --[[ frequency]]&lt;br /&gt;
surface.map_gen_settings = mgs &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a structure indestructible ===&lt;br /&gt;
This makes it impossible for an entity to be damaged or killed, e.g. by biters. Hover over the entity and then run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.destructible = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connect linked belts ===&lt;br /&gt;
If there exist at least two [[Prototype/LinkedBelt|linked belts]], and one of them has the &amp;quot;Entity tag&amp;quot; &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt;, and another linked belt has the &amp;quot;Entity tag&amp;quot; &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt;, then the following command should link these two linked belts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local i = game.get_entity_by_tag(&#039;in&#039;)&lt;br /&gt;
local o = game.get_entity_by_tag(&#039;out&#039;)&lt;br /&gt;
i.linked_belt_type = &#039;input&#039;&lt;br /&gt;
o.linked_belt_type = &#039;output&#039;&lt;br /&gt;
i.connect_linked_belts(o)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enemy/evolution scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Set evolution factor ===&lt;br /&gt;
Ranges from 0 (new game) to 1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.forces[&amp;quot;enemy&amp;quot;].evolution_factor=X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable time-based evolution &amp;amp; increases pollution-based evolution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.map_settings.enemy_evolution.time_factor=0&lt;br /&gt;
/c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;2&amp;quot; at the end of the last command will double the default pollution factor. You can substitute another number to increase (or decrease) the pollution factor further.&lt;br /&gt;
&lt;br /&gt;
=== Kill all biters on the &amp;quot;enemy&amp;quot; force ===&lt;br /&gt;
Note that this will kill only mobile units, spawners will not be killed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.forces[&amp;quot;enemy&amp;quot;].kill_all_units()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill all enemies ===&lt;br /&gt;
This will kill all biters, bases and worms. Anything that is an enemy will be completely destroyed. This only affects enemies in the generated world, so any unexplored parts of the map which still need to be generated will still have enemies. You can [[#Prevent biters being on newly generated chunks|prevent biters being on newly generated chunks]] if desired.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
for key, entity in pairs(surface.find_entities_filtered({force=&amp;quot;enemy&amp;quot;})) do&lt;br /&gt;
	entity.destroy()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill all nearby enemies ===&lt;br /&gt;
&lt;br /&gt;
This will kill all biters, bases and worms in a configurable radius. The default, 250 tiles, is about two zoomed-out screen widths on full HD. After destruction, it shows how many objects were destroyed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local pp = game.player.position&lt;br /&gt;
local cnt = 0&lt;br /&gt;
for key, entity in pairs(surface.find_entities_filtered({force=&amp;quot;enemy&amp;quot;, radius=250, position=pp })) do&lt;br /&gt;
	cnt = cnt+1&lt;br /&gt;
	entity.destroy()&lt;br /&gt;
 end	&lt;br /&gt;
game.player.print(cnt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable peaceful mode ===&lt;br /&gt;
Enabling peaceful mode prevents biter attacks until provoked. Substitute true for false to disable. Already existing biters are not affected by this command so attacks could continue for a while after activating peaceful mode.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.peaceful_mode = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable biter expansion ===&lt;br /&gt;
Biter expansion allows biters to create new nests, it is enabled by default. Substitute true for false to disable.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.map_settings.enemy_expansion.enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable enemy bases entirely ===&lt;br /&gt;
This map generator setting change requires you to open the editor and go to the &amp;quot;Surfaces&amp;quot; tab and select &amp;quot;nauvis&amp;quot; and press &amp;quot;Edit map gen settings&amp;quot;. Here you can edit the enabling of enemy bases as well as other settings.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c editor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prevent biters being on newly generated chunks ===&lt;br /&gt;
On newly generated chunks no biters will be present, however all current biters will remain unaffected. Equivalent of setting the Enemy Base Size to None under the Terrain settings during map generation but achieved mid game by [[#Change map generation settings|changing map generation settings]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.autoplace_controls[&amp;quot;enemy-base&amp;quot;].size = &amp;quot;none&amp;quot;&lt;br /&gt;
surface.map_gen_settings = mgs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Player character scripts ==&lt;br /&gt;
Commands concerning the player directly.&lt;br /&gt;
=== Get player position ===&lt;br /&gt;
Prints coordinates of your current position.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(game.player.position)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Teleport player ===&lt;br /&gt;
Moves the player to the specified location. You should be able to teleport to a specific player if you obtain their coordinates via them executing the previous command and giving them to you.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.teleport({X, Y})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To teleport to the world&#039;s origin, use 0,0.&lt;br /&gt;
&lt;br /&gt;
=== Enable god mode ===&lt;br /&gt;
God mode removes your player character allowing you to fly over obstacles and take no damage.&lt;br /&gt;
&lt;br /&gt;
Disassociate your controls from the character and destroy it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.character.destroy()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To undo, spawn a player character. This will spawn a new character at the spawn point of the world, and connect your controls to it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.create_character()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable long reach ===&lt;br /&gt;
Enables long reach, which allows the player to build and interact with entities at a greater distance. The default reach is 10.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local reach = 10000&lt;br /&gt;
game.player.force.character_build_distance_bonus = reach&lt;br /&gt;
game.player.force.character_reach_distance_bonus = reach&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Find player corpses ===&lt;br /&gt;
Pings player corpses on the map.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local found_corpses = game.player.surface.find_entities_filtered{type=&amp;quot;character-corpse&amp;quot;}&lt;br /&gt;
for _,corpse in pairs(found_corpses) do&lt;br /&gt;
    local player = game.get_player(corpse.character_corpse_player_index)&lt;br /&gt;
    local name = player and player.name or &amp;quot;????&amp;quot;&lt;br /&gt;
    game.player.print(name .. &amp;quot; --&amp;gt; [gps=&amp;quot; .. corpse.position.x .. &amp;quot;,&amp;quot; .. corpse.position.y .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.character_running_speed_modifier=3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Research scripts ==&lt;br /&gt;
=== Enable faster research ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.laboratory_speed_modifier=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-0.5 is half speed, 0 is normal speed, 1 is double speed, 2 is triple etc.&lt;br /&gt;
&lt;br /&gt;
=== Research specific technologies ===&lt;br /&gt;
The internal technology names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;electric-energy-distribution-1&#039;].researched=true&lt;br /&gt;
/c game.player.force.technologies[&#039;steel-processing&#039;].researched=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To research a high level of an infinite technology, set its level:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;worker-robots-speed-6&#039;].level = 100&lt;br /&gt;
/c game.player.force.technologies[&#039;mining-productivity-4&#039;].level = 100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unresearch specific technologies ===&lt;br /&gt;
The internal technology names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;electric-energy-distribution-1&#039;].researched=false&lt;br /&gt;
/c game.player.force.technologies[&#039;steel-processing&#039;].researched=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enabling specific recipes ===&lt;br /&gt;
The internal recipe/item names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;electric-energy-interface&amp;quot;].enabled=true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;rocket-silo&amp;quot;].enabled=true&lt;br /&gt;
/c game.player.force.recipes.loader.enabled=true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;fast-loader&amp;quot;].enabled = true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;express-loader&amp;quot;].enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable all recipes ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resetting technology effects to default ===&lt;br /&gt;
This will reset the enabled/unlocked state of all recipes to what they would be purely based on the currently researched technologies, as well as resetting other technology effects like mining speed, etc. Any manual modifications to these effects and recipe unlocks will be undone.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.reset_technology_effects()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note: Can be used as a quick workaround when recipes are unavailable after adding or changing mods even though the technology unlocking them has already been researched.&lt;br /&gt;
&lt;br /&gt;
== Modding tools ==&lt;br /&gt;
A list of the internal names of most things in the vanilla game can also be found on [[data.raw]].&lt;br /&gt;
&lt;br /&gt;
=== Access a mod&#039;s data ===&lt;br /&gt;
If the first word of the command is __mod-name__ it will run in the context of the mod with the same name. For instance, this command prints the data from the Even Distribution mod:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c __even-distribution__ game.player.print(serpent.dump(global))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Print to console the tile under the player ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(game.player.surface.get_tile(game.player.position).name)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write all researched technologies to file ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local list = {}&lt;br /&gt;
for _, tech in pairs(game.player.force.technologies) do &lt;br /&gt;
	if tech.researched then&lt;br /&gt;
    list[#list+1] = tech.name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.write_file(&amp;quot;techs.lua&amp;quot;, serpent.block(list) .. &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write all enabled recipes to file ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local list = {}&lt;br /&gt;
for _, recipe in pairs(game.player.force.recipes) do &lt;br /&gt;
	if recipe.enabled then&lt;br /&gt;
    list[#list+1] = recipe.name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.write_file(&amp;quot;recipes.lua&amp;quot;, serpent.block(list) .. &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write mod list to file ===&lt;br /&gt;
Write all currently active mods and their version to the file script-output/mods.txt in the [[user data directory]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.write_file(&amp;quot;mods.txt&amp;quot;, serpent.block(game.active_mods))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{History|1.1.92|&lt;br /&gt;
* Added a notification when a technology is researched.&lt;br /&gt;
* Added /enable-research-queue console command to enable the research queue without disabling achievements.}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Command line parameters]]&lt;br /&gt;
* https://lua-api.factorio.com/latest/index-runtime.html - Factorio API reference for latest version&lt;br /&gt;
&lt;br /&gt;
{{C|Modding}}&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Blueprint_string_format&amp;diff=196492</id>
		<title>Blueprint string format</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Blueprint_string_format&amp;diff=196492"/>
		<updated>2024-02-20T22:10:59Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: Blueprint books have icons and descriptions too, and they can be accessed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:blueprint_string_preview.png|thumb|340px|right|Preview of a blueprint string.]]This is a technical description of the blueprint string format, used to share blueprints with other users.&lt;br /&gt;
&lt;br /&gt;
A blueprint string is a JSON representation of the blueprint, compressed with zlib deflate using compression level 9 and then encoded using base64 with a version byte in front of the encoded string. The version byte is currently 0 (for all Factorio versions through 1.1).&lt;br /&gt;
So to get the JSON representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib inflate. &lt;br /&gt;
&lt;br /&gt;
== Json representation of a blueprint/blueprint book ==&lt;br /&gt;
&lt;br /&gt;
The json representation of a blueprint or blueprint book is one large object inside another &amp;quot;wrapping&amp;quot; object, its key inside that object is either blueprint or blueprint-book.&lt;br /&gt;
&lt;br /&gt;
=== Blueprint book object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| item&lt;br /&gt;
| String, the name of the item that was saved (&amp;quot;blueprint-book&amp;quot; in vanilla).&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| String, the name of the blueprint set by the user.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label_color&lt;br /&gt;
| The color of the label of this blueprint. Optional. [[#Color object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| blueprints&lt;br /&gt;
| The actual content of the blueprint book, array of objects containing an &amp;quot;index&amp;quot; key and 0-based value and a &amp;quot;blueprint&amp;quot; key with a [[#Blueprint object]] as the value.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| active_index&lt;br /&gt;
| Index of the currently selected blueprint, 0-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| icons&lt;br /&gt;
| The icons of the blueprint book set by the user, array of [[#Icon object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| description&lt;br /&gt;
| The description of the blueprint book. Optional.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| The map version of the map the blueprint was created in, see [[Version string format]].&lt;br /&gt;
| Integer (long)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Blueprint object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| item&lt;br /&gt;
| String, the name of the item that was saved (&amp;quot;blueprint&amp;quot; in vanilla).&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label&lt;br /&gt;
| String, the name of the blueprint set by the user.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| label_color&lt;br /&gt;
| The color of the label of this blueprint. Optional. [[#Color object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| entities&lt;br /&gt;
| The actual content of the blueprint, array of [[#Entity object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| tiles&lt;br /&gt;
| The tiles included in the blueprint, array of [[#Tile object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| icons&lt;br /&gt;
| The icons of the blueprint set by the user, array of [[#Icon object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| schedules&lt;br /&gt;
| The schedules for trains in this blueprint, array of [[#Schedule object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| description&lt;br /&gt;
| The description of the blueprint. Optional.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| snap-to-grid&lt;br /&gt;
| The dimensions of the grid to use for snapping. Optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| absolute-snapping&lt;br /&gt;
| Whether the blueprint uses absolute or relative snapping. Optional.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| position-relative-to-grid&lt;br /&gt;
| Offset relative to the global absolute snapping grid. Optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| The map version of the map the blueprint was created in.&lt;br /&gt;
| Integer (long)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Icon object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the icon, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| signal&lt;br /&gt;
| The icon that is displayed, [[#SignalID object]].&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SignalID object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the signal prototype this signal is set to.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Type of the signal. Either &amp;quot;item&amp;quot;, &amp;quot;fluid&amp;quot; or &amp;quot;virtual&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entity object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| entity_number&lt;br /&gt;
| Index of the entity, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Prototype name of the entity (e.g. &amp;quot;offshore-pump&amp;quot;).&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| [[#Position object]], position of the entity within the blueprint.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| direction&lt;br /&gt;
| Direction of the entity, uint (optional).&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| orientation&lt;br /&gt;
| Orientation of cargo wagon or locomotive, value 0 to 1 (optional).&lt;br /&gt;
| Floating Point&lt;br /&gt;
|-&lt;br /&gt;
| connections&lt;br /&gt;
| Circuit connection, object with keys starting from 1, values are [[#Connection object]]s (optional).&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| neighbours&lt;br /&gt;
| Copper wire connections, array of entity_numbers (optional).&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| control_behavior&lt;br /&gt;
| [[#Control behavior object]] of this entity (optional).&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| items&lt;br /&gt;
| Item requests by this entity, this is what defines the item-request-proxy when the blueprint is placed, optional. [[#Item request object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| recipe&lt;br /&gt;
| Name of the recipe prototype this assembling machine is set to, optional, string.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| bar&lt;br /&gt;
| Used by [[Prototype/Container]], optional. The index of the first inaccessible item slot due to limiting with the red &amp;quot;bar&amp;quot;. 0-based [[Types/ItemStackIndex]].&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| inventory&lt;br /&gt;
| Cargo wagon inventory configuration, optional. [[#Inventory object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| infinity_settings&lt;br /&gt;
| Used by [[Prototype/InfinityContainer]], optional. [[#Infinity settings object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Type of the underground belt or loader, optional. Either &amp;quot;input&amp;quot; or &amp;quot;output&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| input_priority&lt;br /&gt;
| Input priority of the splitter, optional. Either &amp;quot;right&amp;quot; or &amp;quot;left&amp;quot;, &amp;quot;none&amp;quot; is omitted.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| output_priority&lt;br /&gt;
| Output priority of the splitter, optional. Either &amp;quot;right&amp;quot; or &amp;quot;left&amp;quot;, &amp;quot;none&amp;quot; is omitted.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| filter&lt;br /&gt;
| Filter of the splitter, optional. Name of the item prototype the filter is set to, string.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Filters of the filter inserter or loader, optional. Array of [[#Item filter object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| filter_mode&lt;br /&gt;
| Filter mode of the filter inserter, optional. Either &amp;quot;whitelist&amp;quot; or &amp;quot;blacklist&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| override_stack_size&lt;br /&gt;
| The stack size the inserter is set to, optional. [[Types/uint8]].&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| drop_position&lt;br /&gt;
| The drop position the inserter is set to, optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| pickup_position&lt;br /&gt;
| The pickup position the inserter is set to, optional. [[#Position object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| request_filters&lt;br /&gt;
| Used by [[Prototype/LogisticContainer]], optional. [[#Logistic filter object]].&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| request_from_buffers&lt;br /&gt;
| Boolean. Whether this requester chest can request from buffer chests.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| parameters&lt;br /&gt;
| Used by [[Programmable speaker]], optional. [[#Speaker parameter object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| alert_parameters&lt;br /&gt;
| Used by [[Programmable speaker]], optional. [[#Speaker alert parameter object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| auto_launch&lt;br /&gt;
| Used by the rocket silo, optional. Boolean, whether auto launch is enabled.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| variation&lt;br /&gt;
| Used by [[Prototype/SimpleEntityWithForce]] or [[Prototype/SimpleEntityWithOwner]], optional. [[Types/GraphicsVariation]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| color&lt;br /&gt;
| Color of the [[Prototype/SimpleEntityWithForce]], [[Prototype/SimpleEntityWithOwner]], or train station, optional. [[#Color object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| station&lt;br /&gt;
| The name of the train station, optional.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| manual_trains_limit&lt;br /&gt;
| The manually set train limit of the train station, optional.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| switch_state&lt;br /&gt;
| The current state of the power switch, optional.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| tags&lt;br /&gt;
| Dictionary of arbitrary data, optional. [https://lua-api.factorio.com/latest/concepts.html#Tags Tags].&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Inventory object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Array of [[#Item filter object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| bar&lt;br /&gt;
| The index of the first inaccessible item slot due to limiting with the red &amp;quot;bar&amp;quot;. 0-based, optional.  [[Types/ItemStackIndex]].&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schedule object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| schedule&lt;br /&gt;
| Array of [[#Schedule Record object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| locomotives&lt;br /&gt;
| Array of entity numbers of locomotives using this schedule.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schedule Record object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| station&lt;br /&gt;
| The name of the stop for this schedule record.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| wait_conditions&lt;br /&gt;
| Array of [[#Wait Condition object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wait Condition object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| One of &amp;quot;time&amp;quot;, &amp;quot;inactivity&amp;quot;, &amp;quot;full&amp;quot;, &amp;quot;empty&amp;quot;, &amp;quot;item_count&amp;quot;, &amp;quot;circuit&amp;quot;, &amp;quot;robots_inactive&amp;quot;, &amp;quot;fluid_count&amp;quot;, &amp;quot;passenger_present&amp;quot;, &amp;quot;passenger_not_present&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| compare_type&lt;br /&gt;
| Either &amp;quot;and&amp;quot;, or &amp;quot;or&amp;quot;. Tells how this condition is to be compared with the preceding conditions in the corresponding wait_conditions array.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| ticks&lt;br /&gt;
| Number of ticks to wait or of inactivity. Only present when type is &amp;quot;time&amp;quot; or &amp;quot;inactivity&amp;quot;. Optional.&lt;br /&gt;
| uint&lt;br /&gt;
|-&lt;br /&gt;
| condition&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts.html#CircuitCondition CircuitCondition object], only present when type is &amp;quot;item_count&amp;quot;, &amp;quot;circuit&amp;quot; or &amp;quot;fluid_count&amp;quot;.&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tile object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Prototype name of the tile (e.g. &amp;quot;concrete&amp;quot;)&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| [[#Position object]], position of the entity within the blueprint.&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Position object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| X position within the blueprint, 0 is the center.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| y&lt;br /&gt;
| Y position within the blueprint, 0 is the center.&lt;br /&gt;
| Floating point&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection object ===&lt;br /&gt;
Object containing information about the connections to other entities formed by red or green wires.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| First connection point. The default for everything that doesn&#039;t have multiple connection points.[[#Connection point object]]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Second connection point. For example, the &amp;quot;output&amp;quot; part of an arithmetic combinator.[[#Connection point object]]&lt;br /&gt;
| Object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection point object ===&lt;br /&gt;
The actual point where a wire is connected to. Contains information about where it is connected to.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| red&lt;br /&gt;
| An array of [[#Connection data object]] containing all the connections from this point created by red wire.&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| green&lt;br /&gt;
| An array of [[#Connection data object]] containing all the connections from this point created by green wire.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connection data object ===&lt;br /&gt;
Information about a single connection between two connection points.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| entity_id&lt;br /&gt;
| ID of the entity this connection is connected with.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_id&lt;br /&gt;
| The circuit connector id of the entity this connection is connected to, see [https://lua-api.factorio.com/latest/defines.html#defines.circuit_connector_id defines.circuit_connector_id].&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Item request object ===&lt;br /&gt;
1 or more instances of key/value pairs.&lt;br /&gt;
Key is the name of the item, string.&lt;br /&gt;
Value is the amount of items to be requested, [[Types/ItemCountType]].&lt;br /&gt;
&lt;br /&gt;
=== Item filter object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the item prototype this filter is set to.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the filter, 1-based. &lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Infinity settings object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| remove_unfiltered_items&lt;br /&gt;
| Boolean. Whether the &amp;quot;remove unfiltered items&amp;quot; checkbox is checked.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Filters of the infinity container, optional. Array of [[#Infinity filter object]]s.&lt;br /&gt;
| Array&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Infinity filter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the item prototype the filter is set to, string.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| count&lt;br /&gt;
| Number the filter is set to, [[Types/ItemCountType]].&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| mode&lt;br /&gt;
| Mode of the filter. Either &amp;quot;at-least&amp;quot;, &amp;quot;at-most&amp;quot;, or &amp;quot;exactly&amp;quot;.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the filter, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logistic filter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Name of the item prototype this filter is set to.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| index&lt;br /&gt;
| Index of the filter, 1-based.&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| count&lt;br /&gt;
| Number the filter is set to, [[Types/ItemCountType]]. Is 0 for storage chests.&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Speaker parameter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| playback_volume&lt;br /&gt;
| [[Types/double]]. Volume of the speaker.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| playback_globally&lt;br /&gt;
| Boolean, whether global playback is enabled.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| allow_polyphony&lt;br /&gt;
| Boolean, whether polyphony is allowed.&lt;br /&gt;
| Boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Speaker alert parameter object ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| show_alert&lt;br /&gt;
| Boolean, whether an alert is shown.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| show_on_map&lt;br /&gt;
| Boolean, whether an alert icon is shown on the map.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| icon_signal_id&lt;br /&gt;
| The icon that is displayed with the alert, [[#SignalID object]].&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| alert_message&lt;br /&gt;
| String, message of the alert.&lt;br /&gt;
| String&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color object ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Description !! Data type&lt;br /&gt;
|-&lt;br /&gt;
| r&lt;br /&gt;
| red, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| g&lt;br /&gt;
| green, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| b&lt;br /&gt;
| blue, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|-&lt;br /&gt;
| a&lt;br /&gt;
| transparency, number from 0 to 1.&lt;br /&gt;
| Floating point&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Control behavior object ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ALL fields are optional&#039;&#039;&#039; and depend on the type of the entity.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Key !! Description !! Data type &lt;br /&gt;
|-&lt;br /&gt;
| logistic_condition&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts.html#CircuitCondition CircuitCondition]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| connect_to_logistic_network&lt;br /&gt;
| Whether this entity is connected to the logistic network and enables/disables based on logistic_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_close_signal&lt;br /&gt;
| Whether this rail signal can be closed by circuit_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_signal&lt;br /&gt;
| Whether or not to read the state of this rail/chain signal.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| red_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the rail/chain signal is currently red.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| orange_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the rail/chain signal is currently orange.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| green_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the rail/chain signal is currently green.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| blue_output_signal&lt;br /&gt;
| [[#SignalID]] to use if the chain signal is currently blue.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_condition&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts.html#CircuitCondition CircuitCondition]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_enable_disable&lt;br /&gt;
| Enable or disable based on circuit_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| send_to_train&lt;br /&gt;
| Send circuit values to the train to use in schedule conditions.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| read_from_train&lt;br /&gt;
| Get the currently stopped trains cargo.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| read_stopped_train&lt;br /&gt;
| Get the currently stopped trains ID.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| train_stopped_signal&lt;br /&gt;
| [[#SignalID]] to output the train ID on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| set_trains_limit&lt;br /&gt;
| Whether this stations trains limit will be set through circuit values.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| trains_limit_signal&lt;br /&gt;
| [[#SignalID]] to use to set the trains limit.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| read_trains_count&lt;br /&gt;
| Whether to read this stations currently on route trains count.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| trains_count_signal&lt;br /&gt;
| [[#SignalID]] to output the on route trains count on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| read_logistics&lt;br /&gt;
| Whether this roboport should output the contents of its network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| read_robot_stats&lt;br /&gt;
| Whether this roboport should output the robot stats of its network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| available_logistic_output_signal&lt;br /&gt;
| [[#SignalID]] to output available logistic robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| total_logistic_output_signal&lt;br /&gt;
| [[#SignalID]] to output the total count of logistic robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| available_construction_output_signal&lt;br /&gt;
| [[#SignalID]] to output available construction robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| total_construction_output_signal&lt;br /&gt;
| [[#SignalID]] to output the total count of construction robots on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_open_gate&lt;br /&gt;
| Whether to limit the gate opening with circuit_condition.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_sensor&lt;br /&gt;
| Whether to send the wall-gate proximity sensor to the circuit network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| output_signal&lt;br /&gt;
| [[#SignalID]] to output the wall-gate sensor / accumulator charge on.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_hand_contents&lt;br /&gt;
| Whether to read this belts content or inserters hand.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_contents_read_mode&lt;br /&gt;
| [https://lua-api.factorio.com/latest/defines.html#defines.control_behavior.transport_belt.content_read_mode defines.control_behavior.transport_belt.content_read_mode]&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_mode_of_operation&lt;br /&gt;
| &lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_hand_read_mode&lt;br /&gt;
| [https://lua-api.factorio.com/latest/defines.html#defines.control_behavior.inserter.hand_read_mode defines.control_behavior.inserter.hand_read_mode]&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| circuit_set_stack_size&lt;br /&gt;
| Whether to set the inserters stack size from a circuit signal.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| stack_control_input_signal&lt;br /&gt;
| [[#SignalID]] to use to set the inserters stack size.&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_read_resources&lt;br /&gt;
| Whether this miner should output its remaining resource amounts to the circuit network.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| circuit_resource_read_mode&lt;br /&gt;
| [https://lua-api.factorio.com/latest/defines.html#defines.control_behavior.mining_drill.resource_read_mode defines.control_behavior.mining_drill.resource_read_mode]&lt;br /&gt;
| Integer&lt;br /&gt;
|-&lt;br /&gt;
| is_on&lt;br /&gt;
| Whether this constant combinator is currently on or off.&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| filters&lt;br /&gt;
| Array of [https://lua-api.factorio.com/latest/concepts.html#ConstantCombinatorParameters ConstantCombinatorParameters].&lt;br /&gt;
| Array&lt;br /&gt;
|-&lt;br /&gt;
| arithmetic_conditions&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts.html#ArithmeticCombinatorParameters ArithmeticCombinatorParameters]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| decider_conditions&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts.html#DeciderCombinatorParameters DeciderCombinatorParameters]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| circuit_parameters&lt;br /&gt;
| [https://lua-api.factorio.com/latest/concepts.html#ProgrammableSpeakerCircuitParameters ProgrammableSpeakerCircuitParameters]&lt;br /&gt;
| Object&lt;br /&gt;
|-&lt;br /&gt;
| use_colors&lt;br /&gt;
| Whether this lamp should use colors or not.&lt;br /&gt;
| Boolean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=196420</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=196420"/>
		<updated>2024-02-15T11:45:08Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
The &#039;&#039;&#039;console&#039;&#039;&#039; is Factorio&#039;s in-game command-line interface. See [[command line parameters]] for the command line interface of the Factorio executable.&lt;br /&gt;
&lt;br /&gt;
The in-game console can be used for:&lt;br /&gt;
&lt;br /&gt;
* Chatting with other players&lt;br /&gt;
* Occasional status updates&lt;br /&gt;
* Running commands / scripts / cheats&lt;br /&gt;
&lt;br /&gt;
There are three types of commands:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[#Normal commands|Normal]]&#039;&#039;&#039; - Display information about the game and customize your experience.&lt;br /&gt;
* &#039;&#039;&#039;[[#Multiplayer commands|Multiplayer]]&#039;&#039;&#039; - Message filtering, banning users, etc.&lt;br /&gt;
* &#039;&#039;&#039;[[#Scripting and cheat commands|Scripting/Cheating]]&#039;&#039;&#039; - Run small Lua scripts (but they &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;disable achievements for the save game&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Using the console ===&lt;br /&gt;
The console display can be toggled with the {{keybinding|/}} (slash) or {{keybinding|~}} (tilde) keys.&lt;br /&gt;
&lt;br /&gt;
You can customize the keys via &#039;&#039;&#039;Settings menu → Controls → Toggle chat (and Lua console)&#039;&#039;&#039;.&lt;br /&gt;
When the console is open, you&#039;ll see a blinking cursor at the bottom of the screen; type your message or command and hit &#039;&#039;&#039;Return&#039;&#039;&#039; to send it (this will also close the console).&lt;br /&gt;
Documentation about message and command prefixes can be found further down this page.&lt;br /&gt;
&lt;br /&gt;
The console supports [[rich text]] tags. These tags are useful for sharing blueprints, marking map locations in chat or adding icons to map markers and train stations. Ctrl + Alt-clicking the map or ground will automatically insert a GPS tag and post it into the console. Shift-clicking most things with the console open will insert a tag for that thing into the console.&lt;br /&gt;
&lt;br /&gt;
When the console is closed, only the most recent messages/commands will be displayed, but they will gradually fade away (opening the console will immediately re-display all recent messages).&lt;br /&gt;
Note that by default, all executed commands are made visible to all users. The fade-out time can be changed via &#039;&#039;&#039;Settings menu → Interface → Chat message delay&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The console can be cleared with the &#039;&#039;&#039;/clear&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
Use the {{keybinding|&amp;amp;uarr;}} and {{keybinding|&amp;amp;darr;}} keys to scroll through the console history. The {{keybinding|Tab}} key provides intelligent code completion on commands, options and player names.&lt;br /&gt;
&lt;br /&gt;
== Normal commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Command&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Example&lt;br /&gt;
! style=&amp;quot;width:46%&amp;quot;| Description&lt;br /&gt;
! style=&amp;quot;width:4%&amp;quot;| Admin only&lt;br /&gt;
|-&lt;br /&gt;
| /alerts &amp;lt;enable/disable/mute/unmute&amp;gt; &amp;lt;alert&amp;gt;&lt;br /&gt;
| /alerts disable turret_fire&lt;br /&gt;
| Enables, disables, mutes, or unmutes the given  [[alerts|alert]] type. Available alerts: entity_destroyed, entity_under_attack, not_enough_construction_robots, no_material_for_construction, not_enough_repair packs, turret_fire, custom, no_storage, train_out_of_fuel, fluid_mixing.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /clear&lt;br /&gt;
| /clear&lt;br /&gt;
| Clears the console.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /color &amp;lt;color&amp;gt;&lt;br /&gt;
| /color 20 255 255&lt;br /&gt;
| Changes your color. Can either be one of the pre-defined colors or [[:Wikipedia:RGB_color_space|RGB value]] in the format of “# # #”. Available colors: default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /enable-research-queue&lt;br /&gt;
| /enable-research-queue&lt;br /&gt;
| Enables the [[research]] queue.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /evolution&lt;br /&gt;
| /evolution&lt;br /&gt;
| Prints info about the alien evolution factor.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /help [command]&lt;br /&gt;
| /help&lt;br /&gt;
| Prints a list of available commands, the optional argument can specify the command that should be described.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /h [command]&lt;br /&gt;
| /h&lt;br /&gt;
| Same as /help.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /mute-programmable-speaker &amp;lt;mute/unmute&amp;gt; &amp;lt;local/everyone&amp;gt;&lt;br /&gt;
| /mute-programmable-speaker mute local&lt;br /&gt;
| Mutes or unmutes the global sounds created by the Programmable Speaker. Use “local” to mute just the local client. Admins can use “everyone” to mute the sounds for everyone on the server.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /perf-avg-frames &amp;lt;number&amp;gt;&lt;br /&gt;
| /perf-avg-frames 100&lt;br /&gt;
| Number of ticks/updates used to average performance counters. Default is 100. Value of 5-10 is recommended for fast convergence, but numbers will jitter more rapidly.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /permissions&lt;br /&gt;
| /permissions&lt;br /&gt;
| Opens the permissions GUI.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /permissions &amp;lt;action&amp;gt; &amp;lt;parameters&amp;gt;&lt;br /&gt;
| /permissions add-player DeveloperGroup kovarex&lt;br /&gt;
| Available actions are add-player &amp;lt;group&amp;gt; &amp;lt;player&amp;gt;, create-group &amp;lt;name&amp;gt;, delete-group &amp;lt;group&amp;gt;, edit-group &amp;lt;group&amp;gt; &amp;lt;input_action&amp;gt; &amp;lt;true/false&amp;gt;, get-player-group &amp;lt;player&amp;gt;, remove-player &amp;lt;group&amp;gt; &amp;lt;player&amp;gt;, rename-group &amp;lt;group&amp;gt; &amp;lt;new_name&amp;gt; and reset&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /reset-tips&lt;br /&gt;
| /reset-tips&lt;br /&gt;
| Resets the state of the tips and tricks as if the game was just started for the first time.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /screenshot [x resolution] [y resolution] [zoom]&lt;br /&gt;
| /screenshot&lt;br /&gt;
| Takes a screenshot with the GUI hidden, centered on the player. It is saved in the &amp;quot;script-output&amp;quot; subfolder of your [[User data directory]].  Resolution is optional and defaults to the current window size. Zoom is optional and defaults to 1.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /seed&lt;br /&gt;
| /seed&lt;br /&gt;
| Prints the starting map seed.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /time&lt;br /&gt;
| /time&lt;br /&gt;
| Prints info about how old the map is.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /toggle-action-logging&lt;br /&gt;
| /toggle-action-logging&lt;br /&gt;
| Toggles logging all input actions performed by the game. This value isn’t persisted between game restarts and only affects your local game in multiplayer sessions.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /toggle-heavy-mode&lt;br /&gt;
| /toggle-heavy-mode&lt;br /&gt;
| Used to investigate [[Desynchronization#Using_heavy_mode_command|desyncs]]. Will slow down the game and make multiplayer unplayable.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unlock-shortcut-bar&lt;br /&gt;
| /unlock-shortcut-bar&lt;br /&gt;
| Unlocks all [[shortcut bar]] items, including blueprint string import, copy &amp;amp; paste, deconstruction and upgrade planner.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /unlock-tips&lt;br /&gt;
| /unlock-tips&lt;br /&gt;
| Unlocks all tips and tricks entries.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /version&lt;br /&gt;
| /version&lt;br /&gt;
| Prints the current game version.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Command&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Example&lt;br /&gt;
! style=&amp;quot;width:46%&amp;quot;| Description&lt;br /&gt;
! style=&amp;quot;width:4%&amp;quot;| Admin only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;message&amp;gt;&lt;br /&gt;
| Hello team!&lt;br /&gt;
| Console input that does not start with {{keybinding|/}} is shown as a chat message to your team.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /admin&lt;br /&gt;
| /admin&lt;br /&gt;
| Opens the player management GUI.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /admins&lt;br /&gt;
| /admins&lt;br /&gt;
| Prints a list of game admins.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /ban &amp;lt;player&amp;gt; &amp;lt;reason&amp;gt;&lt;br /&gt;
| /ban xTROLLx Throwing grenades in base&lt;br /&gt;
| Bans the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /bans&lt;br /&gt;
| /bans&lt;br /&gt;
| Prints a list of banned players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /banlist &amp;lt;add/remove/get/clear&amp;gt; &amp;lt;player&amp;gt;&lt;br /&gt;
| /banlist get&lt;br /&gt;
| Adds or removes a player from the banlist. Same as /ban or /unban.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /config &amp;lt;get/set&amp;gt; &amp;lt;option&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
| /config set password hunter2&lt;br /&gt;
| Gets or sets various multiplayer game settings. Available configs are: afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public. The units for the options afk-auto-kick and autosave-interval are in minutes.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /delete-blueprint-library &amp;lt;player&amp;gt;&lt;br /&gt;
| /delete-blueprint-library everybody confirm&lt;br /&gt;
| Deletes the blueprint library storage for the given offline player from the save file. Enter “everybody confirm” to delete the storage of all offline players.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /demote &amp;lt;player&amp;gt;&lt;br /&gt;
| /demote AzureDiamond&lt;br /&gt;
| Demotes the player from admin.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;player&amp;gt;&lt;br /&gt;
| /ignore Cthon98&lt;br /&gt;
| Prevents the chat from showing messages from this player. Admin messages are still shown.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /ignores&lt;br /&gt;
| /ignores&lt;br /&gt;
| Prints a list of ignored players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /kick &amp;lt;player&amp;gt; &amp;lt;reason&amp;gt;&lt;br /&gt;
| /kick xTROLLx Throwing grenades in base&lt;br /&gt;
| Kicks the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /mute &amp;lt;player&amp;gt;&lt;br /&gt;
| /mute Cthon98&lt;br /&gt;
| Prevents the player from saying anything in chat.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /mutes&lt;br /&gt;
| /mutes&lt;br /&gt;
| All players that are muted (can’t talk in chat).&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /open &amp;lt;player&amp;gt;&lt;br /&gt;
| /open AzureDiamond&lt;br /&gt;
| Opens another player’s inventory.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /o &amp;lt;player&amp;gt;&lt;br /&gt;
| /o AzureDiamond&lt;br /&gt;
| Same as /open.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /players [online/o/count/c]&lt;br /&gt;
| /players&lt;br /&gt;
| Prints a list of players in the game. (parameter online/o, it prints only players that are online, count/c prints only count)&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /p [online/o/count/c]&lt;br /&gt;
| /p o c&lt;br /&gt;
| Same as /players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /promote &amp;lt;player&amp;gt;&lt;br /&gt;
| /promote AzureDiamond&lt;br /&gt;
| Promotes the player to admin.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /purge &amp;lt;player&amp;gt;&lt;br /&gt;
| /purge Cthon98&lt;br /&gt;
| Clears all the messages from this player from the chat log.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /reply &amp;lt;message&amp;gt;&lt;br /&gt;
| /reply oh, really?&lt;br /&gt;
| Replies to the last player that whispered to you.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /r &amp;lt;message&amp;gt;&lt;br /&gt;
| /r oh, really?&lt;br /&gt;
| Same as /reply.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /server-save&lt;br /&gt;
| /server-save&lt;br /&gt;
| Saves the game on the server in a multiplayer game.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /shout &amp;lt;message&amp;gt;&lt;br /&gt;
| /shout Hello world!&lt;br /&gt;
| Sends a message to all players including other forces.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /s &amp;lt;message&amp;gt;&lt;br /&gt;
| /s Hello world!&lt;br /&gt;
| Same as /shout.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /swap-players &amp;lt;player&amp;gt; [player]&lt;br /&gt;
| /swap-players AzureDiamond&lt;br /&gt;
| Swaps your character with the given player’s character, or if two players are given swaps the two player characters.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unban &amp;lt;player&amp;gt;&lt;br /&gt;
| /unban xTROLLx&lt;br /&gt;
| Unbans the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unignore &amp;lt;player&amp;gt;&lt;br /&gt;
| /unignore Cthon98&lt;br /&gt;
| Allows the chat to show messages from this player.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /unmute &amp;lt;player&amp;gt;&lt;br /&gt;
| /unmute Cthon98&lt;br /&gt;
| Allows the player to talk in chat again.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /whisper &amp;lt;player&amp;gt; &amp;lt;message&amp;gt;&lt;br /&gt;
| /whisper AzureDiamond that&#039;s what I see&lt;br /&gt;
| Sends a message to the specified player.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /w &amp;lt;player&amp;gt; &amp;lt;message&amp;gt;&lt;br /&gt;
| /w AzureDiamond that&#039;s what I see&lt;br /&gt;
| Same as /whisper.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /whitelist &amp;lt;add/remove/get/clear&amp;gt; [player]&lt;br /&gt;
| /whitelist get&lt;br /&gt;
| Adds or removes a player from the whitelist, where only whitelisted players can join the game. Enter nothing for “player” when using “get” to print a list of all whitelisted players. An empty whitelist disables the whitelist functionality allowing anyone to join.&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripting and cheat commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| /cheat &amp;lt;all&amp;gt;&lt;br /&gt;
| Researches all technologies and enables cheat mode. Using the &#039;&#039;&#039;all&#039;&#039;&#039; option also gives the player some additional items.&lt;br /&gt;
|-&lt;br /&gt;
| /command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed).&lt;br /&gt;
|-&lt;br /&gt;
| /c &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed).&lt;br /&gt;
|-&lt;br /&gt;
| /editor&lt;br /&gt;
| Toggles the map editor.&lt;br /&gt;
|-&lt;br /&gt;
| /measured-command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) and measures time it took.&lt;br /&gt;
|-&lt;br /&gt;
| /mc &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) and measures time it took.&lt;br /&gt;
|-&lt;br /&gt;
| /silent-command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) without printing it to the console.&lt;br /&gt;
|-&lt;br /&gt;
| /sc &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) without printing it to the console.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a very powerful feature, which also allows cheating, and as such &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;achievements will be permanently disabled for the save&amp;lt;/span&amp;gt; as soon as you use a script command.&lt;br /&gt;
&lt;br /&gt;
== Basic example scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Use it as calculator ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(1234*5678)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zoom beyond normal bounds ===&lt;br /&gt;
Note that zooming too far out can cause performance hits. Be careful.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.zoom=0.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mine faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.manual_mining_speed_modifier=1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Craft faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.manual_crafting_speed_modifier=1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unlock and research all technologies ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.research_all_technologies()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Undo this with the command in the next section.&lt;br /&gt;
&lt;br /&gt;
Note: Specific technologies can be researched using the [[map editor]] by shift clicking the &amp;quot;start research&amp;quot; button on the technology GUI.&lt;br /&gt;
&lt;br /&gt;
=== Unresearch all technologies ===&lt;br /&gt;
This does not reset manually applied bonuses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, tech in pairs(game.player.force.technologies) do &lt;br /&gt;
	tech.researched=false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Specific technologies can be unresearched using the [[map editor]] by clicking the &amp;quot;un-research&amp;quot; button on the technology GUI.&lt;br /&gt;
&lt;br /&gt;
=== Reset your force ===&lt;br /&gt;
This resets all data for your force, including kill and production statistics, technologies, bonuses and charting status.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.reset()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Always show rail block visualization ===&lt;br /&gt;
Permanently show the rail block visualization instead of only when holding a rail signal. Disable by replacing true with false.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.game_view_settings.show_rail_block_visualisation = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Set all trains to Automatic mode ===&lt;br /&gt;
Set all trains to automatic mode - for example after building them with a blueprint. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for key,ent in pairs (game.player.surface.find_entities_filtered{name=&amp;quot;locomotive&amp;quot;}) do &lt;br /&gt;
    ent.train.manual_mode = false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inventory manipulation scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Cheat mode ===&lt;br /&gt;
Allows for infinite free crafting. Disable by replacing true with false.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.cheat_mode=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Refill resources (refill oil, iron etc.) ===&lt;br /&gt;
While holding the cursor over a resource tile in-game:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.amount=7500&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can refill all resources in the map with the following command. Change ore.amount to the desired value.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c surface = game.player.surface&lt;br /&gt;
for _, ore in pairs(surface.find_entities_filtered({type=&amp;quot;resource&amp;quot;})) do&lt;br /&gt;
    ore.amount = 10000&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add items to the player&#039;s inventory ===&lt;br /&gt;
Replace iron-plate with the [[data.raw|internal name]] of the item desired.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.insert{name=&amp;quot;iron-plate&amp;quot;, count=100}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For instance, here&#039;s a stack of the god-mode energy system interface:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.insert{name=&amp;quot;electric-energy-interface&amp;quot;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several god-mode items available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;infinity-chest&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;infinity-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;electric-energy-interface&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;heat-interface&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a powerful armor with equipment and some tools for construction:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c	local player = game.player&lt;br /&gt;
player.insert{name=&amp;quot;power-armor-mk2&amp;quot;, count = 1}&lt;br /&gt;
local p_armor = player.get_inventory(5)[1].grid&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;energy-shield-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;energy-shield-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;personal-roboport-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;night-vision-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;battery-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;battery-mk2-equipment&amp;quot;})&lt;br /&gt;
player.insert{name=&amp;quot;construction-robot&amp;quot;, count = 25}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Increase player inventory slots ===&lt;br /&gt;
Gives 100 additional bonus inventory slots to your entire force. Used by the [[Toolbelt (research)]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.character_inventory_slots_bonus=100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== World manipulation scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Reveal the map around the player ===&lt;br /&gt;
&lt;br /&gt;
Reveals the map around the player, similar to a [[radar]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local radius=150&lt;br /&gt;
game.player.force.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or from start position&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local radius=150&lt;br /&gt;
game.player.force.chart(game.player.surface, {{x = -radius, y = -radius}, {x = radius, y = radius}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Change 150 to the desired radius, higher values take longer.&lt;br /&gt;
&lt;br /&gt;
=== Hide revealed map ===&lt;br /&gt;
&lt;br /&gt;
Hides all revealed chunks, inverted map revealing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local force = game.player.force&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  force.unchart_chunk({x = chunk.x, y = chunk.y}, surface)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reveal all generated map ===&lt;br /&gt;
&lt;br /&gt;
Revels all of the generated map to the player&#039;s team.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.chart_all()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete chunks ===&lt;br /&gt;
If much of the map is revealed, it increases the size of the save file. The following command cancels the generation of all chunks that are currently queued for generation and removes chunks outside a 32 chunks radius around 0,0. Note that this will remove player entities if there are any on these chunks.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface;&lt;br /&gt;
game.player.force.cancel_charting(surface); &lt;br /&gt;
local chunk_radius = 32;&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  if (chunk.x &amp;lt; -chunk_radius or chunk.x &amp;gt; chunk_radius or chunk.y &amp;lt; -chunk_radius or chunk.y &amp;gt; chunk_radius) then&lt;br /&gt;
    surface.delete_chunk(chunk)&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete unrevealed chunks ===&lt;br /&gt;
This command deletes chunks that are not revealed by the player. Can be used after the command for [[#Hide revealed map|hiding revealed map]] to delete the chunks not covered by radar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;/c local surface = game.player.surface&lt;br /&gt;
local force = game.player.force&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  if not force.is_chunk_charted(surface, chunk) then&lt;br /&gt;
    surface.delete_chunk(chunk)&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turn off night ===&lt;br /&gt;
Enables eternal day.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.always_day=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change game speed ===&lt;br /&gt;
0.5 is half speed, 1 is default, 2 is double speed, etc. Minimum is 0.01. This can be used for a lot of things like when you know you will have to wait for long periods of time for something to complete. Increasing will decrease performance, be careful.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.speed=X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Freeze time ===&lt;br /&gt;
Stops the advancement of the time. Unfreezes it if you by replace &amp;quot;true&amp;quot; with &amp;quot;false&amp;quot;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.freeze_daytime=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove all pollution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.clear_pollution()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Completely turn off pollution ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, surface in pairs(game.surfaces) do&lt;br /&gt;
  surface.clear_pollution()&lt;br /&gt;
end&lt;br /&gt;
game.map_settings.pollution.enabled = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add a lot of pollution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.pollute(game.player.position, 1000000)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Where speakers are, who placed them ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local speakers = game.player.surface.find_entities_filtered{force = game.player.force, type=&amp;quot;programmable-speaker&amp;quot;}&lt;br /&gt;
for key, speaker in pairs(speakers) do&lt;br /&gt;
    game.player.print(speaker.last_user.name .. &amp;quot; placed a speaker at [gps=&amp;quot; .. speaker.position.x .. &amp;quot;,&amp;quot; .. speaker.position.y .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable friendly fire for your force ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.friendly_fire = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add new resource patch ===&lt;br /&gt;
This creates a new 11×11 patch of resources, centered on the player character, where the ground is not water.&lt;br /&gt;
The patch it creates is perfectly square but it randomizes the amount similar to natural generation, with fewer ore at the edges and more ore in the center.&lt;br /&gt;
The default numbers result in a patch with 2500-3000 ore.&lt;br /&gt;
&lt;br /&gt;
If you want a larger patch, change &amp;quot;local size = 5&amp;quot; to a larger number.&lt;br /&gt;
A larger patch will have exponentially more ore.&lt;br /&gt;
Entering a number above 30 is not recommended.&lt;br /&gt;
&lt;br /&gt;
If you want a richer patch, change &amp;quot;local density = 10&amp;quot; to a larger number.&lt;br /&gt;
Entering a very large number shouldn&#039;t hurt anything but you probably don&#039;t need to go above 100.&lt;br /&gt;
&lt;br /&gt;
To choose which resource is spawned, change &amp;quot;stone&amp;quot; near the bottom to &amp;quot;iron-ore&amp;quot;, &amp;quot;copper-ore&amp;quot;, &amp;quot;coal&amp;quot;, or &amp;quot;uranium-ore&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local ore=nil&lt;br /&gt;
local size=5&lt;br /&gt;
local density=10&lt;br /&gt;
for y=-size, size do&lt;br /&gt;
	for x=-size, size do&lt;br /&gt;
		a=(size+1-math.abs(x))*10&lt;br /&gt;
		b=(size+1-math.abs(y))*10&lt;br /&gt;
		if a&amp;lt;b then&lt;br /&gt;
			ore=math.random(a*density-a*(density-8), a*density+a*(density-8))&lt;br /&gt;
		end&lt;br /&gt;
		if b&amp;lt;a then&lt;br /&gt;
			ore=math.random(b*density-b*(density-8), b*density+b*(density-8))&lt;br /&gt;
		end&lt;br /&gt;
		if surface.get_tile(game.player.position.x+x, game.player.position.y+y).collides_with(&amp;quot;ground-tile&amp;quot;) then&lt;br /&gt;
			surface.create_entity({name=&amp;quot;stone&amp;quot;, amount=ore, position={game.player.position.x+x, game.player.position.y+y}})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more flexibility, the [[map editor]] can also be used to create/alter/remove resource patches.&lt;br /&gt;
&lt;br /&gt;
=== Remove resources around the player ===&lt;br /&gt;
Removes all resource patches from the ground in a 50 x 50 area around the player.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local size=50&lt;br /&gt;
local pos=game.player.position&lt;br /&gt;
&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type=&amp;quot;resource&amp;quot;}) &lt;br /&gt;
	do e.destroy() &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add new oil patch ===&lt;br /&gt;
This creates 9 crude oil patches in a 3×3 square.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for y=0,2 do&lt;br /&gt;
	for x=0,2 do&lt;br /&gt;
		game.player.surface.create_entity({name=&amp;quot;crude-oil&amp;quot;, amount=100000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or randomly without any collision:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local position=nil&lt;br /&gt;
for i=1,9 do&lt;br /&gt;
	position=game.player.surface.find_non_colliding_position(&amp;quot;crude-oil&amp;quot;, game.player.position, 0, i/2+1.5)&lt;br /&gt;
	if position then &lt;br /&gt;
		game.player.surface.create_entity({name=&amp;quot;crude-oil&amp;quot;, amount=100000, position=position})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regenerate resources ===&lt;br /&gt;
For solid resources like iron, destroys all resource entities and creates resource entities as in the original map generation. For fluid resources like oil, sets the yield of all existing resource entities to the original amount. Regenerates resources on the entire surface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{type=&amp;quot;resource&amp;quot;}) do&lt;br /&gt;
  if e.prototype.infinite_resource then&lt;br /&gt;
    e.amount = e.initial_amount&lt;br /&gt;
  else&lt;br /&gt;
    e.destroy()&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
local non_infinites = {}&lt;br /&gt;
for resource, prototype in pairs(game.get_filtered_entity_prototypes{{filter=&amp;quot;type&amp;quot;, type=&amp;quot;resource&amp;quot;}}) do&lt;br /&gt;
  if not prototype.infinite_resource then&lt;br /&gt;
    table.insert(non_infinites, resource)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
surface.regenerate_entity(non_infinites)&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{type=&amp;quot;mining-drill&amp;quot;}) do&lt;br /&gt;
    e.update_connections()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Count entities ===&lt;br /&gt;
Counts all entities whose name includes the string in local entity.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local entity=&amp;quot;belt&amp;quot;&lt;br /&gt;
local surface=game.player.surface&lt;br /&gt;
local count=0&lt;br /&gt;
for key, ent in pairs(surface.find_entities_filtered({force=game.player.force})) do&lt;br /&gt;
	if string.find(ent.name,entity) then&lt;br /&gt;
		count=count+1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
game.player.print(count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turn off cliff generation ===&lt;br /&gt;
Sets size to &amp;quot;none&amp;quot;. Only effective on chunks that are generated after using this command. Use [[#Remove all cliffs]] to delete existing cliffs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local mgs = game.player.surface.map_gen_settings&lt;br /&gt;
mgs.cliff_settings.cliff_elevation_0 = 1024&lt;br /&gt;
game.player.surface.map_gen_settings = mgs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove all cliffs ===&lt;br /&gt;
Removes all cliffs existing cliffs from the world. Use [[#Turn off cliff generation]] to turn off cliff generation in new chunks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, v in pairs(game.player.surface.find_entities_filtered{type=&amp;quot;cliff&amp;quot;}) do&lt;br /&gt;
  v.destroy()&lt;br /&gt;
end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all decoratives ===&lt;br /&gt;
Delete the decoratives that can be found in the world.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.destroy_decoratives({})&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change map generation settings ===&lt;br /&gt;
This allows to change the map generation settings for new chunks; it does not alter already generated chunks. [[#Delete chunks|Deleted chunks]] are affected by the setting change because they are newly generated when they get explored again.&lt;br /&gt;
&lt;br /&gt;
To change resource generation settings, replace &amp;quot;iron-ore&amp;quot; with the [[Data.raw#resource|resource]] that should be changed and replace &amp;quot;very-high&amp;quot; with the desired [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] in the following command. Replace &amp;quot;iron-ore&amp;quot; with &amp;quot;enemy-base&amp;quot; to change the enemy base generation settings. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local resource = &amp;quot;iron-ore&amp;quot;&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.autoplace_controls[resource].size = &amp;quot;very-high&amp;quot;&lt;br /&gt;
mgs.autoplace_controls[resource].frequency = &amp;quot;very-high&amp;quot;&lt;br /&gt;
mgs.autoplace_controls[resource].richness = &amp;quot;very-high&amp;quot;&lt;br /&gt;
surface.map_gen_settings = mgs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change water generation settings, replace &amp;quot;very-high&amp;quot; with the desired [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] in the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.water = &amp;quot;very-high&amp;quot; --[[ size]]&lt;br /&gt;
mgs.terrain_segmentation  = &amp;quot;very-high&amp;quot; --[[ frequency]]&lt;br /&gt;
surface.map_gen_settings = mgs &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a structure indestructible ===&lt;br /&gt;
This makes it impossible for an entity to be damaged or killed, e.g. by biters. Hover over the entity and then run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.destructible = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connect linked belts ===&lt;br /&gt;
If there exist at least two [[Prototype/LinkedBelt|linked belts]], and one of them has the &amp;quot;Entity tag&amp;quot; &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt;, and another linked belt has the &amp;quot;Entity tag&amp;quot; &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt;, then the following command should link these two linked belts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local i = game.get_entity_by_tag(&#039;in&#039;)&lt;br /&gt;
local o = game.get_entity_by_tag(&#039;out&#039;)&lt;br /&gt;
i.linked_belt_type = &#039;input&#039;&lt;br /&gt;
o.linked_belt_type = &#039;output&#039;&lt;br /&gt;
i.connect_linked_belts(o)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enemy/evolution scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Set evolution factor ===&lt;br /&gt;
Ranges from 0 (new game) to 1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.forces[&amp;quot;enemy&amp;quot;].evolution_factor=X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable time-based evolution &amp;amp; increases pollution-based evolution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.map_settings.enemy_evolution.time_factor=0&lt;br /&gt;
/c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;2&amp;quot; at the end of the last command will double the default pollution factor. You can substitute another number to increase (or decrease) the pollution factor further.&lt;br /&gt;
&lt;br /&gt;
=== Kill all biters on the &amp;quot;enemy&amp;quot; force ===&lt;br /&gt;
Note that this will kill only mobile units, spawners will not be killed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.forces[&amp;quot;enemy&amp;quot;].kill_all_units()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill all enemies ===&lt;br /&gt;
This will kill all biters, bases and worms. Anything that is an enemy will be completely destroyed. This only affects enemies in the generated world, so any unexplored parts of the map which still need to be generated will still have enemies. You can [[#Prevent biters being on newly generated chunks|prevent biters being on newly generated chunks]] if desired.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
for key, entity in pairs(surface.find_entities_filtered({force=&amp;quot;enemy&amp;quot;})) do&lt;br /&gt;
	entity.destroy()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill all nearby enemies ===&lt;br /&gt;
&lt;br /&gt;
This will kill all biters, bases and worms in a configurable radius. The default, 250 tiles, is about two zoomed-out screen widths on full HD. After destruction, it shows how many objects were destroyed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local pp = game.player.position&lt;br /&gt;
local cnt = 0&lt;br /&gt;
for key, entity in pairs(surface.find_entities_filtered({force=&amp;quot;enemy&amp;quot;, radius=250, position=pp })) do&lt;br /&gt;
	cnt = cnt+1&lt;br /&gt;
	entity.destroy()&lt;br /&gt;
 end	&lt;br /&gt;
game.player.print(cnt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable peaceful mode ===&lt;br /&gt;
Enabling peaceful mode prevents biter attacks until provoked. Substitute true for false to disable. Already existing biters are not affected by this command so attacks could continue for a while after activating peaceful mode.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.peaceful_mode = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable biter expansion ===&lt;br /&gt;
Biter expansion allows biters to create new nests, it is enabled by default. Substitute true for false to disable.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.map_settings.enemy_expansion.enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable enemy bases entirely ===&lt;br /&gt;
Biter expansion allows biters to create new nests, it is enabled by default. Substitute true for false to disable.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c editor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This requires you to open the editor and go to the &amp;quot;Surfaces&amp;quot; tab and select &amp;quot;nauvis&amp;quot; and press &amp;quot;Edit map gen settings&amp;quot;. Here you can edit the enabling of enemy bases as well as other settings.&lt;br /&gt;
&lt;br /&gt;
=== Prevent biters being on newly generated chunks ===&lt;br /&gt;
On newly generated chunks no biters will be present, however all current biters will remain unaffected. Equivalent of setting the Enemy Base Size to None under the Terrain settings during map generation but achieved mid game by [[#Change map generation settings|changing map generation settings]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.autoplace_controls[&amp;quot;enemy-base&amp;quot;].size = &amp;quot;none&amp;quot;&lt;br /&gt;
surface.map_gen_settings = mgs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Player character scripts ==&lt;br /&gt;
Commands concerning the player directly.&lt;br /&gt;
=== Get player position ===&lt;br /&gt;
Prints coordinates of your current position.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(game.player.position)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Teleport player ===&lt;br /&gt;
Moves the player to the specified location. You should be able to teleport to a specific player if you obtain their coordinates via them executing the previous command and giving them to you.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.teleport({X, Y})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To teleport to the world&#039;s origin, use 0,0.&lt;br /&gt;
&lt;br /&gt;
=== Enable god mode ===&lt;br /&gt;
God mode removes your player character allowing you to fly over obstacles and take no damage.&lt;br /&gt;
&lt;br /&gt;
Disassociate your controls from the character and destroy it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.character.destroy()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To undo, spawn a player character. This will spawn a new character at the spawn point of the world, and connect your controls to it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.create_character()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable long reach ===&lt;br /&gt;
Enables long reach, which allows the player to build and interact with entities at a greater distance. The default reach is 10.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local reach = 10000&lt;br /&gt;
game.player.force.character_build_distance_bonus = reach&lt;br /&gt;
game.player.force.character_reach_distance_bonus = reach&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Find player corpses ===&lt;br /&gt;
Pings player corpses on the map.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local found_corpses = game.player.surface.find_entities_filtered{type=&amp;quot;character-corpse&amp;quot;}&lt;br /&gt;
for _,corpse in pairs(found_corpses) do&lt;br /&gt;
    local player = game.get_player(corpse.character_corpse_player_index)&lt;br /&gt;
    local name = player and player.name or &amp;quot;????&amp;quot;&lt;br /&gt;
    game.player.print(name .. &amp;quot; --&amp;gt; [gps=&amp;quot; .. corpse.position.x .. &amp;quot;,&amp;quot; .. corpse.position.y .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.character_running_speed_modifier=3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Research scripts ==&lt;br /&gt;
=== Enable faster research ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.laboratory_speed_modifier=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-0.5 is half speed, 0 is normal speed, 1 is double speed, 2 is triple etc.&lt;br /&gt;
&lt;br /&gt;
=== Research specific technologies ===&lt;br /&gt;
The internal technology names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;electric-energy-distribution-1&#039;].researched=true&lt;br /&gt;
/c game.player.force.technologies[&#039;steel-processing&#039;].researched=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To research a high level of an infinite technology, set its level:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;worker-robots-speed-6&#039;].level = 100&lt;br /&gt;
/c game.player.force.technologies[&#039;mining-productivity-4&#039;].level = 100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unresearch specific technologies ===&lt;br /&gt;
The internal technology names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;electric-energy-distribution-1&#039;].researched=false&lt;br /&gt;
/c game.player.force.technologies[&#039;steel-processing&#039;].researched=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enabling specific recipes ===&lt;br /&gt;
The internal recipe/item names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;electric-energy-interface&amp;quot;].enabled=true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;rocket-silo&amp;quot;].enabled=true&lt;br /&gt;
/c game.player.force.recipes.loader.enabled=true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;fast-loader&amp;quot;].enabled = true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;express-loader&amp;quot;].enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable all recipes ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resetting technology effects to default ===&lt;br /&gt;
This will reset the enabled/unlocked state of all recipes to what they would be purely based on the currently researched technologies, as well as resetting other technology effects like mining speed, etc. Any manual modifications to these effects and recipe unlocks will be undone.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.reset_technology_effects()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note: Can be used as a quick workaround when recipes are unavailable after adding or changing mods even though the technology unlocking them has already been researched.&lt;br /&gt;
&lt;br /&gt;
== Modding tools ==&lt;br /&gt;
A list of the internal names of most things in the vanilla game can also be found on [[data.raw]].&lt;br /&gt;
&lt;br /&gt;
=== Access a mod&#039;s data ===&lt;br /&gt;
If the first word of the command is __mod-name__ it will run in the context of the mod with the same name. For instance, this command prints the data from the Even Distribution mod:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c __even-distribution__ game.player.print(serpent.dump(global))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Print to console the tile under the player ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(game.player.surface.get_tile(game.player.position).name)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write all researched technologies to file ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local list = {}&lt;br /&gt;
for _, tech in pairs(game.player.force.technologies) do &lt;br /&gt;
	if tech.researched then&lt;br /&gt;
    list[#list+1] = tech.name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.write_file(&amp;quot;techs.lua&amp;quot;, serpent.block(list) .. &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write all enabled recipes to file ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local list = {}&lt;br /&gt;
for _, recipe in pairs(game.player.force.recipes) do &lt;br /&gt;
	if recipe.enabled then&lt;br /&gt;
    list[#list+1] = recipe.name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.write_file(&amp;quot;recipes.lua&amp;quot;, serpent.block(list) .. &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write mod list to file ===&lt;br /&gt;
Write all currently active mods and their version to the file script-output/mods.txt in the [[user data directory]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.write_file(&amp;quot;mods.txt&amp;quot;, serpent.block(game.active_mods))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{History|1.1.92|&lt;br /&gt;
* Added a notification when a technology is researched.&lt;br /&gt;
* Added /enable-research-queue console command to enable the research queue without disabling achievements.}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Command line parameters]]&lt;br /&gt;
* https://lua-api.factorio.com/latest/index-runtime.html - Factorio API reference for latest version&lt;br /&gt;
&lt;br /&gt;
{{C|Modding}}&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Map_generator&amp;diff=189643</id>
		<title>Map generator</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Map_generator&amp;diff=189643"/>
		<updated>2022-08-05T22:45:26Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: /* Enemy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
[[File:Default_123456789.png|thumb|right|An example how the world generator might create a new map: Default settings with map seed 123456789]]&lt;br /&gt;
World generation is the procedure by which the in game landscape is generated. In short: a number of settings, editable at the start of a new world, define what that world will look like. This can dramatically alter gameplay — a new player is advised to start with the default settings before deciding to change their world.&lt;br /&gt;
__TOC__{{Clear}}&lt;br /&gt;
== Map generation presets ==&lt;br /&gt;
[[File:MapGeneratorOverview.png|thumb|right|400px|Overview of the map generation screen]]&lt;br /&gt;
A preset may be chosen in the top left dropdown instead of manually configuring the generation.&lt;br /&gt;
=== Default ===&lt;br /&gt;
Normal settings. The recommended way to play Factorio.&lt;br /&gt;
&lt;br /&gt;
All sliders are set to the center position. Map height and width is unlimited, peaceful mode is disabled.&lt;br /&gt;
&lt;br /&gt;
All other settings are set to their defaults:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Enemy expansion            !! Default !! Evolution        !! Default&lt;br /&gt;
|-                                      &lt;br /&gt;
| Enabled                    || Yes     || Enabled          || Yes    &lt;br /&gt;
|-                                      &lt;br /&gt;
| Maximum expansion distance || 7       || Time factor      || 40     &lt;br /&gt;
|-                                      &lt;br /&gt;
| Minimum group size         || 5       || Destroy factor   || 200    &lt;br /&gt;
|-                                      &lt;br /&gt;
| Maximum group size         || 20      || Pollution factor || 9      &lt;br /&gt;
|-&lt;br /&gt;
| Minimum cooldown (Minutes) || 4      &lt;br /&gt;
|-&lt;br /&gt;
| Maximum cooldown (Minutes) || 60     &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pollution                 !! Default !! Recipes/Technology          !! Default&lt;br /&gt;
|-                                        &lt;br /&gt;
| Enabled                   || Yes     || Recipe difficulty           || Normal &lt;br /&gt;
|-                                        &lt;br /&gt;
| Absorption modifier       || 100%    || Technology difficulty       || Normal &lt;br /&gt;
|-                                        &lt;br /&gt;
| Attack cost modifier      || 100%    || Technology price multiplier || 1&lt;br /&gt;
|-                                        &lt;br /&gt;
| Minimum damage to trees   || 60      || Research queue availability || After the game is finished&lt;br /&gt;
|-&lt;br /&gt;
| Absorbed per damaged tree || 10      || &lt;br /&gt;
|-&lt;br /&gt;
| Diffusion ratio           || 2%      || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rich resources ===&lt;br /&gt;
Resources patches have a larger richness, so you don&#039;t have to expand far.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Resources have 200% richness instead of 100%.&lt;br /&gt;
&lt;br /&gt;
=== Marathon ===&lt;br /&gt;
Recipes and technologies are more expensive.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Expensive recipes and technology, technology price multiplier 4.&lt;br /&gt;
&lt;br /&gt;
=== Death world ===&lt;br /&gt;
Biters are more dangerous and evolve faster.&lt;br /&gt;
&lt;br /&gt;
Difference from default: 200% enemy base frequency and 200% enemy base size, 75% starting area size, enemy evolution time factor is set to 200, pollution factor is set to 12. The pollution absorption modifier is set to 50% instead of 100%, same goes for the attack cost modifier.&lt;br /&gt;
&lt;br /&gt;
=== Death world marathon ===&lt;br /&gt;
Recipes and technologies are expensive and biters are dangerous and plentiful. Only select this if you are a Factorio veteran.&lt;br /&gt;
&lt;br /&gt;
Combines &amp;quot;Marathon&amp;quot; and &amp;quot;Death world&amp;quot; with some additional changes: Enemy evolution time factor is set to 150, pollution factor is set to 10. Attack cost modifier is set to 80% instead of 100% (50% for death world).&lt;br /&gt;
&lt;br /&gt;
=== Rail world ===&lt;br /&gt;
Resource patches are large and spread far apart, to encourage train systems. Biters won&#039;t create any new bases or re-expand into cleared territory.&lt;br /&gt;
&lt;br /&gt;
Difference from default: All resources are set to 33% frequency and 300% size. Water is set to 200% scale and 150% coverage. The evolution time factor is set to 20 from 40 and enemy expansion is disabled.&lt;br /&gt;
&lt;br /&gt;
=== Ribbon world ===&lt;br /&gt;
The map height is limited to only 128 tiles, which introduces a range of challenges and interesting situations.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Map height is limited to 128. All resources are set to 300% frequency, 50% size and 200% richness. Water is set to 25% coverage and size. Starting area size is increased to 300%. &lt;br /&gt;
&lt;br /&gt;
=== Island ===&lt;br /&gt;
A large island in an endless ocean.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Terrain map type is set to island.&lt;br /&gt;
&lt;br /&gt;
== Manual configuration ==&lt;br /&gt;
It is possible experiment with different settings by opening the map preview, changing the settings and observing their effects. This makes it possible to directly observe what exactly particular settings modify in the world, beyond the textual descriptions provided on this page.&lt;br /&gt;
&lt;br /&gt;
The seed is the starting value for the random number generator that Factorio uses for generating the world based on the generation settings. This means that even with the same generation settings, the world can look very different depending on the seed.&lt;br /&gt;
&lt;br /&gt;
All resources and terrain features can be disabled by unchecking the checkbox in front of them.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Frequency determines the number of resource patches in a given area. It does not affect resource patch size or richness. A setting of 200% frequency that means roughly double the patches can be found in a given area.&lt;br /&gt;
&lt;br /&gt;
The size setting adjusts the size of the resource patches. Setting the slider to 200% means the surface area of the patch is doubled.&lt;br /&gt;
&lt;br /&gt;
Richness defines the yield of every ore tile and every oil field. If richness is set to 200%, each ore tile and oil field contains about double the amount of ore/oil. Outside of this, resource patch richness  increases by distance.&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Setting the map type to island generates a single island around the spawn point and endless ocean beyond that. The normal map type generates endless terrain.&lt;br /&gt;
&lt;br /&gt;
Water scale changes how much space there is between lakes. The smaller the scale, the swampier the terrain. Higher scale leads to bigger oceans separated by bigger landmasses. Water coverage influences the overall amount of water. Reducing it generates small lakes, increasing it generates large oceans.&lt;br /&gt;
&lt;br /&gt;
The settings for trees behave in the same way. Higher scale increases the distance between forests while lower scale reduces it. High tree coverage allows to completely cover the world in trees, and low coverage nearly removes them from the world.&lt;br /&gt;
&lt;br /&gt;
Cliff frequency influences how many cliff lines there are in the world. Higher frequency means more cliffs, lower frequency reduces their number. The continuity setting changes how long and unbroken the cliff lines are. Low continuity leads to very short lines, high continuity to long, nearly unbroken lines of cliffs.&lt;br /&gt;
&lt;br /&gt;
The moisture settings control the distribution of grass versus desert. Higher bias generates more grass, lower bias generates more desert. Higher scale increases the size of the grass/desert areas, low scale leads to small grass and desert patches.&lt;br /&gt;
&lt;br /&gt;
The terrain type setting controls the distribution of red desert versus sand. Higher bias generates more red desert, lower bias generates more sand. Higher scale increases the size of the red desert/sand areas, low scale leads to small red desert and sand patches.&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
[[File:MapGeneratorEnemy.png|thumb|right|400px|The enemy tab]]&lt;br /&gt;
Frequency determines the number of enemy bases in a given area. It does not affect enemy base size. A setting of 200% frequency that means roughly double the enemy bases can be found in a given area.&lt;br /&gt;
&lt;br /&gt;
The size setting adjusts the size of enemy bases. Setting the slider to 200% means the surface area covered by the enemy bases is doubled.&lt;br /&gt;
&lt;br /&gt;
When peaceful mode is turned on, the [[enemies]] don&#039;t begin fights, only responding if the player (or a structure) fires at them. Only the enemies located near the fired shot are aggravated and they do not call other enemies to join them. The aggravated enemies primarily attack the structures and players that initiated the aggression and also the structures that block their paths. After destroying their targets, most of the time the aggravated enemies will return to being peaceful, but some of them continue a nonstop rampage where they target nearby structures (but not faraway ones). Additionally, when a map is in peaceful mode, the enemies will not [[Enemies#Expansions|expand]].&lt;br /&gt;
&lt;br /&gt;
The starting area is the an almost circular radius around the spawn point that does not contain enemy bases. Increasing its size pushes the bases further out, decreasing its size generates enemy bases closer to the spawn point. The size setting does not have any other effects.&lt;br /&gt;
&lt;br /&gt;
[[Enemies#Expansions|Enemy expansion]] can be enabled/disabled and further adjusted using the below settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Enemy expansion setting    !! Description&lt;br /&gt;
|-                           &lt;br /&gt;
| Maximum expansion distance || The maximum distance enemies will look to expand from other enemy bases.&lt;br /&gt;
|-                           &lt;br /&gt;
| Minimum group size         || The minimum size of an enemy expansion party modified by the current evolution level.&lt;br /&gt;
|-&lt;br /&gt;
| Maximum group size         || The maximum size of an enemy expansion party modified by the current evolution level.&lt;br /&gt;
|-&lt;br /&gt;
| Minimum cooldown (Minutes) || The minimum time between enemy expansions being sent out.&lt;br /&gt;
|-&lt;br /&gt;
| Maximum cooldown (Minutes) || The maximum time between enemy expansions being sent out.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Enemies#Evolution|Evolution]] can be enabled/disabled and further adjusted using the below settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Evolution setting !! Description&lt;br /&gt;
|-                  &lt;br /&gt;
| Time factor       || Controls how fast evolution increases over time.&lt;br /&gt;
|-                  &lt;br /&gt;
| Destroy factor    || Controls how fast evolution increases due to destroying enemy spawners.&lt;br /&gt;
|-                  &lt;br /&gt;
| Pollution factor  || Controls how fast evolution increases due to producing pollution.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
The map width and height allows to generate maps with finite resources and area. It is possible to limit generation in only direction, alike the [[#Ribbon world|ribbon world]].&lt;br /&gt;
&lt;br /&gt;
The difficulty settings allow to change the [[Crafting#Recipe difficulties|recipe]]/technology difficulty and multiply the [[research|technology cost]]. Currently, setting the technology difficulty does not have an effect in vanilla. Furthermore, it can be controlled when the research queue is available: From the start, after launching a [[rocket silo|rocket]] or never.&lt;br /&gt;
&lt;br /&gt;
[[Pollution]] can be enabled/disabled and further adjusted using the below settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pollution setting         !! Description&lt;br /&gt;
|-                       &lt;br /&gt;
| Absorption modifier       || Modifier of how much pollution is absorbed by trees and tiles.&lt;br /&gt;
|-&lt;br /&gt;
| Attack cost modifier      || Modifier of how much pollution is absorbed by enemy attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Minimum damage to trees   || Trees have 4 different stages of the progression towards being destroyed by pollution. Any pollution above this amount starts the process of moving a tree towards a more damaged stage.&lt;br /&gt;
|-&lt;br /&gt;
| Absorbed per damaged tree || Trees have 4 different stages of the progression towards being destroyed by pollution. This value specifies how much pollution is absorbed when moving to a more damaged stage.&lt;br /&gt;
|-&lt;br /&gt;
| Diffusion ratio           || The amount of pollution diffused into neighboring chunks per second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Map exchange string ===&lt;br /&gt;
&lt;br /&gt;
A map exchange string generally looks like this:&lt;br /&gt;
&lt;br /&gt;
   &amp;gt;&amp;gt;&amp;gt;eNp1UTGIE0EU/WMu3F4EUUjhgR4prrDZJTlFJRyZURAR0d7Oz&lt;br /&gt;
   WYiA5udOLsLnhaX4kptxEaraz3hOgu7wIEoKBxa2UVsLFROBC0U4&lt;br /&gt;
   p+dnWSNdw/+583/f97/fwbgGLhAADGgAEPqzAXSD/HI8JRZJZD9P&lt;br /&gt;
   leuVNyGtC0EKu1wV4qwGK3wiPfW3LYfc6NozBFKRv8qMFaOExnlE&lt;br /&gt;
   WDPtrZoOVGcx3igxgb0cKr8SKQ9c1eL5aOSGIcebCxlNl6H2nisD&lt;br /&gt;
   dkIC0YAtpIQjOWYOx7IKFEydGOeJCK61fTTO8228OMFt+416hqn9&lt;br /&gt;
   ivpKn475VGw1uylYSL6oeDKqXtnNc6dnL3RkyJOUsUzZccKuweW7&lt;br /&gt;
   ave8E5nKAeh6HYBahfQLuotCJB71e3LH+8+osTs5bGc7OWRYdtGr&lt;br /&gt;
   lhynR2YWrbkTEHHdP9RIKZpgi3yKodNiUlu6CQhD74+3/z1crdF/&lt;br /&gt;
   jz9/u5a+yYljUvVb3sr2y1MzusVDk3ck8caL+wqYDVHNE99oOTtG&lt;br /&gt;
   40vlJT1jap27Dy64dUSkKNHkG3eR1c7AXa0lpWpMtLN8NNu8smS9&lt;br /&gt;
   3R2D3yIVS2+pN0r7bKGk8lITm8wk1icZvHqChTbd6bLvbYddwqtZ&lt;br /&gt;
   2b4/w+KK8xElgsPX9F9OhP3uTQZAl9wd96e2DorwRT4wTu/vYd/A&lt;br /&gt;
   dl73Kk=&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
The map exchange string can be used to share all map generation settings between different players. The player can paste the string (using {{Keybinding|ctrl|V}}) into the map exchange string field and the game will set the generation settings to the settings saved in the string, resulting in a complete copy of the map when generated.&lt;br /&gt;
&lt;br /&gt;
The map exchange string can be retrieved from save files by going into the load game screen, selecting the desired map, clicking the map exchange string button in the upper right corner and copying the string from the window that pops up.&lt;br /&gt;
&lt;br /&gt;
For a technical description of the map exchange string, see [[map exchange string format]].&lt;br /&gt;
&lt;br /&gt;
== Mechanics ==&lt;br /&gt;
&lt;br /&gt;
=== Starting area ===&lt;br /&gt;
&lt;br /&gt;
There is a second internal starting area that is completely separate from the starting area that can be changed in the enemy settings tab. This starting area always has a constant size and affects the spawning of resources, cliffs and water directly at the spawn. The map generation logic makes sure that there is always at least one patch of [[coal]], [[iron ore]], [[copper ore]], and [[stone]] each. Furthermore, there is always a lake in the starting area, even when water is turned off, and there are never any cliffs there. [[Uranium ore]] and [[crude oil]] do not spawn in the starting area. The richness of the ore patches is slightly influenced by the frequency setting.[https://forums.factorio.com/viewtopic.php?p=432592#p432592]&lt;br /&gt;
&lt;br /&gt;
=== Chunks ===&lt;br /&gt;
&lt;br /&gt;
A map is endless by default, though its size can be limited by height and width — see above. Because it is technically endless, the whole map is not generated from the start. Instead, a new [[Map_structure#Chunk|chunk]] of the map is generated only when needed, similar to other procedurally generated world games.&lt;br /&gt;
&lt;br /&gt;
==== Invisible chunks (fog of war) ====&lt;br /&gt;
&lt;br /&gt;
Outside of the visible chunk area, an invisible area of about 3 chunks wide is generated as a preloading mechanism. Enemies may be located inside these invisible chunks and can attack the player from there, while [[artillery turret]]s and [[artillery wagon|wagon]]s may automatically shoot enemy bases in these chunks if they are within their automatic range. Invisible chunks are also generated if pollution is generated heavily; the game generates (invisible) chunks as it needs to spread the pollution into the area.&lt;br /&gt;
&lt;br /&gt;
==== Charting (removing fog of war) ====&lt;br /&gt;
&lt;br /&gt;
As long as a chunk is invisible, the part of the players map stays black. This changes when a chunk is [[Radar#Charting|charted]], which means when it is &amp;quot;touched&amp;quot; by a radar. This can be either the player&#039;s internal radar, which is always available and continually charts chunks around the player, or the [[radar]] entity. If a far-away and thus ungenerated chunk is charted, it will be generated, together with the above-mentioned invisible 3 chunk radius of map around it.&lt;br /&gt;
&lt;br /&gt;
==== Maximum map size and used memory ====&lt;br /&gt;
&lt;br /&gt;
The map size is limited to 2,000 x 2,000 kilometers; internally, this is a square 2,000,000 tiles on a side, with an area of 4,000,000,000,000 (4 trillion) square tiles (assuming 1 tile = 1 meter on a side yields 2,000 x 2,000 km = 4 million square km). In real-world terms, this is between the sizes of India and Australia (or about 40% the area of the United States, or over 10 times the area of Germany). It would take around 200 [[Time#Seconds|game-minutes]] (ca 3.3 hours real time) to reach that border from the center when riding a [[locomotive|train]] fueled with [[rocket fuel|rocket]] or [[nuclear fuel]]. This makes the world essentially endless for practical purposes. The generated chunks are fully mapped and stored in the player&#039;s RAM, which is the practical limiting factor of exploration.&lt;br /&gt;
&lt;br /&gt;
Because chunks are only generated in and close around the area revealed by radar, it is possible to reach that border without overloading your computer, as the size of the map in computer memory is dependent only on chunks actually generated. If only a narrow stripe of land is explored to far away, this remains manageable.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{History|0.17.44|&lt;br /&gt;
* The resource frequency slider in the map generator settings has a smaller influence over the amount of ore in the starting area patches.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.17.0|&lt;br /&gt;
* Resource generation changed significantly:&lt;br /&gt;
** The starting area contains only iron, copper, coal and stone, in very predictable amounts. Uranium and oil are excluded from the starting area.&lt;br /&gt;
** Resource generation settings now have a much more dramatic effect. Increased the number of steps for each setting.&lt;br /&gt;
** Ore patches are slightly less frequent but richer.&lt;br /&gt;
** There will be a more balanced amount of resources within a large enough region.&lt;br /&gt;
** Many other small tweaks.&lt;br /&gt;
* Biter generation changed significantly:&lt;br /&gt;
** Biter richness slider removed, biter placement is only configured by size and frequency settings.&lt;br /&gt;
** Biter generation settings now have a much more dramatic effect. Increased the number of steps for each setting.&lt;br /&gt;
** Biter bases will increase in size, frequency and number of worms depending on the distance from player spawn.&lt;br /&gt;
** Worm size increases depending on the distance from player spawn.&lt;br /&gt;
** Small biter bases are now closer to the player spawn.&lt;br /&gt;
** At large distances from player spawn, biter base frequency is lower than before but biter bases are larger.&lt;br /&gt;
** Other small tweaks.&lt;br /&gt;
* Terrain generation changed significantly:&lt;br /&gt;
** Water is generated as large lakes instead of swamps.&lt;br /&gt;
** Tile generation improved. Tile placement respects biomes better.&lt;br /&gt;
** More predictable cliff placement.&lt;br /&gt;
** Better controls in the map generator GUI for water, tiles and cliffs.&lt;br /&gt;
* New map terrain type selectable: Island. Launch the rocket with only a limited amount of resources available on the map.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.16.0|&lt;br /&gt;
* Added cliffs.&lt;br /&gt;
* New terrains and new terrain generation.&lt;br /&gt;
* Trees can now be configured in the generate-map GUI.&lt;br /&gt;
* Terrain can be configured in the generate map GUI.&lt;br /&gt;
* Biters scale less with distance and there are generally less biters.&lt;br /&gt;
* No uranium as a starting resource also no uranium is ever generated near the starting area, you need to go look for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.15.0|&lt;br /&gt;
* Extended map generator settings to include an advanced section.&lt;br /&gt;
* Added map generator presets.&lt;br /&gt;
* The map seed is used to generate unique maps instead of just shifting the starting position.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.13.7|&lt;br /&gt;
* Map size is now limited to 2000 km by 2000 km with a black bar rather than crashing when reaching this distance.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.13.0|&lt;br /&gt;
* Map generator algorithm changed, further resource field now have greater richness.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Map_generator&amp;diff=189642</id>
		<title>Map generator</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Map_generator&amp;diff=189642"/>
		<updated>2022-08-05T22:33:55Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: /* Enemy */ New info about peaceful mode based on tests in the scenario editor.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
[[File:Default_123456789.png|thumb|right|An example how the world generator might create a new map: Default settings with map seed 123456789]]&lt;br /&gt;
World generation is the procedure by which the in game landscape is generated. In short: a number of settings, editable at the start of a new world, define what that world will look like. This can dramatically alter gameplay — a new player is advised to start with the default settings before deciding to change their world.&lt;br /&gt;
__TOC__{{Clear}}&lt;br /&gt;
== Map generation presets ==&lt;br /&gt;
[[File:MapGeneratorOverview.png|thumb|right|400px|Overview of the map generation screen]]&lt;br /&gt;
A preset may be chosen in the top left dropdown instead of manually configuring the generation.&lt;br /&gt;
=== Default ===&lt;br /&gt;
Normal settings. The recommended way to play Factorio.&lt;br /&gt;
&lt;br /&gt;
All sliders are set to the center position. Map height and width is unlimited, peaceful mode is disabled.&lt;br /&gt;
&lt;br /&gt;
All other settings are set to their defaults:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Enemy expansion            !! Default !! Evolution        !! Default&lt;br /&gt;
|-                                      &lt;br /&gt;
| Enabled                    || Yes     || Enabled          || Yes    &lt;br /&gt;
|-                                      &lt;br /&gt;
| Maximum expansion distance || 7       || Time factor      || 40     &lt;br /&gt;
|-                                      &lt;br /&gt;
| Minimum group size         || 5       || Destroy factor   || 200    &lt;br /&gt;
|-                                      &lt;br /&gt;
| Maximum group size         || 20      || Pollution factor || 9      &lt;br /&gt;
|-&lt;br /&gt;
| Minimum cooldown (Minutes) || 4      &lt;br /&gt;
|-&lt;br /&gt;
| Maximum cooldown (Minutes) || 60     &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pollution                 !! Default !! Recipes/Technology          !! Default&lt;br /&gt;
|-                                        &lt;br /&gt;
| Enabled                   || Yes     || Recipe difficulty           || Normal &lt;br /&gt;
|-                                        &lt;br /&gt;
| Absorption modifier       || 100%    || Technology difficulty       || Normal &lt;br /&gt;
|-                                        &lt;br /&gt;
| Attack cost modifier      || 100%    || Technology price multiplier || 1&lt;br /&gt;
|-                                        &lt;br /&gt;
| Minimum damage to trees   || 60      || Research queue availability || After the game is finished&lt;br /&gt;
|-&lt;br /&gt;
| Absorbed per damaged tree || 10      || &lt;br /&gt;
|-&lt;br /&gt;
| Diffusion ratio           || 2%      || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rich resources ===&lt;br /&gt;
Resources patches have a larger richness, so you don&#039;t have to expand far.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Resources have 200% richness instead of 100%.&lt;br /&gt;
&lt;br /&gt;
=== Marathon ===&lt;br /&gt;
Recipes and technologies are more expensive.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Expensive recipes and technology, technology price multiplier 4.&lt;br /&gt;
&lt;br /&gt;
=== Death world ===&lt;br /&gt;
Biters are more dangerous and evolve faster.&lt;br /&gt;
&lt;br /&gt;
Difference from default: 200% enemy base frequency and 200% enemy base size, 75% starting area size, enemy evolution time factor is set to 200, pollution factor is set to 12. The pollution absorption modifier is set to 50% instead of 100%, same goes for the attack cost modifier.&lt;br /&gt;
&lt;br /&gt;
=== Death world marathon ===&lt;br /&gt;
Recipes and technologies are expensive and biters are dangerous and plentiful. Only select this if you are a Factorio veteran.&lt;br /&gt;
&lt;br /&gt;
Combines &amp;quot;Marathon&amp;quot; and &amp;quot;Death world&amp;quot; with some additional changes: Enemy evolution time factor is set to 150, pollution factor is set to 10. Attack cost modifier is set to 80% instead of 100% (50% for death world).&lt;br /&gt;
&lt;br /&gt;
=== Rail world ===&lt;br /&gt;
Resource patches are large and spread far apart, to encourage train systems. Biters won&#039;t create any new bases or re-expand into cleared territory.&lt;br /&gt;
&lt;br /&gt;
Difference from default: All resources are set to 33% frequency and 300% size. Water is set to 200% scale and 150% coverage. The evolution time factor is set to 20 from 40 and enemy expansion is disabled.&lt;br /&gt;
&lt;br /&gt;
=== Ribbon world ===&lt;br /&gt;
The map height is limited to only 128 tiles, which introduces a range of challenges and interesting situations.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Map height is limited to 128. All resources are set to 300% frequency, 50% size and 200% richness. Water is set to 25% coverage and size. Starting area size is increased to 300%. &lt;br /&gt;
&lt;br /&gt;
=== Island ===&lt;br /&gt;
A large island in an endless ocean.&lt;br /&gt;
&lt;br /&gt;
Difference from default: Terrain map type is set to island.&lt;br /&gt;
&lt;br /&gt;
== Manual configuration ==&lt;br /&gt;
It is possible experiment with different settings by opening the map preview, changing the settings and observing their effects. This makes it possible to directly observe what exactly particular settings modify in the world, beyond the textual descriptions provided on this page.&lt;br /&gt;
&lt;br /&gt;
The seed is the starting value for the random number generator that Factorio uses for generating the world based on the generation settings. This means that even with the same generation settings, the world can look very different depending on the seed.&lt;br /&gt;
&lt;br /&gt;
All resources and terrain features can be disabled by unchecking the checkbox in front of them.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Frequency determines the number of resource patches in a given area. It does not affect resource patch size or richness. A setting of 200% frequency that means roughly double the patches can be found in a given area.&lt;br /&gt;
&lt;br /&gt;
The size setting adjusts the size of the resource patches. Setting the slider to 200% means the surface area of the patch is doubled.&lt;br /&gt;
&lt;br /&gt;
Richness defines the yield of every ore tile and every oil field. If richness is set to 200%, each ore tile and oil field contains about double the amount of ore/oil. Outside of this, resource patch richness  increases by distance.&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
Setting the map type to island generates a single island around the spawn point and endless ocean beyond that. The normal map type generates endless terrain.&lt;br /&gt;
&lt;br /&gt;
Water scale changes how much space there is between lakes. The smaller the scale, the swampier the terrain. Higher scale leads to bigger oceans separated by bigger landmasses. Water coverage influences the overall amount of water. Reducing it generates small lakes, increasing it generates large oceans.&lt;br /&gt;
&lt;br /&gt;
The settings for trees behave in the same way. Higher scale increases the distance between forests while lower scale reduces it. High tree coverage allows to completely cover the world in trees, and low coverage nearly removes them from the world.&lt;br /&gt;
&lt;br /&gt;
Cliff frequency influences how many cliff lines there are in the world. Higher frequency means more cliffs, lower frequency reduces their number. The continuity setting changes how long and unbroken the cliff lines are. Low continuity leads to very short lines, high continuity to long, nearly unbroken lines of cliffs.&lt;br /&gt;
&lt;br /&gt;
The moisture settings control the distribution of grass versus desert. Higher bias generates more grass, lower bias generates more desert. Higher scale increases the size of the grass/desert areas, low scale leads to small grass and desert patches.&lt;br /&gt;
&lt;br /&gt;
The terrain type setting controls the distribution of red desert versus sand. Higher bias generates more red desert, lower bias generates more sand. Higher scale increases the size of the red desert/sand areas, low scale leads to small red desert and sand patches.&lt;br /&gt;
&lt;br /&gt;
=== Enemy ===&lt;br /&gt;
[[File:MapGeneratorEnemy.png|thumb|right|400px|The enemy tab]]&lt;br /&gt;
Frequency determines the number of enemy bases in a given area. It does not affect enemy base size. A setting of 200% frequency that means roughly double the enemy bases can be found in a given area.&lt;br /&gt;
&lt;br /&gt;
The size setting adjusts the size of enemy bases. Setting the slider to 200% means the surface area covered by the enemy bases is doubled.&lt;br /&gt;
&lt;br /&gt;
When peaceful mode is turned on, the [[enemies]] don&#039;t begin fights, only responding if the player (or a structure) fires at them. Only the enemies located near the fired shot are aggravated and they do not call other enemies to join them. The aggravated enemies primarily attack the structures and players that initiated the aggression and also the structures that block their paths. After destroying their targets, most of the time the aggravated enemies will return to being peaceful, but some of them continue rampaging nonstop. Additionally, when a map is in peaceful mode, the enemies will not [[Enemies#Expansions|expand]].&lt;br /&gt;
&lt;br /&gt;
The starting area is the an almost circular radius around the spawn point that does not contain enemy bases. Increasing its size pushes the bases further out, decreasing its size generates enemy bases closer to the spawn point. The size setting does not have any other effects.&lt;br /&gt;
&lt;br /&gt;
[[Enemies#Expansions|Enemy expansion]] can be enabled/disabled and further adjusted using the below settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Enemy expansion setting    !! Description&lt;br /&gt;
|-                           &lt;br /&gt;
| Maximum expansion distance || The maximum distance enemies will look to expand from other enemy bases.&lt;br /&gt;
|-                           &lt;br /&gt;
| Minimum group size         || The minimum size of an enemy expansion party modified by the current evolution level.&lt;br /&gt;
|-&lt;br /&gt;
| Maximum group size         || The maximum size of an enemy expansion party modified by the current evolution level.&lt;br /&gt;
|-&lt;br /&gt;
| Minimum cooldown (Minutes) || The minimum time between enemy expansions being sent out.&lt;br /&gt;
|-&lt;br /&gt;
| Maximum cooldown (Minutes) || The maximum time between enemy expansions being sent out.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Enemies#Evolution|Evolution]] can be enabled/disabled and further adjusted using the below settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Evolution setting !! Description&lt;br /&gt;
|-                  &lt;br /&gt;
| Time factor       || Controls how fast evolution increases over time.&lt;br /&gt;
|-                  &lt;br /&gt;
| Destroy factor    || Controls how fast evolution increases due to destroying enemy spawners.&lt;br /&gt;
|-                  &lt;br /&gt;
| Pollution factor  || Controls how fast evolution increases due to producing pollution.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
The map width and height allows to generate maps with finite resources and area. It is possible to limit generation in only direction, alike the [[#Ribbon world|ribbon world]].&lt;br /&gt;
&lt;br /&gt;
The difficulty settings allow to change the [[Crafting#Recipe difficulties|recipe]]/technology difficulty and multiply the [[research|technology cost]]. Currently, setting the technology difficulty does not have an effect in vanilla. Furthermore, it can be controlled when the research queue is available: From the start, after launching a [[rocket silo|rocket]] or never.&lt;br /&gt;
&lt;br /&gt;
[[Pollution]] can be enabled/disabled and further adjusted using the below settings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pollution setting         !! Description&lt;br /&gt;
|-                       &lt;br /&gt;
| Absorption modifier       || Modifier of how much pollution is absorbed by trees and tiles.&lt;br /&gt;
|-&lt;br /&gt;
| Attack cost modifier      || Modifier of how much pollution is absorbed by enemy attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Minimum damage to trees   || Trees have 4 different stages of the progression towards being destroyed by pollution. Any pollution above this amount starts the process of moving a tree towards a more damaged stage.&lt;br /&gt;
|-&lt;br /&gt;
| Absorbed per damaged tree || Trees have 4 different stages of the progression towards being destroyed by pollution. This value specifies how much pollution is absorbed when moving to a more damaged stage.&lt;br /&gt;
|-&lt;br /&gt;
| Diffusion ratio           || The amount of pollution diffused into neighboring chunks per second.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Map exchange string ===&lt;br /&gt;
&lt;br /&gt;
A map exchange string generally looks like this:&lt;br /&gt;
&lt;br /&gt;
   &amp;gt;&amp;gt;&amp;gt;eNp1UTGIE0EU/WMu3F4EUUjhgR4prrDZJTlFJRyZURAR0d7Oz&lt;br /&gt;
   WYiA5udOLsLnhaX4kptxEaraz3hOgu7wIEoKBxa2UVsLFROBC0U4&lt;br /&gt;
   p+dnWSNdw/+583/f97/fwbgGLhAADGgAEPqzAXSD/HI8JRZJZD9P&lt;br /&gt;
   leuVNyGtC0EKu1wV4qwGK3wiPfW3LYfc6NozBFKRv8qMFaOExnlE&lt;br /&gt;
   WDPtrZoOVGcx3igxgb0cKr8SKQ9c1eL5aOSGIcebCxlNl6H2nisD&lt;br /&gt;
   dkIC0YAtpIQjOWYOx7IKFEydGOeJCK61fTTO8228OMFt+416hqn9&lt;br /&gt;
   ivpKn475VGw1uylYSL6oeDKqXtnNc6dnL3RkyJOUsUzZccKuweW7&lt;br /&gt;
   ave8E5nKAeh6HYBahfQLuotCJB71e3LH+8+osTs5bGc7OWRYdtGr&lt;br /&gt;
   lhynR2YWrbkTEHHdP9RIKZpgi3yKodNiUlu6CQhD74+3/z1crdF/&lt;br /&gt;
   jz9/u5a+yYljUvVb3sr2y1MzusVDk3ck8caL+wqYDVHNE99oOTtG&lt;br /&gt;
   40vlJT1jap27Dy64dUSkKNHkG3eR1c7AXa0lpWpMtLN8NNu8smS9&lt;br /&gt;
   3R2D3yIVS2+pN0r7bKGk8lITm8wk1icZvHqChTbd6bLvbYddwqtZ&lt;br /&gt;
   2b4/w+KK8xElgsPX9F9OhP3uTQZAl9wd96e2DorwRT4wTu/vYd/A&lt;br /&gt;
   dl73Kk=&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
&lt;br /&gt;
The map exchange string can be used to share all map generation settings between different players. The player can paste the string (using {{Keybinding|ctrl|V}}) into the map exchange string field and the game will set the generation settings to the settings saved in the string, resulting in a complete copy of the map when generated.&lt;br /&gt;
&lt;br /&gt;
The map exchange string can be retrieved from save files by going into the load game screen, selecting the desired map, clicking the map exchange string button in the upper right corner and copying the string from the window that pops up.&lt;br /&gt;
&lt;br /&gt;
For a technical description of the map exchange string, see [[map exchange string format]].&lt;br /&gt;
&lt;br /&gt;
== Mechanics ==&lt;br /&gt;
&lt;br /&gt;
=== Starting area ===&lt;br /&gt;
&lt;br /&gt;
There is a second internal starting area that is completely separate from the starting area that can be changed in the enemy settings tab. This starting area always has a constant size and affects the spawning of resources, cliffs and water directly at the spawn. The map generation logic makes sure that there is always at least one patch of [[coal]], [[iron ore]], [[copper ore]], and [[stone]] each. Furthermore, there is always a lake in the starting area, even when water is turned off, and there are never any cliffs there. [[Uranium ore]] and [[crude oil]] do not spawn in the starting area. The richness of the ore patches is slightly influenced by the frequency setting.[https://forums.factorio.com/viewtopic.php?p=432592#p432592]&lt;br /&gt;
&lt;br /&gt;
=== Chunks ===&lt;br /&gt;
&lt;br /&gt;
A map is endless by default, though its size can be limited by height and width — see above. Because it is technically endless, the whole map is not generated from the start. Instead, a new [[Map_structure#Chunk|chunk]] of the map is generated only when needed, similar to other procedurally generated world games.&lt;br /&gt;
&lt;br /&gt;
==== Invisible chunks (fog of war) ====&lt;br /&gt;
&lt;br /&gt;
Outside of the visible chunk area, an invisible area of about 3 chunks wide is generated as a preloading mechanism. Enemies may be located inside these invisible chunks and can attack the player from there, while [[artillery turret]]s and [[artillery wagon|wagon]]s may automatically shoot enemy bases in these chunks if they are within their automatic range. Invisible chunks are also generated if pollution is generated heavily; the game generates (invisible) chunks as it needs to spread the pollution into the area.&lt;br /&gt;
&lt;br /&gt;
==== Charting (removing fog of war) ====&lt;br /&gt;
&lt;br /&gt;
As long as a chunk is invisible, the part of the players map stays black. This changes when a chunk is [[Radar#Charting|charted]], which means when it is &amp;quot;touched&amp;quot; by a radar. This can be either the player&#039;s internal radar, which is always available and continually charts chunks around the player, or the [[radar]] entity. If a far-away and thus ungenerated chunk is charted, it will be generated, together with the above-mentioned invisible 3 chunk radius of map around it.&lt;br /&gt;
&lt;br /&gt;
==== Maximum map size and used memory ====&lt;br /&gt;
&lt;br /&gt;
The map size is limited to 2,000 x 2,000 kilometers; internally, this is a square 2,000,000 tiles on a side, with an area of 4,000,000,000,000 (4 trillion) square tiles (assuming 1 tile = 1 meter on a side yields 2,000 x 2,000 km = 4 million square km). In real-world terms, this is between the sizes of India and Australia (or about 40% the area of the United States, or over 10 times the area of Germany). It would take around 200 [[Time#Seconds|game-minutes]] (ca 3.3 hours real time) to reach that border from the center when riding a [[locomotive|train]] fueled with [[rocket fuel|rocket]] or [[nuclear fuel]]. This makes the world essentially endless for practical purposes. The generated chunks are fully mapped and stored in the player&#039;s RAM, which is the practical limiting factor of exploration.&lt;br /&gt;
&lt;br /&gt;
Because chunks are only generated in and close around the area revealed by radar, it is possible to reach that border without overloading your computer, as the size of the map in computer memory is dependent only on chunks actually generated. If only a narrow stripe of land is explored to far away, this remains manageable.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{History|0.17.44|&lt;br /&gt;
* The resource frequency slider in the map generator settings has a smaller influence over the amount of ore in the starting area patches.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.17.0|&lt;br /&gt;
* Resource generation changed significantly:&lt;br /&gt;
** The starting area contains only iron, copper, coal and stone, in very predictable amounts. Uranium and oil are excluded from the starting area.&lt;br /&gt;
** Resource generation settings now have a much more dramatic effect. Increased the number of steps for each setting.&lt;br /&gt;
** Ore patches are slightly less frequent but richer.&lt;br /&gt;
** There will be a more balanced amount of resources within a large enough region.&lt;br /&gt;
** Many other small tweaks.&lt;br /&gt;
* Biter generation changed significantly:&lt;br /&gt;
** Biter richness slider removed, biter placement is only configured by size and frequency settings.&lt;br /&gt;
** Biter generation settings now have a much more dramatic effect. Increased the number of steps for each setting.&lt;br /&gt;
** Biter bases will increase in size, frequency and number of worms depending on the distance from player spawn.&lt;br /&gt;
** Worm size increases depending on the distance from player spawn.&lt;br /&gt;
** Small biter bases are now closer to the player spawn.&lt;br /&gt;
** At large distances from player spawn, biter base frequency is lower than before but biter bases are larger.&lt;br /&gt;
** Other small tweaks.&lt;br /&gt;
* Terrain generation changed significantly:&lt;br /&gt;
** Water is generated as large lakes instead of swamps.&lt;br /&gt;
** Tile generation improved. Tile placement respects biomes better.&lt;br /&gt;
** More predictable cliff placement.&lt;br /&gt;
** Better controls in the map generator GUI for water, tiles and cliffs.&lt;br /&gt;
* New map terrain type selectable: Island. Launch the rocket with only a limited amount of resources available on the map.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.16.0|&lt;br /&gt;
* Added cliffs.&lt;br /&gt;
* New terrains and new terrain generation.&lt;br /&gt;
* Trees can now be configured in the generate-map GUI.&lt;br /&gt;
* Terrain can be configured in the generate map GUI.&lt;br /&gt;
* Biters scale less with distance and there are generally less biters.&lt;br /&gt;
* No uranium as a starting resource also no uranium is ever generated near the starting area, you need to go look for it.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.15.0|&lt;br /&gt;
* Extended map generator settings to include an advanced section.&lt;br /&gt;
* Added map generator presets.&lt;br /&gt;
* The map seed is used to generate unique maps instead of just shifting the starting position.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.13.7|&lt;br /&gt;
* Map size is now limited to 2000 km by 2000 km with a black bar rather than crashing when reaching this distance.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{History|0.13.0|&lt;br /&gt;
* Map generator algorithm changed, further resource field now have greater richness.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189446</id>
		<title>Tutorial:Circuit network cookbook</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189446"/>
		<updated>2022-07-08T09:25:30Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: /* Alternative Setup for Cracking and Lubricant Production */ clarified the details about using input or output pumps.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
== Foreword == &lt;br /&gt;
&lt;br /&gt;
This page provides examples of simple circuit network designs and some not so simple designs that others can use, combine and modify. They are designed to be as easy to understand as possible.  To see the settings of combinators without opening them, the option &amp;quot;Show combinator settings in &amp;quot;Alt-mode&amp;quot;&amp;quot; in the Interface/Alt-mode settings has to be checked and &amp;quot;Alt-mode&amp;quot; has to be turned on.&lt;br /&gt;
&lt;br /&gt;
==Lamp showing chest content condition==&lt;br /&gt;
[[File:LightWiredToChest.png|right]]&lt;br /&gt;
&lt;br /&gt;
This is the simplest possible use of circuit-network. A [[lamp]] is light depending on the number of goods (in this example empty barrels) in a chest.&lt;br /&gt;
&lt;br /&gt;
===Setting up circuit connection===&lt;br /&gt;
* The lamp is connected to the chest.&lt;br /&gt;
* The lamp is set to light if the chest contain less than 10 empty barrels.&lt;br /&gt;
===To set the light condition===&lt;br /&gt;
* Open the lamp (left click on it).&lt;br /&gt;
* Set the input to barrels.&lt;br /&gt;
* Set the operator to &amp;lt; (less than).&lt;br /&gt;
* Set the constant number:&lt;br /&gt;
** Left click on the constant number&lt;br /&gt;
** Move the slider until 10 is shown, or edit the value box directly.&lt;br /&gt;
** Press set.&lt;br /&gt;
&lt;br /&gt;
Depending on the condition you set, the lamp may light if the chest is empty, or if it contains the required quantity of items.&lt;br /&gt;
&lt;br /&gt;
The drawback with this scenario is that the lamp has a white light , and is therefore difficult to differentiate from an ordinary lamp at night.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Oil Setups ==&lt;br /&gt;
[[File:LgtOilCracking.png|left|440px]]&lt;br /&gt;
=== Light Oil Cracking ===&lt;br /&gt;
* This circuit provides balanced light oil and petroleum gas production by cracking excess light oil into gas. &lt;br /&gt;
* The [[pump]] is connected to the [[storage tank]] by a [[red wire]]. &lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Light Oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:HvyOilCracking.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Heavy Oil Cracking ===&lt;br /&gt;
* This circuit extends on the previous circuit by adding optional heavy oil cracking to provide lubricant etc.&lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Heavy oil &amp;gt; 20000&#039;&#039;&#039; .&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Alternative Setup for Cracking and Lubricant Production ===&lt;br /&gt;
This setup compares different fluid levels to each other instead of checking fixed values. It offers some guarantees such as petroleum gas being produced when you have light oil to spare, and light oil not being cracked when you have plenty of petroleum gas, and similar rules for heavy oil cracking and lubricant production. &lt;br /&gt;
&lt;br /&gt;
[[File:oil-single-cct.png]]&lt;br /&gt;
&lt;br /&gt;
It takes 4 steps:&lt;br /&gt;
&lt;br /&gt;
1. Have a fluid tank for heavy oil, light oil, petroleum gas, and lubricant. For each fluid, make sure to connect the tank via pipes to every location where the fluid is being produced or consumed.&lt;br /&gt;
&lt;br /&gt;
2. For each chemical plant (or each row of them, if you use rows) add a pump to the non-water fluid input pipe to make it possible to block the flow. Note: Alternatively, the blocking pumps could be added to the chemical plant output pipes, but there is no need to add pumps to both inputs and outputs.&lt;br /&gt;
&lt;br /&gt;
3. Connect every pump and every fluid tank to a single circuit network of red (or green) wire. The resulting circuit network will know about the fluid level in every storage tank and pass this information to every pump.&lt;br /&gt;
&lt;br /&gt;
4. For each connected pump set the circuit “enable condition” to &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; , for its respective chemical plant recipe. E.g. set &amp;quot;heavy oil &amp;gt; light oil&amp;quot; for the heavy oil cracking input pump, set &amp;quot;heavy oil &amp;gt; lubricant&amp;quot; for the lubricant production input pump, and set &amp;quot;light oil &amp;gt; petroleum gas&amp;quot; for the light oil cracking input pump.&lt;br /&gt;
&lt;br /&gt;
Done! Now all the pumps will move to equalize the fluid levels to each other. This will prevent fluid system deadlocks where you have plenty of one fluid but you are unable to make any of the other.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
[[File:ConditionalLights.png|left|440px]]&lt;br /&gt;
=== Conditional Lights ===&lt;br /&gt;
* In this circuit we connect a series of [[lamp]]s to a [[storage tank]].&lt;br /&gt;
* By setting different conditions on each lamp we can build an indicator strip. &lt;br /&gt;
* The Enabled condition of the first lamp is &#039;&#039;&#039;Petroleum gas &amp;gt; 100&#039;&#039;&#039;.&lt;br /&gt;
* The others light up when gas is greater than 200, 300, 400 and 500 respectively.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
In this scenario you can connect the storage tank to the lamps directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ColoredLights.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Colored Lights ===&lt;br /&gt;
* To light a [[lamp]] with a color rather than white, you need an intermediate device like an [[arithmetic combinator]] that can send a color signal.  &lt;br /&gt;
Instead of directly connect  the the [[lamp]] and the [[Storage tank]] you need:&amp;lt;BR&amp;gt;&lt;br /&gt;
1 Add the arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
2 Connect the [[storage tank]] with the input of the  arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
3 Connect the  output of the [[arithmetic combinator]] with the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
4 Set up the arithmetic combinator:&amp;lt;BR&amp;gt;&lt;br /&gt;
4.1 Setting the input to petroleum Gas + 0 (the constant 0 not the signal 0)&amp;lt;BR&amp;gt;&lt;br /&gt;
4.2 Set the output to the pink signal (on the bottom row of the last tab of signals.)&amp;lt;BR&amp;gt;&lt;br /&gt;
5 Set up the [[lamp]]:&amp;lt;BR&amp;gt;&lt;br /&gt;
5.1  Select the &amp;quot;Use colors&amp;quot; check box on the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
5.2 Set the condition to the pink signal, and what value you want (i.e. &amp;gt; 100)&amp;lt;BR&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
[[file:MulitipleChestsAndPoles.png|left|430px]]&lt;br /&gt;
=== Multiple Storages === &lt;br /&gt;
* If you connect multiple chests to a pole, the pole displays the sum of items in all the chests. &lt;br /&gt;
* This also works with [[storage tank]]s and [[roboport]]s.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConstantComb.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator ===&lt;br /&gt;
* With a [[constant combinator]] you can generate any signals you may need. &lt;br /&gt;
* In this example we have generated a signal of 50 Laser turrets and 200 Piercing round magazine. &lt;br /&gt;
* Constant combinators are not of much use on their own but we shall use them later.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ThisASign.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Words) ===&lt;br /&gt;
* You can use [[constant combinator]]s to make signs, just set the letter signals in the combinator, each combinator can display 2 characters side by side.&lt;br /&gt;
* Note that to see these letters, Alt-mode must be on and the Interface setting “Show combinator settings in “Alt-Mode”” must also be enabled.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:constant_combinator_signs2.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Managing Belts) ===&lt;br /&gt;
* Somewhat similar to the previous example, constant combinator signals can be used with belts to help indicate what items should be on which belts. This is extremely useful when sharing blueprints, as it&#039;s possible for blueprints to be shared albeit with no indication on which items are meant for which belts.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MemoryCell.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell / Counter ===&lt;br /&gt;
* Basic memory cell that counts all the items moved by the inserter&lt;br /&gt;
* The [[fast inserter]] is connected to &#039;&#039;&#039;BOTH&#039;&#039;&#039; ends of the arithmetic combinator.&lt;br /&gt;
&lt;br /&gt;
* If the fast inserter hasn&#039;t picked anything up this tick the input to the Arithmetic combinator is the same as and output and hence the values are persisted. &lt;br /&gt;
* When the fast inserter does pick something up its value is added to the output from the previous tick thus incrementing that item. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Inserters ==&lt;br /&gt;
[[File:LimitItemsPlacedIntoAChest.png|left|400x400px]]&lt;br /&gt;
=== Limit items placed into a chest ===&lt;br /&gt;
*  The [[inserter]] is connected to the [[wooden chest]] using a [[red wire]]. &lt;br /&gt;
*  The inserter&#039;s enabled condition is &#039;&#039;&#039;Advanced Circuit &amp;lt; 10&#039;&#039;&#039;. &lt;br /&gt;
*  In reality this means the inserter may place more than 10 Advanced circuits in the chest because it could pick up to 3 at once due to stack size bonuses.&lt;br /&gt;
*  This effect can be even greater with Stack inserters because of their large carrying capacity. &lt;br /&gt;
*  This technique still gives far greater control than limiting the inventory on the chest.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BalancedChestInsert.png|left|400x400px]]&lt;br /&gt;
=== Balanced chest insert ===&lt;br /&gt;
Goal: Load n chests with approximately the same number of items.&lt;br /&gt;
*  Place n chests and n inserters. &lt;br /&gt;
*  Place 1 [[arithmetic combinator]]&lt;br /&gt;
*  Set the combinator to take Each (yellow star) and divide by the negative number of chests. ie &amp;amp;minus;n.&lt;br /&gt;
*  Connect all chests to each other and to the input of the combinator using red wire.&lt;br /&gt;
*  Connect all inserters to each other and to the output of the combinator using red wire.&lt;br /&gt;
*  Connect each inserter to the box it inserts into with green wire.&lt;br /&gt;
*  Set the enable condition on each inserter to be Everything (red star) &amp;lt; 0.&lt;br /&gt;
&lt;br /&gt;
The combinator calculates the average number of items in the chests, and makes it negative. Each inserter gets the amount in the chest it is inserting to and adds the negative average, ie it calculates how many more than the average it has in its chest. Thus if that number is negative, it has less than the average in the chest and it enables. &lt;br /&gt;
&lt;br /&gt;
Due to inserter stack bonus the count is not exact. If a precise count is needed, set the inserter stack size to 1. &lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SmartOutpostUnloader.png|left|400x400px]]&lt;br /&gt;
=== Keeping outpost stocked with specified items ===&lt;br /&gt;
*  This circuit keeps a [[storage chest]] at an outpost stocked with customized levels of different items. &lt;br /&gt;
*  For example you could keep an outpost stocked with 50 laser turrets and 200 piercing magazine rounds but not have to worry about it being over filled. &lt;br /&gt;
*  The [[storage chest]] is attached to the input of the [[arithmetic combinator]] (left side in the picture) with a [[red wire]]. &lt;br /&gt;
*  Another couple of [[red wire]]s join the output of the [[arithmetic combinator]] (right side) to the [[constant combinator]] and to the [[stack filter inserter]]. &lt;br /&gt;
*  The [[arithmetic combinator]] &#039;&#039;&#039;multiplies&#039;&#039;&#039; each input value (from the storage chest) by &#039;&#039;&#039;-1&#039;&#039;&#039;. &lt;br /&gt;
*  Finally the filter stack inserter&#039;s mode of operation is set to &#039;&#039;&#039;Set filters&#039;&#039;&#039;.&lt;br /&gt;
*  So the input to the [[stack filter inserter]] is &#039;&#039;&#039;&amp;lt;constant combinator&amp;gt; - &amp;lt;storage chest contents&amp;gt;&#039;&#039;&#039; and the filter is set to filter for the first item by inventory order. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SolarAccumalatorBalancer.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced Solar panel / Accumulator Production ===&lt;br /&gt;
* This circuit balances production of [[solar panel]]s and [[accumulator]]s to a desired ratio in my case 24:20.&lt;br /&gt;
* The first [[arithmetic combinator]] takes the number of accumulators in the chest and &#039;&#039;&#039;multiplies&#039;&#039;&#039; it by &#039;&#039;&#039;24&#039;&#039;&#039;. &lt;br /&gt;
* The second [[arithmetic combinator]] takes the output of the first combinator and &#039;&#039;&#039;divides&#039;&#039;&#039; it by &#039;&#039;&#039;20&#039;&#039;&#039;. &lt;br /&gt;
* This gives us the number of accumulators that we can directly compare to the number of Solar panels in both inserters. &lt;br /&gt;
* If the number of accumulators is greater we enable the Solar panels inserter, if the number of Solar panels is greater we enable the accumulators inserter. &lt;br /&gt;
* However, if they are equal, neither machine does anything. So we add a single accumulator to one of the inserters using a constant combinator and a wire of the other color, therefore breaking the deadlock.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Sushi Belts ==&lt;br /&gt;
[[File:SushiScience1.png|left|400px]]&lt;br /&gt;
=== Reading Belt Design ===&lt;br /&gt;
* Six belts in a row are connected with Red wire and set to &#039;&#039;&#039;Read belts contents&#039;&#039;&#039; and &#039;&#039;&#039;Hold&#039;&#039;&#039; &lt;br /&gt;
* This [[red wire]] is then connected to the inserters that insert onto the belt. &lt;br /&gt;
* Read hand contents is unselected for all inserters.&lt;br /&gt;
* Mode of operation is set to &#039;&#039;&#039;Enable/Disable&#039;&#039;&#039; on all inserters. &lt;br /&gt;
* The first inserter is enabled when &#039;&#039;&#039;Science pack 1 = 0&#039;&#039;&#039;&lt;br /&gt;
* The other inserters are set similarly for the other science packs. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SushiScience2.png|left|400px]]&lt;br /&gt;
=== Memory Cell Design ===&lt;br /&gt;
* This circuit counts the number of items of each type on a looping belt by counting the numbers that are added and removed from the belt by inserters.&lt;br /&gt;
* Each inserter that takes items off the belt is connected together with Red wire and each of these inserters is set to &#039;&#039;&#039;Mode of operation none, Read hand content selected&#039;&#039;&#039; and &#039;&#039;&#039;Hand read mode pulse&#039;&#039;&#039;. &lt;br /&gt;
* These inserters are connected to the input of the left arithmetic combinator. &lt;br /&gt;
* The left [[arithmetic combinator]] multiples &#039;&#039;&#039;each&#039;&#039;&#039; input by &#039;&#039;&#039;-1&#039;&#039;&#039; and outputs it to &#039;&#039;&#039;each&#039;&#039;&#039;. &lt;br /&gt;
* The right [[arithmetic combinator]] is a &#039;&#039;&#039;memory cell&#039;&#039;&#039; as above.&lt;br /&gt;
* The memory cell&#039;s input is connected to the inserters that are placing items on the belt and the output of the left [[arithmetic combinator]]. &lt;br /&gt;
* The inserters that place items onto the belt have an enabled condition that is based on the number of items on the belt.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Power ==&lt;br /&gt;
[[File:SteamBackup.png|left|400px]]&lt;br /&gt;
=== Backup steam power ===&lt;br /&gt;
* The [[steam engine]]s are not directly connected to the power network. They are connected to the power network through a [[power switch]]. &lt;br /&gt;
* The [[power switch]] is connected to one of the [[accumulator]]s in the main network. &lt;br /&gt;
* The [[power switch]] turns on when A &amp;lt; 10. That is when the [[accumulator]]s are less than 10% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
=== Optimal usage of fuel for nuclear power ===&lt;br /&gt;
Unlike the normal steam power that adjusts fuel usage based on power usage, the [[Power_production#Nuclear_power|nuclear reactors]] spend fuel in fixed units of time. To be exact, the consumption of 1 fuel cell takes exactly 200 seconds.&lt;br /&gt;
&lt;br /&gt;
Combined with the fact that creating the nuclear fuel cells are time consuming and expensive to create, it is therefore beneficial to optimize their use to match the actual consumed power.&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits.jpg|left|400px]]&lt;br /&gt;
==== First example ====&lt;br /&gt;
The above picture shows a setup with 4 reactors, that spend only 1 fuel cell each whenever steam runs low.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Note: The GUI in the image above has been altered to make sure all important info fits within the image size.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are a few elements in this setup:&lt;br /&gt;
* Storage tank that provides the [[steam]] signal.  You should only read from one storage tank, and it should have pipe connections to all your other steam storage tanks.&lt;br /&gt;
* Chests containing [[uranium fuel cell]]s for the reactor.&lt;br /&gt;
* Output inserters that take [[Used_up_uranium_fuel_cell|empty fuel cells]] from the reactor. This is connected to the storage tank to listen for the steam signal, and to the chests to listen for the uranium fuel cell signal. If the steam level is low and there are uranium fuel cells available, it removes the empty fuel cells from the reactor and sends an empty fuel cell signal (since &amp;quot;Read hand contents&amp;quot; is checked).&lt;br /&gt;
* Input inserters that put uranium fuel cells into the reactor. This is connected to the output inserters and listens for the empty fuel cell signal. The &amp;quot;Override stack size&amp;quot; is set to 1, so that it only inserts 1 fuel cell at a time.&lt;br /&gt;
&lt;br /&gt;
Since this design uses empty fuel cells as a signal to fill the reactor, you need to manually insert 1 uranium fuel cell into the reactor to get it started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits2.jpg|left|400px]]&lt;br /&gt;
==== Second example ====&lt;br /&gt;
A simpler setup can be made with inserters that drop a single [[uranium fuel cell]] in each reactor when the [[steam]] reaches a certain level.&lt;br /&gt;
&lt;br /&gt;
Here, two inserters feeding two reactors are connected to a steam [[storage tank]] and are set to be turned on when it reaches 2K.&amp;lt;br&amp;gt;&lt;br /&gt;
The only drawback is that two cells are placed in the reactor (one when the steam volume drops to 2K and another when it is back up to that level), but this does not matter, as with only two cells the temperature cannot rise to 1000°C, so no energy is wasted.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Nuclear Fuel Circuit Network.png|left|400px]]&lt;br /&gt;
=== Prioritize usage of uranium towards nuclear fuel production ===&lt;br /&gt;
Because a continuous supply of [[nuclear fuel]] is critical to maintaining a [[nuclear reactor]], the circuit network can be used to set up a system where [[uranium-235]] and [[uranium-238]] are conserved for the production of nuclear fuel before other uses.&lt;br /&gt;
&lt;br /&gt;
Using a [[splitter]], divert the two types of uranium onto two parallel conveyors, with an [[inserter]] positioned to gather uranium from each conveyor (a [[long handed inserter]] will be needed for the far belt). Each of these inserters deposits their load into a container, from which two more inserters deliver the contents to an [[assembly machine]] making nuclear fuel. An inserter delivers the produced fuel to a third container, from which inserter(s) delivers the fuel to your nuclear reactor. Wire the two inserters gathering from the conveyors to the container each of them is delivering to, and to the tile of conveyor immediately after the tile the inserter is gathering from. Set each inserter&#039;s enable condition to &amp;quot;less than or equal to X amount of uranium&amp;quot;, using the appropriate type of uranium the inserter is gathering and X being the number of reserve uranium desired (optimally, one uranium-235 and nineteen uranium-238, the amount needed to produce nuclear fuel; the amount may be increased if a greater stockpile is desired). Set each conveyor&#039;s enable condition to &amp;quot;greater than or equal to X amount of uranium&amp;quot; in the same manner. Finally, connect the inserters delivering uranium to the assembly machine up to the container the assembly machine is delivering nuclear fuel to, and set each of their enable conditions to &amp;quot;nuclear fuel = 0 (the enable condition can be set to &amp;quot;less than or equal to X amount of nuclear fuel&amp;quot; if a larger stockpile is desired).&lt;br /&gt;
&lt;br /&gt;
This set-up accomplishes the following:&lt;br /&gt;
&lt;br /&gt;
* When there is sufficient nuclear fuel and uranium stockpiled, the inserters will deactivate and the conveyors activate, allowing the uranium to continue down the conveyors to other facilities.&lt;br /&gt;
* When the nuclear fuel stockpile hits zero (or decreases below the desired amount), the inserters delivering to the assembly machine will activate and deliver uranium to resume production of nuclear fuel until quota is reached again.&lt;br /&gt;
* When there is not enough uranium stockpiled to produce a batch of nuclear fuel, the inserters gathering uranium will activate and and resume gathering uranium until they reach their quota. The conveyors carrying uranium will stop past the inserters, cutting off other facilities from that type of uranium until its respective inserter reaches quota.&lt;br /&gt;
* The assembly machine will only be provided with uranium when the stockpile of nuclear fuel hits zero (or decreases below the desired amount), preventing over-production of nuclear fuel and thus over-consumption of uranium.&lt;br /&gt;
&lt;br /&gt;
== Railway network ==&lt;br /&gt;
=== Set train routing ===&lt;br /&gt;
The circuit network can be used to allow deeper micromanagement of [[train]]s by disable/enabling [[train stop]]s. By connecting the stop to the storage container(s) unloading from the train and setting the train stop to be disabled when a desired resource in them is above a certain quantity, any train with this stop on their route will ignore it and continue to their next stop. For example, a train stop where [[iron ore]] is delivered can be disabled when the total amount of iron ore in the containers is above 1,000; when the stockpiled ore drops below 1,000, the stop will be enabled and trains will be permitted to stop there. Conversely, train stops where a resource is picked up can be set to be disabled in the same manner, so that trains will ignore the stop until the stop has enough of the specified resource to be delivered.&lt;br /&gt;
&lt;br /&gt;
Together, these can be used to direct multiple trains to the same stops and better optimize their delivery; they will only go to a stop to pick up cargo when there is a certain amount ready, and will only unload at stops which have fallen below a certain amount in their stockpile. Further control over deliveries can be granted by integrating the inserters loading and unloading from the trains and/or the storage containers into the circuit network to enable or disable them depending on the container&#039;s contents, so that specific amounts of resources are picked up or unloaded.&lt;br /&gt;
&lt;br /&gt;
This system also means that if no stop on a train&#039;s route requires the specified resource, the train will wait until needed. This can be useful for supplies like ammunition being delivered to defensive outposts with turrets; if the turrets have a sufficient stockpile of ammunition their stop will be disabled and the train delivering ammunition will not travel there until more ammunition is needed, preventing rail lines from being clogged and fuel from being consumed.&lt;br /&gt;
&lt;br /&gt;
=== Player safety ===&lt;br /&gt;
The circuit network can be used to ensure the player&#039;s safety when crossing train tracks so they do not get hit. Place [[gate]]s at designated crossing areas and connect an adjacent [[wall]] to [[rail signal]]s near the gate. Set the gate to &amp;quot;read sensor&amp;quot; and the signal to &amp;quot;close signal&amp;quot; with the condition being the signal the gate sends out being &amp;quot;1&amp;quot;. This means that when the gate is closed, the signal will be green and trains can pass freely, but when the player approaches the gate and it opens for them, the train signal will be turned red and trains will be stopped until the player clears the area.&lt;br /&gt;
&lt;br /&gt;
Alternatively, this system can be reversed - by setting the gate to &amp;quot;open gate&amp;quot; and the train signal set to &amp;quot;read signal&amp;quot;, the gate will remain open normally and will close when a train is approaching, preventing the player from crossing until it is safe.&lt;br /&gt;
&lt;br /&gt;
In lieu of gates, the player can connect a [[programmable speaker]] to the train signals to broadcast a warning siren when a train is approaching the area.&lt;br /&gt;
&lt;br /&gt;
== Latches ==&lt;br /&gt;
=== RS latch - single decider version ===&lt;br /&gt;
[https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=14556 This discussion] on the Factorio forums starts with the common 2 decider RS latch version, but the thread [https://forums.factorio.com/viewtopic.php?p=160896#p160896 goes on to explain] why this single decider version is better. In the thread, the latch is described as an SR latch. However, when both inputs are true, the latch will reset, so it is an RS latch.&lt;br /&gt;
==== Backup steam example ====&lt;br /&gt;
This example will turn on the steam generator when the Accumulator charge drops to 20%, but will &amp;quot;latch&amp;quot; (remember) the On state until the accumulator is charged to 90%.&lt;br /&gt;
&lt;br /&gt;
Latching is used to introduce [[Wikipedia:hysteresis|hysteresis]] and avoid the power switch rapidly cycling on and off (as the accumulator falls to 19%, charges to 20%, falls to 19% and so on). &lt;br /&gt;
[[File:SR-01-Layout.png|850px|left]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
{{BlueprintString|bp-string=0eNrFVk1vozAQ/SuVz1ABCaRBq5WqXntKjqsKOTBJR8IGGTtpFPHfd+w0HyU0G6pVewkxnnmemfdmzI4tSgO1QqlZumOYV7Jh6Z8da3AleWnf6W0NLGVrVNrQG49JLuyLvYU/Z63HUBbwxtKw9QZ4zs48o15P1CBObgXkWIDy80osUHJdqTOAUfviMZAaNcI+A7fYZtKIBSiK7YgjoEAjfCgh1wpzv65KoFPqqiHnStrzCdAPA49t6Rm1NrYOWjQY7QrY6FQZwcvyX1jJFajxEYrnuRGmdGW6DCe+jx1KcB9TDYl1raoyW8ArXyM5kFVldG10djObj6zdI0kKHp2Mdiy0PysFIM8pwYKldHyOKjeo3TI8y8Wup93tl7Yv3fiaOC6zjt6z9uk4VqDaR+rY7CvBO2ZGewUec1qiaobVxaE3mtseiwK7EjVXLsaU/SKPobWe7zHrLYVmpM6WqhIZSsJg6ZKXDQyiYkzF9Vhk9xUU3d3kNiaSQUwEB/l9Hw+uZg1YjGzYiPpA1+/vpKuHjk7fRNf7JrJTsZf05MLwoIFbzLvtOvlEFZNjKepqQ5poNqjz10s9jA6N+fk8Ohx/FMFXNXDqxeCC20F901vCJxN07UjVG9K4+x9YQp5M2LUZfbTpq+XDKRsNnG4cuULZcz089HZWD+D0a8Pz52bnNPgPzTj76dlJAnDfNenZp5fHSr4ACp/NZ3fPnHrkDt64qN31vwbVuFIn43GUjCdxHIVt+xcL2lBp}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-02-Accumulator.png|left]]Accumulator outputs the current charge level as % on signal [[File:Signal-A.png|21px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-03-RangeDeciders.png|left]]First decider outputs &amp;quot;Set&amp;quot; ([[File:Signal-S.png|21px]] = 1) if Accumulator is less than 20%.&lt;br /&gt;
Second decider outputs &amp;quot;Reset&amp;quot; ([[File:Signal-R.png|21px]] = 1) once Accumulator is more than 90% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-04-SRLatch.png|left]]&lt;br /&gt;
&lt;br /&gt;
==== RS Latch configuration ====&lt;br /&gt;
&#039;&#039;&#039;The central decider and green feedback wire is the actual RS Latch.&#039;&#039;&#039;&lt;br /&gt;
It latches the Set signal [[File:Signal-S.png|21px]] until the Reset signal [[File:Signal-R.png|21px]] is received (and vice-versa).&amp;lt;br /&amp;gt;&lt;br /&gt;
NB: the latch expects binary inputs ([[File:Signal-S.png|21px]] &amp;amp; [[File:Signal-R.png|21px]] must be 0 or 1) - this is why the previous two deciders are required.&amp;lt;br /&amp;gt;&lt;br /&gt;
When both inputs are true, the reset signal takes priority and the latch resets. This means it is an RS latch instead of an SR latch.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[File:SR-05-PowerSwitch.png|left]]The Power switch isolates the generator from the rest of the factory until [[File:Signal-S.png|21px]] = 1&lt;br /&gt;
&amp;lt;br clear=all&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RS latch ===&lt;br /&gt;
[[File:SRLatch.png|left|430px]]&lt;br /&gt;
* This should be familiar to anyone with any background in electronics. &lt;br /&gt;
* The signal is set and reset with the [[constant combinator]]s on the left by setting an A=1 signal. &lt;br /&gt;
* The latch &amp;quot;remembers&amp;quot; which one was last set and the light stays on until another signal is received.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Usage of RS latch ===&lt;br /&gt;
[[File:SRlatchinaction.png|left|430px]]&lt;br /&gt;
* Here is an example of how you could use an RS latch.&lt;br /&gt;
* The two extra [[decider combinator]]s provide the set and reset conditions. &lt;br /&gt;
* Petroleum gas &amp;lt; 50 and petroleum gas &amp;gt; 100. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Belt only latch ===&lt;br /&gt;
[[File:BeltLatch.png|left|430px]]&lt;br /&gt;
* To make it work, &#039;&#039;&#039;3&#039;&#039;&#039; pieces of raw wood must be placed on the inside lane of the belt.&lt;br /&gt;
* It will have higher latency than the combinator version, but in most situations you will not notice the difference. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
[[File:5digitDisplay.png|left|400x400px]]&lt;br /&gt;
=== Numerical Display ===&lt;br /&gt;
* Each digit is driven by its own [[green wire]], that wire holds 15 signals, one for each lamp used in the digit.&lt;br /&gt;
* [[constant combinator]]s are used to define which lamp should light up for each value. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BWDisplay.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Black and White Grid Display ===&lt;br /&gt;
* Each row has its own [[red wire]] connection and within that row each light has a numbered signal 0-9.&lt;br /&gt;
* We turn each light on by just setting or clearing the relevant signal.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MultiColoredDisplay.png|left|400x400px]]&lt;br /&gt;
=== Multicolor Display by DaveMcW ===&lt;br /&gt;
* To understand how this works, you first need to understand how color lights choose which color to light up when there are multiple colored signals. &lt;br /&gt;
* The [[lamp]] will light up with the colored signal that is greater than zero and earliest in this list: red, green, blue, yellow, pink, cyan, white.  &lt;br /&gt;
* We have a [[red wire]] per column, that wire has each of the colored signals on it at different values and a numbered signal for each row. &lt;br /&gt;
* There is a [[arithmetic combinator]] for each cell that subtracts the &amp;quot;row&amp;quot; value from each of the colored signals. &lt;br /&gt;
* And this enables us to choose the color for each cell. &lt;br /&gt;
* Simple!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Arithmetic combinator]]&lt;br /&gt;
* [[Constant combinator]]&lt;br /&gt;
* [[Decider combinator]]&lt;br /&gt;
* [[Circuit network]]&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=189252</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=189252"/>
		<updated>2022-06-02T09:53:07Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: notes added for safely (un)researching specific techs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
The &#039;&#039;&#039;console&#039;&#039;&#039; is Factorio&#039;s in-game command-line interface. See [[command line parameters]] for the command line interface of the Factorio executable.&lt;br /&gt;
&lt;br /&gt;
The in-game console can be used for:&lt;br /&gt;
&lt;br /&gt;
* Chatting with other players&lt;br /&gt;
* Occasional status updates&lt;br /&gt;
* Running commands / scripts / cheats&lt;br /&gt;
&lt;br /&gt;
There are three types of commands:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[#Normal commands|Normal]]&#039;&#039;&#039; - Display information about the game and customize your experience.&lt;br /&gt;
* &#039;&#039;&#039;[[#Multiplayer commands|Multiplayer]]&#039;&#039;&#039; - Message filtering, banning users, etc.&lt;br /&gt;
* &#039;&#039;&#039;[[#Scripting and cheat commands|Scripting/Cheating]]&#039;&#039;&#039; - Run small Lua scripts (but they &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;disable achievements for the save game&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Using the console ===&lt;br /&gt;
The console display can be toggled with the {{keybinding|/}} (slash) or {{keybinding|~}} (tilde) keys.&lt;br /&gt;
&lt;br /&gt;
You can customize the keys via &#039;&#039;&#039;Settings menu → Controls → Toggle chat (and Lua console)&#039;&#039;&#039;.&lt;br /&gt;
When the console is open, you&#039;ll see a blinking cursor at the bottom of the screen; type your message or command and hit &#039;&#039;&#039;Return&#039;&#039;&#039; to send it (this will also close the console).&lt;br /&gt;
Documentation about message and command prefixes can be found further down this page.&lt;br /&gt;
&lt;br /&gt;
The console supports [[rich text]] tags. These tags are useful for sharing blueprints, marking map locations in chat or adding icons to map markers and train stations. Ctrl + Alt-clicking the map or ground will automatically insert a GPS tag and post it into the console. Shift-clicking most things with the console open will insert a tag for that thing into the console.&lt;br /&gt;
&lt;br /&gt;
When the console is closed, only the most recent messages/commands will be displayed, but they will gradually fade away (opening the console will immediately re-display all recent messages).&lt;br /&gt;
Note that by default, all executed commands are made visible to all users. The fade-out time can be changed via &#039;&#039;&#039;Settings menu → Interface → Chat message delay&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The console can be cleared with the &#039;&#039;&#039;/clear&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
Use the {{keybinding|&amp;amp;uarr;}} and {{keybinding|&amp;amp;darr;}} keys to scroll through the console history. The {{keybinding|Tab}} key provides intelligent code completion on commands, options and player names.&lt;br /&gt;
&lt;br /&gt;
== Normal commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Command&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Example&lt;br /&gt;
! style=&amp;quot;width:46%&amp;quot;| Description&lt;br /&gt;
! style=&amp;quot;width:4%&amp;quot;| Admin only&lt;br /&gt;
|-&lt;br /&gt;
| /alerts &amp;lt;enable/disable/mute/unmute&amp;gt; &amp;lt;alert&amp;gt;&lt;br /&gt;
| /alerts disable turret_fire&lt;br /&gt;
| Enables, disables, mutes, or unmutes the given  [[alerts|alert]] type. Available alerts: entity_destroyed, entity_under_attack, not_enough_construction_robots, no_material_for_construction, not_enough_repair packs, turret_fire, custom, no_storage, train_out_of_fuel, fluid_mixing.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /clear&lt;br /&gt;
| /clear&lt;br /&gt;
| Clears the console.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /color &amp;lt;color&amp;gt;&lt;br /&gt;
| /color 20 255 255&lt;br /&gt;
| Changes your color. Can either be one of the pre-defined colors or [[:Wikipedia:RGB_color_space|RGB value]] in the format of “# # #”. Available colors: default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /evolution&lt;br /&gt;
| /evolution&lt;br /&gt;
| Prints info about the alien evolution factor.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /help [command]&lt;br /&gt;
| /help&lt;br /&gt;
| Prints a list of available commands, the optional argument can specify the command that should be described.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /h [command]&lt;br /&gt;
| /h&lt;br /&gt;
| Same as /help.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /mute-programmable-speaker &amp;lt;mute/unmute&amp;gt; &amp;lt;local/everyone&amp;gt;&lt;br /&gt;
| /mute-programmable-speaker mute local&lt;br /&gt;
| Mutes or unmutes the global sounds created by the Programmable Speaker. Use “local” to mute just the local client. Admins can use “everyone” to mute the sounds for everyone on the server.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /perf-avg-frames &amp;lt;number&amp;gt;&lt;br /&gt;
| /perf-avg-frames 100&lt;br /&gt;
| Number of ticks/updates used to average performance counters. Default is 100. Value of 5-10 is recommended for fast convergence, but numbers will jitter more rapidly.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /permissions&lt;br /&gt;
| /permissions&lt;br /&gt;
| Opens the permissions GUI.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /permissions &amp;lt;action&amp;gt; &amp;lt;parameters&amp;gt;&lt;br /&gt;
| /permissions add-player DeveloperGroup kovarex&lt;br /&gt;
| Available actions are add-player &amp;lt;group&amp;gt; &amp;lt;player&amp;gt;, create-group &amp;lt;name&amp;gt;, delete-group &amp;lt;group&amp;gt;, edit-group &amp;lt;group&amp;gt; &amp;lt;input_action&amp;gt; &amp;lt;true/false&amp;gt;, get-player-group &amp;lt;player&amp;gt;, remove-player &amp;lt;group&amp;gt; &amp;lt;player&amp;gt;, rename-group &amp;lt;group&amp;gt; &amp;lt;new_name&amp;gt; and reset&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /reset-tips&lt;br /&gt;
| /reset-tips&lt;br /&gt;
| Resets the state of the tips and tricks as if the game was just started for the first time.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /screenshot [x resolution] [y resolution] [zoom]&lt;br /&gt;
| /screenshot&lt;br /&gt;
| Takes a screenshot with the GUI hidden, centered on the player. It is saved in the &amp;quot;script-output&amp;quot; subfolder of your [[User data directory]].  Resolution is optional and defaults to the current window size. Zoom is optional and defaults to 1.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /seed&lt;br /&gt;
| /seed&lt;br /&gt;
| Prints the starting map seed.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /time&lt;br /&gt;
| /time&lt;br /&gt;
| Prints info about how old the map is.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /toggle-action-logging&lt;br /&gt;
| /toggle-action-logging&lt;br /&gt;
| Toggles logging all input actions performed by the game. This value isn’t persisted between game restarts and only affects your local game in multiplayer sessions.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /toggle-heavy-mode&lt;br /&gt;
| /toggle-heavy-mode&lt;br /&gt;
| Used to investigate [[Desynchronization#Using_heavy_mode_command|desyncs]]. Will slow down the game and make multiplayer unplayable.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unlock-shortcut-bar&lt;br /&gt;
| /unlock-shortcut-bar&lt;br /&gt;
| Unlocks all [[shortcut bar]] items, including blueprint string import, copy &amp;amp; paste, deconstruction and upgrade planner.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /unlock-tips&lt;br /&gt;
| /unlock-tips&lt;br /&gt;
| Unlocks all tips and tricks entries.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /version&lt;br /&gt;
| /version&lt;br /&gt;
| Prints the current game version.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Multiplayer commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Command&lt;br /&gt;
! style=&amp;quot;width:25%&amp;quot;| Example&lt;br /&gt;
! style=&amp;quot;width:46%&amp;quot;| Description&lt;br /&gt;
! style=&amp;quot;width:4%&amp;quot;| Admin only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;message&amp;gt;&lt;br /&gt;
| Hello team!&lt;br /&gt;
| Console input that does not start with {{keybinding|/}} is shown as a chat message to your team.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /admin&lt;br /&gt;
| /admin&lt;br /&gt;
| Opens the player management GUI.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /admins&lt;br /&gt;
| /admins&lt;br /&gt;
| Prints a list of game admins.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /ban &amp;lt;player&amp;gt; &amp;lt;reason&amp;gt;&lt;br /&gt;
| /ban xTROLLx Throwing grenades in base&lt;br /&gt;
| Bans the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /bans&lt;br /&gt;
| /bans&lt;br /&gt;
| Prints a list of banned players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /banlist &amp;lt;add/remove/get/clear&amp;gt; &amp;lt;player&amp;gt;&lt;br /&gt;
| /banlist get&lt;br /&gt;
| Adds or removes a player from the banlist. Same as /ban or /unban.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /config &amp;lt;get/set&amp;gt; &amp;lt;option&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
| /config set password hunter2&lt;br /&gt;
| Gets or sets various multiplayer game settings. Available configs are: afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public. The units for the options afk-auto-kick and autosave-interval are in minutes.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /delete-blueprint-library &amp;lt;player&amp;gt;&lt;br /&gt;
| /delete-blueprint-library everybody confirm&lt;br /&gt;
| Deletes the blueprint library storage for the given offline player from the save file. Enter “everybody confirm” to delete the storage of all offline players.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /demote &amp;lt;player&amp;gt;&lt;br /&gt;
| /demote AzureDiamond&lt;br /&gt;
| Demotes the player from admin.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;player&amp;gt;&lt;br /&gt;
| /ignore Cthon98&lt;br /&gt;
| Prevents the chat from showing messages from this player. Admin messages are still shown.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /ignores&lt;br /&gt;
| /ignores&lt;br /&gt;
| Prints a list of ignored players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /kick &amp;lt;player&amp;gt; &amp;lt;reason&amp;gt;&lt;br /&gt;
| /kick xTROLLx Throwing grenades in base&lt;br /&gt;
| Kicks the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /mute &amp;lt;player&amp;gt;&lt;br /&gt;
| /mute Cthon98&lt;br /&gt;
| Prevents the player from saying anything in chat.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /mutes&lt;br /&gt;
| /mutes&lt;br /&gt;
| All players that are muted (can’t talk in chat).&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /open &amp;lt;player&amp;gt;&lt;br /&gt;
| /open AzureDiamond&lt;br /&gt;
| Opens another player’s inventory.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /o &amp;lt;player&amp;gt;&lt;br /&gt;
| /o AzureDiamond&lt;br /&gt;
| Same as /open.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /players [online/o/count/c]&lt;br /&gt;
| /players&lt;br /&gt;
| Prints a list of players in the game. (parameter online/o, it prints only players that are online, count/c prints only count)&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /p [online/o/count/c]&lt;br /&gt;
| /p o c&lt;br /&gt;
| Same as /players.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /promote &amp;lt;player&amp;gt;&lt;br /&gt;
| /promote AzureDiamond&lt;br /&gt;
| Promotes the player to admin.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /purge &amp;lt;player&amp;gt;&lt;br /&gt;
| /purge Cthon98&lt;br /&gt;
| Clears all the messages from this player from the chat log.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /reply &amp;lt;message&amp;gt;&lt;br /&gt;
| /reply oh, really?&lt;br /&gt;
| Replies to the last player that whispered to you.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /r &amp;lt;message&amp;gt;&lt;br /&gt;
| /r oh, really?&lt;br /&gt;
| Same as /reply.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /server-save&lt;br /&gt;
| /server-save&lt;br /&gt;
| Saves the game on the server in a multiplayer game.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /shout &amp;lt;message&amp;gt;&lt;br /&gt;
| /shout Hello world!&lt;br /&gt;
| Sends a message to all players including other forces.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /s &amp;lt;message&amp;gt;&lt;br /&gt;
| /s Hello world!&lt;br /&gt;
| Same as /shout.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /swap-players &amp;lt;player&amp;gt; [player]&lt;br /&gt;
| /swap-players AzureDiamond&lt;br /&gt;
| Swaps your character with the given player’s character, or if two players are given swaps the two player characters.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unban &amp;lt;player&amp;gt;&lt;br /&gt;
| /unban xTROLLx&lt;br /&gt;
| Unbans the specified player.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /unignore &amp;lt;player&amp;gt;&lt;br /&gt;
| /unignore Cthon98&lt;br /&gt;
| Allows the chat to show messages from this player.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /unmute &amp;lt;player&amp;gt;&lt;br /&gt;
| /unmute Cthon98&lt;br /&gt;
| Allows the player to talk in chat again.&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| /whisper &amp;lt;player&amp;gt; &amp;lt;message&amp;gt;&lt;br /&gt;
| /whisper AzureDiamond that&#039;s what I see&lt;br /&gt;
| Sends a message to the specified player.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /w &amp;lt;player&amp;gt; &amp;lt;message&amp;gt;&lt;br /&gt;
| /w AzureDiamond that&#039;s what I see&lt;br /&gt;
| Same as /whisper.&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| /whitelist &amp;lt;add/remove/get/clear&amp;gt; [player]&lt;br /&gt;
| /whitelist get&lt;br /&gt;
| Adds or removes a player from the whitelist, where only whitelisted players can join the game. Enter nothing for “player” when using “get” to print a list of all whitelisted players. An empty whitelist disables the whitelist functionality allowing anyone to join.&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripting and cheat commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| /cheat &amp;lt;all&amp;gt;&lt;br /&gt;
| Researches all technologies and enables cheat mode. Using the &#039;&#039;&#039;all&#039;&#039;&#039; option also gives the player some additional items.&lt;br /&gt;
|-&lt;br /&gt;
| /command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed).&lt;br /&gt;
|-&lt;br /&gt;
| /c &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed).&lt;br /&gt;
|-&lt;br /&gt;
| /editor&lt;br /&gt;
| Toggles the map editor.&lt;br /&gt;
|-&lt;br /&gt;
| /measured-command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) and measures time it took.&lt;br /&gt;
|-&lt;br /&gt;
| /silent-command &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) without printing it to the console.&lt;br /&gt;
|-&lt;br /&gt;
| /sc &amp;lt;command&amp;gt;&lt;br /&gt;
| Executes a Lua command (if allowed) without printing it to the console.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a very powerful feature, which also allows cheating, and as such &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;achievements will be permanently disabled for the save&amp;lt;/span&amp;gt; as soon as you use a script command.&lt;br /&gt;
&lt;br /&gt;
== Basic example scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Use it as calculator ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(1234*5678)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zoom beyond normal bounds ===&lt;br /&gt;
Note that zooming too far out can cause performance hits. Be careful.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.zoom=0.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mine faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.manual_mining_speed_modifier=1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Craft faster ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.manual_crafting_speed_modifier=1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unlock and research all technologies ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.research_all_technologies()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Undo this with the command in the next section.&lt;br /&gt;
&lt;br /&gt;
Note: Specific technologies can be researched using the [[map editor]] by shift clicking the &amp;quot;start research&amp;quot; button on the technology GUI.&lt;br /&gt;
&lt;br /&gt;
=== Unresearch all technologies ===&lt;br /&gt;
This does not reset manually applied bonuses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, tech in pairs(game.player.force.technologies) do &lt;br /&gt;
	tech.researched=false&lt;br /&gt;
	game.player.force.set_saved_technology_progress(tech, 0)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Specific technologies can be unresearched using the [[map editor]] by clicking the &amp;quot;un-research&amp;quot; button on the technology GUI.&lt;br /&gt;
&lt;br /&gt;
=== Reset your force ===&lt;br /&gt;
This resets all data for your force, including kill and production statistics, technologies, bonuses and charting status.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.reset()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Always show rail block visualization ===&lt;br /&gt;
Permanently show the rail block visualization instead of only when holding a rail signal. Disable by replacing true with false.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.game_view_settings.show_rail_block_visualisation = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Set all trains to Automatic mode ===&lt;br /&gt;
Set all trains to automatic mode - for example after building them with a blueprint. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for key,ent in pairs (game.player.surface.find_entities_filtered{name=&amp;quot;locomotive&amp;quot;}) do &lt;br /&gt;
    ent.train.manual_mode = false&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inventory manipulation scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Cheat mode ===&lt;br /&gt;
Allows for infinite free crafting. Disable by replacing true with false.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.cheat_mode=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Refill resources (refill oil, iron etc.) ===&lt;br /&gt;
While holding the cursor over a resource tile in-game:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.amount=7500&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can refill all resources in the map with the following command. Change ore.amount to the desired value.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c surface = game.player.surface&lt;br /&gt;
for _, ore in pairs(surface.find_entities_filtered({type=&amp;quot;resource&amp;quot;})) do&lt;br /&gt;
    ore.amount = 10000&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add items to the player&#039;s inventory ===&lt;br /&gt;
Replace iron-plate with the [[data.raw|internal name]] of the item desired.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.insert{name=&amp;quot;iron-plate&amp;quot;, count=100}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For instance, here&#039;s a stack of the god-mode energy system interface:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.insert{name=&amp;quot;electric-energy-interface&amp;quot;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several god-mode items available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;infinity-chest&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;infinity-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;electric-energy-interface&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;heat-interface&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a powerful armor with equipment and some tools for construction:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c	local player = game.player&lt;br /&gt;
player.insert{name=&amp;quot;power-armor-mk2&amp;quot;, count = 1}&lt;br /&gt;
local p_armor = player.get_inventory(5)[1].grid&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fusion-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;exoskeleton-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;energy-shield-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;energy-shield-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;personal-roboport-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;night-vision-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;battery-mk2-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;battery-mk2-equipment&amp;quot;})&lt;br /&gt;
player.insert{name=&amp;quot;construction-robot&amp;quot;, count = 25}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Increase player inventory slots ===&lt;br /&gt;
Gives 100 additional bonus inventory slots to your entire force. Used by the [[Toolbelt (research)]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.character_inventory_slots_bonus=100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== World manipulation scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Reveal the map around the player ===&lt;br /&gt;
&lt;br /&gt;
Reveals the map around the player, similar to a [[radar]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local radius=150&lt;br /&gt;
game.player.force.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or from start position&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local radius=150&lt;br /&gt;
game.player.force.chart(game.player.surface, {{x = -radius, y = -radius}, {x = radius, y = radius}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Change 150 to the desired radius, higher values take longer.&lt;br /&gt;
&lt;br /&gt;
=== Hide revealed map ===&lt;br /&gt;
&lt;br /&gt;
Hides all revealed chunks, inverted map revealing.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local force = game.player.force&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  force.unchart_chunk({x = chunk.x, y = chunk.y}, surface)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reveal all generated map ===&lt;br /&gt;
&lt;br /&gt;
Revels all of the generated map to the player&#039;s team.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.chart_all()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete chunks ===&lt;br /&gt;
If much of the map is revealed, it increases the size of the save file. The following command cancels the generation of all chunks that are currently queued for generation and removes chunks outside a 32 chunks radius around 0,0. Note that this will remove player entities if there are any on these chunks.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface;&lt;br /&gt;
game.player.force.cancel_charting(surface); &lt;br /&gt;
local chunk_radius = 32;&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  if (chunk.x &amp;lt; -chunk_radius or chunk.x &amp;gt; chunk_radius or chunk.y &amp;lt; -chunk_radius or chunk.y &amp;gt; chunk_radius) then&lt;br /&gt;
    surface.delete_chunk(chunk)&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete unrevealed chunks ===&lt;br /&gt;
This command deletes chunks that are not revealed by the player. Can be used after the command for [[#Hide revealed map|hiding revealed map]] to delete the chunks not covered by radar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;/c local surface = game.player.surface&lt;br /&gt;
local force = game.player.force&lt;br /&gt;
for chunk in surface.get_chunks() do&lt;br /&gt;
  if not force.is_chunk_charted(surface, chunk) then&lt;br /&gt;
    surface.delete_chunk(chunk)&lt;br /&gt;
  end&lt;br /&gt;
end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turn off night ===&lt;br /&gt;
Enables eternal day.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.always_day=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change game speed ===&lt;br /&gt;
0.5 is half speed, 1 is default, 2 is double speed, etc. Minimum is 0.01. This can be used for a lot of things like when you know you will have to wait for long periods of time for something to complete. Increasing will decrease performance, be careful.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.speed=X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Freeze time ===&lt;br /&gt;
Stops the advancement of the time if you replace &amp;quot;BOOL&amp;quot; with &amp;quot;true&amp;quot; or unfreezes it if you replace it with &amp;quot;false&amp;quot;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.freeze_daytime=BOOL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove all pollution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.clear_pollution()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Completely turn off pollution ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, surface in pairs(game.surfaces) do&lt;br /&gt;
  surface.clear_pollution()&lt;br /&gt;
end&lt;br /&gt;
game.map_settings.pollution.enabled = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add a lot of pollution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.pollute(game.player.position, 1000000)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Where speakers are, who placed them ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local speakers = game.player.surface.find_entities_filtered{force = game.player.force, type=&amp;quot;programmable-speaker&amp;quot;}&lt;br /&gt;
for key, speaker in pairs(speakers) do&lt;br /&gt;
    game.player.print(speaker.last_user.name .. &amp;quot; placed a speaker at [gps=&amp;quot; .. speaker.position.x .. &amp;quot;,&amp;quot; .. speaker.position.y .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable friendly fire for your force ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.friendly_fire = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add new resource patch ===&lt;br /&gt;
This creates a new 11×11 patch of resources, centered on the player character, where the ground is not water.&lt;br /&gt;
The patch it creates is perfectly square but it randomizes the amount similar to natural generation, with fewer ore at the edges and more ore in the center.&lt;br /&gt;
The default numbers result in a patch with 2500-3000 ore.&lt;br /&gt;
&lt;br /&gt;
If you want a larger patch, change &amp;quot;local size = 5&amp;quot; to a larger number.&lt;br /&gt;
A larger patch will have exponentially more ore.&lt;br /&gt;
Entering a number above 30 is not recommended.&lt;br /&gt;
&lt;br /&gt;
If you want a richer patch, change &amp;quot;local density = 10&amp;quot; to a larger number.&lt;br /&gt;
Entering a very large number shouldn&#039;t hurt anything but you probably don&#039;t need to go above 100.&lt;br /&gt;
&lt;br /&gt;
To choose which resource is spawned, change &amp;quot;stone&amp;quot; near the bottom to &amp;quot;iron-ore&amp;quot;, &amp;quot;copper-ore&amp;quot;, &amp;quot;coal&amp;quot;, or &amp;quot;uranium-ore&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local ore=nil&lt;br /&gt;
local size=5&lt;br /&gt;
local density=10&lt;br /&gt;
for y=-size, size do&lt;br /&gt;
	for x=-size, size do&lt;br /&gt;
		a=(size+1-math.abs(x))*10&lt;br /&gt;
		b=(size+1-math.abs(y))*10&lt;br /&gt;
		if a&amp;lt;b then&lt;br /&gt;
			ore=math.random(a*density-a*(density-8), a*density+a*(density-8))&lt;br /&gt;
		end&lt;br /&gt;
		if b&amp;lt;a then&lt;br /&gt;
			ore=math.random(b*density-b*(density-8), b*density+b*(density-8))&lt;br /&gt;
		end&lt;br /&gt;
		if surface.get_tile(game.player.position.x+x, game.player.position.y+y).collides_with(&amp;quot;ground-tile&amp;quot;) then&lt;br /&gt;
			surface.create_entity({name=&amp;quot;stone&amp;quot;, amount=ore, position={game.player.position.x+x, game.player.position.y+y}})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove resources around the player ===&lt;br /&gt;
Removes all resource patches from the ground in a 50 x 50 area around the player.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local size=50&lt;br /&gt;
local pos=game.player.position&lt;br /&gt;
&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type=&amp;quot;resource&amp;quot;}) &lt;br /&gt;
	do e.destroy() &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add new oil patch ===&lt;br /&gt;
This creates 9 crude oil patches in a 3×3 square.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for y=0,2 do&lt;br /&gt;
	for x=0,2 do&lt;br /&gt;
		game.player.surface.create_entity({name=&amp;quot;crude-oil&amp;quot;, amount=100000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or randomly without any collision:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local position=nil&lt;br /&gt;
for i=1,9 do&lt;br /&gt;
	position=game.player.surface.find_non_colliding_position(&amp;quot;crude-oil&amp;quot;, game.player.position, 0, i/2+1.5)&lt;br /&gt;
	if position then &lt;br /&gt;
		game.player.surface.create_entity({name=&amp;quot;crude-oil&amp;quot;, amount=100000, position=position})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Regenerate resources ===&lt;br /&gt;
For solid resources like iron, destroys all resource entities and creates resource entities as in the original map generation. For fluid resources like oil, sets the yield of all existing resource entities to the original amount. Regenerates resources on the entire surface.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{type=&amp;quot;resource&amp;quot;}) do&lt;br /&gt;
  if e.prototype.infinite_resource then&lt;br /&gt;
    e.amount = e.initial_amount&lt;br /&gt;
  else&lt;br /&gt;
    e.destroy()&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
local non_infinites = {}&lt;br /&gt;
for resource, prototype in pairs(game.get_filtered_entity_prototypes{{filter=&amp;quot;type&amp;quot;, type=&amp;quot;resource&amp;quot;}}) do&lt;br /&gt;
  if not prototype.infinite_resource then&lt;br /&gt;
    table.insert(non_infinites, resource)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
surface.regenerate_entity(non_infinites)&lt;br /&gt;
for _, e in pairs(surface.find_entities_filtered{type=&amp;quot;mining-drill&amp;quot;}) do&lt;br /&gt;
    e.update_connections()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create 10 fishes ===&lt;br /&gt;
This creates 10 fishes around of player. The player must be on the water edge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local player = game.player&lt;br /&gt;
local surface = player.surface&lt;br /&gt;
for i = 1, 10 do&lt;br /&gt;
  local position = surface.find_non_colliding_position(&#039;fish&#039;, player.position, 10, 1)&lt;br /&gt;
  if not position then return end&lt;br /&gt;
  surface.create_entity {name = &#039;fish&#039;, position = position}&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Count entities ===&lt;br /&gt;
Counts all entities whose name includes the string in local entity.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local entity=&amp;quot;belt&amp;quot;&lt;br /&gt;
local surface=game.player.surface&lt;br /&gt;
local count=0&lt;br /&gt;
for key, ent in pairs(surface.find_entities_filtered({force=game.player.force})) do&lt;br /&gt;
	if string.find(ent.name,entity) then&lt;br /&gt;
		count=count+1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
game.player.print(count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turn off cliff generation ===&lt;br /&gt;
Sets size to &amp;quot;none&amp;quot;. Only effective on chunks that are generated after using this command. Use [[#Remove all cliffs]] to delete existing cliffs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local mgs = game.player.surface.map_gen_settings&lt;br /&gt;
mgs.cliff_settings.cliff_elevation_0 = 1024&lt;br /&gt;
game.player.surface.map_gen_settings = mgs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remove all cliffs ===&lt;br /&gt;
Removes all cliffs existing cliffs from the world. Use [[#Turn off cliff generation]] to turn off cliff generation in new chunks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for _, v in pairs(game.player.surface.find_entities_filtered{type=&amp;quot;cliff&amp;quot;}) do&lt;br /&gt;
  v.destroy()&lt;br /&gt;
end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all decoratives ===&lt;br /&gt;
Delete the decoratives that can be found in the world.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.destroy_decoratives({})&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change map generation settings ===&lt;br /&gt;
This allows to change the map generation settings for new chunks; it does not alter already generated chunks. [[#Delete chunks|Deleted chunks]] are affected by the setting change because they are newly generated when they get explored again.&lt;br /&gt;
&lt;br /&gt;
To change resource generation settings, replace &amp;quot;iron-ore&amp;quot; with the [[Data.raw#resource|resource]] that should be changed and replace &amp;quot;very-high&amp;quot; with the desired [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] in the following command. Replace &amp;quot;iron-ore&amp;quot; with &amp;quot;enemy-base&amp;quot; to change the enemy base generation settings. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local resource = &amp;quot;iron-ore&amp;quot;&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.autoplace_controls[resource].size = &amp;quot;very-high&amp;quot;&lt;br /&gt;
mgs.autoplace_controls[resource].frequency = &amp;quot;very-high&amp;quot;&lt;br /&gt;
mgs.autoplace_controls[resource].richness = &amp;quot;very-high&amp;quot;&lt;br /&gt;
surface.map_gen_settings = mgs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change water generation settings, replace &amp;quot;very-high&amp;quot; with the desired [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] in the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.water = &amp;quot;very-high&amp;quot; --[[ size]]&lt;br /&gt;
mgs.terrain_segmentation  = &amp;quot;very-high&amp;quot; --[[ frequency]]&lt;br /&gt;
surface.map_gen_settings = mgs &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enemy/evolution scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Set evolution factor ===&lt;br /&gt;
Ranges from 0 (new game) to 1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.forces[&amp;quot;enemy&amp;quot;].evolution_factor=X&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable time-based evolution &amp;amp; increases pollution-based evolution ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.map_settings.enemy_evolution.time_factor=0&lt;br /&gt;
/c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;2&amp;quot; at the end of the last command will double the default pollution factor. You can substitute another number to increase (or decrease) the pollution factor further.&lt;br /&gt;
&lt;br /&gt;
=== Kill all biters on the &amp;quot;enemy&amp;quot; force ===&lt;br /&gt;
Note that this will kill only mobile units, spawners will not be killed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.forces[&amp;quot;enemy&amp;quot;].kill_all_units()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill all enemies ===&lt;br /&gt;
This will kill all biters, bases and worms. Anything that is an enemy will be completely destroyed. This only affects enemies in the generated world, so any unexplored parts of the map which still need to be generated will still have enemies. You can [[#Prevent biters being on newly generated chunks|prevent biters being on newly generated chunks]] if desired.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
for key, entity in pairs(surface.find_entities_filtered({force=&amp;quot;enemy&amp;quot;})) do&lt;br /&gt;
	entity.destroy()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kill all nearby enemies ===&lt;br /&gt;
&lt;br /&gt;
This will kill all biters, bases and worms in a configurable radius. The default, 250 tiles, is about two zoomed-out screen widths on full HD. After destruction, it shows how many objects were destroyed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface=game.player.surface&lt;br /&gt;
local pp = game.player.position&lt;br /&gt;
local cnt = 0&lt;br /&gt;
for key, entity in pairs(surface.find_entities_filtered({force=&amp;quot;enemy&amp;quot;, radius=250, position=pp })) do&lt;br /&gt;
	cnt = cnt+1&lt;br /&gt;
	entity.destroy()&lt;br /&gt;
 end	&lt;br /&gt;
game.player.print(cnt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable peaceful mode ===&lt;br /&gt;
Enabling peaceful mode prevents biter attacks until provoked. Substitute true for false to disable. Already existing biters are not affected by this command so attacks could continue for a while after activating peaceful mode.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.surface.peaceful_mode = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable biter expansion ===&lt;br /&gt;
Biter expansion allows biters to create new nests, it is enabled by default. Substitute true for false to disable.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.map_settings.enemy_expansion.enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prevent biters being on newly generated chunks ===&lt;br /&gt;
On newly generated chunks no biters will be present, however all current biters will remain unaffected. Equivalent of setting the Enemy Base Size to None under the Terrain settings during map generation but achieved mid game by [[#Change map generation settings|changing map generation settings]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local surface = game.player.surface&lt;br /&gt;
local mgs = surface.map_gen_settings&lt;br /&gt;
mgs.autoplace_controls[&amp;quot;enemy-base&amp;quot;].size = &amp;quot;none&amp;quot;&lt;br /&gt;
surface.map_gen_settings = mgs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Player character scripts ==&lt;br /&gt;
Commands concerning the player directly.&lt;br /&gt;
=== Get player position ===&lt;br /&gt;
Prints coordinates of your current position.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(game.player.position.x .. &amp;quot;, &amp;quot; .. game.player.position.y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Teleport player ===&lt;br /&gt;
Moves the player to the specified location. You should be able to teleport to a specific player if you obtain their coordinates via them executing the previous command and giving them to you.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.teleport({X, Y})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To teleport to the world&#039;s origin, use 0,0.&lt;br /&gt;
&lt;br /&gt;
=== Enable god mode ===&lt;br /&gt;
God mode removes your player character allowing you to fly over obstacles and take no damage.&lt;br /&gt;
&lt;br /&gt;
Disassociate your controls from the player:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.character=nil&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, hover the mouse over the useless player and destroy it by typing:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.destroy()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To undo, spawn a player character. This will spawn a new player at the spawn point of the world, and connect your controls to it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.create_character()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable long reach ===&lt;br /&gt;
Enables long reach, which allows the player to build and interact with entities at a greater distance. The default reach is 10.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local reach = 10000&lt;br /&gt;
game.player.force.character_build_distance_bonus = reach&lt;br /&gt;
game.player.force.character_reach_distance_bonus = reach&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Find player corpses ===&lt;br /&gt;
Pings player corpses on the map.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local found_corpses = game.player.surface.find_entities_filtered{type=&amp;quot;character-corpse&amp;quot;}&lt;br /&gt;
for _,corpse in pairs(found_corpses) do&lt;br /&gt;
    local player = game.get_player(corpse.character_corpse_player_index)&lt;br /&gt;
    local name = player and player.name or &amp;quot;????&amp;quot;&lt;br /&gt;
    game.player.print(name .. &amp;quot; --&amp;gt; [gps=&amp;quot; .. corpse.position.x .. &amp;quot;,&amp;quot; .. corpse.position.y .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Research scripts ==&lt;br /&gt;
&lt;br /&gt;
=== Enable Research Queue ===&lt;br /&gt;
Enable the research queue for the player&#039;s current team. Can be done after the game has started if it was forgotten during the map&#039;s setup.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.research_queue_enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable faster research ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.laboratory_speed_modifier=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
1 is normal speed, 2 is double speed 3 is triple etc.&lt;br /&gt;
&lt;br /&gt;
=== Research specific technologies ===&lt;br /&gt;
The internal technology names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;electric-energy-distribution-1&#039;].researched=true&lt;br /&gt;
/c game.player.force.technologies[&#039;steel-processing&#039;].researched=true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Unresearch specific technologies ===&lt;br /&gt;
The internal technology names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.technologies[&#039;electric-energy-distribution-1&#039;].researched=false; game.player.force.set_saved_technology_progress(&#039;electric-energy-distribution-1&#039;, 0)&lt;br /&gt;
/c game.player.force.technologies[&#039;steel-processing&#039;].researched=false; game.player.force.set_saved_technology_progress(&#039;steel-processing&#039;, 0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enabling specific recipes ===&lt;br /&gt;
The internal recipe/item names can be found in the infoboxes on their respective pages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;electric-energy-interface&amp;quot;].enabled=true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;rocket-silo&amp;quot;].enabled=true&lt;br /&gt;
/c game.player.force.recipes.loader.enabled=true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;fast-loader&amp;quot;].enabled = true&lt;br /&gt;
/c game.player.force.recipes[&amp;quot;express-loader&amp;quot;].enabled = true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable all recipes ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modding tools ==&lt;br /&gt;
A list of the internal names of most things in the vanilla game can also be found on [[data.raw]].&lt;br /&gt;
&lt;br /&gt;
=== Access a mod&#039;s data ===&lt;br /&gt;
If the first word of the command is __mod-name__ it will run in the context of the mod with the same name. For instance, this command prints the data from Resource Spawner Overhaul:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c __rso-mod__ game.player.print(serpent.dump(global))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Print to console the tile under the player ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.print(game.player.surface.get_tile(game.player.position).name)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write all researched technologies to file ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local list = {}&lt;br /&gt;
for _, tech in pairs(game.player.force.technologies) do &lt;br /&gt;
	if tech.researched then&lt;br /&gt;
    list[#list+1] = tech.name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.write_file(&amp;quot;techs.lua&amp;quot;, serpent.block(list) .. &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write all enabled recipes to file ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c local list = {}&lt;br /&gt;
for _, recipe in pairs(game.player.force.recipes) do &lt;br /&gt;
	if recipe.enabled then&lt;br /&gt;
    list[#list+1] = recipe.name&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.write_file(&amp;quot;recipes.lua&amp;quot;, serpent.block(list) .. &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Write mod list to file ===&lt;br /&gt;
Write all currently active mods and their version to the file script-output/mods.txt in the [[user data directory]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.write_file(&amp;quot;mods.txt&amp;quot;, serpent.block(game.active_mods))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Command line parameters]]&lt;br /&gt;
* http://lua-api.factorio.com/latest/ - Factorio API reference for latest version&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189159</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189159"/>
		<updated>2022-05-10T18:30:53Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
=Tutorial: Comparing Power Production Technologies=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* &#039;&#039;&#039;Boiler power plants&#039;&#039;&#039; (many types depending on the fuels used)&lt;br /&gt;
* &#039;&#039;&#039;Solar power plants&#039;&#039;&#039; (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* &#039;&#039;&#039;Nuclear power plants&#039;&#039;&#039; (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* &#039;&#039;&#039;Coal power plant&#039;&#039;&#039; - Mined coal is fed directly to boilers.&lt;br /&gt;
* &#039;&#039;&#039;Coal liquification power plant (via solid fuel)&#039;&#039;&#039; - Mined coal undergoes coal liquification and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler. This process has been found to [[https://www.reddit.com/r/factorio/comments/ujrxr4/altf4_60_burning_questions/ double]] the energy output from the coal.&lt;br /&gt;
* &#039;&#039;&#039;Oil power plant (via solid fuel)&#039;&#039;&#039; - Advanced oil processing is used and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler.&lt;br /&gt;
* &#039;&#039;&#039;Solar power plant&#039;&#039;&#039; - Solar panels and accumulators are placed at an appropriate [[https://forums.factorio.com/viewtopic.php?f=5&amp;amp;t=5594 ratio]] such that solar panels provide the daytime supply and accumulators the nighttime supply.&lt;br /&gt;
* &#039;&#039;&#039;Starter nuclear power plant&#039;&#039;&#039; - There is a single nuclear reactor, being supplied by two centrifuges that run uranium processing. There is no Kovarex enrichment used.&lt;br /&gt;
* &#039;&#039;&#039;Large nuclear power plant&#039;&#039;&#039; - Several reactors are used side-by-side to ensure a high neighbor bonus and Kovarex enrichment is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power plant setup listed has its own strengths and weaknesses. The comparison is in terms of the following factors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Technology level&#039;&#039;&#039; - This refers to which science packs need to be produced to unlock the technology for this setup (0 = unlocked at start, 1 = automation science, 2 = logistic science, 3 = chemical science, 4 = production science).&lt;br /&gt;
* &#039;&#039;&#039;Setup costs&#039;&#039;&#039; - in terms of materials needed to build the setup (copper, iron, steel, stone, coal, and petroleum gas).&lt;br /&gt;
* &#039;&#039;&#039;Infrastructure dependence&#039;&#039;&#039; - As a special part of setup costs, this is a check on whether you need an active belt/train/robot network to keep the setup running.&lt;br /&gt;
* &#039;&#039;&#039;Running costs&#039;&#039;&#039; - in terms of raw materials needed for fuel.&lt;br /&gt;
* &#039;&#039;&#039;Space usage&#039;&#039;&#039; - in terms of how many chunks of space is required.&lt;br /&gt;
* &#039;&#039;&#039;Pollution generation&#039;&#039;&#039; - in terms of how much pollution is generated per minute. We look at this factor both without modules and after adding efficiency 1 modules to every available slot.&lt;br /&gt;
* &#039;&#039;&#039;Design complexity&#039;&#039;&#039; - in terms of how many rules and ratios to look out for while designing the setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Summary Table===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Tech Level || 0 || 4 || 3 || 2 || 3 || 4 &lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Very Low || Low || Low || Very High || Medium || Medium-Low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Yes || Yes || Yes || No || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Space Usage || Lowest || Low || Low || High || Medium || Medium-Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Low || Medium || Medium-High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setup Costs Table===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Copper || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Steel || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Stone || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Petr. Gas || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure [III] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Space (chunks) [IV] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[I]  - Reducing the scale allows&lt;br /&gt;
[II] -&lt;br /&gt;
[III]-&lt;br /&gt;
[IV] -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running Costs and Pollution Table===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Uranium ore || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Iron plate || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Crude oil  || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Sulfur || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution M [V] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[V]  -&lt;br /&gt;
&lt;br /&gt;
==Plant Designs and Calculations==&lt;br /&gt;
(setup costs via excel sheet)&lt;br /&gt;
(notes notes notes, eg. 40MW reference point, no modules used at all)&lt;br /&gt;
Power consumption: measure by running in game Factorio 1.1&lt;br /&gt;
Pollution: measure by running in game Factorio 1.1&lt;br /&gt;
&lt;br /&gt;
===40MW Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Mines, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Liquified Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Mines, coal processing, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Oil Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Pumpjacks, advanced oil processing, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Solar Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Only solar panels and accumulators&lt;br /&gt;
Excluded: Power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Starter Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Uranium mining, fuel cell production, reactors, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles, sulfuric acid production, iron ore mining and smelting&lt;br /&gt;
&lt;br /&gt;
===800MW Large Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Uranium mining, fuel cell production, reactors, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles, sulfuric acid production, iron ore mining and smelting&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189158</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189158"/>
		<updated>2022-05-10T17:31:20Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
=Tutorial: Comparing Power Production Technologies=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* &#039;&#039;&#039;Boiler power plants&#039;&#039;&#039; (many types depending on the fuels used)&lt;br /&gt;
* &#039;&#039;&#039;Solar power plants&#039;&#039;&#039; (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* &#039;&#039;&#039;Nuclear power plants&#039;&#039;&#039; (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* &#039;&#039;&#039;Coal power plant&#039;&#039;&#039; - Mined coal is fed directly to boilers.&lt;br /&gt;
* &#039;&#039;&#039;Coal liquification power plant (via solid fuel)&#039;&#039;&#039; - Mined coal undergoes coal liquification and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler. This process has been found to [[https://www.reddit.com/r/factorio/comments/ujrxr4/altf4_60_burning_questions/ double]] the energy output from the coal.&lt;br /&gt;
* &#039;&#039;&#039;Oil power plant (via solid fuel)&#039;&#039;&#039; - Advanced oil processing is used and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler.&lt;br /&gt;
* &#039;&#039;&#039;Solar power plant&#039;&#039;&#039; - Solar panels and accumulators are placed at an appropriate [[https://forums.factorio.com/viewtopic.php?f=5&amp;amp;t=5594 ratio]] such that solar panels provide the daytime supply and accumulators the nighttime supply.&lt;br /&gt;
* &#039;&#039;&#039;Starter nuclear power plant&#039;&#039;&#039; - There is a single nuclear reactor, being supplied by two centrifuges that run uranium processing. There is no Kovarex enrichment used.&lt;br /&gt;
* &#039;&#039;&#039;Large nuclear power plant&#039;&#039;&#039; - Several reactors are used side-by-side to ensure a high neighbor bonus and Kovarex enrichment is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power plant setup listed has its own strengths and weaknesses. The comparison is in terms of the following factors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Technology level&#039;&#039;&#039; - This refers to which science packs need to be produced to unlock the technology for this setup (0 = unlocked at start, 1 = automation science, 2 = logistic science, 3 = chemical science, 4 = production science).&lt;br /&gt;
* &#039;&#039;&#039;Setup costs&#039;&#039;&#039; - in terms of materials needed to build the setup (copper, iron, steel, stone, coal, and petroleum gas).&lt;br /&gt;
* &#039;&#039;&#039;Infrastructure dependence&#039;&#039;&#039; - As a special part of setup costs, this is a check on whether you need an active belt/train/robot network to keep the setup running.&lt;br /&gt;
* &#039;&#039;&#039;Running costs&#039;&#039;&#039; - in terms of raw materials needed for fuel.&lt;br /&gt;
* &#039;&#039;&#039;Space usage&#039;&#039;&#039; - in terms of how many chunks of space is required.&lt;br /&gt;
* &#039;&#039;&#039;Pollution generation&#039;&#039;&#039; - in terms of how much pollution is generated per minute. We look at this factor both without modules and after adding efficiency 1 modules to every available slot.&lt;br /&gt;
* &#039;&#039;&#039;Design complexity&#039;&#039;&#039; - in terms of how many rules and ratios to look out for while designing the setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quick Summary Table===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Tech Level || 0 || 4 || 3 || 2 || 3 || 4 &lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Very Low || Low || Low || Very High || Medium || Medium-Low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Yes || Yes || Yes || No || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Space Usage || Lowest || Low || Low || High || Medium || Medium-Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Low || Medium || Medium-High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setup Costs Table===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Copper || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Steel || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Stone || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Petr. Gas || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure [III] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Space (chunks) [IV] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[I]  - Reducing the scale allows&lt;br /&gt;
[II] -&lt;br /&gt;
[III]-&lt;br /&gt;
[IV] -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running Costs and Pollution Table===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Uranium ore || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Iron plate || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Crude oil  || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Sulfur || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution M [V] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[V]  -&lt;br /&gt;
&lt;br /&gt;
==Plant Designs and Calculations==&lt;br /&gt;
&lt;br /&gt;
(notes notes notes, eg. 40MW reference point, no modules used at all)&lt;br /&gt;
Power consumption: measure by running in game Factorio 1.1&lt;br /&gt;
Pollution: measure by running in game Factorio 1.1&lt;br /&gt;
&lt;br /&gt;
===40MW Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Mines, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Liquified Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Mines, coal processing, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Oil Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Pumpjacks, advanced oil processing, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Solar Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Only solar panels and accumulators&lt;br /&gt;
Excluded: Power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Starter Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Uranium mining, fuel cell production, reactors, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles, sulfuric acid production, iron ore mining and smelting&lt;br /&gt;
&lt;br /&gt;
===800MW Large Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Uranium mining, fuel cell production, reactors, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles, sulfuric acid production, iron ore mining and smelting&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189157</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189157"/>
		<updated>2022-05-10T17:19:30Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
=Tutorial: Comparing Power Production Technologies=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* Boiler power plants (many types depending on the fuels used)&lt;br /&gt;
* Solar power plants (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* Nuclear power plants (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* Coal power plant - Mined coal is fed directly to boilers.&lt;br /&gt;
* Coal liquification power plant (via solid fuel) - Mined coal undergoes coal liquification and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler. This process has been found to [[https://www.reddit.com/r/factorio/comments/ujrxr4/altf4_60_burning_questions/ double]] the energy output from the coal.&lt;br /&gt;
* Oil power plant (via solid fuel) - Advanced oil processing is used and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler.&lt;br /&gt;
* Solar power plant - Solar panels and accumulators are placed at an appropriate [[https://forums.factorio.com/viewtopic.php?f=5&amp;amp;t=5594 ratio]] such that solar panels provide the daytime supply and accumulators the nighttime supply.&lt;br /&gt;
* Starter nuclear power plant - There is a single nuclear reactor, being supplied by two centrifuges that run uranium processing. There is no Kovarex enrichment used.&lt;br /&gt;
* Large nuclear power plant - Several reactors are used side-by-side to ensure a high neighbor bonus and Kovarex enrichment is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power plant setup listed has its own strengths and weaknesses. The comparison is in terms of the following factors:&lt;br /&gt;
&lt;br /&gt;
* Technology level to unlock it (1 = automation science, 2 = logistic science, 3 = chemical science, 4 = production science)&lt;br /&gt;
* Setup costs in terms of materials (Namely copper, iron, steel, stone, coal, and petroleum gas)&lt;br /&gt;
* Infrastructure dependence (i.e. whether you need miners and trains or belts to keep it running)&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Space usage&lt;br /&gt;
* Pollution generation&lt;br /&gt;
* Design complexity (in terms of how many things to look out for)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Summary Table&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Tech Level || 0 || 4 || 3 || 2 || 3 || 4 &lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Very Low || Low || Low || Very High || Medium || Medium-Low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Yes || Yes || Yes || No || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Space Usage || Lowest || Low || Low || High || Medium || Medium-Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Low || Medium || Medium-High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup Costs Summary Table&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Copper || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Steel || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Stone || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Petr. Gas || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure [III] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Space (chunks) [IV] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[I]  - Reducing the scale allows&lt;br /&gt;
[II] -&lt;br /&gt;
[III]-&lt;br /&gt;
[IV] -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Running Costs and Pollution Summary Table&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Setup !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Uranium ore || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Iron plate || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Crude oil  || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Sulfur || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution M [V] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[V]  -&lt;br /&gt;
&lt;br /&gt;
==Plant Designs and Calculations==&lt;br /&gt;
&lt;br /&gt;
(notes notes notes, eg. 40MW reference point, no modules used at all)&lt;br /&gt;
Power consumption: measure by running in game Factorio 1.1&lt;br /&gt;
Pollution: measure by running in game Factorio 1.1&lt;br /&gt;
&lt;br /&gt;
===40MW Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Mines, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Liquified Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Mines, coal processing, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Oil Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Pumpjacks, advanced oil processing, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Solar Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Only solar panels and accumulators&lt;br /&gt;
Excluded: Power poles&lt;br /&gt;
&lt;br /&gt;
===40MW Starter Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Uranium mining, fuel cell production, reactors, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles, sulfuric acid production, iron ore mining and smelting&lt;br /&gt;
&lt;br /&gt;
===800MW Large Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
Included: Uranium mining, fuel cell production, reactors, steam production&lt;br /&gt;
Excluded: Transportation infrastructure, power poles, sulfuric acid production, iron ore mining and smelting&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189156</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189156"/>
		<updated>2022-05-10T16:54:24Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
=Tutorial: Comparing Power Production Technologies=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* Boiler power plants (many types depending on the fuels used)&lt;br /&gt;
* Solar power plants (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* Nuclear power plants (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* Coal power plant - Mined coal is fed directly to boilers.&lt;br /&gt;
* Coal liquification power plant (via solid fuel) - Mined coal undergoes coal liquification and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler. This process has been found to [[https://www.reddit.com/r/factorio/comments/ujrxr4/altf4_60_burning_questions/ double]] the energy output from the coal.&lt;br /&gt;
* Oil power plant (via solid fuel) - Advanced oil processing is used and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler.&lt;br /&gt;
* Solar power plant - Solar panels and accumulators are placed at an appropriate [[https://forums.factorio.com/viewtopic.php?f=5&amp;amp;t=5594 ratio]] such that solar panels provide the daytime supply and accumulators the nighttime supply.&lt;br /&gt;
* Starter nuclear power plant - There is a single nuclear reactor, being supplied by two centrifuges that run uranium processing. There is no Kovarex enrichment used.&lt;br /&gt;
* Large nuclear power plant - Several reactors are used side-by-side to ensure a high neighbor bonus and Kovarex enrichment is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power plant listed has its own strengths and weaknesses. The comparison is in terms of the following factors:&lt;br /&gt;
&lt;br /&gt;
* Technology level to unlock it (1 = automation science, 2 = logistic science, 3 = chemical science, 4 = production science)&lt;br /&gt;
* Setup costs in terms of materials (Namely copper, iron, steel, stone, coal, and petroleum gas)&lt;br /&gt;
* Infrastructure dependence (i.e. whether you need miners and trains or belts to keep it running)&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Space usage&lt;br /&gt;
* Pollution generation&lt;br /&gt;
* Design complexity (in terms of how many things to look out for)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Summary Table&#039;&#039;&#039;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Tech Level || 0 || 4 || 3 || 2 || 3 || 4 &lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Very Low || Low || Low || Very High || Medium || Medium-Low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Yes || Yes || Yes || No || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Space Usage || Lowest || Low || Low || High || Medium || Medium-Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Low || Medium || Medium-High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup Costs Summary Table&#039;&#039;&#039;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Copper || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Steel || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Stone || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Petr. Gas || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure [III] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Space (chunks) [IV] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Running Costs and Pollution Summary Table&#039;&#039;&#039;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Uranium ore || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron plate || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Sulfur || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Plant Designs and Calculations==&lt;br /&gt;
&lt;br /&gt;
(notes notes notes, eg. 40MW reference point)&lt;br /&gt;
&lt;br /&gt;
===40MW Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===40MW Liquified Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===40MW Oil Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===40MW Solar Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===40MW Starter Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===800MW Large Nuclear Power Plant===&lt;br /&gt;
(blueprint here)&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189155</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189155"/>
		<updated>2022-05-10T16:52:10Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
=Tutorial: Comparing Power Production Technologies=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* Boiler power plants (many types depending on the fuels used)&lt;br /&gt;
* Solar power plants (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* Nuclear power plants (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* Coal power plant - Mined coal is fed directly to boilers.&lt;br /&gt;
* Coal liquification power plant (via solid fuel) - Mined coal undergoes coal liquification and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler. This process has been found to [[https://www.reddit.com/r/factorio/comments/ujrxr4/altf4_60_burning_questions/ double]] the energy output from the coal.&lt;br /&gt;
* Oil power plant (via solid fuel) - Advanced oil processing is used and the heavy oil produced is cracked. The light oil and petroleum gas is converted into solid fuel before being sent to the boiler.&lt;br /&gt;
* Solar power plant - Solar panels and accumulators are placed at an appropriate [[https://forums.factorio.com/viewtopic.php?f=5&amp;amp;t=5594 ratio]] such that solar panels provide the daytime supply and accumulators the nighttime supply.&lt;br /&gt;
* Starter nuclear power plant - There is a single nuclear reactor, being supplied by two centrifuges that run uranium processing. There is no Kovarex enrichment used.&lt;br /&gt;
* Large nuclear power plant - Several reactors are used side-by-side to ensure a high neighbor bonus and Kovarex enrichment is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power plant listed has its own strengths and weaknesses. The comparison is in terms of the following factors:&lt;br /&gt;
&lt;br /&gt;
* Technology level to unlock it (1 = automation science, 2 = logistic science, 3 = chemical science, 4 = production science)&lt;br /&gt;
* Setup costs in terms of materials (Namely copper, iron, steel, stone, coal, and petroleum gas)&lt;br /&gt;
* Infrastructure dependence (i.e. whether you need miners and trains or belts to keep it running)&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Space usage&lt;br /&gt;
* Pollution generation&lt;br /&gt;
* Design complexity (in terms of how many things to look out for)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Summary Table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Tech Level || 0 || 4 || 3 || 2 || 3 || 4 &lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Very Low || Low || Low || Very High || Medium || Medium-Low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Yes || Yes || Yes || No || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Space Usage || Lowest || Low || Low || High || Medium || Medium-Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Low || Medium || Medium-High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup Costs Summary Table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Copper || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Steel || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Stone || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Petr. Gas || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure [III] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Space (chunks) [IV] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Running Costs and Pollution Summary Table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (1/20 scale) [I]&lt;br /&gt;
|-&lt;br /&gt;
| Avg. power (MW) [II] || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Coal || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Uranium ore || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Iron plate || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Sulfur || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
| Pollution || 1 || 2 || 3 || 4 || 5 || 6* &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crunching the Numbers to Obtain the Tables==&lt;br /&gt;
&lt;br /&gt;
(notes notes notes, eg. 40MW reference point)&lt;br /&gt;
&lt;br /&gt;
===40MW Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===40MW Liquified Coal Power Plant===&lt;br /&gt;
(blueprint here)&lt;br /&gt;
&lt;br /&gt;
===40MW Oil Power Plant===&lt;br /&gt;
(blueprint here)&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189154</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189154"/>
		<updated>2022-05-10T16:19:11Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial: Comparing Power Production Technologies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* Boiler power plants (many types depending on the fuels used)&lt;br /&gt;
* Solar power plants (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* Nuclear power plants (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* Coal power plant &lt;br /&gt;
* Coal liquification power plant (via solid fuel)&lt;br /&gt;
* Oil power plant (via solid fuel)&lt;br /&gt;
* Solar power plant (using accumulators to cover the nighttime supply)&lt;br /&gt;
* Starter nuclear power plant (no neighbor bonus or Kovarex enrichment)&lt;br /&gt;
* Large nuclear power plant (high neighbor bonus and Kovarex enrichment)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power production technology in Factorio has its own strengths and weaknesses. They can be compared in terms of the following:&lt;br /&gt;
&lt;br /&gt;
* Setup costs in terms of materials&lt;br /&gt;
* Infrastructure dependence&lt;br /&gt;
* Space usage&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Pollution generation&lt;br /&gt;
* Design complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quick Summary Table&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter Nuclear !! Large Nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Lowest || Low || Low || High || Medium || Medium-Low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Yes || Yes || Yes || No || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Space Usage || Lowest || Low || Low || High || Medium || Medium-Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Very Low&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Low || Medium || Medium-High&lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189153</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189153"/>
		<updated>2022-05-10T15:44:47Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial: Comparing Power Production Technologies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* Boiler power plants (many types depending on the fuels used)&lt;br /&gt;
* Solar power plants (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* Nuclear power plants (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* Coal power plant &lt;br /&gt;
* Coal liquification power plant (via solid fuel)&lt;br /&gt;
* Oil power plant (via solid fuel)&lt;br /&gt;
* Solar power plant (using accumulators to cover the nighttime supply)&lt;br /&gt;
* Starter nuclear power plant (no neighbor bonus or Kovarex enrichment)&lt;br /&gt;
* Large nuclear power plant (high neighbor bonus and Kovarex enrichment)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power production technology in Factorio has its own strengths and weaknesses. They can be compared in terms of the following:&lt;br /&gt;
&lt;br /&gt;
* Setup costs in terms of materials&lt;br /&gt;
* Infrastructure dependence&lt;br /&gt;
* Space usage&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Pollution generation&lt;br /&gt;
* Design complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quick Summary Table&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Col no      !! 1             !! 2                  !! 3            !! 4     !! 5              !! 6&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter nuclear !! Large nuclear (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Lowest || Low || Low || High || Medium || Medium-low &lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Higher || Higher || Higher || None || Lower || Lower&lt;br /&gt;
|-&lt;br /&gt;
| Space usage || Lowest || Low || Low || High || Medium || Medium-low&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Lowest&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Lowest || Medium || Medium-high&lt;br /&gt;
|-&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189152</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189152"/>
		<updated>2022-05-10T15:44:13Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial: Comparing Power Production Technologies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plant types emerge:&lt;br /&gt;
* Boiler power plants (many types depending on the fuels used)&lt;br /&gt;
* Solar power plants (solar panels for daytime supply and accumulators for nighttime supply)&lt;br /&gt;
* Nuclear power plants (efficiency depends on nuclear reactor counts and arrangements, which determine the neighbor bonus)&lt;br /&gt;
&lt;br /&gt;
Within these categories I would like to focus on 6 power plant subtypes:&lt;br /&gt;
* Coal power plant &lt;br /&gt;
* Coal liquification power plant (via solid fuel)&lt;br /&gt;
* Oil power plant (via solid fuel)&lt;br /&gt;
* Solar power plant (using accumulators to cover the nighttime supply)&lt;br /&gt;
* Starter nuclear power plant (no neighbor bonus or Kovarex enrichment)&lt;br /&gt;
* Large nuclear power plant (high neighbor bonus and Kovarex enrichment)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each power production technology in Factorio has its own strengths and weaknesses. They can be compared in terms of the following:&lt;br /&gt;
&lt;br /&gt;
* Setup costs in terms of materials&lt;br /&gt;
* Infrastructure dependence&lt;br /&gt;
* Space usage&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Pollution generation&lt;br /&gt;
* Design complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quick Summary Table&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Col no      !! 1             !! 2                  !! 3            !! 4     !! 5              !! 6&lt;br /&gt;
|-&lt;br /&gt;
! Power Plant !! Coal (Burner) !! Liq. Coal (Burner) !! Oil (Burner) !! Solar !! Starter nuclear !! Multi nuclear&lt;br /&gt;
|-&lt;br /&gt;
| Setup Costs || Lowest || Low || Low || High || Medium || Medium-low (at scale)&lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure Dep. || Higher || Higher || Higher || None || Lower || Lower&lt;br /&gt;
|-&lt;br /&gt;
| Space usage || Lowest || Low || Low || High || Medium || Medium-low&lt;br /&gt;
|-&lt;br /&gt;
| Running Costs || High || Medium || Medium || None || Low || Low&lt;br /&gt;
|-&lt;br /&gt;
| Pollution || High || High || High || None || Low || Lowest&lt;br /&gt;
|-&lt;br /&gt;
| Complexity || Low || Medium || Medium || Lowest || Medium || Medium-high&lt;br /&gt;
|-&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189151</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189151"/>
		<updated>2022-05-10T15:15:56Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on, inspired by [[Tutorial:Transport_use_cases]]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial: Comparing Power Production Technologies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In vanilla Factorio, electric power can be produced from [[steam engine]]s, [[steam turbine]]s, and [[solar panel]]s. Solar panels directly output power obtained from sunlight, while steam engines and steam turbines run by consuming [[steam]], which can be produced in [[boiler]]s or in [[heat exchanger]]s. &lt;br /&gt;
Heat exchangers can only work by being supplied heat from [[nuclear reactor]]s (including the neighbor bonus), while boilers support a wide range of burner [[fuel]]s, although most often they use [[coal]] or [[solid fuel]].&lt;br /&gt;
&lt;br /&gt;
Given these machines, the following power plants can be designed:&lt;br /&gt;
* Burner power plants&lt;br /&gt;
&lt;br /&gt;
Each power production technology in Factorio has its own strengths and weaknesses. They can be compared in terms of the following:&lt;br /&gt;
&lt;br /&gt;
* Setup costs in terms of materials&lt;br /&gt;
* Infrastructure dependence&lt;br /&gt;
* Space requirements&lt;br /&gt;
* Running costs in terms of fuels and materials&lt;br /&gt;
* Pollution output&lt;br /&gt;
* Design complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
are fed using [[boiler]]s, which require burner [[fuel]]s, most often [[coal]] or [[solid fuel]]. Steam turbines&lt;br /&gt;
&lt;br /&gt;
Quick Summary Table&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Power !! Option2 !! Option3 &lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Talk:Main_Page&amp;diff=189150</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Talk:Main_Page&amp;diff=189150"/>
		<updated>2022-05-10T14:41:36Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: Suggestions: Adding another unofficial community.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Visual Reconstruction ==&lt;br /&gt;
I think this wiki looks boring as is. It should have more attractive colors instead of black text on a white screen...&lt;br /&gt;
 [[User:Zippy|Zippy]] ([[User talk:Zippy|talk]]) 18:10, 3 May 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Adding Languages ==&lt;br /&gt;
&lt;br /&gt;
I&#039;d like to see the other languages added to the Main Page. --[[User:Badg0n|Badg0n]] ([[User talk:Badg0n|talk]]) 14:25, 11 May 2016 (UTC)&lt;br /&gt;
:+1 --[[User:Bannert|Bannert]] ([[User talk:Bannert|talk]]) 11:32, 18 May 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Main Page Overhaul==&lt;br /&gt;
The Wiki Page needs to be reorganized. It currently is a confusing mess and should be more organized for easier navigation. As i do not have access to edit this page i&#039;ll continue to add to other pages but i believe the real fixing of this WIKI would need to start at the root.&lt;br /&gt;
--[[User:ACryInShame|ACryInShame]] ([[User talk:ACryInShame|Talk]]) -12 Feb 2015 10:15 (EST) -5hr&lt;br /&gt;
&lt;br /&gt;
:I read your forum-article and answered there http://factorioforums.com/forum/viewtopic.php?f=50&amp;amp;t=20029 [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 17:18, 12 February 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Adding Changelogs==&lt;br /&gt;
Shouldn&#039;t we add a changelog page and link it to the main one ?--[[User:Staxxy|Staxxy]] ([[User talk:Staxxy|talk]]) 22:53, 4 March 2013 (CET)&lt;br /&gt;
:It is actually linked on the main page as &amp;quot;Version History&amp;quot; under the &amp;quot;get the game&amp;quot; section. Not sure what the preference is on that name comparged to &amp;quot;Change Log&amp;quot;. - [[User:BenWo|BenWo]] ([[User talk:BenWo|talk]]) 12:46, 16 May 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Pages blueprint==&lt;br /&gt;
We would need to set up conventional presentations for pages depending of their topic.&lt;br /&gt;
For example, all pages covering weapons should be presented the same way, with the same organisation, ect...--[[User:Staxxy|Staxxy]] ([[User talk:Staxxy|talk]]) 23:14, 4 March 2013 (CET)&lt;br /&gt;
:I like this idea! We need standard templates for the big categories to make navigating easier. I&#039;ll certainly start work on this as time allows. [[User:BenWo|BenWo]] ([[User talk:BenWo|talk]]) 08:11, 15 May 2014 (CEST)&lt;br /&gt;
::Putting updates on my navbox work over on &amp;lt;nowiki&amp;gt;[[Talk:Wiki_To-do_List]]&amp;lt;/nowiki&amp;gt; to save this for talk about the main page. - [[User:BenWo|BenWo]] ([[User talk:BenWo|talk]]) 12:35, 16 May 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
==More content==&lt;br /&gt;
&lt;br /&gt;
I started doing a bit of tweaking on the Main page over on [[User:BenWo/Main_Page]] to try and fit some more of these items. I&#039;ve also moved all of the HTML off into some templates to keep it cleaner. Feel free to go over there and move bits around with whatever ideas you&#039;ve got. :) - [[User:BenWo|BenWo]] ([[User talk:BenWo|talk]]) 12:44, 16 May 2014 (CEST)&lt;br /&gt;
:Moved over the new version of the Main page I worked on, cleaning up the source a ton using some templates. There&#039;s empty space in the center cell for the GUIDES section (see To-Do talk page, now linked in lower-right main page cell). Any suggestions or whatnot, please discuss!! [[User:BenWo|BenWo]] ([[User talk:BenWo|talk]]) 13:54, 25 May 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Top right box ===&lt;br /&gt;
&lt;br /&gt;
* Link to the list of News (Friday Facts, Random Ramblings...)&lt;br /&gt;
&lt;br /&gt;
=== Left box ===&lt;br /&gt;
&lt;br /&gt;
* What it is (short explanation)&lt;br /&gt;
&lt;br /&gt;
* [[Let&#039;s play]] page&lt;br /&gt;
http://www.factorioforums.com/forum/viewtopic.php?f=19&amp;amp;t=829&lt;br /&gt;
&lt;br /&gt;
* Beginners Guide&lt;br /&gt;
(Sub-pages:&lt;br /&gt;
** Joseki (Good starting moves)&lt;br /&gt;
** The first day&lt;br /&gt;
** Exploring the map&lt;br /&gt;
** Electric Power&lt;br /&gt;
** Crafting&lt;br /&gt;
** Research&lt;br /&gt;
** Red&amp;amp;Green Potion&lt;br /&gt;
** Weapons&amp;amp;Armour&lt;br /&gt;
** Blue Potion&lt;br /&gt;
** Car&lt;br /&gt;
** Logistic Bots&lt;br /&gt;
** Train&lt;br /&gt;
** And bejond?)&lt;br /&gt;
&lt;br /&gt;
=== Center + right Box ===&lt;br /&gt;
&lt;br /&gt;
(Items, Networks, Special, Concept) is one big point in the center.&lt;br /&gt;
&lt;br /&gt;
=== Left lower box ===&lt;br /&gt;
&lt;br /&gt;
* FAQ&lt;br /&gt;
&lt;br /&gt;
* Map-Editor&lt;br /&gt;
** Convert map to Scenario&lt;br /&gt;
&lt;br /&gt;
* Game-Options&lt;br /&gt;
** Key-Defaults&lt;br /&gt;
&lt;br /&gt;
* Contributing&lt;br /&gt;
(&lt;br /&gt;
** For this wiki&lt;br /&gt;
** Link to mods&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Before you play&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The main page has &amp;quot;Console&amp;quot; under &amp;quot;Before you play&amp;quot;. I don&#039;t think it&#039;s appropriate for that section. --[[User:Glyph|Glyph]] ([[User talk:Glyph|talk]]) 15:27, 13 August 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Fixed. You are allowed to make such changes. This is a wiki. :) [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 23:40, 13 August 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
:: Thanks! I am hesitant to edit the main page because I would start to move everything around and couldn&#039;t stop! --[[User:Glyph|Glyph]] ([[User talk:Glyph|talk]]) 09:55, 14 August 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
::: There is the &amp;quot;restore previous version&amp;quot;-button. :) Currrently I think the amount of links to other pages has reached a limit, the lower, the better. [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 19:39, 15 August 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
Suggestion: Remove the contributors (currently only the translators) from the main page and move it to &amp;quot;Contributors&amp;quot;-page.&lt;br /&gt;
&lt;br /&gt;
Anything against?&lt;br /&gt;
:Support - I indeed think this should not be on the main page, but also not on another page. A wiki is for people to work together, so everyone contributes to it, why only display a few names? [[User:TheWombatGuru|TheWombatGuru]] ([[User talk:TheWombatGuru|talk]]) 07:54, 29 August 2014 (CEST)&lt;br /&gt;
:: Indeed. I think removing the names is logical for a wiki, cause the changes can be seen in the history. I will put this into the forum, too and wait and if nobody has anything against I&#039;ll remove that... [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 13:12, 31 August 2014 (CEST)&lt;br /&gt;
::: I made a change to this section, is this a good alternative? [[User:TheWombatGuru|TheWombatGuru]] ([[User talk:TheWombatGuru|talk]]) 00:14, 4 October 2014 (CEST)&lt;br /&gt;
:::: I think yes, but now I have a question — how is it works? And what should I do to insert local names of the languages to the list? E.g. Czech lang is &amp;quot;Чеська&amp;quot;, English lang is &amp;quot;Англійська&amp;quot;, French is &amp;quot;Французька&amp;quot;, etc (by Ukrainian language). I was trying to use the new template in [[Main_Page/uk]] but the brackets after a language&#039;s self-name are empty... --[[User:Vitduo|Vitduo]] ([[User talk:Vitduo|talk]]) 16:16, 4 October 2014 (CEST)&lt;br /&gt;
::::: I saw you already figured out how, thanks for extending the template :) [[User:TheWombatGuru|TheWombatGuru]] ([[User talk:TheWombatGuru|talk]]) 16:35, 4 October 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
== New &amp;quot;Around the game&amp;quot; introduced ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not so sure, if that was a good idea. My normal way would be to change it and then look at it in some days/weeks, but with more wikianers I could just ask. So maybe, this Main page gets a little bit to big now? If so, please make suggestions or change it. :) [[User:Ssilk|Ssilk]] ([[User talk:Ssilk|talk]]) 23:37, 18 October 2014 (CEST)&lt;br /&gt;
: I think it&#039;s good like this, good editing :) [[User:TheWombatGuru|TheWombatGuru]] ([[User talk:TheWombatGuru|talk]]) 00:50, 19 October 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Old News Showing If Not Logged In ==&lt;br /&gt;
&lt;br /&gt;
Users who are not logged in to the wiki are not seeing the latest news in the News block. You can confirm this by logging out and going to the [[Main Page]]. The latest piece of news visible is &amp;quot;Mar 18 FFF #130: Steam release side effects.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
As soon as you log in, the current news from the [[News]] page is shown instead. Does anyone have any idea what needs to be fixed so that people aren&#039;t seeing out-of-date news?&lt;br /&gt;
&lt;br /&gt;
--[[User:CyberPhantom|CyberPhantom]] ([[User talk:CyberPhantom|talk]]) 16:32, 19 June 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
::For the admins: this looks like it&#039;s being caused by the MediaWiki file cache. This cache only applies to anonymous (not logged in) users. According to [https://www.mediawiki.org/wiki/Manual:File_cache#Expiration the MediaWiki documentation], running the [https://wiki.factorio.com/index.php?title=Main_Page&amp;amp;action=purge purge action] should expire the cache and fix the problem. I tried that, and it didn&#039;t help. Maybe an admin needs to do it for it to work on the Main Page? Or maybe something else is preventing the file cache from clearing? --[[User:CyberPhantom|CyberPhantom]] ([[User talk:CyberPhantom|talk]])&lt;br /&gt;
&lt;br /&gt;
== Change icons&#039; image file names ==&lt;br /&gt;
&lt;br /&gt;
Change icons&#039; image file names from &amp;quot;fast-inserter.png&amp;quot; to &amp;quot;Fast inserter icon.png&amp;quot;. (for obvious reasons)&lt;br /&gt;
&lt;br /&gt;
Steps:&lt;br /&gt;
* This topic gets 5 +1 (so it&#039;s approved)&lt;br /&gt;
* Generate the renamed files (already done [https://drive.google.com/open?id=0B86I6c-Ld37oWjUtaGlGU1padVU]) and upload&lt;br /&gt;
* Change the code at the [[Template:Icon]] (I can make it backward compatible)&lt;br /&gt;
* Done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Link to preorderpage no more active http://www.factorio.com/preorder ==&lt;br /&gt;
&lt;br /&gt;
Should be changed to http://www.factorio.com&lt;br /&gt;
&lt;br /&gt;
== Wrong link ==&lt;br /&gt;
On the Community-spitter there is a mistake, it says &amp;quot;ink=&amp;quot; so there ist missing the letter &amp;quot;l&amp;quot; to set no link. As I&#039;m just a normal user I&#039;m not allowed to fix this, so somebody else has to do this. -- [[User:RobbiRobb|RobbiRobb]] ([[User talk:RobbiRobb|talk]]) 13:45, 20 April 2017 (UTC)&lt;br /&gt;
:Thanks, I fixed it :) --[[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) 13:51, 20 April 2017 (UTC)&lt;br /&gt;
::Thanks :D -- [[User:RobbiRobb|RobbiRobb]] ([[User talk:RobbiRobb|talk]]) 14:38, 20 April 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Items and Recipes (Are they the same or different?) ==&lt;br /&gt;
&lt;br /&gt;
I think the heading label &amp;quot;Items and Recipes&amp;quot; should be a link to the Items page ([https://wiki.factorio.com/Items]). Also, either &amp;quot;Recipes&amp;quot; needs to redirect to that page or it needs its own. Personally, I think &amp;quot;Recipes&amp;quot; and &amp;quot;Items&amp;quot; are functionally the same from a user standpoint, so I would use a redirect. For obvious (and good!) reasons, I cannot make the link edit myself. As for the redirect, I will wait for an OK from an admin, primarily so they don&#039;t have to delete it.&lt;br /&gt;
&lt;br /&gt;
--[[User:Sonicthe|Sonicthe]] ([[User talk:Sonicthe|talk]]) 17:56, 26 July 2020 (UTC)&lt;br /&gt;
: Items and recipes are very different things, since the one is produced by the other. The icons that are currently shown on the main page and on [[items]] are items, fluids and recipes. This makes both the main page heading and the items page somewhat misleading. It may be better to find heading that fits properly and move all the content there (e.g. &amp;quot;Materials and recipes&amp;quot;). Could you explain why we need a recipes page/redirect? I&#039;d also like to hear your reasoning for linking to the items page from the main page, since it contains a direct subset of the main page content. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 08:33, 27 July 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: To respond in reverse order of your questions, maybe a better question is &amp;quot;Why is there an items page?&amp;quot; rather than having the search result in the bottom of the main page. I like your idea of renaming the section, although if an infobox appeared on mouse-over (like on the right-hand side of the page, NOT alt-text/tooltip) with just the Normal recipe for the highlighted item (which would be really cool, but a pain to do!) the &amp;quot;Items and Recipes&amp;quot; would make sense. You would have icons for items and a box with the corresponding recipe in it. I&#039;m not suggesting putting all of the information contained on the individual item pages here (duplicating work is silly), and it&#039;s not something I expect to see any time soon (if ever). It would just be cool.&lt;br /&gt;
&lt;br /&gt;
:: And perhaps it would be better to change the section on the main page to a link to [[items]] and provide the recipe infobox (or not) there instead. I assumed there was a reason to have the entire set of icons on the main page, but maybe that assumption is false.&lt;br /&gt;
&lt;br /&gt;
:: My reasoning for a &amp;quot;Recipe&amp;quot; redirect is as much error trapping as anything else. Searching for &amp;quot;Items&amp;quot; returns [[items]], but searching for &amp;quot;Recipes&amp;quot; returns a generic search results page. While I agree that you and I know there is a real difference between an item and a recipe, I&#039;m not sure the average user will really understand (or care about!) that distinction, especially after release. Ultimately, I guess the real question is what you think the average user is looking for when they search for &amp;quot;Recipes&amp;quot; vs. &amp;quot;Items&amp;quot;. That&#039;s it. A simple page that describes what a recipe is and has a link to [[items]] would be better if you think the distinction is important. Or a single page with every recipe on it might be something to think about. Which one depends on your opinion, I think.&lt;br /&gt;
&lt;br /&gt;
:: As something of a side note, I mention the infobox idea because the first time I used the wiki, that&#039;s kind of what I was looking for. I wanted just the recipes for several items, and having to click each one, and then back, and then the next, and back, and so on is a pain. At the time, I wasn&#039;t looking for all the other information that each page contained, just the ingredients I needed to make each item. I realize that all of this information is available in-game and on individual pages here, which is why I would call it &amp;quot;Nice to have&amp;quot; and &amp;quot;Cool&amp;quot; but not &amp;quot;High priority&amp;quot; or even &amp;quot;Medium priority,&amp;quot; and certainly not &amp;quot;Needed.&amp;quot; And I think a &amp;quot;Recipes&amp;quot; page with all the recipes listed might be better (and definitely easier) than a changing infobox. -- [[User:Sonicthe|Sonicthe]] ([[User talk:Sonicthe|talk]]) 18:43, 27 July 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Good question :) The &#039;real&#039; reason is that the page existed when I started on the wiki, so it keep existing even as most of its content moved to other pages. I would not remove it now, because sometimes having an external link to just the crafting overview is great and the main page does not work very well for that. I like your idea with the infoboxes, it should be doable.&lt;br /&gt;
&lt;br /&gt;
::: Having all items/recipes/fluids on the main page is a great entry-point for the wiki, so I think it will stay there unless an even better way to display all items/recipes/fluids is found.&lt;br /&gt;
&lt;br /&gt;
::: I think you have a good point with the search. We even used have a &amp;quot;liquid&amp;quot; redirect going to the &amp;quot;fluid system&amp;quot; page (which I deleted at some point), which in the same search term &#039;group&#039; as &amp;quot;recipes&amp;quot; and &amp;quot;items&amp;quot;. I have an idea how to solve the naming problem: Move the current &amp;quot;items&amp;quot; to &amp;quot;materials and recipes&amp;quot;. Redirect &amp;quot;recipes&amp;quot; and &amp;quot;items&amp;quot; to &amp;quot;materials and recipes&amp;quot; and also link there from the main page. Redirect &amp;quot;fluids&amp;quot; to &amp;quot;fluid system&amp;quot; or make it a disambiguation page linking both &amp;quot;fluid system&amp;quot; and &amp;quot;material and recipes&amp;quot;. What do you think about this?&lt;br /&gt;
&lt;br /&gt;
::: Just wanting the recipes is a common theme. We have had the idea to make the tooltips of the item icons list their recipes for a pretty long time now, however, I think your infobox idea is better and may also be easier to implement. However, currently just getting the wiki up-to-date for 1.0 is taking priority over extra features.&lt;br /&gt;
&lt;br /&gt;
::: Thank you for detailed feedback, it is always useful to hear such a well reasoned opinion about parts of the wiki. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 11:48, 6 August 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: I like disambiguation pages in general because they always give me what I&#039;m looking for and other related things, too. Anything that increases my knowledge and understanding is great! And I think &amp;quot;Materials and Recipes&amp;quot; more accurately captures what we are talking about than &amp;quot;Items&amp;quot; does, too.&lt;br /&gt;
&lt;br /&gt;
:::: I would use whichever method is the easiest to implement, if you&#039;re thinking about doing it now. Especially with the focus appropriately on accuracy for 1.0. Personally, I would probably wait until after 1.0 regardless of which method is ultimately chosen. Accuracy should always be more important than features. Information that &#039;&#039;might&#039;&#039; be mislabeled or &amp;quot;hard to find&amp;quot; is much better than information that is &#039;&#039;&#039;wrong&#039;&#039;&#039;. I am about to start Graduate School, so unfortunately, I won&#039;t have time to do much myself. -- [[User:Sonicthe|Sonicthe]] ([[User talk:Sonicthe|talk]]) 18:16, 6 August 2020 (UTC)&lt;br /&gt;
::::: I have created the new organization that I suggested, I hope it works out. The further recipe details on the main page will be a future feature :) -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Admin&amp;lt;/span&amp;gt; 10:36, 17 August 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Adding other unofficial communities ==&lt;br /&gt;
&lt;br /&gt;
Suggestion: Under the &amp;quot;Unofficial Communities&amp;quot; links, would it be appropriate to add more communities? Specifically, I would like to add a link to [https://alt-f4.blog/ Alt-F4] the community-driven blog. I have not been able to find previous discussions about this. --[[User:Sir Fendi|Sir Fendi]] ([[User talk:Sir Fendi|talk]]) 14:41, 10 May 2022 (UTC)&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189149</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189149"/>
		<updated>2022-05-10T14:16:40Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: added links, started draft of new tutorial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my page! I am a contributor of [https://alt-f4.blog/ Alt-F4 ] and my reddit account is [https://www.reddit.com/user/Mentose here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a new page I am currently working on:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial: Comparing Power Sources&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User_talk:Sir_Fendi&amp;diff=189096</id>
		<title>User talk:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User_talk:Sir_Fendi&amp;diff=189096"/>
		<updated>2022-04-30T14:34:02Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: Created page with &amp;quot;Hello! Welcome to my talk page!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! Welcome to my talk page!&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189095</id>
		<title>User:Sir Fendi</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=User:Sir_Fendi&amp;diff=189095"/>
		<updated>2022-04-30T14:33:36Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: Created page with &amp;quot;Hello!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello!&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189093</id>
		<title>Tutorial:Circuit network cookbook</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189093"/>
		<updated>2022-04-29T19:49:23Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: /* Alternative Setup for Cracking and Lubricant Production */  image fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
== Foreword == &lt;br /&gt;
&lt;br /&gt;
This page provides examples of simple circuit network designs and some not so simple designs that others can use, combine and modify. They are designed to be as easy to understand as possible.  To see the settings of combinators without opening them, the option &amp;quot;Show combinator settings in &amp;quot;Alt-mode&amp;quot;&amp;quot; in the Interface/Alt-mode settings has to be checked and &amp;quot;Alt-mode&amp;quot; has to be turned on.&lt;br /&gt;
&lt;br /&gt;
==Lamp showing chest content condition==&lt;br /&gt;
[[File:LightWiredToChest.png|right]]&lt;br /&gt;
&lt;br /&gt;
This is the simplest possible use of circuit-network. A [[lamp]] is light depending on the number of goods (in this example empty barrels) in a chest.&lt;br /&gt;
&lt;br /&gt;
===Setting up circuit connection===&lt;br /&gt;
* The lamp is connected to the chest.&lt;br /&gt;
* The lamp is set to light if the chest contain less than 10 empty barrels.&lt;br /&gt;
===To set the light condition===&lt;br /&gt;
* Open the lamp (left click on it).&lt;br /&gt;
* Set the input to barrels.&lt;br /&gt;
* Set the operator to &amp;lt; (less than).&lt;br /&gt;
* Set the constant number:&lt;br /&gt;
** Left click on the constant number&lt;br /&gt;
** Move the slider until 10 is shown, or edit the value box directly.&lt;br /&gt;
** Press set.&lt;br /&gt;
&lt;br /&gt;
Depending on the condition you set, the lamp may light if the chest is empty, or if it contains the required quantity of items.&lt;br /&gt;
&lt;br /&gt;
The drawback with this scenario is that the lamp has a white light , and is therefore difficult to differentiate from an ordinary lamp at night.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Oil Setups ==&lt;br /&gt;
[[File:LgtOilCracking.png|left|440px]]&lt;br /&gt;
=== Light Oil Cracking ===&lt;br /&gt;
* This circuit provides balanced light oil and petroleum gas production by cracking excess light oil into gas. &lt;br /&gt;
* The [[pump]] is connected to the [[storage tank]] by a [[red wire]]. &lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Light Oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:HvyOilCracking.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Heavy Oil Cracking ===&lt;br /&gt;
* This circuit extends on the previous circuit by adding optional heavy oil cracking to provide lubricant etc.&lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Heavy oil &amp;gt; 20000&#039;&#039;&#039; .&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Alternative Setup for Cracking and Lubricant Production ===&lt;br /&gt;
This setup compares different fluid levels to each other instead of checking fixed values. It offers some guarantees such as petroleum gas being produced when you have light oil to spare, and light oil not being cracked when you have plenty of petroleum gas, and similar rules for heavy oil cracking and lubricant production. &lt;br /&gt;
&lt;br /&gt;
[[File:oil-single-cct.png]]&lt;br /&gt;
&lt;br /&gt;
It takes 4 steps:&lt;br /&gt;
&lt;br /&gt;
1. Have a fluid tank for heavy oil, light oil, petroleum gas, and lubricant. For each fluid, make sure to connect the tank via pipes to every location where the fluid is being produced or consumed.&lt;br /&gt;
&lt;br /&gt;
2. For each chemical plant (or each row of them, if you use rows) add a pump to the non-water fluid input pipe to make it possible to block the flow. No need to add pumps to outputs.&lt;br /&gt;
&lt;br /&gt;
3. Connect every pump and every fluid tank to a single circuit network of red (or green) wire. The resulting circuit network will know about the fluid level in every storage tank and pass this information to every pump.&lt;br /&gt;
&lt;br /&gt;
4. For each connected pump set the circuit “enable condition” to &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; , for its respective chemical plant recipe. E.g. set &amp;quot;heavy oil &amp;gt; light oil&amp;quot; for the heavy oil cracking output, set &amp;quot;heavy oil &amp;gt; lubricant&amp;quot; for the lubricant production output, and set &amp;quot;light oil &amp;gt; petroleum gas&amp;quot; for the light oil cracking output.&lt;br /&gt;
&lt;br /&gt;
Done! Now all the pumps will move to equalize the fluid levels to each other. This will prevent fluid system deadlocks where you have plenty of one fluid but you are unable to make any of the other.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
[[File:ConditionalLights.png|left|440px]]&lt;br /&gt;
=== Conditional Lights ===&lt;br /&gt;
* In this circuit we connect a series of [[lamp]]s to a [[storage tank]].&lt;br /&gt;
* By setting different conditions on each lamp we can build an indicator strip. &lt;br /&gt;
* The Enabled condition of the first lamp is &#039;&#039;&#039;Petroleum gas &amp;gt; 100&#039;&#039;&#039;.&lt;br /&gt;
* The others light up when gas is greater than 200, 300, 400 and 500 respectively.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
In this scenario you can connect the storage tank to the lamps directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ColoredLights.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Colored Lights ===&lt;br /&gt;
* To light a [[lamp]] with a color rather than white, you need an intermediate device like an [[arithmetic combinator]] that can send a color signal.  &lt;br /&gt;
Instead of directly connect  the the [[lamp]] and the [[Storage tank]] you need:&amp;lt;BR&amp;gt;&lt;br /&gt;
1 Add the arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
2 Connect the [[storage tank]] with the input of the  arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
3 Connect the  output of the [[arithmetic combinator]] with the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
4 Set up the arithmetic combinator:&amp;lt;BR&amp;gt;&lt;br /&gt;
4.1 Setting the input to petroleum Gas + 0 (the constant 0 not the signal 0)&amp;lt;BR&amp;gt;&lt;br /&gt;
4.2 Set the output to the pink signal (on the bottom row of the last tab of signals.)&amp;lt;BR&amp;gt;&lt;br /&gt;
5 Set up the [[lamp]]:&amp;lt;BR&amp;gt;&lt;br /&gt;
5.1  Select the &amp;quot;Use colors&amp;quot; check box on the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
5.2 Set the condition to the pink signal, and what value you want (i.e. &amp;gt; 100)&amp;lt;BR&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
[[file:MulitipleChestsAndPoles.png|left|430px]]&lt;br /&gt;
=== Multiple Storages === &lt;br /&gt;
* If you connect multiple chests to a pole, the pole displays the sum of items in all the chests. &lt;br /&gt;
* This also works with [[storage tank]]s and [[roboport]]s.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConstantComb.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator ===&lt;br /&gt;
* With a [[constant combinator]] you can generate any signals you may need. &lt;br /&gt;
* In this example we have generated a signal of 50 Laser turrets and 200 Piercing round magazine. &lt;br /&gt;
* Constant combinators are not of much use on their own but we shall use them later.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ThisASign.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Words) ===&lt;br /&gt;
* You can use [[constant combinator]]s to make signs, just set the letter signals in the combinator, each combinator can display 2 characters side by side.&lt;br /&gt;
* Note that to see these letters, Alt-mode must be on and the Interface setting “Show combinator settings in “Alt-Mode”” must also be enabled.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:constant_combinator_signs2.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Managing Belts) ===&lt;br /&gt;
* Somewhat similar to the previous example, constant combinator signals can be used with belts to help indicate what items should be on which belts. This is extremely useful when sharing blueprints, as it&#039;s possible for blueprints to be shared albeit with no indication on which items are meant for which belts.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MemoryCell.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell / Counter ===&lt;br /&gt;
* Basic memory cell that counts all the items moved by the inserter&lt;br /&gt;
* The [[fast inserter]] is connected to &#039;&#039;&#039;BOTH&#039;&#039;&#039; ends of the arithmetic combinator.&lt;br /&gt;
&lt;br /&gt;
* If the fast inserter hasn&#039;t picked anything up this tick the input to the Arithmetic combinator is the same as and output and hence the values are persisted. &lt;br /&gt;
* When the fast inserter does pick something up its value is added to the output from the previous tick thus incrementing that item. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Inserters ==&lt;br /&gt;
[[File:LimitItemsPlacedIntoAChest.png|left|400x400px]]&lt;br /&gt;
=== Limit items placed into a chest ===&lt;br /&gt;
*  The [[inserter]] is connected to the [[wooden chest]] using a [[red wire]]. &lt;br /&gt;
*  The inserter&#039;s enabled condition is &#039;&#039;&#039;Advanced Circuit &amp;lt; 10&#039;&#039;&#039;. &lt;br /&gt;
*  In reality this means the inserter may place more than 10 Advanced circuits in the chest because it could pick up to 3 at once due to stack size bonuses.&lt;br /&gt;
*  This effect can be even greater with Stack inserters because of their large carrying capacity. &lt;br /&gt;
*  This technique still gives far greater control than limiting the inventory on the chest.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BalancedChestInsert.png|left|400x400px]]&lt;br /&gt;
=== Balanced chest insert ===&lt;br /&gt;
Goal: Load n chests with approximately the same number of items.&lt;br /&gt;
*  Place n chests and n inserters. &lt;br /&gt;
*  Place 1 [[arithmetic combinator]]&lt;br /&gt;
*  Set the combinator to take Each (yellow star) and divide by the negative number of chests. ie &amp;amp;minus;n.&lt;br /&gt;
*  Connect all chests to each other and to the input of the combinator using red wire.&lt;br /&gt;
*  Connect all inserters to each other and to the output of the combinator using red wire.&lt;br /&gt;
*  Connect each inserter to the box it inserts into with green wire.&lt;br /&gt;
*  Set the enable condition on each inserter to be Everything (red star) &amp;lt; 0.&lt;br /&gt;
&lt;br /&gt;
The combinator calculates the average number of items in the chests, and makes it negative. Each inserter gets the amount in the chest it is inserting to and adds the negative average, ie it calculates how many more than the average it has in its chest. Thus if that number is negative, it has less than the average in the chest and it enables. &lt;br /&gt;
&lt;br /&gt;
Due to inserter stack bonus the count is not exact. If a precise count is needed, set the inserter stack size to 1. &lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SmartOutpostUnloader.png|left|400x400px]]&lt;br /&gt;
=== Keeping outpost stocked with specified items ===&lt;br /&gt;
*  This circuit keeps a [[storage chest]] at an outpost stocked with customized levels of different items. &lt;br /&gt;
*  For example you could keep an outpost stocked with 50 laser turrets and 200 piercing magazine rounds but not have to worry about it being over filled. &lt;br /&gt;
*  The [[storage chest]] is attached to the input of the [[arithmetic combinator]] (left side in the picture) with a [[red wire]]. &lt;br /&gt;
*  Another couple of [[red wire]]s join the output of the [[arithmetic combinator]] (right side) to the [[constant combinator]] and to the [[stack filter inserter]]. &lt;br /&gt;
*  The [[arithmetic combinator]] &#039;&#039;&#039;multiplies&#039;&#039;&#039; each input value (from the storage chest) by &#039;&#039;&#039;-1&#039;&#039;&#039;. &lt;br /&gt;
*  Finally the filter stack inserter&#039;s mode of operation is set to &#039;&#039;&#039;Set filters&#039;&#039;&#039;.&lt;br /&gt;
*  So the input to the [[stack filter inserter]] is &#039;&#039;&#039;&amp;lt;constant combinator&amp;gt; - &amp;lt;storage chest contents&amp;gt;&#039;&#039;&#039; and the filter is set to filter for the first item by inventory order. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SolarAccumalatorBalancer.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced Solar panel / Accumulator Production ===&lt;br /&gt;
* This circuit balances production of [[solar panel]]s and [[accumulator]]s to a desired ratio in my case 24:20.&lt;br /&gt;
* The first [[arithmetic combinator]] takes the number of accumulators in the chest and &#039;&#039;&#039;multiplies&#039;&#039;&#039; it by &#039;&#039;&#039;24&#039;&#039;&#039;. &lt;br /&gt;
* The second [[arithmetic combinator]] takes the output of the first combinator and &#039;&#039;&#039;divides&#039;&#039;&#039; it by &#039;&#039;&#039;20&#039;&#039;&#039;. &lt;br /&gt;
* This gives us the number of accumulators that we can directly compare to the number of Solar panels in both inserters. &lt;br /&gt;
* If the number of accumulators is greater we enable the Solar panels inserter, if the number of Solar panels is greater we enable the accumulators inserter. &lt;br /&gt;
* However, if they are equal, neither machine does anything. So we add a single accumulator to one of the inserters using a constant combinator and a wire of the other color, therefore breaking the deadlock.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Sushi Belts ==&lt;br /&gt;
[[File:SushiScience1.png|left|400px]]&lt;br /&gt;
=== Reading Belt Design ===&lt;br /&gt;
* Six belts in a row are connected with Red wire and set to &#039;&#039;&#039;Read belts contents&#039;&#039;&#039; and &#039;&#039;&#039;Hold&#039;&#039;&#039; &lt;br /&gt;
* This [[red wire]] is then connected to the inserters that insert onto the belt. &lt;br /&gt;
* Read hand contents is unselected for all inserters.&lt;br /&gt;
* Mode of operation is set to &#039;&#039;&#039;Enable/Disable&#039;&#039;&#039; on all inserters. &lt;br /&gt;
* The first inserter is enabled when &#039;&#039;&#039;Science pack 1 = 0&#039;&#039;&#039;&lt;br /&gt;
* The other inserters are set similarly for the other science packs. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SushiScience2.png|left|400px]]&lt;br /&gt;
=== Memory Cell Design ===&lt;br /&gt;
* This circuit counts the number of items of each type on a looping belt by counting the numbers that are added and removed from the belt by inserters.&lt;br /&gt;
* Each inserter that takes items off the belt is connected together with Red wire and each of these inserters is set to &#039;&#039;&#039;Mode of operation none, Read hand content selected&#039;&#039;&#039; and &#039;&#039;&#039;Hand read mode pulse&#039;&#039;&#039;. &lt;br /&gt;
* These inserters are connected to the input of the left arithmetic combinator. &lt;br /&gt;
* The left [[arithmetic combinator]] multiples &#039;&#039;&#039;each&#039;&#039;&#039; input by &#039;&#039;&#039;-1&#039;&#039;&#039; and outputs it to &#039;&#039;&#039;each&#039;&#039;&#039;. &lt;br /&gt;
* The right [[arithmetic combinator]] is a &#039;&#039;&#039;memory cell&#039;&#039;&#039; as above.&lt;br /&gt;
* The memory cell&#039;s input is connected to the inserters that are placing items on the belt and the output of the left [[arithmetic combinator]]. &lt;br /&gt;
* The inserters that place items onto the belt have an enabled condition that is based on the number of items on the belt.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Power ==&lt;br /&gt;
[[File:SteamBackup.png|left|400px]]&lt;br /&gt;
=== Backup steam power ===&lt;br /&gt;
* The [[steam engine]]s are not directly connected to the power network. They are connected to the power network through a [[power switch]]. &lt;br /&gt;
* The [[power switch]] is connected to one of the [[accumulator]]s in the main network. &lt;br /&gt;
* The [[power switch]] turns on when A &amp;lt; 10. That is when the [[accumulator]]s are less than 10% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
=== Optimal usage of fuel for nuclear power ===&lt;br /&gt;
Unlike the normal steam power that adjusts fuel usage based on power usage, the [[Power_production#Nuclear_power|nuclear reactors]] spend fuel in fixed units of time. To be exact, the consumption of 1 fuel cell takes exactly 200 seconds.&lt;br /&gt;
&lt;br /&gt;
Combined with the fact that creating the nuclear fuel cells are time consuming and expensive to create, it is therefore beneficial to optimize their use to match the actual consumed power.&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits.jpg|left|400px]]&lt;br /&gt;
==== First example ====&lt;br /&gt;
The above picture shows a setup with 4 reactors, that spend only 1 fuel cell each whenever steam runs low.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Note: The GUI in the image above has been altered to make sure all important info fits within the image size.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are a few elements in this setup:&lt;br /&gt;
* Storage tank that provides the [[steam]] signal.  You should only read from one storage tank, and it should have pipe connections to all your other steam storage tanks.&lt;br /&gt;
* Chests containing [[uranium fuel cell]]s for the reactor.&lt;br /&gt;
* Output inserters that take [[Used_up_uranium_fuel_cell|empty fuel cells]] from the reactor. This is connected to the storage tank to listen for the steam signal, and to the chests to listen for the uranium fuel cell signal. If the steam level is low and there are uranium fuel cells available, it removes the empty fuel cells from the reactor and sends an empty fuel cell signal (since &amp;quot;Read hand contents&amp;quot; is checked).&lt;br /&gt;
* Input inserters that put uranium fuel cells into the reactor. This is connected to the output inserters and listens for the empty fuel cell signal. The &amp;quot;Override stack size&amp;quot; is set to 1, so that it only inserts 1 fuel cell at a time.&lt;br /&gt;
&lt;br /&gt;
Since this design uses empty fuel cells as a signal to fill the reactor, you need to manually insert 1 uranium fuel cell into the reactor to get it started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits2.jpg|left|400px]]&lt;br /&gt;
==== Second example ====&lt;br /&gt;
A simpler setup can be made with inserters that drop a single [[uranium fuel cell]] in each reactor when the [[steam]] reaches a certain level.&lt;br /&gt;
&lt;br /&gt;
Here, two inserters feeding two reactors are connected to a steam [[storage tank]] and are set to be turned on when it reaches 2K.&amp;lt;br&amp;gt;&lt;br /&gt;
The only drawback is that two cells are placed in the reactor (one when the steam volume drops to 2K and another when it is back up to that level), but this does not matter, as with only two cells the temperature cannot rise to 1000°C, so no energy is wasted.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Nuclear Fuel Circuit Network.png|left|400px]]&lt;br /&gt;
=== Prioritize usage of uranium towards nuclear fuel production ===&lt;br /&gt;
Because a continuous supply of [[nuclear fuel]] is critical to maintaining a [[nuclear reactor]], the circuit network can be used to set up a system where [[uranium-235]] and [[uranium-238]] are conserved for the production of nuclear fuel before other uses.&lt;br /&gt;
&lt;br /&gt;
Using a [[splitter]], divert the two types of uranium onto two parallel conveyors, with an [[inserter]] positioned to gather uranium from each conveyor (a [[long handed inserter]] will be needed for the far belt). Each of these inserters deposits their load into a container, from which two more inserters deliver the contents to an [[assembly machine]] making nuclear fuel. An inserter delivers the produced fuel to a third container, from which inserter(s) delivers the fuel to your nuclear reactor. Wire the two inserters gathering from the conveyors to the container each of them is delivering to, and to the tile of conveyor immediately after the tile the inserter is gathering from. Set each inserter&#039;s enable condition to &amp;quot;less than or equal to X amount of uranium&amp;quot;, using the appropriate type of uranium the inserter is gathering and X being the number of reserve uranium desired (optimally, one uranium-235 and nineteen uranium-238, the amount needed to produce nuclear fuel; the amount may be increased if a greater stockpile is desired). Set each conveyor&#039;s enable condition to &amp;quot;greater than or equal to X amount of uranium&amp;quot; in the same manner. Finally, connect the inserters delivering uranium to the assembly machine up to the container the assembly machine is delivering nuclear fuel to, and set each of their enable conditions to &amp;quot;nuclear fuel = 0 (the enable condition can be set to &amp;quot;less than or equal to X amount of nuclear fuel&amp;quot; if a larger stockpile is desired).&lt;br /&gt;
&lt;br /&gt;
This set-up accomplishes the following:&lt;br /&gt;
&lt;br /&gt;
* When there is sufficient nuclear fuel and uranium stockpiled, the inserters will deactivate and the conveyors activate, allowing the uranium to continue down the conveyors to other facilities.&lt;br /&gt;
* When the nuclear fuel stockpile hits zero (or decreases below the desired amount), the inserters delivering to the assembly machine will activate and deliver uranium to resume production of nuclear fuel until quota is reached again.&lt;br /&gt;
* When there is not enough uranium stockpiled to produce a batch of nuclear fuel, the inserters gathering uranium will activate and and resume gathering uranium until they reach their quota. The conveyors carrying uranium will stop past the inserters, cutting off other facilities from that type of uranium until its respective inserter reaches quota.&lt;br /&gt;
* The assembly machine will only be provided with uranium when the stockpile of nuclear fuel hits zero (or decreases below the desired amount), preventing over-production of nuclear fuel and thus over-consumption of uranium.&lt;br /&gt;
&lt;br /&gt;
== Railway network ==&lt;br /&gt;
=== Set train routing ===&lt;br /&gt;
The circuit network can be used to allow deeper micromanagement of [[train]]s by disable/enabling [[train stop]]s. By connecting the stop to the storage container(s) unloading from the train and setting the train stop to be disabled when a desired resource in them is above a certain quantity, any train with this stop on their route will ignore it and continue to their next stop. For example, a train stop where [[iron ore]] is delivered can be disabled when the total amount of iron ore in the containers is above 1,000; when the stockpiled ore drops below 1,000, the stop will be enabled and trains will be permitted to stop there. Conversely, train stops where a resource is picked up can be set to be disabled in the same manner, so that trains will ignore the stop until the stop has enough of the specified resource to be delivered.&lt;br /&gt;
&lt;br /&gt;
Together, these can be used to direct multiple trains to the same stops and better optimize their delivery; they will only go to a stop to pick up cargo when there is a certain amount ready, and will only unload at stops which have fallen below a certain amount in their stockpile. Further control over deliveries can be granted by integrating the inserters loading and unloading from the trains and/or the storage containers into the circuit network to enable or disable them depending on the container&#039;s contents, so that specific amounts of resources are picked up or unloaded.&lt;br /&gt;
&lt;br /&gt;
This system also means that if no stop on a train&#039;s route requires the specified resource, the train will wait until needed. This can be useful for supplies like ammunition being delivered to defensive outposts with turrets; if the turrets have a sufficient stockpile of ammunition their stop will be disabled and the train delivering ammunition will not travel there until more ammunition is needed, preventing rail lines from being clogged and fuel from being consumed.&lt;br /&gt;
&lt;br /&gt;
=== Player safety ===&lt;br /&gt;
The circuit network can be used to ensure the player&#039;s safety when crossing train tracks so they do not get hit. Place [[gate]]s at designated crossing areas and connect an adjacent [[wall]] to [[rail signal]]s near the gate. Set the gate to &amp;quot;read sensor&amp;quot; and the signal to &amp;quot;close signal&amp;quot; with the condition being the signal the gate sends out being &amp;quot;1&amp;quot;. This means that when the gate is closed, the signal will be green and trains can pass freely, but when the player approaches the gate and it opens for them, the train signal will be turned red and trains will be stopped until the player clears the area.&lt;br /&gt;
&lt;br /&gt;
Alternatively, this system can be reversed - by setting the gate to &amp;quot;open gate&amp;quot; and the train signal set to &amp;quot;read signal&amp;quot;, the gate will remain open normally and will close when a train is approaching, preventing the player from crossing until it is safe.&lt;br /&gt;
&lt;br /&gt;
In lieu of gates, the player can connect a [[programmable speaker]] to the train signals to broadcast a warning siren when a train is approaching the area.&lt;br /&gt;
&lt;br /&gt;
== Latches ==&lt;br /&gt;
=== RS latch - single decider version ===&lt;br /&gt;
[https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=14556 This discussion] on the Factorio forums starts with the common 2 decider RS latch version, but the thread [https://forums.factorio.com/viewtopic.php?p=160896#p160896 goes on to explain] why this single decider version is better. In the thread, the latch is described as an SR latch. However, when both inputs are true, the latch will reset, so it is an RS latch.&lt;br /&gt;
==== Backup steam example ====&lt;br /&gt;
This example will turn on the steam generator when the Accumulator charge drops to 20%, but will &amp;quot;latch&amp;quot; (remember) the On state until the accumulator is charged to 90%.&lt;br /&gt;
&lt;br /&gt;
Latching is used to introduce [[Wikipedia:hysteresis|hysteresis]] and avoid the power switch rapidly cycling on and off (as the accumulator falls to 19%, charges to 20%, falls to 19% and so on). &lt;br /&gt;
[[File:SR-01-Layout.png|850px|left]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
{{BlueprintString|bp-string=0eNrFVk1vozAQ/SuVz1ABCaRBq5WqXntKjqsKOTBJR8IGGTtpFPHfd+w0HyU0G6pVewkxnnmemfdmzI4tSgO1QqlZumOYV7Jh6Z8da3AleWnf6W0NLGVrVNrQG49JLuyLvYU/Z63HUBbwxtKw9QZ4zs48o15P1CBObgXkWIDy80osUHJdqTOAUfviMZAaNcI+A7fYZtKIBSiK7YgjoEAjfCgh1wpzv65KoFPqqiHnStrzCdAPA49t6Rm1NrYOWjQY7QrY6FQZwcvyX1jJFajxEYrnuRGmdGW6DCe+jx1KcB9TDYl1raoyW8ArXyM5kFVldG10djObj6zdI0kKHp2Mdiy0PysFIM8pwYKldHyOKjeo3TI8y8Wup93tl7Yv3fiaOC6zjt6z9uk4VqDaR+rY7CvBO2ZGewUec1qiaobVxaE3mtseiwK7EjVXLsaU/SKPobWe7zHrLYVmpM6WqhIZSsJg6ZKXDQyiYkzF9Vhk9xUU3d3kNiaSQUwEB/l9Hw+uZg1YjGzYiPpA1+/vpKuHjk7fRNf7JrJTsZf05MLwoIFbzLvtOvlEFZNjKepqQ5poNqjz10s9jA6N+fk8Ohx/FMFXNXDqxeCC20F901vCJxN07UjVG9K4+x9YQp5M2LUZfbTpq+XDKRsNnG4cuULZcz089HZWD+D0a8Pz52bnNPgPzTj76dlJAnDfNenZp5fHSr4ACp/NZ3fPnHrkDt64qN31vwbVuFIn43GUjCdxHIVt+xcL2lBp}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-02-Accumulator.png|left]]Accumulator outputs the current charge level as % on signal [[File:Signal-A.png|21px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-03-RangeDeciders.png|left]]First decider outputs &amp;quot;Set&amp;quot; ([[File:Signal-S.png|21px]] = 1) if Accumulator is less than 20%.&lt;br /&gt;
Second decider outputs &amp;quot;Reset&amp;quot; ([[File:Signal-R.png|21px]] = 1) once Accumulator is more than 90% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-04-SRLatch.png|left]]&lt;br /&gt;
&lt;br /&gt;
==== RS Latch configuration ====&lt;br /&gt;
&#039;&#039;&#039;The central decider and green feedback wire is the actual RS Latch.&#039;&#039;&#039;&lt;br /&gt;
It latches the Set signal [[File:Signal-S.png|21px]] until the Reset signal [[File:Signal-R.png|21px]] is received (and vice-versa).&amp;lt;br /&amp;gt;&lt;br /&gt;
NB: the latch expects binary inputs ([[File:Signal-S.png|21px]] &amp;amp; [[File:Signal-R.png|21px]] must be 0 or 1) - this is why the previous two deciders are required.&amp;lt;br /&amp;gt;&lt;br /&gt;
When both inputs are true, the reset signal takes priority and the latch resets. This means it is an RS latch instead of an SR latch.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[File:SR-05-PowerSwitch.png|left]]The Power switch isolates the generator from the rest of the factory until [[File:Signal-S.png|21px]] = 1&lt;br /&gt;
&amp;lt;br clear=all&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RS latch ===&lt;br /&gt;
[[File:SRLatch.png|left|430px]]&lt;br /&gt;
* This should be familiar to anyone with any background in electronics. &lt;br /&gt;
* The signal is set and reset with the [[constant combinator]]s on the left by setting an A=1 signal. &lt;br /&gt;
* The latch &amp;quot;remembers&amp;quot; which one was last set and the light stays on until another signal is received.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Usage of RS latch ===&lt;br /&gt;
[[File:SRlatchinaction.png|left|430px]]&lt;br /&gt;
* Here is an example of how you could use an RS latch.&lt;br /&gt;
* The two extra [[decider combinator]]s provide the set and reset conditions. &lt;br /&gt;
* Petroleum gas &amp;lt; 50 and petroleum gas &amp;gt; 100. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Belt only latch ===&lt;br /&gt;
[[File:BeltLatch.png|left|430px]]&lt;br /&gt;
* To make it work, &#039;&#039;&#039;3&#039;&#039;&#039; pieces of raw wood must be placed on the inside lane of the belt.&lt;br /&gt;
* It will have higher latency than the combinator version, but in most situations you will not notice the difference. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
[[File:5digitDisplay.png|left|400x400px]]&lt;br /&gt;
=== Numerical Display ===&lt;br /&gt;
* Each digit is driven by its own [[green wire]], that wire holds 15 signals, one for each lamp used in the digit.&lt;br /&gt;
* [[constant combinator]]s are used to define which lamp should light up for each value. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BWDisplay.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Black and White Grid Display ===&lt;br /&gt;
* Each row has its own [[red wire]] connection and within that row each light has a numbered signal 0-9.&lt;br /&gt;
* We turn each light on by just setting or clearing the relevant signal.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MultiColoredDisplay.png|left|400x400px]]&lt;br /&gt;
=== Multicolor Display by DaveMcW ===&lt;br /&gt;
* To understand how this works, you first need to understand how color lights choose which color to light up when there are multiple colored signals. &lt;br /&gt;
* The [[lamp]] will light up with the colored signal that is greater than zero and earliest in this list: red, green, blue, yellow, pink, cyan, white.  &lt;br /&gt;
* We have a [[red wire]] per column, that wire has each of the colored signals on it at different values and a numbered signal for each row. &lt;br /&gt;
* There is a [[arithmetic combinator]] for each cell that subtracts the &amp;quot;row&amp;quot; value from each of the colored signals. &lt;br /&gt;
* And this enables us to choose the color for each cell. &lt;br /&gt;
* Simple!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Arithmetic combinator]]&lt;br /&gt;
* [[Constant combinator]]&lt;br /&gt;
* [[Decider combinator]]&lt;br /&gt;
* [[Circuit network]]&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Oil-single-cct.png&amp;diff=189092</id>
		<title>File:Oil-single-cct.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Oil-single-cct.png&amp;diff=189092"/>
		<updated>2022-04-29T19:48:16Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: An example of a single circuit network connecting all fluid tanks to all pumps.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
An example of a single circuit network connecting all fluid tanks to all pumps.&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189091</id>
		<title>Tutorial:Circuit network cookbook</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189091"/>
		<updated>2022-04-29T19:46:51Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: /* Alternative Setup for Cracking and Lubricant Production */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
== Foreword == &lt;br /&gt;
&lt;br /&gt;
This page provides examples of simple circuit network designs and some not so simple designs that others can use, combine and modify. They are designed to be as easy to understand as possible.  To see the settings of combinators without opening them, the option &amp;quot;Show combinator settings in &amp;quot;Alt-mode&amp;quot;&amp;quot; in the Interface/Alt-mode settings has to be checked and &amp;quot;Alt-mode&amp;quot; has to be turned on.&lt;br /&gt;
&lt;br /&gt;
==Lamp showing chest content condition==&lt;br /&gt;
[[File:LightWiredToChest.png|right]]&lt;br /&gt;
&lt;br /&gt;
This is the simplest possible use of circuit-network. A [[lamp]] is light depending on the number of goods (in this example empty barrels) in a chest.&lt;br /&gt;
&lt;br /&gt;
===Setting up circuit connection===&lt;br /&gt;
* The lamp is connected to the chest.&lt;br /&gt;
* The lamp is set to light if the chest contain less than 10 empty barrels.&lt;br /&gt;
===To set the light condition===&lt;br /&gt;
* Open the lamp (left click on it).&lt;br /&gt;
* Set the input to barrels.&lt;br /&gt;
* Set the operator to &amp;lt; (less than).&lt;br /&gt;
* Set the constant number:&lt;br /&gt;
** Left click on the constant number&lt;br /&gt;
** Move the slider until 10 is shown, or edit the value box directly.&lt;br /&gt;
** Press set.&lt;br /&gt;
&lt;br /&gt;
Depending on the condition you set, the lamp may light if the chest is empty, or if it contains the required quantity of items.&lt;br /&gt;
&lt;br /&gt;
The drawback with this scenario is that the lamp has a white light , and is therefore difficult to differentiate from an ordinary lamp at night.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Oil Setups ==&lt;br /&gt;
[[File:LgtOilCracking.png|left|440px]]&lt;br /&gt;
=== Light Oil Cracking ===&lt;br /&gt;
* This circuit provides balanced light oil and petroleum gas production by cracking excess light oil into gas. &lt;br /&gt;
* The [[pump]] is connected to the [[storage tank]] by a [[red wire]]. &lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Light Oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:HvyOilCracking.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Heavy Oil Cracking ===&lt;br /&gt;
* This circuit extends on the previous circuit by adding optional heavy oil cracking to provide lubricant etc.&lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Heavy oil &amp;gt; 20000&#039;&#039;&#039; .&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Alternative Setup for Cracking and Lubricant Production ===&lt;br /&gt;
This setup compares different fluid levels to each other instead of checking fixed values. It offers some guarantees such as petroleum gas being produced when you have light oil to spare, and light oil not being cracked when you have plenty of petroleum gas, and similar rules for heavy oil cracking and lubricant production. &lt;br /&gt;
&lt;br /&gt;
[[File:oil-single-cct.jpg]]&lt;br /&gt;
&lt;br /&gt;
It takes 4 steps:&lt;br /&gt;
&lt;br /&gt;
1. Have a fluid tank for heavy oil, light oil, petroleum gas, and lubricant. For each fluid, make sure to connect the tank via pipes to every location where the fluid is being produced or consumed.&lt;br /&gt;
&lt;br /&gt;
2. For each chemical plant (or each row of them, if you use rows) add a pump to the non-water fluid input pipe to make it possible to block the flow. No need to add pumps to outputs.&lt;br /&gt;
&lt;br /&gt;
3. Connect every pump and every fluid tank to a single circuit network of red (or green) wire. The resulting circuit network will know about the fluid level in every storage tank and pass this information to every pump.&lt;br /&gt;
&lt;br /&gt;
4. For each connected pump set the circuit “enable condition” to &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; , for its respective chemical plant recipe. E.g. set &amp;quot;heavy oil &amp;gt; light oil&amp;quot; for the heavy oil cracking output, set &amp;quot;heavy oil &amp;gt; lubricant&amp;quot; for the lubricant production output, and set &amp;quot;light oil &amp;gt; petroleum gas&amp;quot; for the light oil cracking output.&lt;br /&gt;
&lt;br /&gt;
Done! Now all the pumps will move to equalize the fluid levels to each other. This will prevent fluid system deadlocks where you have plenty of one fluid but you are unable to make any of the other.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
[[File:ConditionalLights.png|left|440px]]&lt;br /&gt;
=== Conditional Lights ===&lt;br /&gt;
* In this circuit we connect a series of [[lamp]]s to a [[storage tank]].&lt;br /&gt;
* By setting different conditions on each lamp we can build an indicator strip. &lt;br /&gt;
* The Enabled condition of the first lamp is &#039;&#039;&#039;Petroleum gas &amp;gt; 100&#039;&#039;&#039;.&lt;br /&gt;
* The others light up when gas is greater than 200, 300, 400 and 500 respectively.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
In this scenario you can connect the storage tank to the lamps directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ColoredLights.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Colored Lights ===&lt;br /&gt;
* To light a [[lamp]] with a color rather than white, you need an intermediate device like an [[arithmetic combinator]] that can send a color signal.  &lt;br /&gt;
Instead of directly connect  the the [[lamp]] and the [[Storage tank]] you need:&amp;lt;BR&amp;gt;&lt;br /&gt;
1 Add the arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
2 Connect the [[storage tank]] with the input of the  arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
3 Connect the  output of the [[arithmetic combinator]] with the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
4 Set up the arithmetic combinator:&amp;lt;BR&amp;gt;&lt;br /&gt;
4.1 Setting the input to petroleum Gas + 0 (the constant 0 not the signal 0)&amp;lt;BR&amp;gt;&lt;br /&gt;
4.2 Set the output to the pink signal (on the bottom row of the last tab of signals.)&amp;lt;BR&amp;gt;&lt;br /&gt;
5 Set up the [[lamp]]:&amp;lt;BR&amp;gt;&lt;br /&gt;
5.1  Select the &amp;quot;Use colors&amp;quot; check box on the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
5.2 Set the condition to the pink signal, and what value you want (i.e. &amp;gt; 100)&amp;lt;BR&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
[[file:MulitipleChestsAndPoles.png|left|430px]]&lt;br /&gt;
=== Multiple Storages === &lt;br /&gt;
* If you connect multiple chests to a pole, the pole displays the sum of items in all the chests. &lt;br /&gt;
* This also works with [[storage tank]]s and [[roboport]]s.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConstantComb.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator ===&lt;br /&gt;
* With a [[constant combinator]] you can generate any signals you may need. &lt;br /&gt;
* In this example we have generated a signal of 50 Laser turrets and 200 Piercing round magazine. &lt;br /&gt;
* Constant combinators are not of much use on their own but we shall use them later.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ThisASign.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Words) ===&lt;br /&gt;
* You can use [[constant combinator]]s to make signs, just set the letter signals in the combinator, each combinator can display 2 characters side by side.&lt;br /&gt;
* Note that to see these letters, Alt-mode must be on and the Interface setting “Show combinator settings in “Alt-Mode”” must also be enabled.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:constant_combinator_signs2.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Managing Belts) ===&lt;br /&gt;
* Somewhat similar to the previous example, constant combinator signals can be used with belts to help indicate what items should be on which belts. This is extremely useful when sharing blueprints, as it&#039;s possible for blueprints to be shared albeit with no indication on which items are meant for which belts.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MemoryCell.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell / Counter ===&lt;br /&gt;
* Basic memory cell that counts all the items moved by the inserter&lt;br /&gt;
* The [[fast inserter]] is connected to &#039;&#039;&#039;BOTH&#039;&#039;&#039; ends of the arithmetic combinator.&lt;br /&gt;
&lt;br /&gt;
* If the fast inserter hasn&#039;t picked anything up this tick the input to the Arithmetic combinator is the same as and output and hence the values are persisted. &lt;br /&gt;
* When the fast inserter does pick something up its value is added to the output from the previous tick thus incrementing that item. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Inserters ==&lt;br /&gt;
[[File:LimitItemsPlacedIntoAChest.png|left|400x400px]]&lt;br /&gt;
=== Limit items placed into a chest ===&lt;br /&gt;
*  The [[inserter]] is connected to the [[wooden chest]] using a [[red wire]]. &lt;br /&gt;
*  The inserter&#039;s enabled condition is &#039;&#039;&#039;Advanced Circuit &amp;lt; 10&#039;&#039;&#039;. &lt;br /&gt;
*  In reality this means the inserter may place more than 10 Advanced circuits in the chest because it could pick up to 3 at once due to stack size bonuses.&lt;br /&gt;
*  This effect can be even greater with Stack inserters because of their large carrying capacity. &lt;br /&gt;
*  This technique still gives far greater control than limiting the inventory on the chest.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BalancedChestInsert.png|left|400x400px]]&lt;br /&gt;
=== Balanced chest insert ===&lt;br /&gt;
Goal: Load n chests with approximately the same number of items.&lt;br /&gt;
*  Place n chests and n inserters. &lt;br /&gt;
*  Place 1 [[arithmetic combinator]]&lt;br /&gt;
*  Set the combinator to take Each (yellow star) and divide by the negative number of chests. ie &amp;amp;minus;n.&lt;br /&gt;
*  Connect all chests to each other and to the input of the combinator using red wire.&lt;br /&gt;
*  Connect all inserters to each other and to the output of the combinator using red wire.&lt;br /&gt;
*  Connect each inserter to the box it inserts into with green wire.&lt;br /&gt;
*  Set the enable condition on each inserter to be Everything (red star) &amp;lt; 0.&lt;br /&gt;
&lt;br /&gt;
The combinator calculates the average number of items in the chests, and makes it negative. Each inserter gets the amount in the chest it is inserting to and adds the negative average, ie it calculates how many more than the average it has in its chest. Thus if that number is negative, it has less than the average in the chest and it enables. &lt;br /&gt;
&lt;br /&gt;
Due to inserter stack bonus the count is not exact. If a precise count is needed, set the inserter stack size to 1. &lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SmartOutpostUnloader.png|left|400x400px]]&lt;br /&gt;
=== Keeping outpost stocked with specified items ===&lt;br /&gt;
*  This circuit keeps a [[storage chest]] at an outpost stocked with customized levels of different items. &lt;br /&gt;
*  For example you could keep an outpost stocked with 50 laser turrets and 200 piercing magazine rounds but not have to worry about it being over filled. &lt;br /&gt;
*  The [[storage chest]] is attached to the input of the [[arithmetic combinator]] (left side in the picture) with a [[red wire]]. &lt;br /&gt;
*  Another couple of [[red wire]]s join the output of the [[arithmetic combinator]] (right side) to the [[constant combinator]] and to the [[stack filter inserter]]. &lt;br /&gt;
*  The [[arithmetic combinator]] &#039;&#039;&#039;multiplies&#039;&#039;&#039; each input value (from the storage chest) by &#039;&#039;&#039;-1&#039;&#039;&#039;. &lt;br /&gt;
*  Finally the filter stack inserter&#039;s mode of operation is set to &#039;&#039;&#039;Set filters&#039;&#039;&#039;.&lt;br /&gt;
*  So the input to the [[stack filter inserter]] is &#039;&#039;&#039;&amp;lt;constant combinator&amp;gt; - &amp;lt;storage chest contents&amp;gt;&#039;&#039;&#039; and the filter is set to filter for the first item by inventory order. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SolarAccumalatorBalancer.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced Solar panel / Accumulator Production ===&lt;br /&gt;
* This circuit balances production of [[solar panel]]s and [[accumulator]]s to a desired ratio in my case 24:20.&lt;br /&gt;
* The first [[arithmetic combinator]] takes the number of accumulators in the chest and &#039;&#039;&#039;multiplies&#039;&#039;&#039; it by &#039;&#039;&#039;24&#039;&#039;&#039;. &lt;br /&gt;
* The second [[arithmetic combinator]] takes the output of the first combinator and &#039;&#039;&#039;divides&#039;&#039;&#039; it by &#039;&#039;&#039;20&#039;&#039;&#039;. &lt;br /&gt;
* This gives us the number of accumulators that we can directly compare to the number of Solar panels in both inserters. &lt;br /&gt;
* If the number of accumulators is greater we enable the Solar panels inserter, if the number of Solar panels is greater we enable the accumulators inserter. &lt;br /&gt;
* However, if they are equal, neither machine does anything. So we add a single accumulator to one of the inserters using a constant combinator and a wire of the other color, therefore breaking the deadlock.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Sushi Belts ==&lt;br /&gt;
[[File:SushiScience1.png|left|400px]]&lt;br /&gt;
=== Reading Belt Design ===&lt;br /&gt;
* Six belts in a row are connected with Red wire and set to &#039;&#039;&#039;Read belts contents&#039;&#039;&#039; and &#039;&#039;&#039;Hold&#039;&#039;&#039; &lt;br /&gt;
* This [[red wire]] is then connected to the inserters that insert onto the belt. &lt;br /&gt;
* Read hand contents is unselected for all inserters.&lt;br /&gt;
* Mode of operation is set to &#039;&#039;&#039;Enable/Disable&#039;&#039;&#039; on all inserters. &lt;br /&gt;
* The first inserter is enabled when &#039;&#039;&#039;Science pack 1 = 0&#039;&#039;&#039;&lt;br /&gt;
* The other inserters are set similarly for the other science packs. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SushiScience2.png|left|400px]]&lt;br /&gt;
=== Memory Cell Design ===&lt;br /&gt;
* This circuit counts the number of items of each type on a looping belt by counting the numbers that are added and removed from the belt by inserters.&lt;br /&gt;
* Each inserter that takes items off the belt is connected together with Red wire and each of these inserters is set to &#039;&#039;&#039;Mode of operation none, Read hand content selected&#039;&#039;&#039; and &#039;&#039;&#039;Hand read mode pulse&#039;&#039;&#039;. &lt;br /&gt;
* These inserters are connected to the input of the left arithmetic combinator. &lt;br /&gt;
* The left [[arithmetic combinator]] multiples &#039;&#039;&#039;each&#039;&#039;&#039; input by &#039;&#039;&#039;-1&#039;&#039;&#039; and outputs it to &#039;&#039;&#039;each&#039;&#039;&#039;. &lt;br /&gt;
* The right [[arithmetic combinator]] is a &#039;&#039;&#039;memory cell&#039;&#039;&#039; as above.&lt;br /&gt;
* The memory cell&#039;s input is connected to the inserters that are placing items on the belt and the output of the left [[arithmetic combinator]]. &lt;br /&gt;
* The inserters that place items onto the belt have an enabled condition that is based on the number of items on the belt.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Power ==&lt;br /&gt;
[[File:SteamBackup.png|left|400px]]&lt;br /&gt;
=== Backup steam power ===&lt;br /&gt;
* The [[steam engine]]s are not directly connected to the power network. They are connected to the power network through a [[power switch]]. &lt;br /&gt;
* The [[power switch]] is connected to one of the [[accumulator]]s in the main network. &lt;br /&gt;
* The [[power switch]] turns on when A &amp;lt; 10. That is when the [[accumulator]]s are less than 10% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
=== Optimal usage of fuel for nuclear power ===&lt;br /&gt;
Unlike the normal steam power that adjusts fuel usage based on power usage, the [[Power_production#Nuclear_power|nuclear reactors]] spend fuel in fixed units of time. To be exact, the consumption of 1 fuel cell takes exactly 200 seconds.&lt;br /&gt;
&lt;br /&gt;
Combined with the fact that creating the nuclear fuel cells are time consuming and expensive to create, it is therefore beneficial to optimize their use to match the actual consumed power.&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits.jpg|left|400px]]&lt;br /&gt;
==== First example ====&lt;br /&gt;
The above picture shows a setup with 4 reactors, that spend only 1 fuel cell each whenever steam runs low.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Note: The GUI in the image above has been altered to make sure all important info fits within the image size.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are a few elements in this setup:&lt;br /&gt;
* Storage tank that provides the [[steam]] signal.  You should only read from one storage tank, and it should have pipe connections to all your other steam storage tanks.&lt;br /&gt;
* Chests containing [[uranium fuel cell]]s for the reactor.&lt;br /&gt;
* Output inserters that take [[Used_up_uranium_fuel_cell|empty fuel cells]] from the reactor. This is connected to the storage tank to listen for the steam signal, and to the chests to listen for the uranium fuel cell signal. If the steam level is low and there are uranium fuel cells available, it removes the empty fuel cells from the reactor and sends an empty fuel cell signal (since &amp;quot;Read hand contents&amp;quot; is checked).&lt;br /&gt;
* Input inserters that put uranium fuel cells into the reactor. This is connected to the output inserters and listens for the empty fuel cell signal. The &amp;quot;Override stack size&amp;quot; is set to 1, so that it only inserts 1 fuel cell at a time.&lt;br /&gt;
&lt;br /&gt;
Since this design uses empty fuel cells as a signal to fill the reactor, you need to manually insert 1 uranium fuel cell into the reactor to get it started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits2.jpg|left|400px]]&lt;br /&gt;
==== Second example ====&lt;br /&gt;
A simpler setup can be made with inserters that drop a single [[uranium fuel cell]] in each reactor when the [[steam]] reaches a certain level.&lt;br /&gt;
&lt;br /&gt;
Here, two inserters feeding two reactors are connected to a steam [[storage tank]] and are set to be turned on when it reaches 2K.&amp;lt;br&amp;gt;&lt;br /&gt;
The only drawback is that two cells are placed in the reactor (one when the steam volume drops to 2K and another when it is back up to that level), but this does not matter, as with only two cells the temperature cannot rise to 1000°C, so no energy is wasted.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Nuclear Fuel Circuit Network.png|left|400px]]&lt;br /&gt;
=== Prioritize usage of uranium towards nuclear fuel production ===&lt;br /&gt;
Because a continuous supply of [[nuclear fuel]] is critical to maintaining a [[nuclear reactor]], the circuit network can be used to set up a system where [[uranium-235]] and [[uranium-238]] are conserved for the production of nuclear fuel before other uses.&lt;br /&gt;
&lt;br /&gt;
Using a [[splitter]], divert the two types of uranium onto two parallel conveyors, with an [[inserter]] positioned to gather uranium from each conveyor (a [[long handed inserter]] will be needed for the far belt). Each of these inserters deposits their load into a container, from which two more inserters deliver the contents to an [[assembly machine]] making nuclear fuel. An inserter delivers the produced fuel to a third container, from which inserter(s) delivers the fuel to your nuclear reactor. Wire the two inserters gathering from the conveyors to the container each of them is delivering to, and to the tile of conveyor immediately after the tile the inserter is gathering from. Set each inserter&#039;s enable condition to &amp;quot;less than or equal to X amount of uranium&amp;quot;, using the appropriate type of uranium the inserter is gathering and X being the number of reserve uranium desired (optimally, one uranium-235 and nineteen uranium-238, the amount needed to produce nuclear fuel; the amount may be increased if a greater stockpile is desired). Set each conveyor&#039;s enable condition to &amp;quot;greater than or equal to X amount of uranium&amp;quot; in the same manner. Finally, connect the inserters delivering uranium to the assembly machine up to the container the assembly machine is delivering nuclear fuel to, and set each of their enable conditions to &amp;quot;nuclear fuel = 0 (the enable condition can be set to &amp;quot;less than or equal to X amount of nuclear fuel&amp;quot; if a larger stockpile is desired).&lt;br /&gt;
&lt;br /&gt;
This set-up accomplishes the following:&lt;br /&gt;
&lt;br /&gt;
* When there is sufficient nuclear fuel and uranium stockpiled, the inserters will deactivate and the conveyors activate, allowing the uranium to continue down the conveyors to other facilities.&lt;br /&gt;
* When the nuclear fuel stockpile hits zero (or decreases below the desired amount), the inserters delivering to the assembly machine will activate and deliver uranium to resume production of nuclear fuel until quota is reached again.&lt;br /&gt;
* When there is not enough uranium stockpiled to produce a batch of nuclear fuel, the inserters gathering uranium will activate and and resume gathering uranium until they reach their quota. The conveyors carrying uranium will stop past the inserters, cutting off other facilities from that type of uranium until its respective inserter reaches quota.&lt;br /&gt;
* The assembly machine will only be provided with uranium when the stockpile of nuclear fuel hits zero (or decreases below the desired amount), preventing over-production of nuclear fuel and thus over-consumption of uranium.&lt;br /&gt;
&lt;br /&gt;
== Railway network ==&lt;br /&gt;
=== Set train routing ===&lt;br /&gt;
The circuit network can be used to allow deeper micromanagement of [[train]]s by disable/enabling [[train stop]]s. By connecting the stop to the storage container(s) unloading from the train and setting the train stop to be disabled when a desired resource in them is above a certain quantity, any train with this stop on their route will ignore it and continue to their next stop. For example, a train stop where [[iron ore]] is delivered can be disabled when the total amount of iron ore in the containers is above 1,000; when the stockpiled ore drops below 1,000, the stop will be enabled and trains will be permitted to stop there. Conversely, train stops where a resource is picked up can be set to be disabled in the same manner, so that trains will ignore the stop until the stop has enough of the specified resource to be delivered.&lt;br /&gt;
&lt;br /&gt;
Together, these can be used to direct multiple trains to the same stops and better optimize their delivery; they will only go to a stop to pick up cargo when there is a certain amount ready, and will only unload at stops which have fallen below a certain amount in their stockpile. Further control over deliveries can be granted by integrating the inserters loading and unloading from the trains and/or the storage containers into the circuit network to enable or disable them depending on the container&#039;s contents, so that specific amounts of resources are picked up or unloaded.&lt;br /&gt;
&lt;br /&gt;
This system also means that if no stop on a train&#039;s route requires the specified resource, the train will wait until needed. This can be useful for supplies like ammunition being delivered to defensive outposts with turrets; if the turrets have a sufficient stockpile of ammunition their stop will be disabled and the train delivering ammunition will not travel there until more ammunition is needed, preventing rail lines from being clogged and fuel from being consumed.&lt;br /&gt;
&lt;br /&gt;
=== Player safety ===&lt;br /&gt;
The circuit network can be used to ensure the player&#039;s safety when crossing train tracks so they do not get hit. Place [[gate]]s at designated crossing areas and connect an adjacent [[wall]] to [[rail signal]]s near the gate. Set the gate to &amp;quot;read sensor&amp;quot; and the signal to &amp;quot;close signal&amp;quot; with the condition being the signal the gate sends out being &amp;quot;1&amp;quot;. This means that when the gate is closed, the signal will be green and trains can pass freely, but when the player approaches the gate and it opens for them, the train signal will be turned red and trains will be stopped until the player clears the area.&lt;br /&gt;
&lt;br /&gt;
Alternatively, this system can be reversed - by setting the gate to &amp;quot;open gate&amp;quot; and the train signal set to &amp;quot;read signal&amp;quot;, the gate will remain open normally and will close when a train is approaching, preventing the player from crossing until it is safe.&lt;br /&gt;
&lt;br /&gt;
In lieu of gates, the player can connect a [[programmable speaker]] to the train signals to broadcast a warning siren when a train is approaching the area.&lt;br /&gt;
&lt;br /&gt;
== Latches ==&lt;br /&gt;
=== RS latch - single decider version ===&lt;br /&gt;
[https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=14556 This discussion] on the Factorio forums starts with the common 2 decider RS latch version, but the thread [https://forums.factorio.com/viewtopic.php?p=160896#p160896 goes on to explain] why this single decider version is better. In the thread, the latch is described as an SR latch. However, when both inputs are true, the latch will reset, so it is an RS latch.&lt;br /&gt;
==== Backup steam example ====&lt;br /&gt;
This example will turn on the steam generator when the Accumulator charge drops to 20%, but will &amp;quot;latch&amp;quot; (remember) the On state until the accumulator is charged to 90%.&lt;br /&gt;
&lt;br /&gt;
Latching is used to introduce [[Wikipedia:hysteresis|hysteresis]] and avoid the power switch rapidly cycling on and off (as the accumulator falls to 19%, charges to 20%, falls to 19% and so on). &lt;br /&gt;
[[File:SR-01-Layout.png|850px|left]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
{{BlueprintString|bp-string=0eNrFVk1vozAQ/SuVz1ABCaRBq5WqXntKjqsKOTBJR8IGGTtpFPHfd+w0HyU0G6pVewkxnnmemfdmzI4tSgO1QqlZumOYV7Jh6Z8da3AleWnf6W0NLGVrVNrQG49JLuyLvYU/Z63HUBbwxtKw9QZ4zs48o15P1CBObgXkWIDy80osUHJdqTOAUfviMZAaNcI+A7fYZtKIBSiK7YgjoEAjfCgh1wpzv65KoFPqqiHnStrzCdAPA49t6Rm1NrYOWjQY7QrY6FQZwcvyX1jJFajxEYrnuRGmdGW6DCe+jx1KcB9TDYl1raoyW8ArXyM5kFVldG10djObj6zdI0kKHp2Mdiy0PysFIM8pwYKldHyOKjeo3TI8y8Wup93tl7Yv3fiaOC6zjt6z9uk4VqDaR+rY7CvBO2ZGewUec1qiaobVxaE3mtseiwK7EjVXLsaU/SKPobWe7zHrLYVmpM6WqhIZSsJg6ZKXDQyiYkzF9Vhk9xUU3d3kNiaSQUwEB/l9Hw+uZg1YjGzYiPpA1+/vpKuHjk7fRNf7JrJTsZf05MLwoIFbzLvtOvlEFZNjKepqQ5poNqjz10s9jA6N+fk8Ohx/FMFXNXDqxeCC20F901vCJxN07UjVG9K4+x9YQp5M2LUZfbTpq+XDKRsNnG4cuULZcz089HZWD+D0a8Pz52bnNPgPzTj76dlJAnDfNenZp5fHSr4ACp/NZ3fPnHrkDt64qN31vwbVuFIn43GUjCdxHIVt+xcL2lBp}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-02-Accumulator.png|left]]Accumulator outputs the current charge level as % on signal [[File:Signal-A.png|21px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-03-RangeDeciders.png|left]]First decider outputs &amp;quot;Set&amp;quot; ([[File:Signal-S.png|21px]] = 1) if Accumulator is less than 20%.&lt;br /&gt;
Second decider outputs &amp;quot;Reset&amp;quot; ([[File:Signal-R.png|21px]] = 1) once Accumulator is more than 90% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-04-SRLatch.png|left]]&lt;br /&gt;
&lt;br /&gt;
==== RS Latch configuration ====&lt;br /&gt;
&#039;&#039;&#039;The central decider and green feedback wire is the actual RS Latch.&#039;&#039;&#039;&lt;br /&gt;
It latches the Set signal [[File:Signal-S.png|21px]] until the Reset signal [[File:Signal-R.png|21px]] is received (and vice-versa).&amp;lt;br /&amp;gt;&lt;br /&gt;
NB: the latch expects binary inputs ([[File:Signal-S.png|21px]] &amp;amp; [[File:Signal-R.png|21px]] must be 0 or 1) - this is why the previous two deciders are required.&amp;lt;br /&amp;gt;&lt;br /&gt;
When both inputs are true, the reset signal takes priority and the latch resets. This means it is an RS latch instead of an SR latch.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[File:SR-05-PowerSwitch.png|left]]The Power switch isolates the generator from the rest of the factory until [[File:Signal-S.png|21px]] = 1&lt;br /&gt;
&amp;lt;br clear=all&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RS latch ===&lt;br /&gt;
[[File:SRLatch.png|left|430px]]&lt;br /&gt;
* This should be familiar to anyone with any background in electronics. &lt;br /&gt;
* The signal is set and reset with the [[constant combinator]]s on the left by setting an A=1 signal. &lt;br /&gt;
* The latch &amp;quot;remembers&amp;quot; which one was last set and the light stays on until another signal is received.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Usage of RS latch ===&lt;br /&gt;
[[File:SRlatchinaction.png|left|430px]]&lt;br /&gt;
* Here is an example of how you could use an RS latch.&lt;br /&gt;
* The two extra [[decider combinator]]s provide the set and reset conditions. &lt;br /&gt;
* Petroleum gas &amp;lt; 50 and petroleum gas &amp;gt; 100. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Belt only latch ===&lt;br /&gt;
[[File:BeltLatch.png|left|430px]]&lt;br /&gt;
* To make it work, &#039;&#039;&#039;3&#039;&#039;&#039; pieces of raw wood must be placed on the inside lane of the belt.&lt;br /&gt;
* It will have higher latency than the combinator version, but in most situations you will not notice the difference. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
[[File:5digitDisplay.png|left|400x400px]]&lt;br /&gt;
=== Numerical Display ===&lt;br /&gt;
* Each digit is driven by its own [[green wire]], that wire holds 15 signals, one for each lamp used in the digit.&lt;br /&gt;
* [[constant combinator]]s are used to define which lamp should light up for each value. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BWDisplay.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Black and White Grid Display ===&lt;br /&gt;
* Each row has its own [[red wire]] connection and within that row each light has a numbered signal 0-9.&lt;br /&gt;
* We turn each light on by just setting or clearing the relevant signal.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MultiColoredDisplay.png|left|400x400px]]&lt;br /&gt;
=== Multicolor Display by DaveMcW ===&lt;br /&gt;
* To understand how this works, you first need to understand how color lights choose which color to light up when there are multiple colored signals. &lt;br /&gt;
* The [[lamp]] will light up with the colored signal that is greater than zero and earliest in this list: red, green, blue, yellow, pink, cyan, white.  &lt;br /&gt;
* We have a [[red wire]] per column, that wire has each of the colored signals on it at different values and a numbered signal for each row. &lt;br /&gt;
* There is a [[arithmetic combinator]] for each cell that subtracts the &amp;quot;row&amp;quot; value from each of the colored signals. &lt;br /&gt;
* And this enables us to choose the color for each cell. &lt;br /&gt;
* Simple!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Arithmetic combinator]]&lt;br /&gt;
* [[Constant combinator]]&lt;br /&gt;
* [[Decider combinator]]&lt;br /&gt;
* [[Circuit network]]&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189090</id>
		<title>Tutorial:Circuit network cookbook</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=189090"/>
		<updated>2022-04-29T19:31:34Z</updated>

		<summary type="html">&lt;p&gt;Sir Fendi: /* Oil Setups */ Added &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; setup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
== Foreword == &lt;br /&gt;
&lt;br /&gt;
This page provides examples of simple circuit network designs and some not so simple designs that others can use, combine and modify. They are designed to be as easy to understand as possible.  To see the settings of combinators without opening them, the option &amp;quot;Show combinator settings in &amp;quot;Alt-mode&amp;quot;&amp;quot; in the Interface/Alt-mode settings has to be checked and &amp;quot;Alt-mode&amp;quot; has to be turned on.&lt;br /&gt;
&lt;br /&gt;
==Lamp showing chest content condition==&lt;br /&gt;
[[File:LightWiredToChest.png|right]]&lt;br /&gt;
&lt;br /&gt;
This is the simplest possible use of circuit-network. A [[lamp]] is light depending on the number of goods (in this example empty barrels) in a chest.&lt;br /&gt;
&lt;br /&gt;
===Setting up circuit connection===&lt;br /&gt;
* The lamp is connected to the chest.&lt;br /&gt;
* The lamp is set to light if the chest contain less than 10 empty barrels.&lt;br /&gt;
===To set the light condition===&lt;br /&gt;
* Open the lamp (left click on it).&lt;br /&gt;
* Set the input to barrels.&lt;br /&gt;
* Set the operator to &amp;lt; (less than).&lt;br /&gt;
* Set the constant number:&lt;br /&gt;
** Left click on the constant number&lt;br /&gt;
** Move the slider until 10 is shown, or edit the value box directly.&lt;br /&gt;
** Press set.&lt;br /&gt;
&lt;br /&gt;
Depending on the condition you set, the lamp may light if the chest is empty, or if it contains the required quantity of items.&lt;br /&gt;
&lt;br /&gt;
The drawback with this scenario is that the lamp has a white light , and is therefore difficult to differentiate from an ordinary lamp at night.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Oil Setups ==&lt;br /&gt;
[[File:LgtOilCracking.png|left|440px]]&lt;br /&gt;
=== Light Oil Cracking ===&lt;br /&gt;
* This circuit provides balanced light oil and petroleum gas production by cracking excess light oil into gas. &lt;br /&gt;
* The [[pump]] is connected to the [[storage tank]] by a [[red wire]]. &lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Light Oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:HvyOilCracking.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Heavy Oil Cracking ===&lt;br /&gt;
* This circuit extends on the previous circuit by adding optional heavy oil cracking to provide lubricant etc.&lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Heavy oil &amp;gt; 20000&#039;&#039;&#039; .&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Alternative Setup for Cracking and Lubricant Production ===&lt;br /&gt;
This setup compares different fluid levels to each other instead of checking fixed values. It offers some guarantees such as petroleum gas being produced when you have light oil to spare, and light oil not being cracked when you have plenty of petroleum gas, and similar rules for heavy oil cracking and lubricant production. It takes 4 steps:&lt;br /&gt;
&lt;br /&gt;
1. Have a fluid tank for heavy oil, light oil, petroleum gas, and lubricant. For each fluid, make sure to connect the tank via pipes to every location where the fluid is being produced or consumed.&lt;br /&gt;
&lt;br /&gt;
2. For each chemical plant (or each row of them, if you use rows) add a pump to the output pipe to make it possible to block the flow. No need to add pumps to inputs.&lt;br /&gt;
&lt;br /&gt;
3. Connect every pump and every fluid tank to a single circuit network of red (or green) wire. The resulting circuit network will know about the fluid level in every storage tank and pass this information to every pump.&lt;br /&gt;
&lt;br /&gt;
4. For each connected pump set the circuit “enable condition” to &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; , for its respective chemical plant recipe. E.g. set &amp;quot;heavy oil &amp;gt; light oil&amp;quot; for the heavy oil cracking output, set &amp;quot;heavy oil &amp;gt; lubricant&amp;quot; for the lubricant production output, and set &amp;quot;light oil &amp;gt; petroleum gas&amp;quot; for the light oil cracking output.&lt;br /&gt;
&lt;br /&gt;
Done! Now all the pumps will move to equalize the fluid levels to each other. This will prevent fluid system deadlocks where you have plenty of one fluid but you are unable to make any of the other.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
[[File:ConditionalLights.png|left|440px]]&lt;br /&gt;
=== Conditional Lights ===&lt;br /&gt;
* In this circuit we connect a series of [[lamp]]s to a [[storage tank]].&lt;br /&gt;
* By setting different conditions on each lamp we can build an indicator strip. &lt;br /&gt;
* The Enabled condition of the first lamp is &#039;&#039;&#039;Petroleum gas &amp;gt; 100&#039;&#039;&#039;.&lt;br /&gt;
* The others light up when gas is greater than 200, 300, 400 and 500 respectively.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
In this scenario you can connect the storage tank to the lamps directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ColoredLights.png|left|440px]]&lt;br /&gt;
&lt;br /&gt;
=== Colored Lights ===&lt;br /&gt;
* To light a [[lamp]] with a color rather than white, you need an intermediate device like an [[arithmetic combinator]] that can send a color signal.  &lt;br /&gt;
Instead of directly connect  the the [[lamp]] and the [[Storage tank]] you need:&amp;lt;BR&amp;gt;&lt;br /&gt;
1 Add the arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
2 Connect the [[storage tank]] with the input of the  arithmetic combinator.&amp;lt;BR&amp;gt;&lt;br /&gt;
3 Connect the  output of the [[arithmetic combinator]] with the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
4 Set up the arithmetic combinator:&amp;lt;BR&amp;gt;&lt;br /&gt;
4.1 Setting the input to petroleum Gas + 0 (the constant 0 not the signal 0)&amp;lt;BR&amp;gt;&lt;br /&gt;
4.2 Set the output to the pink signal (on the bottom row of the last tab of signals.)&amp;lt;BR&amp;gt;&lt;br /&gt;
5 Set up the [[lamp]]:&amp;lt;BR&amp;gt;&lt;br /&gt;
5.1  Select the &amp;quot;Use colors&amp;quot; check box on the lamp.&amp;lt;BR&amp;gt;&lt;br /&gt;
5.2 Set the condition to the pink signal, and what value you want (i.e. &amp;gt; 100)&amp;lt;BR&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
[[file:MulitipleChestsAndPoles.png|left|430px]]&lt;br /&gt;
=== Multiple Storages === &lt;br /&gt;
* If you connect multiple chests to a pole, the pole displays the sum of items in all the chests. &lt;br /&gt;
* This also works with [[storage tank]]s and [[roboport]]s.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConstantComb.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator ===&lt;br /&gt;
* With a [[constant combinator]] you can generate any signals you may need. &lt;br /&gt;
* In this example we have generated a signal of 50 Laser turrets and 200 Piercing round magazine. &lt;br /&gt;
* Constant combinators are not of much use on their own but we shall use them later.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ThisASign.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Words) ===&lt;br /&gt;
* You can use [[constant combinator]]s to make signs, just set the letter signals in the combinator, each combinator can display 2 characters side by side.&lt;br /&gt;
* Note that to see these letters, Alt-mode must be on and the Interface setting “Show combinator settings in “Alt-Mode”” must also be enabled.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:constant_combinator_signs2.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Managing Belts) ===&lt;br /&gt;
* Somewhat similar to the previous example, constant combinator signals can be used with belts to help indicate what items should be on which belts. This is extremely useful when sharing blueprints, as it&#039;s possible for blueprints to be shared albeit with no indication on which items are meant for which belts.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MemoryCell.png|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell / Counter ===&lt;br /&gt;
* Basic memory cell that counts all the items moved by the inserter&lt;br /&gt;
* The [[fast inserter]] is connected to &#039;&#039;&#039;BOTH&#039;&#039;&#039; ends of the arithmetic combinator.&lt;br /&gt;
&lt;br /&gt;
* If the fast inserter hasn&#039;t picked anything up this tick the input to the Arithmetic combinator is the same as and output and hence the values are persisted. &lt;br /&gt;
* When the fast inserter does pick something up its value is added to the output from the previous tick thus incrementing that item. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Inserters ==&lt;br /&gt;
[[File:LimitItemsPlacedIntoAChest.png|left|400x400px]]&lt;br /&gt;
=== Limit items placed into a chest ===&lt;br /&gt;
*  The [[inserter]] is connected to the [[wooden chest]] using a [[red wire]]. &lt;br /&gt;
*  The inserter&#039;s enabled condition is &#039;&#039;&#039;Advanced Circuit &amp;lt; 10&#039;&#039;&#039;. &lt;br /&gt;
*  In reality this means the inserter may place more than 10 Advanced circuits in the chest because it could pick up to 3 at once due to stack size bonuses.&lt;br /&gt;
*  This effect can be even greater with Stack inserters because of their large carrying capacity. &lt;br /&gt;
*  This technique still gives far greater control than limiting the inventory on the chest.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BalancedChestInsert.png|left|400x400px]]&lt;br /&gt;
=== Balanced chest insert ===&lt;br /&gt;
Goal: Load n chests with approximately the same number of items.&lt;br /&gt;
*  Place n chests and n inserters. &lt;br /&gt;
*  Place 1 [[arithmetic combinator]]&lt;br /&gt;
*  Set the combinator to take Each (yellow star) and divide by the negative number of chests. ie &amp;amp;minus;n.&lt;br /&gt;
*  Connect all chests to each other and to the input of the combinator using red wire.&lt;br /&gt;
*  Connect all inserters to each other and to the output of the combinator using red wire.&lt;br /&gt;
*  Connect each inserter to the box it inserts into with green wire.&lt;br /&gt;
*  Set the enable condition on each inserter to be Everything (red star) &amp;lt; 0.&lt;br /&gt;
&lt;br /&gt;
The combinator calculates the average number of items in the chests, and makes it negative. Each inserter gets the amount in the chest it is inserting to and adds the negative average, ie it calculates how many more than the average it has in its chest. Thus if that number is negative, it has less than the average in the chest and it enables. &lt;br /&gt;
&lt;br /&gt;
Due to inserter stack bonus the count is not exact. If a precise count is needed, set the inserter stack size to 1. &lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SmartOutpostUnloader.png|left|400x400px]]&lt;br /&gt;
=== Keeping outpost stocked with specified items ===&lt;br /&gt;
*  This circuit keeps a [[storage chest]] at an outpost stocked with customized levels of different items. &lt;br /&gt;
*  For example you could keep an outpost stocked with 50 laser turrets and 200 piercing magazine rounds but not have to worry about it being over filled. &lt;br /&gt;
*  The [[storage chest]] is attached to the input of the [[arithmetic combinator]] (left side in the picture) with a [[red wire]]. &lt;br /&gt;
*  Another couple of [[red wire]]s join the output of the [[arithmetic combinator]] (right side) to the [[constant combinator]] and to the [[stack filter inserter]]. &lt;br /&gt;
*  The [[arithmetic combinator]] &#039;&#039;&#039;multiplies&#039;&#039;&#039; each input value (from the storage chest) by &#039;&#039;&#039;-1&#039;&#039;&#039;. &lt;br /&gt;
*  Finally the filter stack inserter&#039;s mode of operation is set to &#039;&#039;&#039;Set filters&#039;&#039;&#039;.&lt;br /&gt;
*  So the input to the [[stack filter inserter]] is &#039;&#039;&#039;&amp;lt;constant combinator&amp;gt; - &amp;lt;storage chest contents&amp;gt;&#039;&#039;&#039; and the filter is set to filter for the first item by inventory order. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SolarAccumalatorBalancer.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced Solar panel / Accumulator Production ===&lt;br /&gt;
* This circuit balances production of [[solar panel]]s and [[accumulator]]s to a desired ratio in my case 24:20.&lt;br /&gt;
* The first [[arithmetic combinator]] takes the number of accumulators in the chest and &#039;&#039;&#039;multiplies&#039;&#039;&#039; it by &#039;&#039;&#039;24&#039;&#039;&#039;. &lt;br /&gt;
* The second [[arithmetic combinator]] takes the output of the first combinator and &#039;&#039;&#039;divides&#039;&#039;&#039; it by &#039;&#039;&#039;20&#039;&#039;&#039;. &lt;br /&gt;
* This gives us the number of accumulators that we can directly compare to the number of Solar panels in both inserters. &lt;br /&gt;
* If the number of accumulators is greater we enable the Solar panels inserter, if the number of Solar panels is greater we enable the accumulators inserter. &lt;br /&gt;
* However, if they are equal, neither machine does anything. So we add a single accumulator to one of the inserters using a constant combinator and a wire of the other color, therefore breaking the deadlock.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Sushi Belts ==&lt;br /&gt;
[[File:SushiScience1.png|left|400px]]&lt;br /&gt;
=== Reading Belt Design ===&lt;br /&gt;
* Six belts in a row are connected with Red wire and set to &#039;&#039;&#039;Read belts contents&#039;&#039;&#039; and &#039;&#039;&#039;Hold&#039;&#039;&#039; &lt;br /&gt;
* This [[red wire]] is then connected to the inserters that insert onto the belt. &lt;br /&gt;
* Read hand contents is unselected for all inserters.&lt;br /&gt;
* Mode of operation is set to &#039;&#039;&#039;Enable/Disable&#039;&#039;&#039; on all inserters. &lt;br /&gt;
* The first inserter is enabled when &#039;&#039;&#039;Science pack 1 = 0&#039;&#039;&#039;&lt;br /&gt;
* The other inserters are set similarly for the other science packs. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SushiScience2.png|left|400px]]&lt;br /&gt;
=== Memory Cell Design ===&lt;br /&gt;
* This circuit counts the number of items of each type on a looping belt by counting the numbers that are added and removed from the belt by inserters.&lt;br /&gt;
* Each inserter that takes items off the belt is connected together with Red wire and each of these inserters is set to &#039;&#039;&#039;Mode of operation none, Read hand content selected&#039;&#039;&#039; and &#039;&#039;&#039;Hand read mode pulse&#039;&#039;&#039;. &lt;br /&gt;
* These inserters are connected to the input of the left arithmetic combinator. &lt;br /&gt;
* The left [[arithmetic combinator]] multiples &#039;&#039;&#039;each&#039;&#039;&#039; input by &#039;&#039;&#039;-1&#039;&#039;&#039; and outputs it to &#039;&#039;&#039;each&#039;&#039;&#039;. &lt;br /&gt;
* The right [[arithmetic combinator]] is a &#039;&#039;&#039;memory cell&#039;&#039;&#039; as above.&lt;br /&gt;
* The memory cell&#039;s input is connected to the inserters that are placing items on the belt and the output of the left [[arithmetic combinator]]. &lt;br /&gt;
* The inserters that place items onto the belt have an enabled condition that is based on the number of items on the belt.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Power ==&lt;br /&gt;
[[File:SteamBackup.png|left|400px]]&lt;br /&gt;
=== Backup steam power ===&lt;br /&gt;
* The [[steam engine]]s are not directly connected to the power network. They are connected to the power network through a [[power switch]]. &lt;br /&gt;
* The [[power switch]] is connected to one of the [[accumulator]]s in the main network. &lt;br /&gt;
* The [[power switch]] turns on when A &amp;lt; 10. That is when the [[accumulator]]s are less than 10% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
=== Optimal usage of fuel for nuclear power ===&lt;br /&gt;
Unlike the normal steam power that adjusts fuel usage based on power usage, the [[Power_production#Nuclear_power|nuclear reactors]] spend fuel in fixed units of time. To be exact, the consumption of 1 fuel cell takes exactly 200 seconds.&lt;br /&gt;
&lt;br /&gt;
Combined with the fact that creating the nuclear fuel cells are time consuming and expensive to create, it is therefore beneficial to optimize their use to match the actual consumed power.&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits.jpg|left|400px]]&lt;br /&gt;
==== First example ====&lt;br /&gt;
The above picture shows a setup with 4 reactors, that spend only 1 fuel cell each whenever steam runs low.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Note: The GUI in the image above has been altered to make sure all important info fits within the image size.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are a few elements in this setup:&lt;br /&gt;
* Storage tank that provides the [[steam]] signal.  You should only read from one storage tank, and it should have pipe connections to all your other steam storage tanks.&lt;br /&gt;
* Chests containing [[uranium fuel cell]]s for the reactor.&lt;br /&gt;
* Output inserters that take [[Used_up_uranium_fuel_cell|empty fuel cells]] from the reactor. This is connected to the storage tank to listen for the steam signal, and to the chests to listen for the uranium fuel cell signal. If the steam level is low and there are uranium fuel cells available, it removes the empty fuel cells from the reactor and sends an empty fuel cell signal (since &amp;quot;Read hand contents&amp;quot; is checked).&lt;br /&gt;
* Input inserters that put uranium fuel cells into the reactor. This is connected to the output inserters and listens for the empty fuel cell signal. The &amp;quot;Override stack size&amp;quot; is set to 1, so that it only inserts 1 fuel cell at a time.&lt;br /&gt;
&lt;br /&gt;
Since this design uses empty fuel cells as a signal to fill the reactor, you need to manually insert 1 uranium fuel cell into the reactor to get it started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits2.jpg|left|400px]]&lt;br /&gt;
==== Second example ====&lt;br /&gt;
A simpler setup can be made with inserters that drop a single [[uranium fuel cell]] in each reactor when the [[steam]] reaches a certain level.&lt;br /&gt;
&lt;br /&gt;
Here, two inserters feeding two reactors are connected to a steam [[storage tank]] and are set to be turned on when it reaches 2K.&amp;lt;br&amp;gt;&lt;br /&gt;
The only drawback is that two cells are placed in the reactor (one when the steam volume drops to 2K and another when it is back up to that level), but this does not matter, as with only two cells the temperature cannot rise to 1000°C, so no energy is wasted.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Nuclear Fuel Circuit Network.png|left|400px]]&lt;br /&gt;
=== Prioritize usage of uranium towards nuclear fuel production ===&lt;br /&gt;
Because a continuous supply of [[nuclear fuel]] is critical to maintaining a [[nuclear reactor]], the circuit network can be used to set up a system where [[uranium-235]] and [[uranium-238]] are conserved for the production of nuclear fuel before other uses.&lt;br /&gt;
&lt;br /&gt;
Using a [[splitter]], divert the two types of uranium onto two parallel conveyors, with an [[inserter]] positioned to gather uranium from each conveyor (a [[long handed inserter]] will be needed for the far belt). Each of these inserters deposits their load into a container, from which two more inserters deliver the contents to an [[assembly machine]] making nuclear fuel. An inserter delivers the produced fuel to a third container, from which inserter(s) delivers the fuel to your nuclear reactor. Wire the two inserters gathering from the conveyors to the container each of them is delivering to, and to the tile of conveyor immediately after the tile the inserter is gathering from. Set each inserter&#039;s enable condition to &amp;quot;less than or equal to X amount of uranium&amp;quot;, using the appropriate type of uranium the inserter is gathering and X being the number of reserve uranium desired (optimally, one uranium-235 and nineteen uranium-238, the amount needed to produce nuclear fuel; the amount may be increased if a greater stockpile is desired). Set each conveyor&#039;s enable condition to &amp;quot;greater than or equal to X amount of uranium&amp;quot; in the same manner. Finally, connect the inserters delivering uranium to the assembly machine up to the container the assembly machine is delivering nuclear fuel to, and set each of their enable conditions to &amp;quot;nuclear fuel = 0 (the enable condition can be set to &amp;quot;less than or equal to X amount of nuclear fuel&amp;quot; if a larger stockpile is desired).&lt;br /&gt;
&lt;br /&gt;
This set-up accomplishes the following:&lt;br /&gt;
&lt;br /&gt;
* When there is sufficient nuclear fuel and uranium stockpiled, the inserters will deactivate and the conveyors activate, allowing the uranium to continue down the conveyors to other facilities.&lt;br /&gt;
* When the nuclear fuel stockpile hits zero (or decreases below the desired amount), the inserters delivering to the assembly machine will activate and deliver uranium to resume production of nuclear fuel until quota is reached again.&lt;br /&gt;
* When there is not enough uranium stockpiled to produce a batch of nuclear fuel, the inserters gathering uranium will activate and and resume gathering uranium until they reach their quota. The conveyors carrying uranium will stop past the inserters, cutting off other facilities from that type of uranium until its respective inserter reaches quota.&lt;br /&gt;
* The assembly machine will only be provided with uranium when the stockpile of nuclear fuel hits zero (or decreases below the desired amount), preventing over-production of nuclear fuel and thus over-consumption of uranium.&lt;br /&gt;
&lt;br /&gt;
== Railway network ==&lt;br /&gt;
=== Set train routing ===&lt;br /&gt;
The circuit network can be used to allow deeper micromanagement of [[train]]s by disable/enabling [[train stop]]s. By connecting the stop to the storage container(s) unloading from the train and setting the train stop to be disabled when a desired resource in them is above a certain quantity, any train with this stop on their route will ignore it and continue to their next stop. For example, a train stop where [[iron ore]] is delivered can be disabled when the total amount of iron ore in the containers is above 1,000; when the stockpiled ore drops below 1,000, the stop will be enabled and trains will be permitted to stop there. Conversely, train stops where a resource is picked up can be set to be disabled in the same manner, so that trains will ignore the stop until the stop has enough of the specified resource to be delivered.&lt;br /&gt;
&lt;br /&gt;
Together, these can be used to direct multiple trains to the same stops and better optimize their delivery; they will only go to a stop to pick up cargo when there is a certain amount ready, and will only unload at stops which have fallen below a certain amount in their stockpile. Further control over deliveries can be granted by integrating the inserters loading and unloading from the trains and/or the storage containers into the circuit network to enable or disable them depending on the container&#039;s contents, so that specific amounts of resources are picked up or unloaded.&lt;br /&gt;
&lt;br /&gt;
This system also means that if no stop on a train&#039;s route requires the specified resource, the train will wait until needed. This can be useful for supplies like ammunition being delivered to defensive outposts with turrets; if the turrets have a sufficient stockpile of ammunition their stop will be disabled and the train delivering ammunition will not travel there until more ammunition is needed, preventing rail lines from being clogged and fuel from being consumed.&lt;br /&gt;
&lt;br /&gt;
=== Player safety ===&lt;br /&gt;
The circuit network can be used to ensure the player&#039;s safety when crossing train tracks so they do not get hit. Place [[gate]]s at designated crossing areas and connect an adjacent [[wall]] to [[rail signal]]s near the gate. Set the gate to &amp;quot;read sensor&amp;quot; and the signal to &amp;quot;close signal&amp;quot; with the condition being the signal the gate sends out being &amp;quot;1&amp;quot;. This means that when the gate is closed, the signal will be green and trains can pass freely, but when the player approaches the gate and it opens for them, the train signal will be turned red and trains will be stopped until the player clears the area.&lt;br /&gt;
&lt;br /&gt;
Alternatively, this system can be reversed - by setting the gate to &amp;quot;open gate&amp;quot; and the train signal set to &amp;quot;read signal&amp;quot;, the gate will remain open normally and will close when a train is approaching, preventing the player from crossing until it is safe.&lt;br /&gt;
&lt;br /&gt;
In lieu of gates, the player can connect a [[programmable speaker]] to the train signals to broadcast a warning siren when a train is approaching the area.&lt;br /&gt;
&lt;br /&gt;
== Latches ==&lt;br /&gt;
=== RS latch - single decider version ===&lt;br /&gt;
[https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=14556 This discussion] on the Factorio forums starts with the common 2 decider RS latch version, but the thread [https://forums.factorio.com/viewtopic.php?p=160896#p160896 goes on to explain] why this single decider version is better. In the thread, the latch is described as an SR latch. However, when both inputs are true, the latch will reset, so it is an RS latch.&lt;br /&gt;
==== Backup steam example ====&lt;br /&gt;
This example will turn on the steam generator when the Accumulator charge drops to 20%, but will &amp;quot;latch&amp;quot; (remember) the On state until the accumulator is charged to 90%.&lt;br /&gt;
&lt;br /&gt;
Latching is used to introduce [[Wikipedia:hysteresis|hysteresis]] and avoid the power switch rapidly cycling on and off (as the accumulator falls to 19%, charges to 20%, falls to 19% and so on). &lt;br /&gt;
[[File:SR-01-Layout.png|850px|left]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
{{BlueprintString|bp-string=0eNrFVk1vozAQ/SuVz1ABCaRBq5WqXntKjqsKOTBJR8IGGTtpFPHfd+w0HyU0G6pVewkxnnmemfdmzI4tSgO1QqlZumOYV7Jh6Z8da3AleWnf6W0NLGVrVNrQG49JLuyLvYU/Z63HUBbwxtKw9QZ4zs48o15P1CBObgXkWIDy80osUHJdqTOAUfviMZAaNcI+A7fYZtKIBSiK7YgjoEAjfCgh1wpzv65KoFPqqiHnStrzCdAPA49t6Rm1NrYOWjQY7QrY6FQZwcvyX1jJFajxEYrnuRGmdGW6DCe+jx1KcB9TDYl1raoyW8ArXyM5kFVldG10djObj6zdI0kKHp2Mdiy0PysFIM8pwYKldHyOKjeo3TI8y8Wup93tl7Yv3fiaOC6zjt6z9uk4VqDaR+rY7CvBO2ZGewUec1qiaobVxaE3mtseiwK7EjVXLsaU/SKPobWe7zHrLYVmpM6WqhIZSsJg6ZKXDQyiYkzF9Vhk9xUU3d3kNiaSQUwEB/l9Hw+uZg1YjGzYiPpA1+/vpKuHjk7fRNf7JrJTsZf05MLwoIFbzLvtOvlEFZNjKepqQ5poNqjz10s9jA6N+fk8Ohx/FMFXNXDqxeCC20F901vCJxN07UjVG9K4+x9YQp5M2LUZfbTpq+XDKRsNnG4cuULZcz089HZWD+D0a8Pz52bnNPgPzTj76dlJAnDfNenZp5fHSr4ACp/NZ3fPnHrkDt64qN31vwbVuFIn43GUjCdxHIVt+xcL2lBp}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-02-Accumulator.png|left]]Accumulator outputs the current charge level as % on signal [[File:Signal-A.png|21px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-03-RangeDeciders.png|left]]First decider outputs &amp;quot;Set&amp;quot; ([[File:Signal-S.png|21px]] = 1) if Accumulator is less than 20%.&lt;br /&gt;
Second decider outputs &amp;quot;Reset&amp;quot; ([[File:Signal-R.png|21px]] = 1) once Accumulator is more than 90% full.&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-04-SRLatch.png|left]]&lt;br /&gt;
&lt;br /&gt;
==== RS Latch configuration ====&lt;br /&gt;
&#039;&#039;&#039;The central decider and green feedback wire is the actual RS Latch.&#039;&#039;&#039;&lt;br /&gt;
It latches the Set signal [[File:Signal-S.png|21px]] until the Reset signal [[File:Signal-R.png|21px]] is received (and vice-versa).&amp;lt;br /&amp;gt;&lt;br /&gt;
NB: the latch expects binary inputs ([[File:Signal-S.png|21px]] &amp;amp; [[File:Signal-R.png|21px]] must be 0 or 1) - this is why the previous two deciders are required.&amp;lt;br /&amp;gt;&lt;br /&gt;
When both inputs are true, the reset signal takes priority and the latch resets. This means it is an RS latch instead of an SR latch.&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[File:SR-05-PowerSwitch.png|left]]The Power switch isolates the generator from the rest of the factory until [[File:Signal-S.png|21px]] = 1&lt;br /&gt;
&amp;lt;br clear=all&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RS latch ===&lt;br /&gt;
[[File:SRLatch.png|left|430px]]&lt;br /&gt;
* This should be familiar to anyone with any background in electronics. &lt;br /&gt;
* The signal is set and reset with the [[constant combinator]]s on the left by setting an A=1 signal. &lt;br /&gt;
* The latch &amp;quot;remembers&amp;quot; which one was last set and the light stays on until another signal is received.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Usage of RS latch ===&lt;br /&gt;
[[File:SRlatchinaction.png|left|430px]]&lt;br /&gt;
* Here is an example of how you could use an RS latch.&lt;br /&gt;
* The two extra [[decider combinator]]s provide the set and reset conditions. &lt;br /&gt;
* Petroleum gas &amp;lt; 50 and petroleum gas &amp;gt; 100. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Belt only latch ===&lt;br /&gt;
[[File:BeltLatch.png|left|430px]]&lt;br /&gt;
* To make it work, &#039;&#039;&#039;3&#039;&#039;&#039; pieces of raw wood must be placed on the inside lane of the belt.&lt;br /&gt;
* It will have higher latency than the combinator version, but in most situations you will not notice the difference. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
[[File:5digitDisplay.png|left|400x400px]]&lt;br /&gt;
=== Numerical Display ===&lt;br /&gt;
* Each digit is driven by its own [[green wire]], that wire holds 15 signals, one for each lamp used in the digit.&lt;br /&gt;
* [[constant combinator]]s are used to define which lamp should light up for each value. &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BWDisplay.png|left|400x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Black and White Grid Display ===&lt;br /&gt;
* Each row has its own [[red wire]] connection and within that row each light has a numbered signal 0-9.&lt;br /&gt;
* We turn each light on by just setting or clearing the relevant signal.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MultiColoredDisplay.png|left|400x400px]]&lt;br /&gt;
=== Multicolor Display by DaveMcW ===&lt;br /&gt;
* To understand how this works, you first need to understand how color lights choose which color to light up when there are multiple colored signals. &lt;br /&gt;
* The [[lamp]] will light up with the colored signal that is greater than zero and earliest in this list: red, green, blue, yellow, pink, cyan, white.  &lt;br /&gt;
* We have a [[red wire]] per column, that wire has each of the colored signals on it at different values and a numbered signal for each row. &lt;br /&gt;
* There is a [[arithmetic combinator]] for each cell that subtracts the &amp;quot;row&amp;quot; value from each of the colored signals. &lt;br /&gt;
* And this enables us to choose the color for each cell. &lt;br /&gt;
* Simple!&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Arithmetic combinator]]&lt;br /&gt;
* [[Constant combinator]]&lt;br /&gt;
* [[Decider combinator]]&lt;br /&gt;
* [[Circuit network]]&lt;/div&gt;</summary>
		<author><name>Sir Fendi</name></author>
	</entry>
</feed>