<?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=Atraps003</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=Atraps003"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Atraps003"/>
	<updated>2026-04-22T01:56:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=217786</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=217786"/>
		<updated>2026-04-08T21:06:31Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: Add command large-blueprint-size&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|grave}} key (&amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt;). This is the key located to the left of the &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; key, above &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;.&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, platform_tile_building_blocked, turret_out_of_ammo, turret_fire, custom, no_storage, train_out_of_fuel, train_no_path, no_platform_storage, collector_path_blocked, unclaimed_cargo, no_roboport_storage, pipeline_overextended.&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 [surface]&lt;br /&gt;
| /evolution nauvis&lt;br /&gt;
| Prints info about the alien evolution factor for all surfaces or optionally only the given one.&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&lt;br /&gt;
| /config&lt;br /&gt;
| Opens the server configuration GUI.&lt;br /&gt;
| Yes&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;
| /large-blueprint-size &amp;lt;get/set&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
| /large-blueprint-size set 33222111&lt;br /&gt;
| Sets or reads the threshold for what is a &amp;quot;large&amp;quot; blueprint (in bytes). Copying large blueprints will use the &amp;quot;large&amp;quot; version of the input action which can be optionally allowed/disabled through the permissions system. The default size is 10485760 bytes (10 MiB).&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 [all/&amp;lt;planet-name&amp;gt;/&amp;lt;platform-name&amp;gt;/off]&lt;br /&gt;
| Researches all technologies and enables cheat mode (allowing free crafting of any item). &lt;br /&gt;
* Using the &#039;&#039;&#039;all&#039;&#039;&#039; option also gives the player some additional items.&lt;br /&gt;
* Specifying a &#039;&#039;planet-name&#039;&#039; or &#039;&#039;platform-name&#039;&#039; also moves the player to the origin of the specified planet or platform.&lt;br /&gt;
* Using the &#039;&#039;&#039;off&#039;&#039;&#039; option turns cheat mode off.&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;
In freeplay, the farthest you can zoom out is 0.3. In the map editor, it is 0.1. Smaller zoom values will be clamped.&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;fission-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fission-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fission-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;
Adding [[Quality|higher quality]] items looks like this:&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;, quality=&amp;quot;legendary&amp;quot;, count=100}&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 &amp;quot; .. speaker.gps_tag)&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;
=== Add new water patch ===&lt;br /&gt;
&lt;br /&gt;
This creates a small pond in a 4x2 square.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c&lt;br /&gt;
local waterTiles = {}&lt;br /&gt;
for y=2,4 do&lt;br /&gt;
 for x=-2,2 do&lt;br /&gt;
  table.insert(waterTiles, {name=&amp;quot;water&amp;quot;, position={game.player.position.x+x, game.player.position.y+y}})&lt;br /&gt;
 end&lt;br /&gt;
 game.player.surface.set_tiles(waterTiles)&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(prototypes.get_entity_filtered{{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/MapGenSize.html 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/MapGenSize.html 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 [https://lua-api.factorio.com/latest/prototypes/LinkedBeltPrototype.html 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;
=== Deactivate cars and tanks ===&lt;br /&gt;
The [[car]] and [[tank]] can be used like larger, 2x3 chests, but doing this at a large scale can have a negative performance impact. Deactivating them reduces their performance impact, though it also prevents them from being driven or moved by belts.&lt;br /&gt;
&lt;br /&gt;
Deactivate selected car or tank (hover with mouse then enter command):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.selected.active = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deactivate all cars and tanks on surface:&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;car&amp;quot;}) do&lt;br /&gt;
  v.active = false&lt;br /&gt;
end&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;].set_evolution_factor(X, game.player.surface)&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;
Instead of the command, it is also possible to use a GUI in the [[map editor]] to changing map generation settings mid game. Access the map editor with &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt;, go to the &amp;quot;Surfaces&amp;quot; tab and click &amp;quot;Edit map gen settings&amp;quot;.&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;
To teleport to a different planet / surface, use:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.teleport({X, Y}, &#039;surface_name&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;
game.player.force.character_resource_reach_distance_bonus = reach&lt;br /&gt;
game.player.force.character_item_drop_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; &amp;quot; .. corpse.gps_tag)&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-7&#039;].level = 100&lt;br /&gt;
/c game.player.force.technologies[&#039;mining-productivity-3&#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;
=== Enable ghosts for destroyed entities ===&lt;br /&gt;
This is normally unlocked through researching [[construction robotics (research)]], but this command unlocks it independent of the research.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.force.create_ghost_on_entity_death = true&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 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(storage))&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 helpers.write_file(&amp;quot;mods.txt&amp;quot;, serpent.block(script.active_mods))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exporting production statistics ===&lt;br /&gt;
Export production statistics out of the game into external JSON files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;/c local timescales = {&lt;br /&gt;
  [defines.flow_precision_index.five_seconds] = &amp;quot;5s&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.one_minute] = &amp;quot;1min&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.ten_minutes] = &amp;quot;10min&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.one_hour] = &amp;quot;1h&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.ten_hours] = &amp;quot;10h&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.fifty_hours] = &amp;quot;50h&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.two_hundred_fifty_hours] = &amp;quot;250h&amp;quot;,&lt;br /&gt;
  [defines.flow_precision_index.one_thousand_hours] = &amp;quot;1000h&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
for surface_name, _ in pairs(game.surfaces) do&lt;br /&gt;
  local flowdata = game.player.force.get_item_production_statistics(surface_name)&lt;br /&gt;
  for timescale_index, timescale_name in pairs(timescales) do&lt;br /&gt;
    local tbl = {}&lt;br /&gt;
    local totals = flowdata.input_counts&lt;br /&gt;
    for item_name, _ in pairs(totals) do&lt;br /&gt;
      local row = {item_name}&lt;br /&gt;
      for i = 1, 300 do&lt;br /&gt;
        table.insert(row, flowdata.get_flow_count{name=item_name, category=&amp;quot;input&amp;quot;, precision_index=timescale_index, sample_index=i, count=true})&lt;br /&gt;
      end&lt;br /&gt;
      table.insert(tbl, row)&lt;br /&gt;
    end&lt;br /&gt;
    helpers.write_file(&amp;quot;stats-&amp;quot; .. surface_name .. &amp;quot;-&amp;quot; .. timescale_name .. &amp;quot;.json&amp;quot;, helpers.table_to_json(tbl), false)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
game.player.print(&amp;quot;Export done&amp;quot;)&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>Atraps003</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=212801</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=212801"/>
		<updated>2025-03-20T20:24:05Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: &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|grave}} key (&amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt;). This is the key located to the left of the &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; key, above &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;.&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;
{| 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&lt;br /&gt;
| /config&lt;br /&gt;
| Opens the server configuration GUI.&lt;br /&gt;
| Yes&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 [all/&amp;lt;planet-name&amp;gt;/&amp;lt;platform-name&amp;gt;/off]&lt;br /&gt;
| Researches all technologies and enables cheat mode (allowing free crafting of any item). &lt;br /&gt;
* Using the &#039;&#039;&#039;all&#039;&#039;&#039; option also gives the player some additional items.&lt;br /&gt;
* Specifying a &#039;&#039;planet-name&#039;&#039; or &#039;&#039;platform-name&#039;&#039; also moves the player to the origin of the specified planet or platform.&lt;br /&gt;
* Using the &#039;&#039;&#039;off&#039;&#039;&#039; option turns cheat mode off.&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;
In freeplay, the farthest you can zoom out is 0.3. In the map editor, it is 0.1. Smaller zoom values will be clamped.&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;fission-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fission-reactor-equipment&amp;quot;})&lt;br /&gt;
	p_armor.put({name = &amp;quot;fission-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 &amp;quot; .. speaker.gps_tag)&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;
=== Add new water patch ===&lt;br /&gt;
&lt;br /&gt;
This creates a small pond in a 4x2 square.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c&lt;br /&gt;
local waterTiles = {}&lt;br /&gt;
for y=2,4 do&lt;br /&gt;
 for x=-2,2 do&lt;br /&gt;
  table.insert(waterTiles, {name=&amp;quot;water&amp;quot;, position={game.player.position.x+x, game.player.position.y+y}})&lt;br /&gt;
 end&lt;br /&gt;
 game.player.surface.set_tiles(waterTiles)&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(prototypes.get_entity_filtered{{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 [https://lua-api.factorio.com/latest/prototypes/LinkedBeltPrototype.html 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;].set_evolution_factor(X, game.player.surface)&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;
Instead of the command, it is also possible to use a GUI in the [[map editor]] to changing map generation settings mid game. Access the map editor with &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt;, go to the &amp;quot;Surfaces&amp;quot; tab and click &amp;quot;Edit map gen settings&amp;quot;.&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;
To teleport to a different planet / surface, use:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
/c game.player.teleport({X, Y}, &#039;surface_name&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;
game.player.force.character_resource_reach_distance_bonus = reach&lt;br /&gt;
game.player.force.character_item_drop_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; &amp;quot; .. corpse.gps_tag)&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 helpers.write_file(&amp;quot;mods.txt&amp;quot;, serpent.block(script.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>Atraps003</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=196804</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=196804"/>
		<updated>2024-04-07T18:05:34Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: /* Multiplayer commands */&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&lt;br /&gt;
| /config&lt;br /&gt;
| Opens the server configuration GUI.&lt;br /&gt;
| Yes&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>Atraps003</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Version_history/1.1.0&amp;diff=193352</id>
		<title>Version history/1.1.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Version_history/1.1.0&amp;diff=193352"/>
		<updated>2023-09-01T07:48:17Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: /* Sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1.1.89 ==&lt;br /&gt;
Date: 16.08.2023&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
* Migrated the prototype modding documentation from the wiki to the docs website, enabling a more advanced presentation, an offline version, and machine-readability of the underlying format. They can be found at https://lua-api.factorio.com/latest/index-prototype.html.&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Added controller vibrations to some actions.&lt;br /&gt;
* Added option to capture system mouse cursor when using a controller. This fixes cursor teleporting when using both controller and mouse but locks the mouse cursor to the game window. ([https://forums.factorio.com/107969 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a desync between ARM and x86 platforms when calling math.atan2() Lua function with NaN arguments.&lt;br /&gt;
* Fixed a player could not obtain achievements if it was in game for longer than 9942h. ([https://forums.factorio.com/107893 more])&lt;br /&gt;
* Fixed blueprint setup GUI cutting off at the bottom at certain UI scales. ([https://forums.factorio.com/107903 more])&lt;br /&gt;
* Fixed that LuaGuiElement type &#039;slider&#039; didn&#039;t enable/disable correctly when first created. ([https://forums.factorio.com/107991 more])&lt;br /&gt;
* Fixed a crash when clearing the cursor stack through script when using capsules. ([https://forums.factorio.com/107862 more])&lt;br /&gt;
* Fixed a crash when viewing the map preview when one or more noise expressions are invalid. ([https://forums.factorio.com/89023 more])&lt;br /&gt;
* Fixed that the game could freeze if there were too many auto-placeable entities defined. ([https://forums.factorio.com/108048 more])&lt;br /&gt;
* Fixed cursor sometimes teleporting to nearby entities when selecting entities to be built from the Quick panel with controller, in multiplayer.&lt;br /&gt;
* Fixed that damage trigger effects would not pass the damage source when doing damage. ([https://forums.factorio.com/108224 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added FurnacePrototype::cant_insert_at_source_message_key. ([https://forums.factorio.com/108146 more])&lt;br /&gt;
* Added game_controller_vibration_data to sounds.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity::copper_connection_definitions.&lt;br /&gt;
* LuaGameScript::kick_player and ban_player no longer accept LocalisedString for reason parameter but only regular strings.&lt;br /&gt;
* LuaSurface::map_gen_settings can be changed during on_chunk_generated. ([https://forums.factorio.com/108100 more])&lt;br /&gt;
* Added LuaEntityPrototype::vertical_selection_shift.&lt;br /&gt;
* Added LuaEntity::is_headed_to_trains_front read.&lt;br /&gt;
* Added LuaEntity::draw_data read for rolling stock.&lt;br /&gt;
== 1.1.88 ==&lt;br /&gt;
Date: 20.07.2023&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Automatic UI scale on Steam Deck will never be lower than 100%&lt;br /&gt;
* Steam on-screen keyboard will automatically appear on Steam Deck and in Steam Big Picture mode when using a controller.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that notch slider tooltips would not show in some cases. ([https://forums.factorio.com/107602 more])&lt;br /&gt;
* Fixed that updating mods with dependencies did not work correctly in some cases. ([https://forums.factorio.com/107673 more])&lt;br /&gt;
* Fixed music not playing after setting preferred audio output device. ([https://forums.factorio.com/107719 more])&lt;br /&gt;
* Fixed that any error with an audio stream would crash the game, improved audio stream error handling in general.&lt;br /&gt;
* Fixed a hang in audio streams. ([https://forums.factorio.com/107792 more])&lt;br /&gt;
* Fixed Hungarian keyboard layout not being handled correctly. ([https://forums.factorio.com/107849 more])&lt;br /&gt;
== 1.1.87 ==&lt;br /&gt;
Date: 04.07.2023&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Changed --dump-data to write infinite values as the string &amp;quot;inf&amp;quot; and &amp;quot;-inf&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed LuaGameScript::check_prototype_translations() did not work correctly for manual localised strings with parameters. ([https://forums.factorio.com/107573 more])&lt;br /&gt;
* Fixed it was possible to drop cursor items through ghosts. ([https://forums.factorio.com/107601 more])&lt;br /&gt;
* Fixed a crash when fast replacing loader into a loader with fluid energy source when the loader type needs to be changed. ([https://forums.factorio.com/107591 more])&lt;br /&gt;
* Fixed LuaFluidBox::get_pipe_connections() returning target_index as zero-indexed.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added target_fluidbox_index to PipeConnection.&lt;br /&gt;
* Renamed PipeConnection&#039;s target_index to target_pipe_connection_index.&lt;br /&gt;
== 1.1.86 ==&lt;br /&gt;
Date: 28.06.2023&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* It is now possible to blueprint entities of friendly forces.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Pick up items&amp;quot; will no longer fire at the same time as other actions. This fixes character picking up items when flipping blueprints. ([https://forums.factorio.com/106680 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed not being able to select assembling machine recipe if Craft, Craft 5 and Craft all were not bound to any button ([https://forums.factorio.com/106704 more])&lt;br /&gt;
* Fixed another crash when downgrading ghost of assembling machine when target machine cannot craft recipe due to missing pipes.&lt;br /&gt;
* Fixed that you could blueprint enemy force tile ghosts.&lt;br /&gt;
* Fixed that the mod manager would occasionally download updates that are incompatible with the current game version. ([https://forums.factorio.com/106719 more])&lt;br /&gt;
* Fixed missing support for wind and ambient category for sound prototypes. ([https://forums.factorio.com/106775 more])&lt;br /&gt;
* Fixed selection tool rendering in the chart for ghost rails. ([https://forums.factorio.com/106801 more])&lt;br /&gt;
* Fixed enemy expansion would fail to expand into chunks with entities invisible to the enemy. ([https://forums.factorio.com/106787 more])&lt;br /&gt;
* Fixed some controls allowing binding to buttons that would not work. ([https://forums.factorio.com/106721 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added dash_offset to LuaRendering::draw_line.&lt;br /&gt;
* Added LuaFluidBox::get_fluid_system_contents() method.&lt;br /&gt;
* Added LuaFluidBox::get_pipe_connections() method.&lt;br /&gt;
== 1.1.85 ==&lt;br /&gt;
Date: 16.06.2023&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Allow &amp;quot;Pick up items&amp;quot; and &amp;quot;Drop items&amp;quot; actions to be fired at the same time as other actions, in keyboard and mouse mode. ([https://forums.factorio.com/106680 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed &amp;quot;Enter/leave vehicle&amp;quot; shortcut never allowing other shortcuts to use the same key combination. ([https://forums.factorio.com/106663 more])&lt;br /&gt;
* Fixed a crash when downgrading ghost of assembling machine when target machine cannot craft recipe due to missing pipes. ([https://forums.factorio.com/106667 more])&lt;br /&gt;
* Fixed IME no longer working on Windows. ([https://forums.factorio.com/106681 more])&lt;br /&gt;
* Fixed on_entity_color_changed not being raised for some entities. ([https://forums.factorio.com/106677 more])&lt;br /&gt;
* Fixed a crash when trying to start sound fade out when there are no audio devices. ([https://forums.factorio.com/106685 more])&lt;br /&gt;
* Fixed that Factorio wouldn&#039;t load on macOS versions prior to 10.15. ([https://forums.factorio.com/106684 more])&lt;br /&gt;
== 1.1.84 ==&lt;br /&gt;
Date: 15.06.2023&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a desync when reading cursor_display_location in on_gui_click.&lt;br /&gt;
* Fixed macOS release missing files due to a third party library bug.&lt;br /&gt;
== 1.1.83 ==&lt;br /&gt;
Date: 14.06.2023&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
* Added controller(gamepad) support. Change input method in Settings-&amp;gt;Controls to play using a controller.&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Added contextual hotkey hints. Enable it in Settings-&amp;gt;Interface. Useful when playing using a controller.&lt;br /&gt;
* When connecting wires to entities with multiple sides(combinator, power switch), the hovered side is highlighted.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Improved sounds fading in and out on game resume and pause.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that migrating color type mod settings did not work correctly. ([https://forums.factorio.com/106445 more])&lt;br /&gt;
* Fixed cancel deconstruction of pipe would not remove colliding pipe to ground ghosts.&lt;br /&gt;
* Fixed a crash related to construction robots delivering items and upgrading entities in the same tick.&lt;br /&gt;
* Fixed LuaSurface::force_generate_chunk_requests() did not respect generate_with_lab_tiles. ([https://forums.factorio.com/106484 more])&lt;br /&gt;
* Fixed changing recipe from one using custom fluidbox indexes into one not using custom fluidbox indexes could result in incorrect fluidbox layout. ([https://forums.factorio.com/106428 more])&lt;br /&gt;
* Fixed some sounds (for example sounds from programmable speaker or rocket silo) not fading out on pause.&lt;br /&gt;
* Fixed a crash when trying to change direction of a loader simulation with fluid energy source. ([https://forums.factorio.com/106562 more])&lt;br /&gt;
* Fixed a loader with energy source would not consume all the energy from internal buffer preventing out of fuel icon from showing up. ([https://forums.factorio.com/106565 more])&lt;br /&gt;
* Fixed god/editor/spectator/ghost controller movement in latency when game speed is greater than 1.&lt;br /&gt;
* Fixed building underground belt over transport belt with target direction set would create incorrect undo action. ([https://forums.factorio.com/106602 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added CustomInputPrototype::controller_key_sequence and CustomInputPrototype::controller_alternative_key_sequence.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaModSettingPrototype::type read.&lt;br /&gt;
* Added on_entity_color_changed.&lt;br /&gt;
* Added on_player_input_method_changed.&lt;br /&gt;
* Added defines.game_controller_interaction.&lt;br /&gt;
* Added LuaGuiElement::game_controller_interaction read/write.&lt;br /&gt;
* Added LuaPlayer::input_method read.&lt;br /&gt;
* Added LuaSurface::find_closest_logistic_network_by_position.&lt;br /&gt;
* Added optional area to LuaSurface::get_connected_tiles.&lt;br /&gt;
* Added cursor_display_location to custom input events and on_gui_click.&lt;br /&gt;
== 1.1.82 ==&lt;br /&gt;
Date: 22.05.2023&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Disabled the Command+W keyboard shortcut for closing the game window on Macs. Command+Q will still quit the application. ([https://forums.factorio.com/105655 more])&lt;br /&gt;
* On macOS, left and right variants of the Command and Option keys are differentiated when not bound as a modifier.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a desync between ARM and x86 platforms when the pathfinder was overloaded. ([https://forums.factorio.com/105953 more])&lt;br /&gt;
* Fixed a crash when trivial smoke was defined with bad movement speed values. ([https://forums.factorio.com/105970 more])&lt;br /&gt;
* Fixed that startup color mod settings would appear as changeable during runtime.&lt;br /&gt;
* Fixed multiple forces being unable to order deconstruction of the same forceless entity. ([https://forums.factorio.com/100864 more])&lt;br /&gt;
* Fixed deconstruction markers being visible to forces which did not order the deconstruction.&lt;br /&gt;
* Fixed inconsistent rounding in tooltips caused by floating-point inaccuracy. ([https://forums.factorio.com/105661 more])&lt;br /&gt;
* Fixed that upgrading modules with fast-transfer could cause the returned modules to overlap with the inventory hand.&lt;br /&gt;
* Fixed not being able to type in textboxes on steam deck. ([https://forums.factorio.com/105988 more])&lt;br /&gt;
* Fixed that dump-icon-sprites did not work correctly for icons using shift values. ([https://forums.factorio.com/106069 more])&lt;br /&gt;
* Fixed ghosts could be removed even if they do not collide with built entity. ([https://forums.factorio.com/106071 more])&lt;br /&gt;
* Fixed a crash when removing modded pipe-to-ground that connects to a shifted pipe-to-ground. ([https://forums.factorio.com/106105 more])&lt;br /&gt;
* Fixed a crash when a mod sets a train&#039;s schedule while a temporary stop with no wait conditions is being removed.&lt;br /&gt;
* Fixed a crash when saving the game after a server disconnect with non-blocking saving enabled.&lt;br /&gt;
* Fixed that blueprints could have duplicate logistic filters. ([https://forums.factorio.com/105984 more])&lt;br /&gt;
* Fixed that LocalisedString ignored &#039;correct&#039; translation status of its parameters. ([https://forums.factorio.com/104466 more])&lt;br /&gt;
* Fixed that some PNGs loaded darker than intended on Macs, affecting some mods.&lt;br /&gt;
* Fixed remapped modifier keys not registering properly in some environments. ([https://forums.factorio.com/106031 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added optional surface parameter to LuaForce::rechart.&lt;br /&gt;
* Added LuaGuiElement::auto_toggle read/write.&lt;br /&gt;
* Added LuaGuiElement::toggled read/write.&lt;br /&gt;
* BoundingBox accepts orientation from lua.&lt;br /&gt;
== 1.1.81 ==&lt;br /&gt;
Date: 19.04.2023&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Updated SDL to version 2.26.5.&lt;br /&gt;
* Replace &amp;quot;Version&amp;quot; column in mods install menu with &amp;quot;Last highlighted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed wind sound not changing its volume with zoom level.&lt;br /&gt;
* Fixed that productivity values did not show correctly in some cases. ([https://forums.factorio.com/105814 more])&lt;br /&gt;
* Fixed texture compression artefacts on Apple Silicon Macs. ([https://forums.factorio.com/104219 more])&lt;br /&gt;
* Fixed that playing music with master volume and music volume set to 100% would mute all other sounds.&lt;br /&gt;
* Fixed a crash when unit has a composite command with a dead unit group. ([https://forums.factorio.com/105935 more])&lt;br /&gt;
* Fixed that recipe category notification icons would draw under the category icon. ([https://forums.factorio.com/105910 more])&lt;br /&gt;
* Fixed that inserting invalid items into blueprint books through script would crash. ([https://forums.factorio.com/105689 more])&lt;br /&gt;
* Fixed being unable to copy or paste extremely large blueprint strings on Linux ([https://forums.factorio.com/105915 more])&lt;br /&gt;
== 1.1.80 ==&lt;br /&gt;
Date: 30.03.2023&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed LuaRendering::draw_sprite and draw_animation throwing an exception when orientation_target was not given.&lt;br /&gt;
== 1.1.79 ==&lt;br /&gt;
Date: 30.03.2023&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash when maximum-sounds is set below 16, for example by using --disable-audio or on failed audio initialization. ([https://forums.factorio.com/105663 more])&lt;br /&gt;
* Fixed that some effects would sometimes be performed twice in multiplayer when FPS is lower than UPS.&lt;br /&gt;
* Fixed LuaSurface::find_entities_filtered would not accept force indexes. ([https://forums.factorio.com/105688 more])&lt;br /&gt;
* Fixed that solar panels on multiple surfaces would all produce electricity based on a daytime of one of the surfaces when they were part of a single electric network with a script created wire between surfaces. ([https://forums.factorio.com/96830 more])&lt;br /&gt;
* Fixed that loaders would spill their items when fast-replaced or upgraded.&lt;br /&gt;
* Fixed valid path searches failing because a previously failed path with a wider bounding box was cached. ([https://forums.factorio.com/104580 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaRendering::use_target_orientation for Sprite, Animation, and Polygon.&lt;br /&gt;
* Added on_gui_hover, on_gui_leave.&lt;br /&gt;
* Added LuaGuiElement::raise_hover_events read/write.&lt;br /&gt;
== 1.1.78 ==&lt;br /&gt;
Date: 20.03.2023&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* In the blueprint preview window, deselecting all train fuel items disables the &#039;Train fuel&#039; option. (This was already the case for modules. https://forums.factorio.com/102804)&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* On macOS, when AZERTY keyboard layout is used, the shortcut for Undo will default to Cmd + Z instead of Cmd + W. ([https://forums.factorio.com/105590 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed loader would ignore ElectricEnergySourcePrototype::buffer_capacity. ([https://forums.factorio.com/105438 more])&lt;br /&gt;
* Fixed rotating a loader would not update heat connections if it has any. ([https://forums.factorio.com/105441 more])&lt;br /&gt;
* Fixed migrating loader energy sources between types could fail to update energy source buffer size. ([https://forums.factorio.com/105440 more])&lt;br /&gt;
* Fixed migrating inserter energy source between types could fail to update energy source buffer size.&lt;br /&gt;
* Fixed migrating pump energy source between types could fail to update energy source buffer size.&lt;br /&gt;
* Fixed migrating radar energy source between types could fail to update energy source buffer size.&lt;br /&gt;
* Fixed migrating reactor energy source between types could fail to update energy source buffer size.&lt;br /&gt;
* Fixed double sound when transferring crafting materials from cursor stack into crafting machine or when taking items from the result slot.&lt;br /&gt;
* Fixed a desync related to fluid energy source energy extraction when floating point rounding errors are involved.&lt;br /&gt;
* Fixed a bad error message when registering custom hotkey events with filters. ([https://forums.factorio.com/105281 more])&lt;br /&gt;
* Fixed that color mod settings wouldn&#039;t migrate to the default value. ([https://forums.factorio.com/105439 more])&lt;br /&gt;
* Fixed that escape did not work to close the user-login GUI. ([https://forums.factorio.com/103548 more])&lt;br /&gt;
* Fixed that the CustomGuiElement &amp;quot;switch&amp;quot; type would fire the click event twice. ([https://forums.factorio.com/102950 more])&lt;br /&gt;
* Fixed a rare crash related to watching replays. ([https://forums.factorio.com/104099 more])&lt;br /&gt;
* Fixed consistency issue related to building loader ghosts over existing loader ghosts. ([https://forums.factorio.com/102756 more])&lt;br /&gt;
* Fixed spilling items would fail to spread items when surface had width or height set to more than 2^31. ([https://forums.factorio.com/105493 more])&lt;br /&gt;
* Fixed an AI Pathfinder desync when changing goal_pressure_ratio while the pathfinder was running. ([https://forums.factorio.com/104323 more])&lt;br /&gt;
* Fixed land mine was not colliding with rail signals. ([https://forums.factorio.com/103683 more])&lt;br /&gt;
* Fixed a crash when disconnecting and reconnecting a display on Wayland ([https://forums.factorio.com/105489 more])&lt;br /&gt;
* Fixed inconsistent clipboard behavior on Wayland ([https://forums.factorio.com/105489 more])&lt;br /&gt;
* Fixed that disabling permissions to move didn&#039;t work correctly in some cases ([https://forums.factorio.com/105478 more])&lt;br /&gt;
* Fixed furnace would stop crafting when recipe could not be deduced from ingredients and technology effects were being reset. ([https://forums.factorio.com/104896 more])&lt;br /&gt;
* Fixed a crash related to script creation of entities. ([https://forums.factorio.com/105531 more])&lt;br /&gt;
* Fixed module and fuel entries disappearing from blueprint preview when selectively disabled, instead of showing up with count 0. ([https://forums.factorio.com/102804 more])&lt;br /&gt;
* Fixed automatic targeting with spidertrons did not work if all ammo slots were not filled. ([https://forums.factorio.com/105176 more])&lt;br /&gt;
* Fixed technology title not updating when technology was researched. ([https://forums.factorio.com/102282 more])&lt;br /&gt;
* Fixed horizontal lines ending up too short when close to line-wrapping labels ([https://forums.factorio.com/102254 more])&lt;br /&gt;
* Fixed a crash related to migrating spider vehicle guns. ([https://forums.factorio.com/105552 more])&lt;br /&gt;
* Fixed loader ghosts would connect to transport belts even when they had different forces. ([https://forums.factorio.com/105518 more])&lt;br /&gt;
* Fixed a crash when moving blueprint book to blueprint library when there is also another book that will get under the cursor and tooltips are showing. ([https://forums.factorio.com/102613 more])&lt;br /&gt;
* Fixed that &amp;quot;item-with-inventory&amp;quot; would allow setting inventory_size to &amp;quot;dynamic&amp;quot;. ([https://forums.factorio.com/102823 more])&lt;br /&gt;
* Fixed balance of several audio files. ([https://forums.factorio.com/103870 more])&lt;br /&gt;
* Fixed InserterPrototype would accept too large stack size bonuses. ([https://forums.factorio.com/105627 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added &#039;entity-ghost&#039; and &#039;tile-ghost&#039; selection tool modes.&lt;br /&gt;
* Added chart.zoom_threshold_to_draw_spider_path utility constant.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added optional character parameter to LuaSurface::create_entity. Will simulate fast replacing using the character.&lt;br /&gt;
* Added LuaEntityPrototype::max_power_output read support for burner generators.&lt;br /&gt;
* Added LuaItemStack::use_capsule.&lt;br /&gt;
* Added LuaEntity::beacons_count read.&lt;br /&gt;
* Added LuaEntity::get_beacons().&lt;br /&gt;
* Added LuaEntity::get_beacon_effect_receivers().&lt;br /&gt;
== 1.1.77 ==&lt;br /&gt;
Date: 03.03.2023&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* Added support for Wayland on Linux. To enable it, set SDL_VIDEODRIVER=wayland in your environment. (thanks to raiguard)&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Music no longer fades out on technology screen. ([https://forums.factorio.com/104760 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed &#039;on_string_translated&#039; event having incorrect localised_string parameter for fallback groups.&lt;br /&gt;
* Fixed that LuaPlayer::cursor_stack_temporary returned false for pasted blueprints. ([https://forums.factorio.com/104354 more])&lt;br /&gt;
* Fixed size issues related to mod relative GUIs. ([https://forums.factorio.com/98151 more])&lt;br /&gt;
* Fixed that item request proxies could be created through script with a count of 0. ([https://forums.factorio.com/104886 more])&lt;br /&gt;
* Fixed that electric energy interface entities didn&#039;t use the render layer defined in the prototype for animations. ([https://forums.factorio.com/105000 more])&lt;br /&gt;
* Fixed a memory corruption issue when saving under linux with async saving enabled. ([https://forums.factorio.com/104600 more])&lt;br /&gt;
* Fixed ping shown for a server in the multiplayer games browser sometimes not updating correctly.&lt;br /&gt;
* Fixed the game would fail to load sprites with some mods when max texture size was set to 2048. ([https://forums.factorio.com/104853 more])&lt;br /&gt;
* Fixed centrifuge uranium glow effect flickering on and off on arm64 builds.&lt;br /&gt;
* Fixed a scripting error in tips and tricks simulations related to mod migrations. ([https://forums.factorio.com/104656 more])&lt;br /&gt;
* Fixed a crash when downgrading specific entities in multiplayer. ([https://forums.factorio.com/105005 more])&lt;br /&gt;
* Fixed that LuaItemStack::transfer_stack didn&#039;t work correctly for inventories that went over normal item stack limits. ([https://forums.factorio.com/105066 more])&lt;br /&gt;
* Fixed TransportLine consistency issue when changing force of a linked-belt. ([https://forums.factorio.com/105182 more])&lt;br /&gt;
* Fixed a crash related to custom map generation. ([https://forums.factorio.com/105215 more])&lt;br /&gt;
* Fixed a crash with SDL&#039;s X11_XInput2. ([https://forums.factorio.com/104267 more])&lt;br /&gt;
* Fixed programmable speaker playing incorrect sound in certain scenarios. ([https://forums.factorio.com/105255 more])&lt;br /&gt;
* Fixed that create_spidertron() didn&#039;t scale lights correctly. ([https://forums.factorio.com/101085 more])&lt;br /&gt;
* Fixed LuaFluidBox::get_prototype would try to return fluidbox prototypes ignoring layout of fluidboxes when part of crafting machine. ([https://forums.factorio.com/105338 more])&lt;br /&gt;
* Fixed inserter could start moving to the drop target while still being in the pickup mode. ([https://forums.factorio.com/104397 more])&lt;br /&gt;
* Fixed multiple personal roboports discharging. ([https://forums.factorio.com/105358 more])&lt;br /&gt;
* Fixed that LuaLogisticNetwork::insert() wouldn&#039;t insert all of the requested items in some cases. ([https://forums.factorio.com/103784 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added a command line flag (dump-data) to dump data-raw to the script output folder as json.&lt;br /&gt;
* Added a command line flag (dump-icon-sprites) to dump prototype icons to the script output folder.&lt;br /&gt;
* Added a command line flag (dump-prototype-locale) to dump prototype locale to the script output folder.&lt;br /&gt;
* Sprites with size close to 2048px (or 4096px when high resolution is enabled) will have forced &amp;quot;no-atlas&amp;quot; priority. ([https://forums.factorio.com/99066 more])&lt;br /&gt;
* Added LoaderPrototype::energy_source and energy_per_item.&lt;br /&gt;
* Added support for &amp;quot;icon_horizontal_align&amp;quot; to sprite-button.&lt;br /&gt;
* Added &amp;quot;color-setting&amp;quot; prototype.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaControl::get_max_inventory_index() read.&lt;br /&gt;
* Added LuaItemStack::entity_label and LuaItemStack::entity_color read.&lt;br /&gt;
* Added &amp;quot;unlocks-recipe&amp;quot; to technology prototype filters.&lt;br /&gt;
* ForceIdentification can now be specified by force index.&lt;br /&gt;
* Added script_raised_teleported.&lt;br /&gt;
* Added raise_teleported to LuaControl::teleport.&lt;br /&gt;
* Added &#039;use_rich_text&#039; parameter to LuaRendering::draw_text() and getter/setter functions.&lt;br /&gt;
* Added &#039;has_item_inside&#039; to LuaSurface::find_entities_filtered parameters. Will filter for entities that have the specified item inside them.&lt;br /&gt;
* LuaFluidBox::get_prototype may return an array of LuaFluidBoxPrototype if the entity uses compound fluidboxes. ([https://forums.factorio.com/105338 more])&lt;br /&gt;
== 1.1.76 ==&lt;br /&gt;
Date: 13.01.2023&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash when trying to filter car/spider ammo slots. ([https://forums.factorio.com/104769 more])&lt;br /&gt;
* Fixed visual artifact in water when zoomed out.&lt;br /&gt;
* Fixed &#039;on_entity_renamed&#039; Lua event not including &#039;player_index&#039; if copy-pasting to a train stop. ([https://forums.factorio.com/104460 more])&lt;br /&gt;
== 1.1.75 ==&lt;br /&gt;
Date: 11.01.2023&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Added autosave slots to &amp;quot;The Rest&amp;quot; settings gui. ([https://forums.factorio.com/104610 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash with crafting machines using burner energy sources and items that produce burnt results. ([https://forums.factorio.com/104343 more])&lt;br /&gt;
* Fixed that the bonus GUI could show incorrect values for modded inserter bonuses. ([https://forums.factorio.com/104273 more])&lt;br /&gt;
* Fixed that additional layers of multi-layer recipe icons were tinted when building. ([https://forums.factorio.com/104268 more])&lt;br /&gt;
* Fixed that restoring a window minimized to the macOS dock would freeze the graphics. ([https://forums.factorio.com/104221 more])&lt;br /&gt;
* Fixed a crash related to failed audio initialization and switching audio devices.&lt;br /&gt;
* Fixed a crash when creating surfaces during the chunk deleted event. ([https://forums.factorio.com/104406 more])&lt;br /&gt;
* Fixed that projectiles didn&#039;t draw oriented lights at the correct orientation. ([https://forums.factorio.com/103173 more])&lt;br /&gt;
* Fixed that the &#039;create_spidertron()&#039; Lua function didn&#039;t set the correct minable result name. ([https://forums.factorio.com/103923 more])&lt;br /&gt;
* Fixed that &#039;item on ground&#039; didn&#039;t show item amount in the tooltip. ([https://forums.factorio.com/92321 more])&lt;br /&gt;
* Fixed a crash when restarting after syncing mods with save if the mod(s) were disabled and the save had a valid replay. ([https://forums.factorio.com/104461 more])&lt;br /&gt;
* Fixed working sound&#039;s volume or speed not being matched to activity when fading, for example with pipes. ([https://forums.factorio.com/104450 more])&lt;br /&gt;
* Fixed overlaping red and green wires connected to a power switch. ([https://forums.factorio.com/103456 more])&lt;br /&gt;
* Fixed that moving a container with which a loader was interacting would not disconnect the loader.&lt;br /&gt;
* Fixed that vehicle ammo slot filter selection would show ammos that the slot cannot accept. ([https://forums.factorio.com/104635 more])&lt;br /&gt;
* Fixed vehicle ammo slot style when filtered. ([https://forums.factorio.com/104634 more])&lt;br /&gt;
* Fixed train lights in preview would render for trains on surface a player is on, not for the surface being rendered. ([https://forums.factorio.com/104619 more])&lt;br /&gt;
* Fixed that cloning item entities wouldn&#039;t clone the to-be-looted flag. ([https://forums.factorio.com/104659 more])&lt;br /&gt;
* Fixed that boilers wouldn&#039;t consume fuel if fed fluid at maximum temperature. ([https://forums.factorio.com/104670 more])&lt;br /&gt;
* Fixed a desync related to custom blueprints. ([https://forums.factorio.com/104717 more])&lt;br /&gt;
* Fixed transport belts not decompressing overcompressed items in certain cases. ([https://forums.factorio.com/104247 more])&lt;br /&gt;
* Fixed drawing an extra shadow for health bars of items on ground and items on belts.&lt;br /&gt;
* Fixed that connecting circuit or copper wires in map view did not work if the Build and Drag map controls conflicted. ([https://forums.factorio.com/104694 more])&lt;br /&gt;
* Fixed override_sound_type having no effect. ([https://forums.factorio.com/104707 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added &#039;entity&#039; to LuaPlayer::open_map and LuaPlayer::zoom_to_world, which specifies an entity to follow.&lt;br /&gt;
* Added LuaRailPath::is_front read.&lt;br /&gt;
* Added LuaEntityPrototype::alert_icon_scale read.&lt;br /&gt;
* Added LuaBootstrap::get_prototype_history().&lt;br /&gt;
* Added LuaGameScript::console_command_used read.&lt;br /&gt;
* Added is_split to on_player_fast_transferred.&lt;br /&gt;
* Added LuaPlayer::drag_target read.&lt;br /&gt;
* Added LuaControl::surface_index and force_index read.&lt;br /&gt;
* Added LuaEntity::inserter_target_pickup_count read.&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added LoaderPrototype::allow_rail_interaction and allow_container_interaction.&lt;br /&gt;
== 1.1.74 ==&lt;br /&gt;
Date: 06.12.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that LocalisedString didn&#039;t support fallback groups in some cases when parsed from Lua. (https://forums.factorio.com/104297, https://forums.factorio.com/104303)&lt;br /&gt;
* Fixed a crash when a mod defines an entity that kills itself when created. ([https://forums.factorio.com/104331 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added CarPrototype::immune_to_cliff_impacts, true by default. If set to false - entity will take damage when it collides with cliff prototype entities.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaPlayer::cursor_stack_temporary read/write.&lt;br /&gt;
* Added LuaPlayer::request_translations() for batching translation requests.&lt;br /&gt;
== 1.1.73 ==&lt;br /&gt;
Date: 01.12.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed items dropped on underground belts could be inserted at a wrong position when transport lines were facing east or south. ([https://forums.factorio.com/104104 more])&lt;br /&gt;
* Fixed DNS CNAME records confusing the SRV lookup on Windows ([https://forums.factorio.com/viewtopic.php?f=7&amp;amp;t=104089 more])&lt;br /&gt;
* Fixed a crash when hovering over some rich text tags and destroying the object they refer to. ([https://forums.factorio.com/104149 more])&lt;br /&gt;
* Fixed that &amp;quot;request from buffer chests&amp;quot; option wasn&#039;t copied between spidertrons. ([https://forums.factorio.com/104046 more])&lt;br /&gt;
* Fixed that &amp;quot;request from buffer chests&amp;quot; option in spidertrons reset to default when prototypes changed. ([https://forums.factorio.com/104124 more])&lt;br /&gt;
* Fixed directories in file dialogues not being sorted alphabetically on some systems. ([https://forums.factorio.com/104053 more])&lt;br /&gt;
* Fixed dropdown button font color when clicked. ([https://forums.factorio.com/104249 more])&lt;br /&gt;
* Fixed a crash when switching preferred audio device failed.&lt;br /&gt;
* Fixed not being able to remove script areas in the map editor. ([https://forums.factorio.com/104291 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added fallback groups format for localised string which picks the first correct translation. ([https://forums.factorio.com/71553 more])&lt;br /&gt;
* Transparent black in RecipePrototype::crafting_machine_tint won&#039;t cause the tint to fallback to value of default_recipe_tint. ([https://forums.factorio.com/104272 more])&lt;br /&gt;
== 1.1.72 ==&lt;br /&gt;
Date: 11.11.2022&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Improve mod update checking for large mod collections&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* Loaders now show their item filters in alt mode.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash when doing alt-reverse selections in zoomed-in map mode. ([https://forums.factorio.com/104020 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaInventory::is_full().&lt;br /&gt;
* Added &#039;include_bar&#039; parameter to LuaInventory::count_empty_stacks().&lt;br /&gt;
== 1.1.71 ==&lt;br /&gt;
Date: 04.11.2022&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Added preferred audio device output setting.&lt;br /&gt;
* Added the current binary architecture to the main menu version string.&lt;br /&gt;
&lt;br /&gt;
=== Optimizations ===&lt;br /&gt;
&lt;br /&gt;
* Added native support for Apple Silicon Macs.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash when canceling deconstruction of a pipe to ground while the GUI was open. ([https://forums.factorio.com/103728 more])&lt;br /&gt;
* Fixed entity ghosts would draw wires even if prototype of inner entity disabled it. ([https://forums.factorio.com/103765 more])&lt;br /&gt;
* Fixed incorrect panning of CyclicSound (for example, flamethrower turret&#039;s stream sound). ([https://forums.factorio.com/103865 more])&lt;br /&gt;
* Fixed that ScriptRendering requested string localisation during on_init when it was not available. ([https://forums.factorio.com/103745 more])&lt;br /&gt;
* Fixed Generator tooltip ignoring fluid emissions multiplier. ([https://forums.factorio.com/103847 more])&lt;br /&gt;
* Fixed that teleporting cars between surfaces would create the build effect smoke. ([https://forums.factorio.com/103972 more])&lt;br /&gt;
* Fixed a crash related to undoing mining of another forces entities after the other force had been deleted. ([https://forums.factorio.com/103966 more])&lt;br /&gt;
* Fixed it was possible to acquire forbidden items in the Transport belt madness levels. ([https://forums.factorio.com/103331 more])&lt;br /&gt;
* Fixed that linked-belt was missing from the collision mask defaults. ([https://forums.factorio.com/103849 more])&lt;br /&gt;
* Removed &#039;Fuel emissions&#039; label from Burner info panel. ([https://forums.factorio.com/103942 more])&lt;br /&gt;
* Fixed that expansion parties could destroy spidertrons while building new bases. ([https://forums.factorio.com/103872 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added Alt reverse selection support for selection tools. ([https://forums.factorio.com/102470 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaGuiElement::close_dropdown().&lt;br /&gt;
== 1.1.70 ==&lt;br /&gt;
Date: 11.10.2022&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Added mod portal bookmarks to install mods gui&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed show-player-robots debug option would render lines for characters on other surfaces. ([https://forums.factorio.com/103470 more])&lt;br /&gt;
* Fixed using incorrect sound settings when there is no configuration file.&lt;br /&gt;
* Fixed a crash related to teleporting spider vehicles with burner energy sources between surfaces.&lt;br /&gt;
* Fixed that the return value of some lualib noise functions didn&#039;t have the metatable for noise expression arithmetic. ([https://forums.factorio.com/103416 more])&lt;br /&gt;
* Fixed simulation widgets showing savefiles trying to apply migrations in multiplayer. ([https://forums.factorio.com/103528 more])&lt;br /&gt;
* Fixed upgrading pair of underground belt ghosts that makes them in reach would flip one of them without updating rotation point of nearby belts. ([https://forums.factorio.com/103564 more])&lt;br /&gt;
* Fixed that logistic containers didn&#039;t deduplicate filters when importing them from untrusted sources which could crash the game. ([https://forums.factorio.com/102882 more])&lt;br /&gt;
* Fixed a hard crash when a mod called deconstruct_area() with mismatched force and the player undid deconstruction of tiles. ([https://forums.factorio.com/103055 more])&lt;br /&gt;
* Fixed highlight-box targeting entity not rendering before first update. ([https://forums.factorio.com/103559 more])&lt;br /&gt;
* Fixed spider-remote would lose connection when spider changes surface. ([https://forums.factorio.com/103519 more])&lt;br /&gt;
* Fixed SpidertronRemotePrototype was silently forcing stack size to 1 and not marking prototype as non stackable. ([https://forums.factorio.com/103472 more])&lt;br /&gt;
* Fixed that sounds with fade_out_ticks would synchronize when pausing the game while the sounds are fading out. ([https://forums.factorio.com/103646 more])&lt;br /&gt;
* Fixed idle sounds would synchronize when pausing the game. ([https://forums.factorio.com/103648 more])&lt;br /&gt;
* Fixed idle sounds for accumulators not starting in certain scenarios. ([https://forums.factorio.com/103603 more])&lt;br /&gt;
* Fixed idle sounds playing when they shouldn&#039;t for entities with max_sounds_per_type set.&lt;br /&gt;
* Fixed inserters not highlighting the entity they would pick up from if said entity is a ghost while the inserter is not. ([https://forums.factorio.com/100972 more])&lt;br /&gt;
* Fixed a save&#039;s suggested save name not being updated when using non blocking saving. ([https://forums.factorio.com/101610 more])&lt;br /&gt;
* Fixed a crash when GUI style errors are found during loading. ([https://forums.factorio.com/103688 more])&lt;br /&gt;
* Fixed an item duplication when fast replacing underground belts with a damaged item. ([https://forums.factorio.com/103711 more])&lt;br /&gt;
* Fixed that loader could get stuck when feeding a burner generator. ([https://forums.factorio.com/103719 more])&lt;br /&gt;
* Fixed a crash when opening blueprint book item while tick is paused. ([https://forums.factorio.com/103680 more])&lt;br /&gt;
* Fixed a unit group that is building a base could have all its members distracted and still build a base. ([https://forums.factorio.com/102586 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaTechnology to LuaPlayer::opened.&lt;br /&gt;
* Added LuaEntityPrototype::ammo_category read.&lt;br /&gt;
== 1.1.69 ==&lt;br /&gt;
Date: 12.09.2022&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* Updated transport belt icons.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed unregistering multiple events at once would not clear event filters. ([https://forums.factorio.com/103207 more])&lt;br /&gt;
* Fixed inactive mining drill playing its working sound for a moment when panning over it. ([https://forums.factorio.com/103212 more])&lt;br /&gt;
* Fixed a crash when pressing Alt+F4 or clicking the X button when in sound settings. ([https://forums.factorio.com/103182 more])&lt;br /&gt;
* Fixed a crash when changing the force of a logistic container marked for deconstruction. ([https://forums.factorio.com/103278 more])&lt;br /&gt;
* Fixed a crash in production score script when a rocket launch product has probabilistic amount. ([https://forums.factorio.com/102649 more])&lt;br /&gt;
* Fixed a crash in production score script when a resource entity is given no mineable products. ([https://forums.factorio.com/103289 more])&lt;br /&gt;
* Fixed collision mask util not ignoring other flags when checking &amp;quot;not-colliding-with-itself&amp;quot; masks. ([https://forums.factorio.com/102684 more])&lt;br /&gt;
* Fixed the player losing contents of the cursor when starting the round in tightspot scenario. ([https://forums.factorio.com/102312 more])&lt;br /&gt;
* Fixed wave defense losing all upgrades after some prototype changes. ([https://forums.factorio.com/101241 more])&lt;br /&gt;
* Fixed inactive entity working sound playing its fade-out when pausing and unpausing the game.&lt;br /&gt;
* Fixed that mod ordering didn&#039;t work correctly when searching in the install mods GUI. ([https://forums.factorio.com/103292 more])&lt;br /&gt;
* Fixed that the &#039;starting points&#039; in MapGenSettings wasn&#039;t loaded when importing a map exchange string. ([https://forums.factorio.com/103356 more])&lt;br /&gt;
* Fixed that event filters for on_pre_ghost_deconstructed and on_pre_ghost_upgraded weren&#039;t filtering correctly. ([https://forums.factorio.com/103294 more])&lt;br /&gt;
* Fixed that changing render threads to 1 while menu simulations were visible would crash the game. ([https://forums.factorio.com/103361 more])&lt;br /&gt;
* Fixed rocket silo would get stuck when rocket_parts was set during launch. ([https://forums.factorio.com/103213 more])&lt;br /&gt;
* Fixed smooth zoom behavior at high game speeds. ([https://forums.factorio.com/102974 more])&lt;br /&gt;
* Fixed a performance issue when many roboports re-activate at the same time. ([https://forums.factorio.com/103383 more])&lt;br /&gt;
* Fixed that the sync-mods-with-save GUI didn&#039;t work correctly when failing to download in some situations. ([https://forums.factorio.com/103386 more])&lt;br /&gt;
* Fixed solar panel equipment was unable to produce full expected power when solar multiplier was larger than 1. ([https://forums.factorio.com/103066 more])&lt;br /&gt;
* Fixed boiler&#039;s energy source buffer size was not updated when prototypes data changed. ([https://forums.factorio.com/103008 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added torso_bob_speed to the spider vehicle prototype.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntityPrototype::torso_bob_speed read.&lt;br /&gt;
== 1.1.68 ==&lt;br /&gt;
Date: 22.08.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed LuaControl::enable/disable_flashlight when LuaPlayer points at a player with CharacterController. ([https://forums.factorio.com/103187 more])&lt;br /&gt;
* Fixed incorrect fluid arrows on chemical plants, pumpjacks and oil refineries ([https://forums.factorio.com/103191 more])&lt;br /&gt;
== 1.1.67 ==&lt;br /&gt;
Date: 19.08.2022&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Added support for SRV records on Linux and MacOS.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Updated the --audio-driver command line option description for Windows, and added the option for Linux and Mac.&lt;br /&gt;
* Storage tanks can now show fluid connection info.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity::stop_spider().&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added FluidBox::hide_connection_info. When true the blue fluid connection arrows will not be drawn.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash related to multiplayer latency and modded selection tools. ([https://forums.factorio.com/103062 more])&lt;br /&gt;
* Fixed an inserter activity progress being incorrect for certain orientations.&lt;br /&gt;
* Fixed a sound instance leak. ([https://forums.factorio.com/103045 more])&lt;br /&gt;
* Fixed integer mod settings would allow decimal values. ([https://forums.factorio.com/103092 more])&lt;br /&gt;
* Fixed that renaming a spidertron wouldn&#039;t include the player during the Lua event. ([https://forums.factorio.com/102993 more])&lt;br /&gt;
* Fixed a lag spike when finishing selection of entities in chart view far from the center of the map. ([https://forums.factorio.com/103134 more])&lt;br /&gt;
* Fixed a crash related to copy tool when cursor stack was cleared during setup blueprint event. ([https://forums.factorio.com/103124 more])&lt;br /&gt;
* Fixed multiple instances of the same working sound syncing up, causing &amp;quot;phasing&amp;quot; artefacts.&lt;br /&gt;
* Fixed fluid wagon fluid tooltips would round the amount shown incorrectly.&lt;br /&gt;
* Fixed some sounds playing in fog-of-war when they shouldn&#039;t.&lt;br /&gt;
* Fix modded entities not showing input-output fluid connection arrows ([https://forums.factorio.com/103061 more])&lt;br /&gt;
== 1.1.66 ==&lt;br /&gt;
Date: 19.08.2022&lt;br /&gt;
== 1.1.65 ==&lt;br /&gt;
Date: 05.08.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash related to audio. ([https://forums.factorio.com/103033 more])&lt;br /&gt;
* Fixed that it was possible to provide invalid path_resolution_modifier value to LuaSurface::request_path. ([https://forums.factorio.com/103056 more])&lt;br /&gt;
* Fixed double click interaction with number input. ([https://forums.factorio.com/103011 more])&lt;br /&gt;
* Fixed teleporting spidertrons across surfaces while also changing their position. ([https://forums.factorio.com/103067 more])&lt;br /&gt;
* Fixed manual filter insertion logic with modded container entities. ([https://forums.factorio.com/103070 more])&lt;br /&gt;
== 1.1.64 ==&lt;br /&gt;
Date: 02.08.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a desync when using LuaGameScript::get_train_stops when there are multiple stops found.&lt;br /&gt;
* Fixed a crash related to transport belts and item entities. ([https://forums.factorio.com/103026 more])&lt;br /&gt;
* Fixed linked container content was cleared when entity dies leaving a ghost. ([https://forums.factorio.com/103029 more])&lt;br /&gt;
* Fixed linked container content was cleared when fast-replacing through script. ([https://forums.factorio.com/103021 more])&lt;br /&gt;
* Fixed locomotives on curved rails would not snap to train stops. ([https://forums.factorio.com/103020 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added the entity prototype flag not-in-made-in to allow hiding things from the &#039;made in&#039; recipe tooltip.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaForce::color read.&lt;br /&gt;
* Added LuaForce::custom_color read/write.&lt;br /&gt;
* Added target to on_pre_ghost_upgraded.&lt;br /&gt;
* Added target and direction to on_cancelled_upgrade.&lt;br /&gt;
* Added LuaEquipmentGrid::find/count methods.&lt;br /&gt;
* Added LuaEntityPrototype::tile_width/tile_height reads.&lt;br /&gt;
* Added LuaEntity::tile_width/tile_height reads.&lt;br /&gt;
* Added range_modifier, cooldown_modifier, consumption_modifier fields to AmmoType concept.&lt;br /&gt;
== 1.1.63 ==&lt;br /&gt;
Date: 28.07.2022&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Added PulseAudio driver for the SDL audio backend.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash when trying to draw a wire connected linked container in a blueprint. ([https://forums.factorio.com/102983 more])&lt;br /&gt;
* Fixed linked containers with filters would not preserve filters while there are no containers placed. ([https://forums.factorio.com/102988 more])&lt;br /&gt;
* Fixed a crash when using SDL audio backend with configurations other than stereo. ([https://forums.factorio.com/102980 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEquipmentGrid::unique_id read.&lt;br /&gt;
== 1.1.62 ==&lt;br /&gt;
Date: 26.07.2022&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Added support for SRV records on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Integrated SDL_Mixer for audio mixing, which is now the default mixer.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a desync when canceling deconstruction of cliffs when a robot has already thrown the explosive. ([https://forums.factorio.com/102216 more])&lt;br /&gt;
* Fixed startup mod settings would show as being able to be reset while the game is running. ([https://forums.factorio.com/102775 more])&lt;br /&gt;
* Fixed an issue when installing mod dependencies related to base-game dependencies. ([https://forums.factorio.com/102751 more])&lt;br /&gt;
* Fixed an issue with biter AI that could freeze the game. ([https://forums.factorio.com/102261 more])&lt;br /&gt;
* Fixed a crash when viewing other player inventories when changing controllers. ([https://forums.factorio.com/102863 more])&lt;br /&gt;
* Fixed that the LuaPlayer::remove_alert &#039;prototype&#039; parameter wouldn&#039;t accept an actual prototype instance. ([https://forums.factorio.com/102860 more])&lt;br /&gt;
* Fixed character inventory was not auto sorted when changing armor. ([https://forums.factorio.com/102875 more])&lt;br /&gt;
* Fixed that the reset-to-default tooltip for string mod settings wasn&#039;t fully localised. ([https://forums.factorio.com/102847 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Modded tips and tricks information is remembered when the associated mods are temporarily removed/disabled.&lt;br /&gt;
* Added support for container entities with filters by using inventory_type = &amp;quot;with_bar&amp;quot; or &amp;quot;with_filters_and_bar&amp;quot;.&lt;br /&gt;
* Added EntityPrototype::build_grid_size. Supported values are 1 (for 1x1 grid) and 2 (for 2x2 grid).&lt;br /&gt;
* Added EntityPrototype::use_exact_mode.&lt;br /&gt;
* Added support for circuit connections to linked containers.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added support to set player.opened to script inventories.&lt;br /&gt;
* LuaEntity::get_connected_rail also returns rail_direction and rail_connection_direction going back to origin rail.&lt;br /&gt;
* Added on_pre_ghost_upgraded event.&lt;br /&gt;
* Added LuaEntity::get_rail_segment_rails.&lt;br /&gt;
* Added LuaEntity::is_rail_in_same_rail_segment_as.&lt;br /&gt;
* Added LuaEntity::is_rail_in_same_rail_block_as.&lt;br /&gt;
* Added LuaEntity::get_parent_signals.&lt;br /&gt;
* Added LuaEntity::get_child_signals.&lt;br /&gt;
* Added LuaEntity::get_inbound_signals.&lt;br /&gt;
* Added LuaEntity::get_outbound_signals.&lt;br /&gt;
* Added LuaEntity::rocket_silo_status read and defines.rocket_silo_status&lt;br /&gt;
* Added LuaBootstrap::register_metatable.&lt;br /&gt;
* Added LuaLogisticNetwork::can_satisfy_request.&lt;br /&gt;
* Added LuaLogisticNetwork::get_supply_counts.&lt;br /&gt;
* Added LuaLogisticNetwork::get_supply_points.&lt;br /&gt;
* Added LuaEntityPrototype::use_exact_mode read.&lt;br /&gt;
* Added LuaEntityPrototype::active_energy_usage, idle_energy_usage, lamp_energy_usage reads.&lt;br /&gt;
* Added rocket_silo_input, rocket_silo_output, rocket_silo_modules inventory defines.&lt;br /&gt;
== 1.1.61 ==&lt;br /&gt;
Date: 23.06.2022&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* The game no longer requires re-entering server passwords when restarting to sync mods or mod settings.&lt;br /&gt;
* When joining modded games mods and settings are synced at the same time reducing the number of restarts needed.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed server getting stuck at &amp;quot;Saving the map for player&amp;quot; for 20 seconds sometimes if a client disconnects shortly after connecting.&lt;br /&gt;
* Fixed server getting stuck at &amp;quot;Saving the map for player&amp;quot; forever in some rare situations.&lt;br /&gt;
* Fixed highlight box on curved-rail would not render selection box correctly. ([https://forums.factorio.com/102601 more])&lt;br /&gt;
* Fixed heavy-mode when character dies in multiplayer. ([https://forums.factorio.com/102624 more])&lt;br /&gt;
* Fixed that the &amp;quot;run forest, run&amp;quot; achievement could be unlocked by shooting trees instead of running them over. ([https://forums.factorio.com/102623 more])&lt;br /&gt;
* Fixed a crash when trying to read LuaEntity::neighbours on a WallConnectable when one of the neighbours is a ghost. ([https://forums.factorio.com/102630 more])&lt;br /&gt;
* Fixed recipe highlights in the assembling machine GUI. ([https://forums.factorio.com/102612 more])&lt;br /&gt;
* Fixed an issue with the prototype explorer GUI and guns. ([https://forums.factorio.com/102658 more])&lt;br /&gt;
* Fixed false-positive desyncs when using mods and running /c game.force_crc() or /toggle-heavy-mode ([https://forums.factorio.com/102655 more])&lt;br /&gt;
* Fixed a crash when defining a fluid stream prototype with zero particles. ([https://forums.factorio.com/102679 more])&lt;br /&gt;
* Fixed a GUI layering issue related to some error messages. ([https://forums.factorio.com/102569 more])&lt;br /&gt;
* Fixed not being able to open blueprint books in books through the quickbar. ([https://forums.factorio.com/102681 more])&lt;br /&gt;
* Fixed LuaSurface::find_entities_filtered would fail to find entities by collision mask if they only collide with tiles. ([https://forums.factorio.com/102706 more])&lt;br /&gt;
* Fixed that pump that cannot interact with fluid wagons would crash on save after position change. ([https://forums.factorio.com/102643 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* The mod settings GUI will now show the &#039;tooltip&#039; icon for any settings that have tooltips.&lt;br /&gt;
* Added a reset button to each mod setting in the mod settings GUI.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaControl::crafting_queue_progress write.&lt;br /&gt;
* Added LuaTile::tile_ghost.&lt;br /&gt;
* Added &#039;to_be_deconstructed&#039;, and &#039;has_tile_ghost&#039; filters to the options for LuaSurface::find_tiles_filtered.&lt;br /&gt;
* Added LuaEntityPrototype::indexed_guns. It works as LuaEntityPrototype::guns but returns an array.&lt;br /&gt;
* Collision-mask prototype filters for Entity, Tile and Decorative now support a &#039;contains-any&#039; and &#039;contains-all&#039; modes.&lt;br /&gt;
== 1.1.60 ==&lt;br /&gt;
Date: 06.06.2022&lt;br /&gt;
&lt;br /&gt;
=== Optimizations ===&lt;br /&gt;
&lt;br /&gt;
* Improved game startup time when using mods.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that item requests didn&#039;t subtract items picked up from ground when reviving ghosts. ([https://forums.factorio.com/102329 more])&lt;br /&gt;
* Fixed burner inserter would not fuel itself when drop target was full. ([https://forums.factorio.com/102449 more])&lt;br /&gt;
* Fixed that inserters would report status other than &amp;quot;Waiting for space in destination&amp;quot; in certain cases. (https://forums.factorio.com/102225, https://forums.factorio.com/65351)&lt;br /&gt;
* Fixed that Lua collision mask util didn&#039;t check for tile prototypes. ([https://forums.factorio.com/102474 more])&lt;br /&gt;
* Fixed that map pings would always round up the pinged location. ([https://forums.factorio.com/102533 more])&lt;br /&gt;
* Fixed that replays would always say mods didn&#039;t match. ([https://forums.factorio.com/102526 more])&lt;br /&gt;
* Fixed that canceling syncing mods with a save would exit the GUI.&lt;br /&gt;
* Fixed that canceling syncing mods with a save through escape would leave the partially downloaded mods.&lt;br /&gt;
* Fixed that the circular dependency error doesn&#039;t list all mods. ([https://forums.factorio.com/102430 more])&lt;br /&gt;
* Fixed a deadlock on loss of ConnectionAcceptOrDeny message. ([https://forums.factorio.com/97596 more])&lt;br /&gt;
* Fixed a desync when fast-replacing burner generators.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntityPrototype::height, torso_rotation_speed, automatic_weapon_cycling, chain_shooting_cooldown_modifier, chunk_exploration_radius reads.&lt;br /&gt;
* Added LuaEntityPrototype::animation_speed_coefficient.&lt;br /&gt;
* Added LuaEntityPrototype::manual_range_modifier.&lt;br /&gt;
* Added LuaEntityPrototype::dying_speed read.&lt;br /&gt;
* Added sample_index parameter to LuaFlowStatistics::get_flow_count().&lt;br /&gt;
== 1.1.59 ==&lt;br /&gt;
Date: 06.05.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Quickbar shortcuts to items in blueprint books can be used again. ([https://forums.factorio.com/102322 more])&lt;br /&gt;
* Fixed grenade shadows.&lt;br /&gt;
* Fixed it was possible to put blueprint book indirectly into itself ([https://forums.factorio.com/102337 more])&lt;br /&gt;
== 1.1.58 ==&lt;br /&gt;
Date: 02.05.2022&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Significantly reduced the intensity of the red screen flash when the player character takes damage.&lt;br /&gt;
* Changed fish so they won&#039;t swim into inactive chunks. ([https://forums.factorio.com/102295 more])&lt;br /&gt;
* Changed slowdown capsule and posion capsule icons to be matching in size. ([https://forums.factorio.com/85558 more])&lt;br /&gt;
* Added email authentication to login GUIs.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that overwriting ItemRequestProxy item requests wasn&#039;t working properly in some cases when the same item was already requested. ([https://forums.factorio.com/102022 more])&lt;br /&gt;
* Fixed that loading a mod with a corrupted image file would crash the whole game on Linux. ([https://forums.factorio.com/102067 more])&lt;br /&gt;
* Fixed a crash with ghost overbuilding and script interactions. ([https://forums.factorio.com/102136 more])&lt;br /&gt;
* Fixed that infinite technologies didn&#039;t respect ignore_tech_cost_multiplier. ([https://forums.factorio.com/102179 more])&lt;br /&gt;
* Fixed that LuaEntity::belt_neighbours didn&#039;t work on ghosts. ([https://forums.factorio.com/102178 more])&lt;br /&gt;
* Fixed an issue with item-with-inventory extending inventories and quickbars. ([https://forums.factorio.com/102095 more])&lt;br /&gt;
* Fixed that a train stop helper would not draw when hovering inserters next to rails that were not straight connected to a train stop. ([https://forums.factorio.com/101954 more])&lt;br /&gt;
* Fixed a crash when fast replacing electric pole marked to be deconstructed when there is another ghost pole on top of it. ([https://forums.factorio.com/101536 more])&lt;br /&gt;
* Fixed a crash when creating a blueprint with connected electric pole while it has an upgrade target set to not electric pole. ([https://forums.factorio.com/101375 more])&lt;br /&gt;
* Removed a NaN check when loading map. ([https://forums.factorio.com/102198 more])&lt;br /&gt;
* Fixed a screenshot for save file preview would not account for a force of a player. ([https://forums.factorio.com/102090 more])&lt;br /&gt;
* Removed duplicated frame in grenade and cluster grenade animation. ([https://forums.factorio.com/102060 more])&lt;br /&gt;
* Fixed a map loading issue when changing mod dependencies and nothing else. ([https://forums.factorio.com/102253 more])&lt;br /&gt;
* Fixed a crash when trying to perform some actions while in multiplayer. ([https://forums.factorio.com/101609 more])&lt;br /&gt;
* Fixed rotating entities with non-symetric bounding boxes didn&#039;t work correctly. ([https://forums.factorio.com/101611 more])&lt;br /&gt;
* Fixed that already built pipes to ground could show removal indicators for pipes they are bridging when selected.&lt;br /&gt;
* Fixed the runtime multiplayer settings GUI wouldn&#039;t fit on screen. ([https://forums.factorio.com/102272 more])&lt;br /&gt;
* Fixed that inserters could be flipped in some cases when they weren&#039;t supposed to allow it. ([https://forums.factorio.com/102294 more])&lt;br /&gt;
* Fixed that cliff deconstruction wasn&#039;t issued when the corrected cliff collision box overlapped with ghost entities. ([https://forums.factorio.com/66400 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added on_research_cancelled.&lt;br /&gt;
* Added on_player_reverse_selected_area.&lt;br /&gt;
== 1.1.57 ==&lt;br /&gt;
Date: 29.03.2022&lt;br /&gt;
&lt;br /&gt;
=== Optimizations ===&lt;br /&gt;
&lt;br /&gt;
* Improved overall performance by 5-10% when fully zoomed out.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that some error messages wouldn&#039;t be translated. ([https://forums.factorio.com/101815 more])&lt;br /&gt;
* Fixed that biters might remain inactive when they should be activated. ([https://forums.factorio.com/99989 more])&lt;br /&gt;
* Fixed that units could teleport through cliffs if they bunched up close together. ([https://forums.factorio.com/101834 more])&lt;br /&gt;
* Fixed that setting LuaGuiElement::zoom to 0 would crash the game. ([https://forums.factorio.com/101841 more])&lt;br /&gt;
* Fixed a crash when changing mod options while the cursor hovers the &amp;quot;Back&amp;quot; button. ([https://forums.factorio.com/101814 more])&lt;br /&gt;
* Fixed a crash due to recursive chain signal update. ([https://forums.factorio.com/101806 more])&lt;br /&gt;
* Fixed that if a non-attack distraction command failed, it would raise the on_ai_command_completed event repeatedly. ([https://forums.factorio.com/101870 more])&lt;br /&gt;
* Fixed that opening web links in the Linux Steam build of the game could take unreasonably long. ([https://forums.factorio.com/101339 more])&lt;br /&gt;
* Fixed that logistic requests, item filters and similar could be set to the copy-paste tool when clicking the slot while holding that item. ([https://forums.factorio.com/101861 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaItemPrototype::reverse_* read for selection tool.&lt;br /&gt;
* Added LuaEntity::radar_scan_progress read.&lt;br /&gt;
* Added LuaEntityPrototype::logistic_parameters read.&lt;br /&gt;
* Added LuaEntityPrototype::heat_buffer_prototype read.&lt;br /&gt;
* Added LuaHeatEnergySourcePrototype::heat_buffer_prototype read.&lt;br /&gt;
== 1.1.56 ==&lt;br /&gt;
Date: 09.03.2022&lt;br /&gt;
&lt;br /&gt;
=== Gui ===&lt;br /&gt;
&lt;br /&gt;
* Some GUI fixes and improvements for screen resolutions under 1920×1080&lt;br /&gt;
* Set the default GUI scale on the Steam Deck to 100%&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed poison cloud sound fade out.&lt;br /&gt;
* Fixed tooltips for vehicles would still show entry instructions even when no passengers are allowed. ([https://forums.factorio.com/101689 more])&lt;br /&gt;
* Fixed train stop names with different amounts of leading spaces being treated as equal in some cases but not in others. ([https://forums.factorio.com/101660 more])&lt;br /&gt;
* Fixed idle machines without idle sound counting towards the max_sounds_per_type limit. ([https://forums.factorio.com/80745 more])&lt;br /&gt;
* Fixed that changing the force of artillery wagons didn&#039;t work. ([https://forums.factorio.com/101731 more])&lt;br /&gt;
* Fixed a crash when using non-rectangular equipment. ([https://forums.factorio.com/101778 more])&lt;br /&gt;
* Fixed a crash when building underground belt or pipe ghosts over belts/pipes of other forces. ([https://forums.factorio.com/101776 more])&lt;br /&gt;
* Fixed character corpse armor variations being inconsistent with character armor variations. ([https://forums.factorio.com/101781 more])&lt;br /&gt;
* Fixed a consistency issue if a Lua event handler cancelled deconstruction of an entity that was marked for deconstruction as a result of fast-replace. ([https://forums.factorio.com/100775 more])&lt;br /&gt;
== 1.1.55 ==&lt;br /&gt;
Date: 23.02.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that the Steam version wouldn&#039;t start on Linux and OSX.&lt;br /&gt;
== 1.1.54 ==&lt;br /&gt;
Date: 23.02.2022&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* The multiplayer games browser can now filter games that are hosted on dedicated servers.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed west variation of Boiler and Heat exchanger graphics. ([https://forums.factorio.com/100790 more])&lt;br /&gt;
* Fixed save/load instability occuring when the game was saved after a robot threw cliff explosives but before the cliff exploded.&lt;br /&gt;
* Fixed a crash when script tries to connect rolling stock during rolling stock destruction. ([https://forums.factorio.com/101404 more])&lt;br /&gt;
* Fixed LuaTransportLine::output_lines on a splitter&#039;s output transport line would incorrectly consider it an input transport line of that splitter. ([https://forums.factorio.com/101435 more])&lt;br /&gt;
* Fixed LuaTransportLine::input_lines would not return both input lines of a splitter.&lt;br /&gt;
* Fixed that when train was created, a wrong end could be selected as a front when rolling stock at expected trains front was facing backward.&lt;br /&gt;
* Fixed that it was possible to specify artillery-projectile as a place_result of an item. ([https://forums.factorio.com/101448 more])&lt;br /&gt;
* Fixed unnecessary disk writes when showing background simulations. ([https://forums.factorio.com/101468 more])&lt;br /&gt;
* Fixed that sometimes the host would not have admin rights when hosting a multiplayer game from a save.&lt;br /&gt;
* Fixed LuaSurface::find_tiles_filtered would not cover bottom right tile.&lt;br /&gt;
* Fixed that too many open RCON connections would crash the game. There is now a limit of maximum of 128 simultaneous RCON connections. ([https://forums.factorio.com/101522 more])&lt;br /&gt;
* Fixed a crash related to modded trains that could change travel direction due to air friction computation. ([https://forums.factorio.com/101320 more])&lt;br /&gt;
* Fixed energy consumers would get too much energy when supplied through multiple electric networks. ([https://forums.factorio.com/101515 more])&lt;br /&gt;
* Fixed a crash due to LuaLogisticCell not being invalidated when owner entity is being deleted. ([https://forums.factorio.com/101550 more])&lt;br /&gt;
* Fixed that non-lamp entities could be given the &#039;lamp&#039; electric usage priority which would crash the game. ([https://forums.factorio.com/101545 more])&lt;br /&gt;
* Fixed locomotive placement would snap to wrong train stop when there are multiple stops available. ([https://forums.factorio.com/101575 more])&lt;br /&gt;
* Fixed that the whitelist button was enabled in the /config GUI. ([https://forums.factorio.com/101230 more])&lt;br /&gt;
* Fixed searching for items in controller gui would not highlight item stacks in the trash slots. ([https://forums.factorio.com/101490 more])&lt;br /&gt;
* Fixed that building underground belt ghosts with smart belt building would crash if ghosts are immediately revived by script. ([https://forums.factorio.com/100619 more])&lt;br /&gt;
* Fixed very high deconstruction_time_to_live value would lead to deconstruction orders expiring too soon. ([https://forums.factorio.com/101605 more])&lt;br /&gt;
* Fixed that a multiplayer client could desync several times in a row, making the server save the map for desync report multiple times.&lt;br /&gt;
* Fixed that crafting recipes with products exceeding their stack limit would produce only a single full stack when crafting by hand. ([https://forums.factorio.com/101614 more])&lt;br /&gt;
* Fixed tips and tricks GUI staying open when changing controllers, and not being able to close it afterwards. ([https://forums.factorio.com/100508 more])&lt;br /&gt;
* Fixed PvP config for health bonus didn&#039;t apply correctly.&lt;br /&gt;
* Fixed that if the game couldn&#039;t connect to a server due to corrupted data, it wouldn&#039;t show any error to the user. ([https://forums.factorio.com/101654 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added &#039;is_military_target&#039; filter to the options for LuaSurface::find_entities_filtered.&lt;br /&gt;
* Added LuaFluidBox::get_fluid_system_id() method.&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added LocomotivePrototype::max_snap_to_train_stop_distance.&lt;br /&gt;
* Added AutoplaceControl::can_be_disabled.&lt;br /&gt;
== 1.1.53 ==&lt;br /&gt;
Date: 19.01.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash that could happen if a unit failed in attacking another entity as a distraction. ([https://forums.factorio.com/101286 more])&lt;br /&gt;
== 1.1.52 ==&lt;br /&gt;
Date: 18.01.2022&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash related to LuaLazyLoadedValue trying to return LuaEntity pointing at EntityGhost&#039;s inner entity.&lt;br /&gt;
== 1.1.51 ==&lt;br /&gt;
Date: 18.01.2022&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* When using /swap-players undo queues are now also swapped.&lt;br /&gt;
* Improve performance of querying if an entity is registered for deconstruction from O(N) to O(1).&lt;br /&gt;
* Adjusted default music volume.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that if biters took damage from a forest fire, they would path toward the player who started it, no matter the distance. ([https://forums.factorio.com/100894 more])&lt;br /&gt;
* Fixed that replacing a tile between a colliding hidden tile (with check_collision_with_entities set to true) and an entity would not yield an item.&lt;br /&gt;
* Fixed that LuaGameScript::ban_player would incorrectly use reason as a player name when given player was never in game. ([https://forums.factorio.com/101053 more])&lt;br /&gt;
* Fixed that the saving progress bar and other popups were placed behind the transparent pause overlay. ([https://forums.factorio.com/100783 more])&lt;br /&gt;
* Fixed a scenario could be created with temporary-state trains which were not properly deleted. ([https://forums.factorio.com/101113 more])&lt;br /&gt;
* Fixed a crash when using --map-settings while loading a multiplayer map. ([https://forums.factorio.com/101089 more])&lt;br /&gt;
* Fixed that trying to manually mine a resource that needs a mining fluid would sometimes produce sound of mining. ([https://forums.factorio.com/100925 more])&lt;br /&gt;
* Fixed script rendered arcs could be considered invisible when they were visible. ([https://forums.factorio.com/101038 more])&lt;br /&gt;
* Fixed that LuaEntity::belt_neighbours would return LuaEntity based on EntityGhost&#039;s inner entity, not the EntityGhost itself. ([https://forums.factorio.com/101126 more])&lt;br /&gt;
* Fixed fish preventing tiles building with check_collision_with_entities enabled.&lt;br /&gt;
* Fixed that trains would not account for the train stop snap distance when already at the train stop with the back of a train. ([https://forums.factorio.com/100779 more])&lt;br /&gt;
* Fixed the intro music volume being set incorrectly.&lt;br /&gt;
* Fixed that --start-server-load-latest when given an empty saves folder wouldn&#039;t work correctly. ([https://forums.factorio.com/101119 more])&lt;br /&gt;
* Fixed missing efficiency tooltip and incorrect fuel consumption tooltip value in generator equipment with burner energy source.&lt;br /&gt;
* Fixed ghost electric poles connecting to ghost electric poles of other forces. Neutral force is exempt from this change. ([https://forums.factorio.com/101021 more])&lt;br /&gt;
* Fixed that biters would sometimes prefer running away over choosing another target. ([https://forums.factorio.com/99767 more])&lt;br /&gt;
* Fixed trains pathfinder would crash when a train is in a loop next to segment end and was requested to go to rail target in the middle of a loop. ([https://forums.factorio.com/100645 more])&lt;br /&gt;
* Fixed multi-level technologies showing the same saved progress in technology GUI. ([https://forums.factorio.com/101060 more])&lt;br /&gt;
* Fixed an icon of recipe notification on item group would show even if there are no recipes visible in a given context. ([https://forums.factorio.com/101191 more])&lt;br /&gt;
* Fixed a crash when defining too many icon variations. ([https://forums.factorio.com/101245 more])&lt;br /&gt;
* Fixed changing station name with rich text tags could crash when moving cursor by words. ([https://forums.factorio.com/101216 more])&lt;br /&gt;
* Fixed LuaBurner::inventory did not work correctly for some burner-energy-source entities. ([https://forums.factorio.com/101255 more])&lt;br /&gt;
* Fixed a crash caused by undoing an entity deconstruction which another player already cancelled. ([https://forums.factorio.com/101251 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added EntityPrototype::protected_from_tile_building, true by default. If set to false - entity won&#039;t block tile mining/building (with `TilePrototype::check_collision_with_entities` enabled).&lt;br /&gt;
* Added LandMinePrototype::trigger_collision_mask.&lt;br /&gt;
* Added EntityWithOwnerPrototype.&lt;br /&gt;
* Added EntityWithOwnerPrototype::is_military_target and allow_run_time_change_of_is_military_target.&lt;br /&gt;
* SimpleEntityWithForce now inherits from SimpleEntityWithOwner.&lt;br /&gt;
* SpiderEnginePrototype::military_target is no longer used. If anything is provided it will make related SpiderVehiclePrototype to become a military target instead.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntityPrototype::trigger_collision_mask read.&lt;br /&gt;
* Added LuaEntity::is_military_target read. This deprecates LuaEntity::is_entity_with_force.&lt;br /&gt;
* Added LuaEntityPrototype::is_entity_with_owner, is_military_target and allow_run_time_change_of_is_military_target read.&lt;br /&gt;
* Added LuaEntity::get_spider_legs().&lt;br /&gt;
* Added LuaEntity::neighbours read for cliffs.&lt;br /&gt;
== 1.1.50 ==&lt;br /&gt;
Date: 21.12.2021&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* The permissions list in the permissions GUI can now be localised.&lt;br /&gt;
* Removed feature where reactor collision box would increase when connected to neighbouring reactor (character can now walk in-between connected reactors)&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that biters could get stuck trying to attack an entity they were standing on. ([https://forums.factorio.com/100269 more])&lt;br /&gt;
* Fixed issue regarding placing an electric pole over a ghost of an electric pole connected to an enabled power switch. ([https://forums.factorio.com/100388 more])&lt;br /&gt;
* Fixed a crash related to units and mod events. ([https://forums.factorio.com/100947 more])&lt;br /&gt;
* Fixed ghost entities of other forces being considered valid drop targets. ([https://forums.factorio.com/100880 more])&lt;br /&gt;
* Fixed ghost electric poles connecting to electric poles of other forces. Neutral force is exempt from this fix, it can connect to everything. ([https://forums.factorio.com/100922 more])&lt;br /&gt;
* Fixed that LuaEntity::disconnect_neighbour was unable to disconnect specified pair of electric poles when they were on different surfaces.&lt;br /&gt;
* Fixed gate cloning related to opened state. ([https://forums.factorio.com/100862 more])&lt;br /&gt;
* Fixed that on_game_created_from_scenario event didn&#039;t fire after pressing &amp;quot;Save and Play&amp;quot; from map editor. ([https://forums.factorio.com/100624 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaTilePrototype::check_collision_with_entities, false by default. If set to true - checks for collisions with entities before building or unearthing the tile.&lt;br /&gt;
* Removed ReactorPrototype::neighbour_collision_increase.&lt;br /&gt;
== 1.1.49 ==&lt;br /&gt;
Date: 07.12.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed transport belts picking up items on ground when rotated. ([https://forums.factorio.com/100693 more])&lt;br /&gt;
* Fixed that game.map_settings.path_finder.fwd2bwd_ratio could be set to nonsensical values. ([https://forums.factorio.com/100785 more])&lt;br /&gt;
* Fixed main menu track playing only once. ([https://forums.factorio.com/100787 more])&lt;br /&gt;
* Fixed that units could get stuck close to their goal. ([https://forums.factorio.com/100348 more])&lt;br /&gt;
* Fixed that the small research bar in a technology slot wouldn&#039;t show for the technology currently in research. ([https://forums.factorio.com/100789 more])&lt;br /&gt;
* Fixed a crash which was caused by early garbage collection of LuaObject because LuaObject method closures didn&#039;t hold a back reference to the object. ([https://forums.factorio.com/57490 more])&lt;br /&gt;
* Fixed barelling recipe icons having incorrect tint with index-based fluid color definitions. ([https://forums.factorio.com/100815 more])&lt;br /&gt;
* Fixed barelling recipe icons having incorrect alpha with fluid color definitions in 0-255 range.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* LuaObjects are now saved using binary format instead of previous format with intermediate Lua table. This speeds up general handling of LuaObjects and makes saving and loading with a lot of them noticable faster.&lt;br /&gt;
* LuaObject::isluaobject now returns true instead of a magic string.&lt;br /&gt;
* Clarified LuaGameScript::finished. ([https://forums.factorio.com/99764 more])&lt;br /&gt;
* Added LuaGameScript::finished_but_continuing read.&lt;br /&gt;
* Added LuaGameScript::reset_game_state() method.&lt;br /&gt;
* Implemented new website for Lua API documentation.&lt;br /&gt;
== 1.1.48 ==&lt;br /&gt;
Date: 24.11.2021&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Changed tip trigger name from &amp;quot;unlocked-recipe&amp;quot; to &amp;quot;unlock-recipe&amp;quot; to be consistent with the way other triggers are named.&lt;br /&gt;
== 1.1.47 ==&lt;br /&gt;
Date: 22.11.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Added tip about power pole coverage when drag-building.&lt;br /&gt;
* Fixed that the distance between first and second pole in the dragging electric poles tutorial was 6 tiles instead of 7.&lt;br /&gt;
* Fixed LuaGameScript::save_atlas() function would crash the headless server. ([https://forums.factorio.com/100629 more])&lt;br /&gt;
* Fixed possibility for the victory screen to be hidden behind other GUIs under specific circumstances ([https://forums.factorio.com/100242 more])&lt;br /&gt;
* Fixed generator and fluid energy source tooltip showing 0 fluid consumption if burning fluids with 0 fuel value or consuming fluids with temperature close to the default. ([https://forums.factorio.com/100370 more])&lt;br /&gt;
* Fixed the inserter &amp;quot;hand stack size&amp;quot; tooltip missing if the research-based bonus value was 1. Now it is shown if the value is greater than 0. ([https://forums.factorio.com/100663 more])&lt;br /&gt;
* Fixed the inserter &amp;quot;hand stack size&amp;quot; tooltip ignoring stack_size_bonus prototype property.&lt;br /&gt;
* Fixed cloning linked-container would clear its inventory.&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added FluidEnergySourcePrototype::destroy_non_fuel_fluid, true by default.&lt;br /&gt;
* Added GeneratorPrototype::destroy_non_fuel_fluid, true by default.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntityPrototype::inserter_stack_size_bonus read.&lt;br /&gt;
* Added LuaFluidEnergySourcePrototype::destroy_non_fuel_fluid read.&lt;br /&gt;
* Added LuaStyle::bar_width read/write.&lt;br /&gt;
* Added LuaPlayer::show_on_map read/write.&lt;br /&gt;
* Reworked table saving and loading to be non-recursive. This allows to have extreme table nesting inside of `global` variable.&lt;br /&gt;
== 1.1.46 ==&lt;br /&gt;
Date: 05.11.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed &amp;quot;create-trivial-smoke&amp;quot; triggers being interpreted as &amp;quot;create-entity&amp;quot; triggers in the prototype explorer which could cause a crash. ([https://forums.factorio.com/100495 more])&lt;br /&gt;
* Added migration for saves with inserters that have NaN hand height or hand length.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaGuiElement::swap_children().&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Sub items are now removed from items used in hand-crafting.&lt;br /&gt;
== 1.1.45 ==&lt;br /&gt;
Date: 28.10.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Added migration for saves with particles that have NaN movement vector.&lt;br /&gt;
== 1.1.44 ==&lt;br /&gt;
Date: 27.10.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that setting the scale parameter to zero in a spidertron leg definition would cause a &amp;quot;double value not in range for fixed point number&amp;quot; error. ([https://forums.factorio.com/100394 more])&lt;br /&gt;
* Fixed crash when destroying a vehicle on the same frame a tooltip is created for the vehicle&#039;s weapon and ammo bar. ([https://forums.factorio.com/100122 more])&lt;br /&gt;
* Fixed that building an entity over other forces&#039; ghosts and undoing would transfer ownership of those ghosts to the undoer&#039;s force.&lt;br /&gt;
* Fixed a crash when setting inserters to require no power when rotating/extending. ([https://forums.factorio.com/100407 more])&lt;br /&gt;
== 1.1.43 ==&lt;br /&gt;
Date: 26.10.2021&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Reduced multiplayer latency on very good connections by up to 66ms(4 ticks). ([http://forums.factorio.com/71901 more])&lt;br /&gt;
* Changed multiplayer latency calculation to be smoother. This should reduce multiplayer stutter on bad connections.&lt;br /&gt;
* Changed default network send rate from 30 to 60 packets per second and added an option to configure the rate in server-settings.json.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Add a 70% damage bonus to discharge defenses with Energy Weapons Damage 6 and 7. ([http://forums.factorio.com/100149 more])&lt;br /&gt;
* Fixed flamethrower turrets not reporting the correct damage bonuses&lt;br /&gt;
* Fixed gun turret tooltips showing the ammo in the middle of the other stats&lt;br /&gt;
* Fixed artillery wagon and artillery turret tooltips not showing the damage of the loaded ammo&lt;br /&gt;
* Fixed drawing wall filler when hovering mouse over ghosts. ([https://forums.factorio.com/100243 more])&lt;br /&gt;
* Fixed crash when trying to connect wire after wire type in cursor stack was changed by script. ([https://forums.factorio.com/100220 more])&lt;br /&gt;
* Fixed roboport would not output signals for 1 tick when electric pole was mined while having circuit wire from same circuit network. ([https://forums.factorio.com/100221 more])&lt;br /&gt;
* Fixed that the pole drag building skip trigger didn&#039;t work, so the tip was always shown even when the player used drag building.&lt;br /&gt;
* Fixed LuaItemStack::get_tile_filter would incorrectly return entity filters. ([https://forums.factorio.com/100288 more])&lt;br /&gt;
* Fixed mining drill GUI not being openable if the drill didn&#039;t have module slots or energy source with GUI. ([https://forums.factorio.com/100282 more])&lt;br /&gt;
* Fixed a crash when using 0-length debug names in Lua bytecode. ([https://forums.factorio.com/100321 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added TurretPrototype::energy_glow_animation_flicker_strength.&lt;br /&gt;
* Removed obsolete pollution-visualization sprite, which was replaced by pollution_color utility constant.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity::connected_rail_direction read.&lt;br /&gt;
* Added TrainScheduleRecord::rail_direction.&lt;br /&gt;
== 1.1.42 ==&lt;br /&gt;
Date: 11.10.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed an API error when checking for updates for a large number of mods. ([https://forums.factorio.com/99801 more])&lt;br /&gt;
* Fixed that inserters wouldn&#039;t remove burnt result items from assembling machine recipes with no item outputs. ([https://forums.factorio.com/99799 more])&lt;br /&gt;
* Fixed vehicle weapon slots GUI not highlighting with the corresponding ammo slot when selected&lt;br /&gt;
* Fixed tank cannon weapon showing a &amp;quot;1&amp;quot; in the vehicle weapon slots GUI&lt;br /&gt;
* Fixed that entities not containing certain collision masks would never collide with tiles. ([https://forums.factorio.com/100132 more])&lt;br /&gt;
* Fixed a crash when opening the tutorials GUI through Lua command. ([https://forums.factorio.com/100166 more])&lt;br /&gt;
* Rocket silo no longer drains more energy at night. ([https://forums.factorio.com/100109 more])&lt;br /&gt;
* Fix tank cannon showing smaller range than the cannon shells. ([https://forums.factorio.com/100049 more])&lt;br /&gt;
* Fix ugly death GUI when the game is paused in MP. ([https://forums.factorio.com/100080 more])&lt;br /&gt;
* Fix &#039;Game finished&#039; GUI had an incorrect tooltip for the green button. ([https://forums.factorio.com/99921 more])&lt;br /&gt;
* Fixed that copy paste entity tips were dependant on the copy-paste tool tip instead of copy paste entity category.&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added OffshorePumpPrototype::check_bounding_box_collides_with_tiles.&lt;br /&gt;
* RocketSiloPrototype::lamp_energy_usage now can be zero.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added freeplay remote interface to read the value of `skip_intro`. ([https://forums.factorio.com/100169 more])&lt;br /&gt;
== 1.1.41 ==&lt;br /&gt;
Date: 23.09.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed false positive tile corruption detection when 255 tile prototypes were defined. ([https://forums.factorio.com/100036 more])&lt;br /&gt;
* Fixed pollution overlay misalignment at certain zoom level/map position combinations. ([https://forums.factorio.com/99705 more])&lt;br /&gt;
== 1.1.40 ==&lt;br /&gt;
Date: 22.09.2021&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
* Added auth server bans feature for multiplayer games. When enabled this will inform the Factorio.com authentication server of ban and unban commands issued in multiplayer sessions. Designed to combat griefers in multiplayer games, it will also query the authentication server for a ban recommendation when a user tries to connect.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that trigger prototype flag filters didn&#039;t work correctly when an entity had no flags set. ([https://forums.factorio.com/99773 more])&lt;br /&gt;
* Fixed a crash after inserting fuel into burner inserter while it was already trying to fuel itself. ([https://forums.factorio.com/99858 more])&lt;br /&gt;
* Fixed that unrelated entities were highlighted when using a cut tool. ([https://forums.factorio.com/99720 more])&lt;br /&gt;
* Fixed that in editor mode undoing deconstructions did not instantly revive affected entities. ([https://forums.factorio.com/99622 more])&lt;br /&gt;
* Fixed that setting the direction of a script created character entity didn&#039;t work correctly. ([https://forums.factorio.com/99887 more])&lt;br /&gt;
* Fixed that items with fuel value would be put into furnace fuel inventory when there was enough fuel but item could be smelted. ([https://forums.factorio.com/99924 more])&lt;br /&gt;
* Fixed inserters picking up items on ground marked for deconstruction. ([https://forums.factorio.com/99770 more])&lt;br /&gt;
* Fixed that the low power tip didn&#039;t show in some circumstances.&lt;br /&gt;
* Tweaked some of the triggers to show/skip tutorials related to drag building.&lt;br /&gt;
* Fixed that Furnace&#039;s working_visualisations would not apply recipe tint on fadeout. ([https://forums.factorio.com/99997 more])&lt;br /&gt;
* Fixed crash due to usage of standard library function that is missing on macOS 10.11. ([https://forums.factorio.com/100012 more])&lt;br /&gt;
== 1.1.39 ==&lt;br /&gt;
Date: 01.09.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that rotating belt direction when dragging allowed &amp;quot;stash&amp;quot; the rotate and continue in the original direction. ([https://forums.factorio.com/99572 more])&lt;br /&gt;
* Fixed that loading a game that was saved during drag building didn&#039;t clear the internal drag building state causing blueprint snapping not working properly. ([https://forums.factorio.com/99496 more])&lt;br /&gt;
* Fixed that LuaGameScript::check_prototype_translations() didn&#039;t check technologies. ([https://forums.factorio.com/99672 more])&lt;br /&gt;
* Fixed that items with data would not stack properly in crafting machine source inventory when recipe requires more than a stack of ingredient. ([https://forums.factorio.com/99708 more])&lt;br /&gt;
* Fixed that pasting a blueprint over existing train could cause a desync. ([https://forums.factorio.com/99592 more])&lt;br /&gt;
* Fixed that it was possible to interact with locomotive&#039;s fuel slots while out of reach. ([https://forums.factorio.com/99731 more])&lt;br /&gt;
* Fixed wrong status text when a mining drill drop target is marked for deconstruction. ([https://forums.factorio.com/99679 more])&lt;br /&gt;
* Fixed wrong mining drill status when a resource is depleted while the mining drill is missing the required fluid. ([https://forums.factorio.com/99527 more])&lt;br /&gt;
* Fixed the blueprint snap-to-grid reference point being drawn behind entities in some situations. ([https://forums.factorio.com/99704 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* LuaEntityPrototype::resource_categories now supports characters.&lt;br /&gt;
* Added on_equipment_inserted and on_equipment_removed events that fire any time any equipment is added/removed from a grid.&lt;br /&gt;
== 1.1.38 ==&lt;br /&gt;
Date: 18.08.2021&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* New Titillium style font for Cyrillic languages.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed inconsistency when fast-replacing ghosts with circuit connections. ([https://forums.factorio.com/98948 more])&lt;br /&gt;
* Fixed an issue with drag-building electric poles with long wire reach. ([https://forums.factorio.com/99205 more])&lt;br /&gt;
* Fixed a crash related to tutorials and modding. ([https://forums.factorio.com/99385 more])&lt;br /&gt;
* Fixed an issue with LuaEntity::set_request_slot() and duplicates. ([https://forums.factorio.com/99209 more])&lt;br /&gt;
* Fixed that picking blueprints from the library through quickbar slots didn&#039;t fire the Lua cursor stack changed event. ([https://forums.factorio.com/99573 more])&lt;br /&gt;
* Fixed items with durability/ammo wouldn&#039;t merge properly in some cases. ([https://forums.factorio.com/99087 more])&lt;br /&gt;
* Fixed a roboport &amp;quot;recharging&amp;quot; icon appearing when not connected to the electric network. ([https://forums.factorio.com/99582 more])&lt;br /&gt;
* Fixed an issue with roboports left in recharging state when revived from ghosts. ([https://forums.factorio.com/99582 more])&lt;br /&gt;
* Fixed an issue where an error sound played when pasting onto a power switch from anything other than another power switch ([https://forums.factorio.com/99378 more])&lt;br /&gt;
* Fixed that the non-blocking saving option would be reset when resuming a multiplayer game using the continue button. ([https://forums.factorio.com/99035 more])&lt;br /&gt;
* Fixed &#039;Close preview&#039; button having cut off text in some locales. ([https://forums.factorio.com/99551 more])&lt;br /&gt;
* Fixed a crash when deleting surfaces with script-connected electric poles. ([https://forums.factorio.com/99641 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity and LuaUnitGroup::set_distraction_command.&lt;br /&gt;
* Added LuaSurface::find_nearest_enemy_entity_with_owner().&lt;br /&gt;
* Added LuaForce::is_friend() and is_enemy().&lt;br /&gt;
== 1.1.37 ==&lt;br /&gt;
Date: 04.08.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed several issues related to latency state and quickbar.&lt;br /&gt;
* Fixed underground belt related tips and tricks performing incorrectly. ([https://forums.factorio.com/99320 more])&lt;br /&gt;
* Fixed forced autosave flag would persist into loading another map if the current map got terminated due to script error before performing the autosave. ([https://forums.factorio.com/99360 more])&lt;br /&gt;
* Fixed a crash when loading some corrupt save files. ([https://forums.factorio.com/99382 more])&lt;br /&gt;
* Fixed a crash when using specific mods. ([https://forums.factorio.com/99408 more])&lt;br /&gt;
* Fixed that disabled mod depenencies would get re-downloaded when installing mods. ([https://forums.factorio.com/99343 more])&lt;br /&gt;
* Fixed starting message dialog was darkened in the Sandbox scenario. ([https://forums.factorio.com/99287 more])&lt;br /&gt;
* Fixed the missing dots icon on the tiny shortcut bar expand button.&lt;br /&gt;
* Fixed that repeated clicking on the Snap to grid checkbox in the blueprint setup gui didn&#039;t work unless the mouse moved away and back. ([https://forums.factorio.com/99396 more])&lt;br /&gt;
* Removed references to iron-axe and steel-axe from the PvP scenario config. ([https://forums.factorio.com/99308 more])&lt;br /&gt;
* Fixed inserters filters would get cleared in some cases when building from blueprints. ([https://forums.factorio.com/99363 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Changed mining drill storage_slots to be automatic.&lt;br /&gt;
* Added destroy_action to logistic and construction robot prototypes.&lt;br /&gt;
* Inserters can now pull from the main output and burnt result inventory of an entity.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaControl::is_cursor_empty(). Returns if the cursor is empty, taking into account items, ghost cursor, and items from the blueprint library.&lt;br /&gt;
* Added on_worker_robot_expired event. Called when a worker (construction or logistic) robot expires through a lack of energy.&lt;br /&gt;
== 1.1.36 ==&lt;br /&gt;
Date: 12.07.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed belt drag building on the edge of building reach. ([https://forums.factorio.com/97178 more])&lt;br /&gt;
* Fixed that canceling upgrade of underground belt didn&#039;t make the corresponding operation with the (potentially) connected belt on the other side.&lt;br /&gt;
* Fixed making blueprint from underground belt with direction upgrade order.&lt;br /&gt;
* Fixed technology icons of flamethrower and rocketry. ([https://forums.factorio.com/98821 more])&lt;br /&gt;
* Fixed hang when deleting blueprint/deconstruction/upgrade planner or blueprint book held by an inserter. ([https://forums.factorio.com/98329 more])&lt;br /&gt;
* Fixed hang when trying to delete blueprint/deconstruction/upgrade planner or blueprint book that was moved to different inventory in the meantime. ([https://forums.factorio.com/98329 more])&lt;br /&gt;
* Fixed pressing delete key in save/load game menus multiple times would pop-up confirmation dialog multiple times. ([https://forums.factorio.com/98100 more])&lt;br /&gt;
* Fixed that the close map generator preview button icon was too large. ([https://forums.factorio.com/98545 more])&lt;br /&gt;
* Fixed that the show/close map generator preview button didn&#039;t loose hover after the preview was shown.&lt;br /&gt;
* Fixed that Cut and copy paste tools select trains in the standard selection mode, even when trains are ignored in this mode. ([https://forums.factorio.com/98344 more])&lt;br /&gt;
* Fixed crash related to wrong identification of non-default values in the mod settings gui. ([https://forums.factorio.com/98903 more])&lt;br /&gt;
* Fixed that linked custom inputs didn&#039;t work for some game controls. ([https://forums.factorio.com/98851 more])&lt;br /&gt;
* Fixed that the train fuel tab didn&#039;t work right for clients in multiplayer. ([https://forums.factorio.com/98377 more])&lt;br /&gt;
* Fixed a crash when using the prototype explorer GUI after just changing mods. ([https://forums.factorio.com/98736 more])&lt;br /&gt;
* Fixed rare corner case related to removal of mods and entities in more than 1 electric network. ([https://forums.factorio.com/98576 more])&lt;br /&gt;
* Fixed item product overload logic when using variable output items. ([https://forums.factorio.com/98833 more])&lt;br /&gt;
* Fixed crash when starting game without base mod and with --disable-prototype-history. ([https://forums.factorio.com/98968 more])&lt;br /&gt;
* Fixed a crash when using set_stack in blueprint books. ([https://forums.factorio.com/98967 more])&lt;br /&gt;
* Fixed a crash when cloning script-disabled beacons. ([https://forums.factorio.com/98960 more])&lt;br /&gt;
* Fixed a crash when using repeat_count with frame_sequence in animation definition. ([https://forums.factorio.com/98904 more])&lt;br /&gt;
* Fixed a crash when trying to build a rolling stock between other rolling stocks from a single train. ([https://forums.factorio.com/99054 more])&lt;br /&gt;
* Fixed ghost entities had reflections on water.&lt;br /&gt;
* Fixed a desync related to processing on_gui_opened event of opening blueprint records in multiplayer games.&lt;br /&gt;
* Fixed a crash when trying to pick a fluid wagon with fluid in clone tool. ([https://forums.factorio.com/99081 more])&lt;br /&gt;
* Fixed that copying assembling machine recipes didn&#039;t update fluidbox temperature filters in some cases. ([https://forums.factorio.com/99111 more])&lt;br /&gt;
* Fixed that robots could sometimes leave roboports very slowly if they were called to work in the middle of descending into a roboport. ([https://forums.factorio.com/98902 more])&lt;br /&gt;
* Fixed trains GUI status button tooltip not updating. ([https://forums.factorio.com/99130 more])&lt;br /&gt;
* Fixed LuaPlayer::build_from_cursor would flip direction when every other building underground belts/pipes. ([https://forums.factorio.com/99074 more])&lt;br /&gt;
* Fixed Train GUI wait condition bars display with 0 slot cargo wagons. ([https://forums.factorio.com/99075 more])&lt;br /&gt;
* Fixed in-game EULA showing HTML character sequences. ([https://forums.factorio.com/99123 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Fixed clearing LuaCustomChartTag.icon by writing nil or empty SignalID.&lt;br /&gt;
* Added LuaPlayer::start_selection and clear_selection.&lt;br /&gt;
* Added freeplay remote interface methods for adjusting the crashsite.&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added overlay layer to the tree variation definitions. ([https://forums.factorio.com/98052 more])&lt;br /&gt;
* Fixed parameter substitution when used with standard parameter ([https://forums.factorio.com/98175 more])&lt;br /&gt;
* Removed unused equipment prototype property &amp;quot;ability_icon&amp;quot;.&lt;br /&gt;
* Added select_group_row_count, select_slot_row_count, inventory_width, module_inventory_width, tooltip_monitor_edge_border, normalised_achievement_icon_size, tutorial_notice_icon_size and flying_text_ttl to utility constants.&lt;br /&gt;
== 1.1.35 ==&lt;br /&gt;
Date: 16.06.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed multiple issues related to placing blueprints with electric poles near other electric poles or ghost thereof. ([https://forums.factorio.com/97398 more])&lt;br /&gt;
* Fixed a lighting issue with QCK Prism mousepads. ([https://forums.factorio.com/98393 more])&lt;br /&gt;
* Fixed recipe notifications when a recipe is hidden from hand crafting. ([https://forums.factorio.com/98328 more])&lt;br /&gt;
* Fixed that units dying wouldn&#039;t contain the unit group they were part of. ([https://forums.factorio.com/98142 more])&lt;br /&gt;
* Fixed a crash when migrating entities across types in some cases. ([https://forums.factorio.com/97882 more])&lt;br /&gt;
* Fixed several crashes when writing to disk fails. ([https://forums.factorio.com/98386 more])&lt;br /&gt;
* Fixed that searching descriptions of some items didn&#039;t work correctly. ([https://forums.factorio.com/98378 more])&lt;br /&gt;
* Fixed that fast-replacing gates would remove wall control behaviors. ([https://forums.factorio.com/98369 more])&lt;br /&gt;
* Fixed desync related to manually fast replacing both ends of underground belt in a way, that they don&#039;t connect in the end.&lt;br /&gt;
* Fixed a crash when trying to edit the whitelist on a server while autosave happens. ([https://forums.factorio.com/98447 more])&lt;br /&gt;
* Fixed counting tiles when part of search area hits non existing chunks. ([https://forums.factorio.com/98684 more])&lt;br /&gt;
* Fixed that gate technology had no description. ([https://forums.factorio.com/98683 more])&lt;br /&gt;
* Fixed loaders would leave a gap on belt when items started moving. ([https://forums.factorio.com/98703 more])&lt;br /&gt;
* Fixed nuke did not vaporize things in the epicenter of the blast and would leave corpses and remnants behind.&lt;br /&gt;
* Fixed a crash when using items with inventories that contain construction robots. ([https://forums.factorio.com/98706 more])&lt;br /&gt;
* Fixed a crash when making a new game from a scenario with the map editor in a vehicle. ([https://forums.factorio.com/98682 more])&lt;br /&gt;
* Fixed not being able to leave large cars with certain shape. ([https://forums.factorio.com/98729 more])&lt;br /&gt;
* Fixed that using large values in the map editor &amp;quot;tick custom&amp;quot; field didn&#039;t work correctly. ([https://forums.factorio.com/98798 more])&lt;br /&gt;
* Fixed that radar coverage preview wasn&#039;t visible when the mouse was above invisible parts of the GUI. ([https://forums.factorio.com/97500 more])&lt;br /&gt;
* Fixed Terrain water checkbox in map generation settings didn&#039;t have the tooltip info icon. ([https://forums.factorio.com/97953 more])&lt;br /&gt;
* Fixed that the mining drill GUI couldn&#039;t be moved off screen. ([https://forums.factorio.com/98113 more])&lt;br /&gt;
* Fixed science pack requirement objective in supply challenge. ([https://forums.factorio.com/98267 more])&lt;br /&gt;
* Fixed that tooltips of slots in the statistics GUIs didn&#039;t account for force bonuses. ([https://forums.factorio.com/97931 more])&lt;br /&gt;
* Fixed that upgrading underground belts marked for upgrade didn&#039;t properly upgrade the (potentially) connected belts on the other side. ([https://forums.factorio.com/98849 more])&lt;br /&gt;
* Fixed LuaEntityPrototype::module_inventory_size would return nil when entity has 65535 slots for modules. ([https://forums.factorio.com/98867 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added a machine-readable JSON format of the runtime documentation, which can be used by developer tools to provide code completion and related functionality.&lt;br /&gt;
* Added vertical_alignment parameter for LuaRendering::draw_text.&lt;br /&gt;
== 1.1.34 ==&lt;br /&gt;
Date: 24.05.2021&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntityPrototype::air_resistance read.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed black border in spidertron technology icon. ([https://forums.factorio.com/98224 more])&lt;br /&gt;
* Fixed that having non standard UI scale would render screen white. ([https://forums.factorio.com/98218 more])&lt;br /&gt;
* Fixed that train could get stuck in destination_full state with available goals when a train stop was built next to ghost rail. ([https://forums.factorio.com/98310 more])&lt;br /&gt;
* Fixed that LuaPlayer::disable_alert() didn&#039;t work for custom alerts. ([https://forums.factorio.com/98261 more])&lt;br /&gt;
* Fixed that piercing damage didn&#039;t work correctly with turrets. ([https://forums.factorio.com/98134 more])&lt;br /&gt;
* Fixed that LuaSurface::clone_brush() didn&#039;t clone entities correctly. ([https://forums.factorio.com/98197 more])&lt;br /&gt;
* Fixed trees with not-flammable flag would still catch on fire. ([https://forums.factorio.com/98414 more])&lt;br /&gt;
* Fixed blueprints and copy-paste tools didn&#039;t capture planned direction changes of entities. ([https://forums.factorio.com/98172 more])&lt;br /&gt;
* Fixed that changing train stop limit would not set last player. ([https://forums.factorio.com/98441 more])&lt;br /&gt;
* Fixed desync when beacons lose power. ([https://forums.factorio.com/98445 more])&lt;br /&gt;
* Fixed spidertron item icon would look different after changing the spidertron color back to its default value. ([https://forums.factorio.com/98204 more])&lt;br /&gt;
* Fixed that Tips and tricks trigger related to setting up a logistic chest request was also triggered when setting up the personal request.&lt;br /&gt;
* Fixed that achivements could block the finished game window.&lt;br /&gt;
* Fixed crash when loading font wingding.ttf. ([https://forums.factorio.com/98492 more])&lt;br /&gt;
== 1.1.33 ==&lt;br /&gt;
Date: 03.05.2021&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* Reworked all technology icons, and provided higher resolutions used by high GUI scale.&lt;br /&gt;
* Changed item icons for armors, to match the progression and tech icons better.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Armor stages on the player character show as 1st with Light armor, and as 2nd with Modular armor.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Roboport normal resolution graphics have been updated to be a downscale from the high resolution graphics. ([https://forums.factorio.com/97848 more])&lt;br /&gt;
* Fixed cut-tool showing distinct selection color when holding shift. ([https://forums.factorio.com/97864 more])&lt;br /&gt;
* Fixed armor rich text tags not using the correct icon. ([https://forums.factorio.com/97138 more])&lt;br /&gt;
* Fixed pumpjack showing item drop indication arrows. ([https://forums.factorio.com/97421 more])&lt;br /&gt;
* Fixed being unable to confirm the migrated content window if there was a game GUI open behind it. ([https://forums.factorio.com/97458 more])&lt;br /&gt;
* Fixed a bad Lua event when invalidating the owning players controller during the gui closed event. ([https://forums.factorio.com/97425 more])&lt;br /&gt;
* Fixed scaling of icons on buttons with more than 200% UI scale.&lt;br /&gt;
* Fixed issue where ghosts overlapping with non-ghost entity in cloned area is not cloned. (fixes https://forums.factorio.com/97861)&lt;br /&gt;
* Fixed using upgrade planner without explicit filters on entities marked for upgrade would not upgrade the existing upgrade orders.&lt;br /&gt;
* Fixed a crash with mods and chunk generation in some cases. ([https://forums.factorio.com/98002 more])&lt;br /&gt;
* Fixed the wrong technology level shown on the icon in the currently selected technology.&lt;br /&gt;
* Fixed the missing notification (i) icon on the recipe group button, when there are more groups, so the tabs are shown as buttons instead.&lt;br /&gt;
* Fixed a crash when trying to undo actions done on a surface that was deleted in the meantime. ([https://forums.factorio.com/98105 more])&lt;br /&gt;
* Fixed that train would sometimes NO_PATH during repath while in intersection where the path passes through a block that is already occupied by that train. ([https://forums.factorio.com/98150 more])&lt;br /&gt;
* Fixed a crash when the link_id of a linked container is changed while a non-admin has the GUI open. ([https://forums.factorio.com/98154 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added &amp;quot;add&amp;quot; and &amp;quot;remove&amp;quot; modes to the Infinity pipe and Heat interface.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Removed the &amp;quot;tile-build&amp;quot; SoundPath type. It has been replaced with &amp;quot;tile-build-small&amp;quot;, &amp;quot;tile-build-medium&amp;quot;, &amp;quot;tile-build-large&amp;quot;, allowing mods to specify which size they want to refer to.&lt;br /&gt;
* Added LuaEntityPrototype::related_underground_belt read.&lt;br /&gt;
* Added &amp;quot;add&amp;quot; and &amp;quot;remove&amp;quot; modes to `InfinityPipeFilter` and `HeatSetting.`&lt;br /&gt;
== 1.1.32 ==&lt;br /&gt;
Date: 14.04.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed color blending with a fully transparent color would produce slightly darker original color. ([https://forums.factorio.com/97813 more])&lt;br /&gt;
* Fixed that clicking gps tags in chat would also trigger chart drag causing chart to be not centered on gps tag. ([https://forums.factorio.com/97839 more])&lt;br /&gt;
* Fixed market gui would show wrong numbers when an offer has the same item multiple times. ([https://forums.factorio.com/97477 more])&lt;br /&gt;
* Fixed turret range could sometimes render long line to the top left corner of game window.&lt;br /&gt;
== 1.1.31 ==&lt;br /&gt;
Date: 13.04.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed various issues related to how chat tags are open. ([https://forums.factorio.com/97141 more])&lt;br /&gt;
* Fixed that replays would break after winning the game. ([https://forums.factorio.com/96774 more])&lt;br /&gt;
* Fixed that listbox would loose focus when clicking on other widgets that can&#039;t be focused anyway.&lt;br /&gt;
* Fixed GUI crash when furnaces would select recipes that have more products than it&#039;s output inventory size. ([https://forums.factorio.com/97314 more])&lt;br /&gt;
* Fixed that fluids could be purged from the whole fluid system in certain cases. ([https://forums.factorio.com/97338 more])&lt;br /&gt;
* Fixed a crash when loading save files in some cases. ([https://forums.factorio.com/97363 more])&lt;br /&gt;
* Fixed locale related to deconstruction planner tile selection mode. ([https://forums.factorio.com/97653 more])&lt;br /&gt;
* Fixed advanced rail signal tutorial losing items held in the cursor. ([https://forums.factorio.com/97662 more])&lt;br /&gt;
* Fixed Alt+F4 would close the game on Windows even when other modifier keys were pressed. ([https://forums.factorio.com/97710 more])&lt;br /&gt;
* Fixed that NAT-punching didn&#039;t work correctly. ([https://forums.factorio.com/97688 more])&lt;br /&gt;
* Fixed that some infinite crafting recipes didn&#039;t work as intermediates. ([https://forums.factorio.com/96775 more])&lt;br /&gt;
* Fixed crash when an entity marked for an upgrade is selected for another upgrade in multiplayer in some cases. ([https://forums.factorio.com/97586 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added defines.prototypes which contains all prototype type names (eg: defines.prototypes.entity = { container, furnace, assembling-machine, ... })&lt;br /&gt;
== 1.1.30 ==&lt;br /&gt;
Date: 24.03.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that building by moving ignored the position where the player built the last entity. ([https://forums.factorio.com/97179 more])&lt;br /&gt;
* Fixed a crash that could happen when viewing the tooltip for certain types of ammo. ([https://forums.factorio.com/97276 more])&lt;br /&gt;
* Fixed that ammo tooltips sometimes wouldn&#039;t show damage info. ([https://forums.factorio.com/97277 more])&lt;br /&gt;
== 1.1.29 ==&lt;br /&gt;
Date: 24.03.2021&lt;br /&gt;
== 1.1.28 ==&lt;br /&gt;
Date: 24.03.2021&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Blueprints and copy paste of entities with upgrade order are created based on the upgrade order instead of the current entity. ([https://forums.factorio.com/73287 more])&lt;br /&gt;
* Enabled upgrading entities marked for upgrade, in which case, the upgrade target is used as the source entity for the upgrade planner filters.&lt;br /&gt;
* The announcement of player death now contains GPS tag with the location.&lt;br /&gt;
&lt;br /&gt;
=== Balancing ===&lt;br /&gt;
&lt;br /&gt;
* Increased the tank braking power from 400kw to 800kw. Before this change, the tank acceleration (600kw) was actually even greater than the braking force.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed incorrect color lookup table interpolation for ambient light around noon.&lt;br /&gt;
* Fixed that built electric pole from map view was also opened with the same click with alternative key binding. ([https://forums.factorio.com/96607 more])&lt;br /&gt;
* Fixed that laser and fluid turret bonus, wasn&#039;t shown properly in the toooltip. This bonus is not used in vanilla which uses ammo category bonus. ([https://forums.factorio.com/96566 more])&lt;br /&gt;
* Fixed that part of the flamethrower turret and flamethrower ammo turret description, which describes the properties of the flame bound to it stargets didn&#039;t show the bonus damage from upgrades. ([https://forums.factorio.com/96566 more])&lt;br /&gt;
* Fixed that mod install could cause removal of blueprint entities if it didn&#039;t remove the entity, but just made it not acceptable to be used in blueprint. ([https://forums.factorio.com/96852 more])&lt;br /&gt;
* Fixed that the confirm load game dialog with 2 green arrow buttons had tooltips with (E) to confirm, while the E to confirm doesn&#039;t work here as it would be ambiguous. ([https://forums.factorio.com/96904 more])&lt;br /&gt;
* Fixed crash related to using smart ghost belt building with a mod that specifies belt without related underground belt. ([https://forums.factorio.com/96875 more])&lt;br /&gt;
* Fixed that renaming Spidertron didn&#039;t trigger on_entity_renamed. ([https://forums.factorio.com/96955 more])&lt;br /&gt;
* Fixed that disabling side menu guis through script would sometimes leave an empty frame. ([https://forums.factorio.com/96991 more])&lt;br /&gt;
* Fixed that crafting machines wouldn&#039;t wake up when the speed effect was changed in some situations. ([https://forums.factorio.com/96457 more])&lt;br /&gt;
* Fixed that focus-search didn&#039;t in some GUIs work while in the map editor. ([https://forums.factorio.com/96909 more])&lt;br /&gt;
* Fixed that chat icon selector didn&#039;t remember the last opened tab when used outside the game.&lt;br /&gt;
* Fixed that pressing Escape with the chat icon selector opened in a dialog outside the game closed the whole dialog instead of closing just the selector window.&lt;br /&gt;
* Fixed that pressing Control + F to search in the chat icon selector that is opened on top of a non-game window that already had search activated the bottom window search.&lt;br /&gt;
* Fixed that enabled train stops would cause schedule records for trains on different surfaces to be rendered as available. ([https://forums.factorio.com/96799 more])&lt;br /&gt;
* Fixed rare crash when using Map editor -&amp;gt; Convert save. ([https://forums.factorio.com/97188 more])&lt;br /&gt;
* Fixed electric pole connection consistency issue related to fast replace of modded entities. ([https://forums.factorio.com/96929 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added mod dependency modifier &amp;quot;~&amp;quot;, which marks the mod as required, but doesn&#039;t affect mod loading order, so these kind of dependencies can be circular.&lt;br /&gt;
* Prototype/EntityWithHealth::healing_per_tick is now also used by trees, so their automatic healing is no longer hardcoded. ([https://forums.factorio.com/97082 more])&lt;br /&gt;
* Loaders are now able to take or insert more than 1 item per transport line per tick. ([https://forums.factorio.com/81447 more])&lt;br /&gt;
&lt;br /&gt;
=== Gui ===&lt;br /&gt;
&lt;br /&gt;
* Tweaked search in the install mods GUI, so the search order prioritizes the results more naturally.&lt;br /&gt;
* Unified the search button in the mod settings GUI.&lt;br /&gt;
* Improved some descriptions in Map Generator GUI. ([https://forums.factorio.com/97131 more])&lt;br /&gt;
== 1.1.27 ==&lt;br /&gt;
Date: 11.03.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed trees and stones would block placement of wall ghosts. ([https://forums.factorio.com/96529 more])&lt;br /&gt;
* Fixed interaction with entities from zoomed-to-world view in editor. ([https://forums.factorio.com/96530 more])&lt;br /&gt;
* Fixed spidertrons with burner energy sources didn&#039;t interact with auto-trash correctly. ([https://forums.factorio.com/96461 more])&lt;br /&gt;
* Fixed a crash when viewing styles in the prototype explorer GUI. ([https://forums.factorio.com/96638 more])&lt;br /&gt;
* Fixed a crash when fast-replacing electric pole ghosts with non-electric-poles. ([https://forums.factorio.com/96652 more])&lt;br /&gt;
* Fixed that robots building trains with equipment grids didn&#039;t work correctly. ([https://forums.factorio.com/96666 more])&lt;br /&gt;
* Fixed that changes in mod settings textboxes weren&#039;t highlighted when hovering reset/back button. ([https://forums.factorio.com/96715 more])&lt;br /&gt;
* Fixed that pressing Escape in mod settings with unconfirmed changes didn&#039;t open the confirmation dialog as in other settings.&lt;br /&gt;
* Fixed crash when mod destroys currently opened locomotive and creates and opens new one right away.  ([https://forums.factorio.com/viewtopic.php?f=30&amp;amp;t=96707 more])&lt;br /&gt;
* Fixed mods gui for case when the mod title can&#039;t fit the space. ([https://forums.factorio.com/96687 more])&lt;br /&gt;
* Fixed unloadable save related to underground belts in a weird state. ([https://forums.factorio.com/96685 more])&lt;br /&gt;
* Fixed corner case of drawing wires between ghosts and non-ghost entities. ([https://forums.factorio.com/96728 more])&lt;br /&gt;
* Fixed a crash when using upgrade planners through the Lua API. ([https://forums.factorio.com/96778 more])&lt;br /&gt;
* Fixed wrong entity selection in multiplayer when using ghost cursor with rail. ([https://forums.factorio.com/96443 more])&lt;br /&gt;
* Fixed accumulator charged status for some extreme cases. ([https://forums.factorio.com/96578 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Limited the name and title of the mod to 100 characters.&lt;br /&gt;
&lt;br /&gt;
== 1.1.26 ==&lt;br /&gt;
Date: 01.03.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that all entity GUIs in the map editor entity-editor and spectator controller were invisible.&lt;br /&gt;
* Fixed Train overview GUI not updating the list remark. ([https://forums.factorio.com/96262 more])&lt;br /&gt;
* Fixed typos in Construction robot tip. ([https://forums.factorio.com/96360 more])&lt;br /&gt;
* Fixed a crash when quitting while using the linked-container entity type with power armor in it.&lt;br /&gt;
* Fixed that sounds could sometimes be heard when they shouldn&#039;t. ([https://forums.factorio.com/96343 more])&lt;br /&gt;
* Fixed regenerating tile variations during save migration would not break up old large tiles and would only reset their variations to 0.&lt;br /&gt;
* Fixed &amp;quot;probability&amp;quot; property of size variants in the tile definition was ignored when &amp;quot;weights&amp;quot; property was left out.&lt;br /&gt;
* Fixed searching mod settings tab would leave tabs disabled. ([https://forums.factorio.com/96489 more])&lt;br /&gt;
* Fixed a crash of transport line migration in some cases of mod removal. ([https://forums.factorio.com/96342 more])&lt;br /&gt;
* Fixed that train stop gui could indicate more trains than there are when trains are removed or merged while gui is opened. ([https://forums.factorio.com/96519 more])&lt;br /&gt;
* Fixed a conflict between setting the players cursor through script and holding blueprint library blueprints. ([https://forums.factorio.com/96452 more])&lt;br /&gt;
* Fixed that building entity with multiple items to place would take unrelated items from inventory. ([https://forums.factorio.com/96536 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added CustomInputPrototype::include_selected_prototype when true the event will include selected_prototype = {base_type=, derived_type=, name=} when applicable.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaCustomInputPrototype::enabled_while_spectating, enabled_while_in_cutscene, include_selected_prototype, and item_to_spawn read.&lt;br /&gt;
== 1.1.25 ==&lt;br /&gt;
Date: 17.02.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Changed defines.flow_precision_index.one_second to five_seconds since that&#039;s what it actually is.&lt;br /&gt;
* Fixed crash related to loading that trigger migration to remove invalid upgrades.&lt;br /&gt;
* Fixed that confirming the low value in logistic request didn&#039;t update the value. ([https://forums.factorio.com/96234 more])&lt;br /&gt;
== 1.1.24 ==&lt;br /&gt;
Date: 16.02.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash related to building instant blueprints in editor. ([https://forums.factorio.com/96197 more])&lt;br /&gt;
* Fixed a visual in blueprint building preview when building walls over walls. ([https://forums.factorio.com/96212 more])&lt;br /&gt;
== 1.1.23 ==&lt;br /&gt;
Date: 16.02.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash that could happen when certain sound effects would play. ([https://forums.factorio.com/96177 more])&lt;br /&gt;
== 1.1.22 ==&lt;br /&gt;
Date: 15.02.2021&lt;br /&gt;
&lt;br /&gt;
=== Optimizations ===&lt;br /&gt;
&lt;br /&gt;
* Improved performance when building blueprints in multiplayer. ([https://forums.factorio.com/95901 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed Artillery wagon and turret showing wrong tooltip title in deconstruction planner. ([https://forums.factorio.com/95847 more])&lt;br /&gt;
* Fixed control setting buttons wouldn&#039;t have a tooltip when they started without a set value. ([https://forums.factorio.com/95874 more])&lt;br /&gt;
* Possible fix for multiplayer server crashing when a client tries to connect. ([https://forums.factorio.com/95773 more])&lt;br /&gt;
* Fixed a crash in multiplayer when upgrading or deconstructing. ([https://forums.factorio.com/95948 more])&lt;br /&gt;
* Removed and tweaked some hidden locale to hopefully make 100% possible. ([https://forums.factorio.com/95743 more])&lt;br /&gt;
* Added explicit values to the circuit network range specification in the tips and tricks. ([https://forums.factorio.com/95829 more])&lt;br /&gt;
* Fixed that the copy and paste tips and tricks simulation wasn&#039;t working properly. ([https://forums.factorio.com/95978 more])&lt;br /&gt;
* Fixed that LuaFlowStatistics::get_flow_count didn&#039;t work correctly. ([https://forums.factorio.com/96022 more])&lt;br /&gt;
* Fixed that instant blueprint building in the map editor didn&#039;t work with undo. ([https://forums.factorio.com/96015 more])&lt;br /&gt;
* Fixed missing status for wall controlling gate by circuit network. ([https://forums.factorio.com/95875 more])&lt;br /&gt;
* Fixed a crash when saving when using LuaItemStack::create_grid() on stacks with a count &amp;gt; 1. ([https://forums.factorio.com/96053 more])&lt;br /&gt;
* Fixed that enter to confirm a logistic request count didn&#039;t work. ([https://forums.factorio.com/95845 more])&lt;br /&gt;
* Fixed pole dragging corner case. ([https://forums.factorio.com/95790 more])&lt;br /&gt;
* Fixed padding in the sync mods with save window when scroll is activated.&lt;br /&gt;
* Fixed invalid &amp;quot;Can&#039;t reach&amp;quot; message when using ghost cursor to build rails in the latency state.&lt;br /&gt;
* Fixed wrong status of rail signal next to rail with wrong direction.&lt;br /&gt;
* Fixed that manual rotation of entity with rotation upgrade order didn&#039;t clear that order. ([https://forums.factorio.com/95807 more])&lt;br /&gt;
* Fixed in calculation of required modules when combining real and requested modules during blueprint creation. ([https://forums.factorio.com/96033 more])&lt;br /&gt;
* Fixed that blueprint containing only entities placeable off grid was built off grid even with snap to grid specified. ([https://forums.factorio.com/96084 more])&lt;br /&gt;
* Fixed crash caused by scrolling blueprint book in a blueprint shelf that is not yet synchronised. ([https://forums.factorio.com/96110 more])&lt;br /&gt;
* Fixed that tips &amp;amp; tricks simulation sounds were continuing to play when switched to a tutorial. ([https://forums.factorio.com/96108 more])&lt;br /&gt;
* Fixed that player could get stuck by entities created in the tutorials. ([https://forums.factorio.com/96107 more])&lt;br /&gt;
* Fixed some unnecessary error sounds in a special cases when building power poles. ([https://forums.factorio.com/96100 more])&lt;br /&gt;
* Fixed that exiting high speed moving train could result in a player being stuck. ([https://forums.factorio.com/96092 more])&lt;br /&gt;
* Fixed mod dependency tooltips in some cases. ([https://forums.factorio.com/96145 more])&lt;br /&gt;
* Fixed that the upper 1/3 part of the color picker button in the train stop gui didn&#039;t work. ([https://forums.factorio.com/96149 more])&lt;br /&gt;
* Fixed walls would not be buildable on valid positions in some cases. ([https://forums.factorio.com/96043 more])&lt;br /&gt;
* Fixed crash related to modded underground pipe ghosts with multiple connections with different lengths. ([https://forums.factorio.com/96134 more])&lt;br /&gt;
* Fixed that it was sometimes possible for an entity to attack an entity on a different surface. ([https://forums.factorio.com/96094 more])&lt;br /&gt;
* Fixed inaccurate range indicator in spidertron. ([https://forums.factorio.com/95808 more])&lt;br /&gt;
* Fixed that some sounds that were audible when viewing a certain part of the map in map view wouldn&#039;t stop when closing the map view. ([https://forums.factorio.com/96021 more])&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Added shortcut info tooltips to to all of the relevant confirm buttons and close buttons.&lt;br /&gt;
* Lowered editor surface changing shortcut to not be in the way if Control + &amp;lt;number&amp;gt; is used for something. ([https://forums.factorio.com/96121 more])&lt;br /&gt;
* Changed personal logistic requests for ammo so they don&#039;t get delivered to the spidertron you&#039;re driving. ([https://forums.factorio.com/95741 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added move_stuck_players bool parameter (false by default) to the create_entity method.&lt;br /&gt;
== 1.1.21 ==&lt;br /&gt;
Date: 05.02.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed crash related to using belt traversing in latency state. ([https://forums.factorio.com/95693 more])&lt;br /&gt;
* Fixed crash triggered by desync while entities are marked for upgrade in latency state.&lt;br /&gt;
* Fixed non precise belt traversing behviour in latency state.&lt;br /&gt;
* Fixed a desync related to upgrading entities in the latency state.&lt;br /&gt;
* Fixed upgrading unpair underground belt by smart ghost building.&lt;br /&gt;
== 1.1.20 ==&lt;br /&gt;
Date: 04.02.2021&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Added hotkey (default O) to toggle the train overview GUI.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that gates would open for spidertron. ([https://forums.factorio.com/94992 more])&lt;br /&gt;
* Fixed tank weapon cooldown rendering. ([https://forums.factorio.com/95013 more])&lt;br /&gt;
* Fixed that changing the force of a player or spidertron would lose logistic requests. ([https://forums.factorio.com/95096 more])&lt;br /&gt;
* Fixed that deleting the last scenario didn&#039;t correctly clear name, description and preview in the new game gui. ([https://forums.factorio.com/95243 more])&lt;br /&gt;
* Fixed that it wasn&#039;t possible to manually merge trains in chests. ([https://forums.factorio.com/95281 more])&lt;br /&gt;
* Fixed a crash when rendering rich text tooltips in some cases. ([https://forums.factorio.com/95294 more])&lt;br /&gt;
* Fixed the Trains/Train stop GUI showing trains on other surfaces. ([https://forums.factorio.com/95366 more])&lt;br /&gt;
* Fixed player dying in a scenario inside simulation widget would end currently running scenario. ([https://forums.factorio.com/95285 more])&lt;br /&gt;
* Fixed that create_entities_from_blueprint_string didn&#039;t insert train fuel. ([https://forums.factorio.com/95286 more])&lt;br /&gt;
* Fixed that building blueprints in the game next to uncharted areas didn&#039;t work as expected. ([https://forums.factorio.com/95056 more])&lt;br /&gt;
* Fixed biters and groups in Wave defense overloading the pathfinder. ([https://forums.factorio.com/95542 more])&lt;br /&gt;
* Building gets interrupted when moving between map and game view. ([https://forums.factorio.com/95187 more])&lt;br /&gt;
* Fixed building error message spam when building transport belts over obstacle. ([https://forums.factorio.com/95402 more])&lt;br /&gt;
* Fixed that undoing deconstruction of building with modules created extra module request. ([https://forums.factorio.com/95466 more])&lt;br /&gt;
* Fixed inconsistency related to building out of reach and moving. ([https://forums.factorio.com/95310 more])&lt;br /&gt;
* Fixed that the selected map generator preset was not correctly saved when generating a map for multiplayer or map editor. ([https://forums.factorio.com/95277 more])&lt;br /&gt;
* Fixed that the map generator GUI would only save it&#039;s state when pressing Next/Play. ([https://forums.factorio.com/95277 more])&lt;br /&gt;
* Fixed that dropping single items into machines using modules didn&#039;t clear the module requests. ([https://forums.factorio.com/95564 more])&lt;br /&gt;
* Fixed that the stations list wasn&#039;t sorted using natural sort order. ([https://forums.factorio.com/95261 more])&lt;br /&gt;
* Fixed the blueprint import with odd odd grid offsets. ([https://forums.factorio.com/95614 more])&lt;br /&gt;
* Fixed that the game didn&#039;t show name of the item in the request slot tooltip when it is disabled for being already set. ([https://forums.factorio.com/95370 more])&lt;br /&gt;
* Fixed that the undo button tooltip didn&#039;t update when clicked. ([https://forums.factorio.com/95259 more])&lt;br /&gt;
* Fixed bad tooltip indentation when instruction can&#039;t fit one line. ([https://forums.factorio.com/95242 more])&lt;br /&gt;
* Fixed overbuilding underground pipe ghosts with real pipes underground pipes. ([https://forums.factorio.com/95038 more])&lt;br /&gt;
* Fixed inconsistency in direction selection when being a client in a multiplayer game. ([https://forums.factorio.com/95330 more])&lt;br /&gt;
* Fixed that overbuilding pole out of reach didn&#039;t consider the pole to be part of the drag buliding logic. ([https://forums.factorio.com/95365 more])&lt;br /&gt;
* Fixed that the &amp;quot;Continue&amp;quot; button wouldn&#039;t remember whether the last game was single-player or multi-player when non-blocking saving was enabled. ([https://forums.factorio.com/92804 more])&lt;br /&gt;
* Fixed rare electric network migration error related to loading save without all the related mods. ([https://forums.factorio.com/95478 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added on_research_reversed.&lt;br /&gt;
== 1.1.19 ==&lt;br /&gt;
Date: 26.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed certain build by dragging inconsistencies.&lt;br /&gt;
* Fixed that force-building blueprint from blueprint library near a train stop could add the stop into the schedule instead of building the blueprint. ([https://forums.factorio.com/94940 more])&lt;br /&gt;
* Fixed desync/consistency issue related to drag building ghost electric pole, while the previous pole is built by robots before the next ghost is built.&lt;br /&gt;
* Fixed build distance check related to rotation of rectangular entities. ([https://forums.factorio.com/94967 more])&lt;br /&gt;
== 1.1.18 ==&lt;br /&gt;
Date: 25.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash related to tips &amp;amp; tricks simulations.&lt;br /&gt;
== 1.1.17 ==&lt;br /&gt;
Date: 25.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Limited blueprint building to charted areas - still regardless of fog of war. ([https://forums.factorio.com/94933 more])&lt;br /&gt;
* Fixed the ability to build belts outside placement range in situations where it shouldn&#039;t be possible. ([https://forums.factorio.com/94912 more])&lt;br /&gt;
* Fixed that modded rapid trains could cause consistency issues with rails. Trains faster than 7386.3km/h will be limited to that speed. ([https://forums.factorio.com/94924 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added on_entity_logistic_slot_changed for player and vehicle personal logistics.&lt;br /&gt;
== 1.1.16 ==&lt;br /&gt;
Date: 25.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed possible crashes when building train wagons near train wagon ghosts that are not on rails.&lt;br /&gt;
* Fixed that the search didn&#039;t work correctly in the prototypes GUI in some cases. ([https://forums.factorio.com/94889 more])&lt;br /&gt;
* Fixed that extra warning sound was played when upgrading underground from the exit side. ([https://forums.factorio.com/94887 more])&lt;br /&gt;
== 1.1.15 ==&lt;br /&gt;
Date: 24.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Allowed to build blueprints anywhere regardless fog of war. Deconstruction planner, blueprint creation and related actions are still limited by the fog of war, so you can&#039;t easily make changes to the blueprint built out of fog of war, but this still feels like a better solution compared to having to use non-chart building of huge blueprints when no radar coverage is available.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that ghost reversion orders prevented manual reversion of existing underground belt. ([https://forums.factorio.com/94834 more])&lt;br /&gt;
* Fixed that clicking near the train stop in a map mode with a spidertron remote with control settings that have conflicting the send click and open click opened the statio instead of sending the spidertron. ([https://forums.factorio.com/94814 more])&lt;br /&gt;
* Fixed that the fast belt traversing tutorial didn&#039;t work when the option was turned off.&lt;br /&gt;
* Fixed that ghosted wagons weren&#039;t properly considered for snapping. ([https://forums.factorio.com/94835 more])&lt;br /&gt;
* Fixed logic of searching for free space to exit car when the car was just destroyed, which could lead into passangers being stuck when the car was surrounded at the time of destruction. ([https://forums.factorio.com/94845 more])&lt;br /&gt;
* Fixed script error if you lose supply challenge in multiplayer. ([https://forums.factorio.com/94847 more])&lt;br /&gt;
* Tweaked the tips &amp;amp; tricks simulation to be more prepared for mods.&lt;br /&gt;
* Made it possible to fast-revive cargo wagons. ([https://forums.factorio.com/94851 more])&lt;br /&gt;
* Fixed plural localisation error in supply challenge. ([https://forums.factorio.com/94855 more])&lt;br /&gt;
* Fixed multiplayer desync related to electric pole ghost building.&lt;br /&gt;
* Fixed that pump was using double the energy when transferring to fluid wagon, which could, with the combination of the limited energy buffer, limit the speed of transfer to the wagon, and result in a flickery change of pump speed reporting. ([https://forums.factorio.com/94852 more])&lt;br /&gt;
* Fixed the entity transfer tutorial to work properly when mods change stack sizes of some of the related items. ([https://forums.factorio.com/93833 more])&lt;br /&gt;
* Fixed &#039;Move between labs&#039; tip erroring with some mods. ([https://forums.factorio.com/92809 more])&lt;br /&gt;
== 1.1.14 ==&lt;br /&gt;
Date: 23.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Optimizations ===&lt;br /&gt;
&lt;br /&gt;
* Improved save-game speed by up to 2x depending on the save file size.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that ghost reversion orders prevented manual reversion. ([https://forums.factorio.com/94776 more])&lt;br /&gt;
* Fixed application of the forced ghost mode that removes trees/rocks/cliffs in the way when ghost building. ([https://forums.factorio.com/94784 more])&lt;br /&gt;
* Fixed that undo didn&#039;t work for upgrade order created by ghost overbuilding.&lt;br /&gt;
* Fixed extra collision message for ghost drag-building belts. ([https://forums.factorio.com/94777 more])&lt;br /&gt;
* Fixed crash related to rolling stock drag building. ([https://forums.factorio.com/94785 more])&lt;br /&gt;
* Fixed not loadable saves related to invalid blueprint settings when entities are migrated in a certain way. ([https://forums.factorio.com/94767 more])&lt;br /&gt;
* Added missing tips and trick entries related to fast belt bending and belt traversing.&lt;br /&gt;
* Fixed a crash related to building rail in a specific situation. ([https://forums.factorio.com/94808 more])&lt;br /&gt;
* Fixed underground belt collision check with underground belt ghost. ([https://forums.factorio.com/94817 more])&lt;br /&gt;
== 1.1.13 ==&lt;br /&gt;
Date: 22.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Decider combinator can output an Anything signal, which returns exactly one matching signal. ([https://forums.factorio.com/28946 more])&lt;br /&gt;
&lt;br /&gt;
=== Gui ===&lt;br /&gt;
&lt;br /&gt;
* Various small changes and fixes related to how temperatures are shown. ([https://forums.factorio.com/94561 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed inconsistent usage of Optimisation and Optimization in the changelog and codebase. ([https://forums.factorio.com/94476 more])&lt;br /&gt;
* Fixed tooltip item lists not showing in some cases. ([https://forums.factorio.com/94494 more])&lt;br /&gt;
* Fixed missing &amp;quot;Can&#039;t reach&amp;quot; message when trying to build out of build reach. ([https://forums.factorio.com/94480 more])&lt;br /&gt;
* Fixed corner case of fast belt dragging back and forth. ([https://forums.factorio.com/94488 more])&lt;br /&gt;
* Fixed that belt traversing when ghost building didn&#039;t work outside manual building reach distance. ([https://forums.factorio.com/94500 more])&lt;br /&gt;
* Fixed changing belt direction by dragging when underground part is present. ([https://forums.factorio.com/94505 more])&lt;br /&gt;
* Fixed cancelling planned belt upgrade by ghost belt dragging. ([https://forums.factorio.com/94536 more])&lt;br /&gt;
* Fixed that using undo on recently mined entity didn&#039;t work in latency state and produced a memory leak instead.&lt;br /&gt;
* Fixed that using smart belt building traverse when using ghost cursor (instead of shift building) was generating underground belts for free. ([https://forums.factorio.com/94526 more])&lt;br /&gt;
* Fixed various problems related to latency state and belt building.&lt;br /&gt;
* Fixed a crash when entity ghost with self connection was destroyed. ([https://forums.factorio.com/94524 more])&lt;br /&gt;
* Fixed items held by inserters would not draw light layer. ([https://forums.factorio.com/94601 more])&lt;br /&gt;
* Fixed that power switch state was not saved in blueprint strings.&lt;br /&gt;
* Fixed that furnace alt-mode didn&#039;t show the last recipe, same as map view &amp;quot;Recipe Icons&amp;quot; option. ([https://forums.factorio.com/94601 more])&lt;br /&gt;
* Fixed locomotive rebuilt through undo operation would not have its schedule restored. ([https://forums.factorio.com/94610 more])&lt;br /&gt;
* Fixed that overlapping ghosts were removed when they shouldn&#039;t while other entities marked for deconstruction were present. ([https://forums.factorio.com/94620 more])&lt;br /&gt;
* Fixed Train GUI crash when a temporary stop expires and no stops are valid. ([https://forums.factorio.com/94296 more])&lt;br /&gt;
* Fixed that steam turbines fed with steam of lower temperature would show as producing more electricity in electric network info. ([https://forums.factorio.com/94595 more])&lt;br /&gt;
* Fixed tiles would be rendered with 1px gap between them at some positions, zoom levels and screen resolutions. ([https://forums.factorio.com/94671 more])&lt;br /&gt;
* Allowed to freely fast-replace underground pipes by pipes. ([https://forums.factorio.com/94666 more])&lt;br /&gt;
* Fixed belt upgrading by dragging with belt gap present. ([https://forums.factorio.com/94669 more])&lt;br /&gt;
* Fixed that tips and tricks were not animating on clients in multiplayer. ([https://forums.factorio.com/94720 more])&lt;br /&gt;
* Increased build reach check distance for finishing belt turns to avoid unexpected gaps when moving and building. ([https://forums.factorio.com/94518 more])&lt;br /&gt;
* Fixed a crash when rendering modded mining drills in some situations. ([https://forums.factorio.com/94736 more])&lt;br /&gt;
* Fixed a network error related to hosting a game using the continue button. ([https://forums.factorio.com/94507 more])&lt;br /&gt;
* Improved the manual building behaviour when building on (or behind) the edge of the reach while moving.&lt;br /&gt;
* Fixed that enemy ghost indications could be shown when hovering enemy chest. ([https://forums.factorio.com/94758 more])&lt;br /&gt;
* Fixed tile ordering of nuclear ground.&lt;br /&gt;
* Changed tile order strings to the commented style.&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* AttackParameters::turn_range greater than 0.5 but less than 1 will be clamped to 0.5 as targeting in arcs larger than half circle is not implemented. ([https://forums.factorio.com/94654 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Writing nil to LuaEntity::trains_limit disables the limit (sets maximum possible value).&lt;br /&gt;
== 1.1.12 ==&lt;br /&gt;
Date: 16.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that player building reach limit was applied also for ghost building. ([https://forums.factorio.com/94394 more])&lt;br /&gt;
* Fixed crash related to building out of radar reach. ([https://forums.factorio.com/94399 more])&lt;br /&gt;
* Fixed build by dragging of underground belt/pipes when starting to drag on existing piece. ([https://forums.factorio.com/94391 more])&lt;br /&gt;
* Fixed a corner case of power pole drag building related to powering all encountered entities. ([https://forums.factorio.com/94406 more])&lt;br /&gt;
* Fixed LuaEntity::remove_fluid failing due to bad temperature related float/double comparison.&lt;br /&gt;
* Fixed belt traversing related to using ghost building over real belts to create upgrade order to change direction.&lt;br /&gt;
* Smart belt building respects existing underground belts. ([https://forums.factorio.com/94356 more])&lt;br /&gt;
* Fixed crash when trying to create explosion whose source entity or position can not be determined. ([https://forums.factorio.com/94388 more])&lt;br /&gt;
* Fixed that the game could not delete files on exFat partition. ([https://forums.factorio.com/94387 more])&lt;br /&gt;
* Fixed too verbose error message when overbuilding the same entity ghost. ([https://forums.factorio.com/94384 more])&lt;br /&gt;
* Fixed OpenGL crash when simulation widget is destroyed from the update thread. ([https://forums.factorio.com/94464 more])&lt;br /&gt;
== 1.1.11 ==&lt;br /&gt;
Date: 14.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed belt dragging on the the edge of player building reach. ([https://forums.factorio.com/94359 more])&lt;br /&gt;
* Fixed internal electric pole connection inconsistency preventing the loading of certain saves. ([https://forums.factorio.com/94360 more])&lt;br /&gt;
== 1.1.10 ==&lt;br /&gt;
Date: 14.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a false positive in a blueprint related consistency checks. ([https://forums.factorio.com/94355 more])&lt;br /&gt;
== 1.1.9 ==&lt;br /&gt;
Date: 14.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* Tooltip for empty ammo, gun and module slots that show all possible items that can be inserted into it.&lt;br /&gt;
* Added smart belt dragging option that unlocks 2 fundamental features for belt building and is enabled by default: 1) Rotating while belt dragging can be used to build belt segments faster. 2) Automatic underground belt placement when obstacle is encountered.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Extended locking for building in line for underground belts/pipes. ([https://forums.factorio.com/91719 more])&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that E to confirm didn&#039;t work correctly with mod changelog GUIs. ([https://forums.factorio.com/94024 more])&lt;br /&gt;
* Fixed that lamps would show no power warning during the day even when the energy was available in some cases. ([https://forums.factorio.com/94032 more])&lt;br /&gt;
* Fixed that removing train stop with stopped train would make train to get stuck.&lt;br /&gt;
* Fixed that entering and exiting a vehicle in the same tick would move you away from the vehicle. ([https://forums.factorio.com/94048 more])&lt;br /&gt;
* Fixed entity status of full burner mining drill inserting into burner inserter. ([https://forums.factorio.com/93859 more])&lt;br /&gt;
* Fixed entity status of inserter locked on entity ghost. ([https://forums.factorio.com/94078 more])&lt;br /&gt;
* Fixed entity status of inserter trying to put item on the ground position that is already occupied. ([https://forums.factorio.com/94079 more])&lt;br /&gt;
* Fixed a desync when importing blueprint strings with electric poles.&lt;br /&gt;
* Fixed entity status of inserter trying to put item into train that is not there. ([https://forums.factorio.com/94076 more])&lt;br /&gt;
* Added status for generator and solar panel for not plugged into electric network. ([https://forums.factorio.com/94081 more])&lt;br /&gt;
* Fixed crash when drag building from a pole that is mined in the meantime. ([https://forums.factorio.com/94090 more])&lt;br /&gt;
* Fixed that manipulating modded blueprints with extended wire reach did break the connections. ([https://forums.factorio.com/94113 more])&lt;br /&gt;
* Fixed drag building entities with no lock to line, or when it is globally disabled. ([https://forums.factorio.com/94051 more])&lt;br /&gt;
* Fixed that artillery chart hit animations showed on every surface. ([https://forums.factorio.com/93447 more])&lt;br /&gt;
* Build by dragging through already preexisting electric poles doesn&#039;t ignore them.&lt;br /&gt;
* Fixed that it wasn&#039;t possible to enter/exit spidertrons in some cases. ([https://forums.factorio.com/94133 more])&lt;br /&gt;
* Fixed that unit groups could sometimes wait indefinitely for a stuck member. ([https://forums.factorio.com/93391 more])&lt;br /&gt;
* Fixed that having more than 8&#039;388&#039;608 solar panels in the same electric network didn&#039;t work correctly.&lt;br /&gt;
* Fixed that replays were broken if async saving was enabled on Linux or Mac. ([https://forums.factorio.com/93423 more])&lt;br /&gt;
* Probably fixed rare random crash related to scrolling blueprint books. ([https://forums.factorio.com/93575 more])&lt;br /&gt;
* Fixed an error related to mod GUIs when applying multiple actions in the same tick. ([https://forums.factorio.com/94225 more])&lt;br /&gt;
* Fixed that flip state of blueprint wasn&#039;t reset when changing content into blueprint not compatibile with flipping. ([https://forums.factorio.com/94214 more])&lt;br /&gt;
* Fixed that resolved server address (when specified by name) was saved and reused when hitting the continue button, making it useless if the server uses dynamic IP address. ([https://forums.factorio.com/93751 more])&lt;br /&gt;
* Fixed that blueprint tooltip in the chat windows can shake. ([https://forums.factorio.com/93317 more])&lt;br /&gt;
* When changing item in cursor while building by dragging, the new item is applied instantly instead of the next tile. ([https://forums.factorio.com/94083 more])&lt;br /&gt;
* Fixed wrong linked underline position in certain fonts. ([https://forums.factorio.com/92505 more])&lt;br /&gt;
* Fixed item tooltips for fluid furnace recipes. ([https://forums.factorio.com/93679 more])&lt;br /&gt;
* Fixed that biters would keep attacking entities that became indestructible. ([https://forums.factorio.com/93880 more])&lt;br /&gt;
* Fixed that LAN servers started in quick succession could receive the same server ID and overwrite each other in the game browser. ([https://forums.factorio.com/93180 more])&lt;br /&gt;
* Fixed that the editor infinity filters GUI didn&#039;t switch item groups correctly. ([https://forums.factorio.com/94316 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* String mod setting dropdown items can now have tooltips. ([https://forums.factorio.com/85001 more])&lt;br /&gt;
* Added bool mod setting &amp;quot;forced_value&amp;quot;. ([https://forums.factorio.com/88927 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity::get_upgrade_direction().&lt;br /&gt;
* Added &#039;direction&#039; to LuaEntity::order_upgrade().&lt;br /&gt;
* Added &#039;direction&#039; to the on_marked_for_upgrade event.&lt;br /&gt;
* Added LuaEntity::entity_label read/write.&lt;br /&gt;
== 1.1.8 ==&lt;br /&gt;
Date: 07.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Gui ===&lt;br /&gt;
&lt;br /&gt;
* New trains overview GUI.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed crash when dragging electric pole ghosts into fog of war. ([https://forums.factorio.com/94020 more])&lt;br /&gt;
* Fixed rotation of belts being built by dragging by making it possible to build continous belts. ([https://forums.factorio.com/91689 more])&lt;br /&gt;
* Fixed various issues related to blueprints with only trains. ([https://forums.factorio.com/93724 more])&lt;br /&gt;
* Fixed a performance issue with the character logistics GUI when a large number of requests are being used. ([https://forums.factorio.com/94019 more])&lt;br /&gt;
* Fixed a crash that would happen when pathfinding with an empty collision box was requested. ([https://forums.factorio.com/93263 more])&lt;br /&gt;
* Fixed that script generated switch label didn&#039;t respect minimal width defined by style. ([https://forums.factorio.com/93084 more])&lt;br /&gt;
== 1.1.7 ==&lt;br /&gt;
Date: 07.01.2021&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Changed wire drawing to always have the same opacity regardless of ghost/electric poles being connected.&lt;br /&gt;
* More specific error message when a blueprint cannot be flipped.&lt;br /&gt;
* More specific message when copy pasting spidertron with equipment grid.&lt;br /&gt;
* Color differentiation for robot overview on the map (yellow = construction, white = logistics, cyan = mobile, green = personal).&lt;br /&gt;
* When dragging electric pole, the next pole is built once the max distance was reached instead of when it was exceeded.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that blueprints containing offshore pumps couldn&#039;t be flipped. ([https://forums.factorio.com/92246 more])&lt;br /&gt;
* Fixed spidertron leg could get permanently stuck when many ghost and entity avoidance requests stack up. ([https://forums.factorio.com/93050 more])&lt;br /&gt;
* Fixed script error in entity transfers tutorial. ([https://forums.factorio.com/92587 more])&lt;br /&gt;
* Fixed objective sound duplication in Tutorial level 01. ([https://forums.factorio.com/92099 more])&lt;br /&gt;
* Renamed interface settings &amp;quot;show tutorial notifications&amp;quot; to &amp;quot;show tips and tricks notifications&amp;quot;.&lt;br /&gt;
* Fixed fast rebuilding pump to change direction. ([https://forums.factorio.com/92322 more])&lt;br /&gt;
* Fixed that it wasn&#039;t possible to build train stop next to ghost rails. ([https://forums.factorio.com/93137 more])&lt;br /&gt;
* Fixed uses of Enter as the confirm key. ([https://forums.factorio.com/92056 more])&lt;br /&gt;
* Fixed that power pole dragging did not power all ghosts. ([https://forums.factorio.com/93115 more])&lt;br /&gt;
* Fixed crash related to radar status. ([https://forums.factorio.com/93074 more])&lt;br /&gt;
* Fixed that script was able to place overlapping rails when they were of different type. ([https://forums.factorio.com/93181 more])&lt;br /&gt;
* Fixed that spidertron didn&#039;t move leg preventing ghost curved rail to be built in some cases.&lt;br /&gt;
* Fixed that E to confirm didn&#039;t work on the connection error notice boxes.&lt;br /&gt;
* Fixed ghost fast replace of pipe to ground.&lt;br /&gt;
* Fixed that rail ghost was considered as colliding with rail to be deconstructed. ([https://forums.factorio.com/93227 more])&lt;br /&gt;
* Fixed inserter&#039;s custom vector flip behavior in blueprints. ([https://forums.factorio.com/93191 more])&lt;br /&gt;
* Fixed that power poles didn&#039;t keep their connection configuration when they died.&lt;br /&gt;
* Fixed inserter status related to placing items into full chest in some cases. ([https://forums.factorio.com/93188 more])&lt;br /&gt;
* Fixed a crash when installing mods due to the background simulation. ([https://forums.factorio.com/93322 more])&lt;br /&gt;
* Fixed copying spidertron logistic filters didn&#039;t work correctly with empty filters. ([https://forums.factorio.com/93224 more])&lt;br /&gt;
* Fixed trains limit could be violated when pasting settings onto train stop when it changes station name. ([https://forums.factorio.com/93458 more])&lt;br /&gt;
* Fixed desync when changing value of LuaEntity::tree_stage_index. ([https://forums.factorio.com/93542 more])&lt;br /&gt;
* Fixed that building constant combinator over ghost with different direction would not keep settings. ([https://forums.factorio.com/93622 more])&lt;br /&gt;
* Fixed a crash related to modding rail signal wires. ([https://forums.factorio.com/93681 more])&lt;br /&gt;
* Fixed that burner rocket silos didn&#039;t work correctly. ([https://forums.factorio.com/93640 more])&lt;br /&gt;
* Fixed that the lab GUI would show incorrect research level if multiple levels were queued. ([https://forums.factorio.com/93256 more])&lt;br /&gt;
* Fixed that the max-players settings didn&#039;t persist correctly between hosting games. ([https://forums.factorio.com/93361 more])&lt;br /&gt;
* Fixed a crash when exiting the game while some notice boxes are visible. ([https://forums.factorio.com/93723 more])&lt;br /&gt;
* Fixed blueprint chart rendering of rotated blueprints wasn&#039;t correct in some cases. ([https://forums.factorio.com/93609 more])&lt;br /&gt;
* Fixed using script rendering animations in simulations would crash the game. ([https://forums.factorio.com/93443 more])&lt;br /&gt;
* Fixed fast electric pole dragging logic with obstacles in the way. ([https://forums.factorio.com/91698 more])&lt;br /&gt;
* Widened campaign level selection list box, so all of our level names can fit. ([https://forums.factorio.com/91661 more])&lt;br /&gt;
* Fixed blueprint setup window left part being cut a little when there are so many components that they need a scroll bar. ([https://forums.factorio.com/92106 more])&lt;br /&gt;
* Fixed that tips &amp;amp; tricks notification window was visible also when playing tutorial.&lt;br /&gt;
* Fixed tips &amp;amp; tricks notice not being cleared when the tip was finished by playing tutorial before marking as read. ([https://forums.factorio.com/92261 more])&lt;br /&gt;
* Fixed that changing parent style of a gui element didn&#039;t clear the internal style values and didn&#039;t resize it until the game was reloaded. ([https://forums.factorio.com/93070 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Setting a tooltip on a &#039;slider&#039; custom gui element will set the tooltip to both the body and the notch. ([https://forums.factorio.com/93069 more])&lt;br /&gt;
* Added override_sound_type to LuaPlayer::play_sound, LuaSurface::play_sound, LuaGameScript::play_sound, and LuaForce::play_sound. ([https://forums.factorio.com/93067 more])&lt;br /&gt;
* Added &amp;quot;item&amp;quot; to LuaSurface::create_entity. ([https://forums.factorio.com/93004 more])&lt;br /&gt;
* Added create_build_effect_smoke to LuaEntity::clone(), LuaSurface::clone_area(), ::clone_brush(), and ::clone_entities().&lt;br /&gt;
* Added LuaRecipePrototype::allow_inserter_overload read.&lt;br /&gt;
* Added defines.train_state.destination_full.&lt;br /&gt;
* Added LuaEntity::torso_orientation read/write.&lt;br /&gt;
* Added LuaGameScript::font_prototypes read.&lt;br /&gt;
* Added LuaFontPrototype.&lt;br /&gt;
* Added LuaItemStack::create_grid().&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added RecipePrototype::allow_inserter_overload bool (true by default). When true, it increases the ingredient overload of the recipe by 4 times the current stack inserter stack size.&lt;br /&gt;
* Added dynamic_recipe_overload_factor, minimum_recipe_overload_multiplier and maximum_recipe_overload_multiplier to utility constants.&lt;br /&gt;
* Added train_auto_without_schedule_penalty to the train pathfinder utility constants.&lt;br /&gt;
== 1.1.6 ==&lt;br /&gt;
Date: 14.12.2020&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* The train time wait condition number field will be auto-focused when it is opened.&lt;br /&gt;
* Moved rocket silo + satellite into the production tab.&lt;br /&gt;
* Allowed to use productivity module on nuclear fuel production + nuclear fuel reprocessing.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that biters sometimes couldn&#039;t pathfind near the edge of generated chunks. ([https://forums.factorio.com/92171 more])&lt;br /&gt;
* Fixed that some saves made in game versions before 1.1.0 could crash on load.&lt;br /&gt;
* Fixed camera widget was rendering player&#039;s building preview. ([https://forums.factorio.com/92559 more])&lt;br /&gt;
* Fixed synchronizing blueprint library into existing map would sometimes cause crash on loading a save. ([https://forums.factorio.com/92422 more])&lt;br /&gt;
* Fixed that trying to move spidertrons with the remote while in a train in map view could add waypoints to the train. ([https://forums.factorio.com/92448 more])&lt;br /&gt;
* Fixed that &amp;quot;only-in-cursor&amp;quot; didn&#039;t work nicely with wire items. ([https://forums.factorio.com/92475 more])&lt;br /&gt;
* Fixed wrong default in collision mask util lib. ([https://forums.factorio.com/92632 more])&lt;br /&gt;
* Fixed that the &amp;quot;Trains&amp;quot; side menu button icon had one train window 1 pixel wider. ([https://forums.factorio.com/92468 more])&lt;br /&gt;
* Fixed entity tooltip would not show up when &amp;quot;Entity tooltip on the side&amp;quot; was disabled and &amp;quot;Entity tooltip delay&amp;quot; was not zero. ([https://forums.factorio.com/92638 more])&lt;br /&gt;
* Fixed that copy pasting power switch entity settings too fast in multiplayer would cut the wire. ([https://forums.factorio.com/92449 more])&lt;br /&gt;
* Fixed crash when fast replacing transport belts in some situations. ([https://forums.factorio.com/92625 more])&lt;br /&gt;
* Fixed that set_[personal, vehicle]_logistic_slot would not update the GUI correctly when setting a duplicate request that would add or remove a row. ([https://forums.factorio.com/92494 more])&lt;br /&gt;
* Fixed that it was possible to build blueprint with overlapping transport belt/wall entities which would trigger the consistency checks, cause desyncs and make saves unloadable.&lt;br /&gt;
* Fixed that saves before 1.1 with entities set &#039;active=false&#039; from script would be stuck disabled. ([https://forums.factorio.com/92704 more])&lt;br /&gt;
* Fixed that ghost fast replacing gates didn&#039;t respect the current direction.&lt;br /&gt;
* Fixed that ghost rail signal and train stop building didn&#039;t follow the same restrictions as normal building.&lt;br /&gt;
* Fixed that construction robot trying to revive signal next to other signal would get stuck.&lt;br /&gt;
* Fixed a crash when removing a burner energy source from a spider vehicle. ([https://forums.factorio.com/92664 more])&lt;br /&gt;
* Fixed that the apply-upgrade-planner GUI wouldn&#039;t scroll when needed. ([https://forums.factorio.com/92443 more])&lt;br /&gt;
* Fixed crash caused by race condition between rendering of camera widget and game view. ([https://forums.factorio.com/92388 more])&lt;br /&gt;
* Fixed electric-energy-interface entity tooltips showing power consumption twice. ([https://forums.factorio.com/92544 more])&lt;br /&gt;
* Fixed that biters would try to attack indestructible vehicles.&lt;br /&gt;
* Fixed assigning new content to an existing blueprint with relative grid position would offset the new content inside the blueprint based on world position. ([https://forums.factorio.com/91878 more])&lt;br /&gt;
* Fixed that trains counter could sometimes fail to decrease when train stop is destroyed. ([https://forums.factorio.com/92761 more])&lt;br /&gt;
* Fixed crash in multiplayer when doing undo of mining an entity marked for upgrade and then doing undo of the upgrade selection. ([https://forums.factorio.com/92641 more])&lt;br /&gt;
* Fixed boiler tooltip calculations not taking into account minimum_temperature. ([https://forums.factorio.com/92463 more])&lt;br /&gt;
* Fixed when dragging a belt in line-snapping mode, the the buildability preview tint would be based on cursor position instead of the snapped position. ([https://forums.factorio.com/91687 more])&lt;br /&gt;
* Fixed that entity GUIs could be too small in some locales. ([https://forums.factorio.com/92231 more])&lt;br /&gt;
* Fixed research complete sound sometimes playing after the window is closed. ([https://forums.factorio.com/92190 more])&lt;br /&gt;
* Fixed that building preview buildability (red/green color of preview) didn&#039;t correspond with the ghost modifier being pressed.&lt;br /&gt;
* Fixed that ghost rail building didn&#039;t ignore entities marked for deconstruction.&lt;br /&gt;
* Fixed that inserters with custom dropoff vectors would sometimes sleep on the wrong belt lane. ([https://forums.factorio.com/91664 more])&lt;br /&gt;
* Fixed that the lab GUI couldn&#039;t properly display a large number of science pack slots. ([https://forums.factorio.com/92830 more])&lt;br /&gt;
* Fixed that failing to read file attributes on Windows would sometimes crash the game.  ([https://forums.factorio.com/92819 more])&lt;br /&gt;
* Fixed crash when creating a new map in the map editor while having an outdated blueprint library.&lt;br /&gt;
* Fixed that the server might not be able to accept RCON connections if TCP SYN cookies were disabled. ([https://forums.factorio.com/92945 more])&lt;br /&gt;
* Fixed that programmable speaker would not play global sounds in main menu simulations. ([https://forums.factorio.com/92864 more])&lt;br /&gt;
* Fixed that shift-tabbing into a text field didn&#039;t select the text. ([https://forums.factorio.com/91718 more])&lt;br /&gt;
* Fixed that you could shift-tab to focus disabled widgets.&lt;br /&gt;
* Fixed layouting of rich-text that was wrapped to multiple lines. ([https://forums.factorio.com/91964 more])&lt;br /&gt;
* Fixed force-building blueprints when hovering the mouse over an electric pole. ([https://forums.factorio.com/92996 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Added &#039;allow_passengers&#039; EntityPrototype bool for vehicles.&lt;br /&gt;
* Added the &amp;quot;linked-belt&amp;quot; entity type.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Module limitation can be specified alternatively by limitation_blacklist instead of a limitation.&lt;br /&gt;
* Added LuaEntityPrototype::allow_passengers read.&lt;br /&gt;
* Added LuaEntity::add_autopilot_destination().&lt;br /&gt;
* Added LuaEntity::autopilot_destinations read.&lt;br /&gt;
* Removed defines.build_check_type.ghost_place.&lt;br /&gt;
* Added defines.build_check_type.manual_ghost, script_ghost and blueprint_ghost.&lt;br /&gt;
* Added LuaEntity::connect_linked_belts() and LuaEntity::disconnect_linked_belts().&lt;br /&gt;
* Added LuaEntity::linked_belt_type read/write.&lt;br /&gt;
* Added LuaEntity::linked_belt_neighbour read.&lt;br /&gt;
== 1.1.5 ==&lt;br /&gt;
Date: 04.12.2020&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed a crash when drag-building ghost electric poles. ([https://forums.factorio.com/92484 more])&lt;br /&gt;
* Fixed that the relative gui &#039;type&#039; filter didn&#039;t work. ([https://forums.factorio.com/92511 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity::follow_offset read/write.&lt;br /&gt;
== 1.1.4 ==&lt;br /&gt;
Date: 03.12.2020&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that train could get stuck when one station is disabled and other station is full. ([https://forums.factorio.com/92195 more])&lt;br /&gt;
* Fixed selection tool counts rendering. ([https://forums.factorio.com/92334 more])&lt;br /&gt;
* Fixed that building electric pole ghosts on electric poles marked for deconstruction didn&#039;t work correctly. ([https://forums.factorio.com/91915 more])&lt;br /&gt;
* Fixed that spidertron logistics didn&#039;t count the personal robots in flight towards spidertron&#039;s item count. ([https://forums.factorio.com/92350 more])&lt;br /&gt;
* Fixed that zooming with keyboard in the train schedule gui was too fast. ([https://forums.factorio.com/92338 more])&lt;br /&gt;
* Fixed that zooming with keyboard in the world view was too fast.&lt;br /&gt;
* Fixed that it was not possible to select player&#039;s own character to command spidertron to follow the player in multiplayer. ([https://forums.factorio.com/91923 more])&lt;br /&gt;
* Fixed that it was possible to multiply electric energy by using accumulators covered by multiple sub networks connected with power switches.&lt;br /&gt;
* Fixed that on Linux and Mac, uploading blueprint library to Steam Cloud could make the asynchronous saving process hang. ([https://forums.factorio.com/91952 more])&lt;br /&gt;
* Fixed crash when loading some saves with weaved underground belts when mods are removed. ([https://forums.factorio.com/92374 more])&lt;br /&gt;
* Fixed the inconsistency between calculation text size internally and in the Textbox related to the UTF8 characters. ([https://forums.factorio.com/92355 more])&lt;br /&gt;
* Fixed crash when cancelling map loading while connecting to a server. ([https://forums.factorio.com/91677 more])&lt;br /&gt;
* Fixed that electric power/inserters and transport belt tips were shown in the tutorial mission levels where it wasn&#039;t even unlockable. ([https://forums.factorio.com/91854 more])&lt;br /&gt;
* Fixed showing highlights when holding something in cursor in the simulation. ([https://forums.factorio.com/92340 more])&lt;br /&gt;
* Fixed that the icon selection GUI would close every time the main menu simulation changed. ([https://forums.factorio.com/91927 more])&lt;br /&gt;
* Fixed several style issues with the container GUI. ([https://forums.factorio.com/91943 more])&lt;br /&gt;
* Fixed that cancelling map loading when connecting to a multiplayer game was still waiting for the map to fully load.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* When building electric poles by dragging, the last built pole is always connected with wire before considering other connections. ([https://forums.factorio.com/91933 more])&lt;br /&gt;
* Power switch will now save it&#039;s on/off state in blueprints and the state can also be copy-pasted between power switches. ([https://forums.factorio.com/92394 more])&lt;br /&gt;
* Fixed it was not possible to use AltGr to type special characters on national keyboard layouts. ([https://forums.factorio.com/91681 more])&lt;br /&gt;
* Fixed editing existing blueprint to disable snap-to-grid would break the blueprint layout in some cases. ([https://forums.factorio.com/92009 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added LuaEntity::follow_target read/write.&lt;br /&gt;
* Added LuaEntity::time_to_live read/write for sticker entities.&lt;br /&gt;
* Added LuaEntityPrototype::rocket_rising_delay, launch_wait_time, light_blinking_speed, door_opening_speed, rising_speed, engine_starting_speed, flying_speed and flying_acceleration read.&lt;br /&gt;
== 1.1.3 ==&lt;br /&gt;
Date: 30.11.2020&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed crash when upgrading ghost that was still built only in latency state. ([https://forums.factorio.com/91948 more])&lt;br /&gt;
* Fixed script buildability of spidertron not allowing to build in colliding positions.&lt;br /&gt;
* Fixed that migration could remove spidertrons. ([https://forums.factorio.com/92168 more])&lt;br /&gt;
* Fixed that map view settings didn&#039;t persist between game restarts. ([https://forums.factorio.com/92036 more])&lt;br /&gt;
* Fixed vehicle equipment grid scrolling when it is too big to fit. ([https://forums.factorio.com/91871 more])&lt;br /&gt;
* Fixed logistic issue with spidertrons when they request the same amount as they trash. ([https://forums.factorio.com/91694 more])&lt;br /&gt;
* Fixed that inserters would sleep incorrectly in some situations with linked-chests. ([https://forums.factorio.com/92211 more])&lt;br /&gt;
* Fixed that fuzzy search didn&#039;t work. ([https://forums.factorio.com/92217 more])&lt;br /&gt;
* Fixed that the trains GUI would always use the surface the player was on to render train backgrounds. ([https://forums.factorio.com/92201 more])&lt;br /&gt;
* Fixed that tips and tricks prototype errors didn&#039;t use the minimal mode GUI. ([https://forums.factorio.com/92249 more])&lt;br /&gt;
* Fixed tips and trick notification window jumping. ([https://forums.factorio.com/91670 more])&lt;br /&gt;
* Fixed that create_entities_from_blueprint_string didn&#039;t insert modules. ([https://forums.factorio.com/91777 more])&lt;br /&gt;
* Fixed tips and tricks description text disappearing in certain resolutions. ([https://forums.factorio.com/91717 more])&lt;br /&gt;
* Fixed Laser shooting speed technology missing the Military science pack pre-requisite. ([https://forums.factorio.com/92157 more])&lt;br /&gt;
* Fixed crash when editing out loaders from blueprints. ([https://forums.factorio.com/92090 more])&lt;br /&gt;
* Fixed that pressing &amp;quot;Restart&amp;quot; after a game restart would revert some map settings to default instead of loading them from the save file. ([https://forums.factorio.com/91365 more])&lt;br /&gt;
* Fixed that power switch would not play its working_sound properly. ([https://forums.factorio.com/92269 more])&lt;br /&gt;
* Fixed main menu background simulation saves could not be loaded from zipped mods. ([https://forums.factorio.com/91862 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Added &amp;quot;reason&amp;quot; to the on_pre_player_left_game and on_player_left_game events.&lt;br /&gt;
* Added LuaEntity::is_registered_for_construction/deconstruction/upgrade/repair().&lt;br /&gt;
== 1.1.2 ==&lt;br /&gt;
Date: 28.11.2020&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that [set, clear]_[personal, vehicle]_logistic_slot would not update the GUI slot count correctly. ([https://forums.factorio.com/91812 more])&lt;br /&gt;
* Fixed that electricity buffer was shown twice in electric-energy-interface entity tooltips. ([https://forums.factorio.com/91769 more])&lt;br /&gt;
* Fixed LuaFluidBox::get_flow would return incorrect values of flow and would only account for outflow. ([https://forums.factorio.com/91875 more])&lt;br /&gt;
* Fixed that writing to the script-output folder didn&#039;t work correctly. ([https://forums.factorio.com/91884 more])&lt;br /&gt;
* Fixed lane priorities of splitters in blueprints would not get flipped when flipping blueprint in some cases. ([https://forums.factorio.com/91904 more])&lt;br /&gt;
* Fixed a performance issue with the SteelSeries hardware integration. ([https://forums.factorio.com/91912 more])&lt;br /&gt;
* Fixed splitter lane priorities were not flipped when pasting flipped blueprint of top of existing splitter ghosts.&lt;br /&gt;
* Fixed that it was possible to make ghost belts on top of each other by script, which could lead to desync.&lt;br /&gt;
* Fixed migration of invalid ghosts of previous versions. ([https://forums.factorio.com/91864 more])&lt;br /&gt;
* Fixed some of the missing entity statuses. ([https://forums.factorio.com/91889 more])&lt;br /&gt;
* Fixed that it wasn&#039;t possible to interact with widgets at the bottom center of the screen in main menu. ([https://forums.factorio.com/91686 more])&lt;br /&gt;
* Fixed crash in EntityWithOwner::checkConsistency caused by inconsistent to be upgraded state. ([https://forums.factorio.com/91685 more])&lt;br /&gt;
* Fixed a freeze when using specific saves for simulations. ([https://forums.factorio.com/91953 more])&lt;br /&gt;
* Fixed several mining drills in the nuclear power menu simulation had no fluid inputs. ([https://forums.factorio.com/91887 more])&lt;br /&gt;
* Fixed that lamp tooltips could wrongly show them as producing pollution. ([https://forums.factorio.com/92059 more])&lt;br /&gt;
* Fixed furnace progress bars wouldn&#039;t render correctly at 100%. ([https://forums.factorio.com/92013 more])&lt;br /&gt;
* Fixed that recipe notifications would show in some cases where they shouldn&#039;t. ([https://forums.factorio.com/91869 more])&lt;br /&gt;
* Fixed that non-electric inserters would always start with some energy. ([https://forums.factorio.com/92086 more])&lt;br /&gt;
* Fixed crash when undo created electric pole ghost in some cases. ([https://forums.factorio.com/91945 more])&lt;br /&gt;
* Fixed that first slot in last row of logistics would not create next row of logistic slots. ([https://forums.factorio.com/92107 more])&lt;br /&gt;
* Fixed that the distance limit when rotating was applied also on rotating of ghosts. ([https://forums.factorio.com/92122 more])&lt;br /&gt;
== 1.1.1 ==&lt;br /&gt;
Date: 25.11.2020&lt;br /&gt;
&lt;br /&gt;
=== Gui ===&lt;br /&gt;
&lt;br /&gt;
* Added tooltip with list of possible ingredients to the empty furnace input slot.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* Added a sound slider to control main menu and tips and tricks simulation volumes.&lt;br /&gt;
* Added an interface option (off by default) to change quick bar slot filters by clicking them with different items.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed performance regression with transport lines in large groups. ([https://forums.factorio.com/91678 more])&lt;br /&gt;
* Fixed missing freeplay script reload. ([https://forums.factorio.com/91691 more])&lt;br /&gt;
* Fixed outdated tutorial preview image. ([https://forums.factorio.com/91665 more])&lt;br /&gt;
* Fixed a crash when using LuaGuiElement::bring_to_front. ([https://forums.factorio.com/91727 more])&lt;br /&gt;
* Fixed macOS build could not do HTTPS requests. ([https://forums.factorio.com/91660 more])&lt;br /&gt;
* Fixed trains could reuse reservation when switching to next schedule record with the same name. ([https://forums.factorio.com/91742 more])&lt;br /&gt;
* Fixed crash when trying to fast replace a ghost underground belt with a downgrade. ([https://forums.factorio.com/91672 more])&lt;br /&gt;
* Fixed that fast replacing ghost underground belts would fast replace it&#039;s opposite end even if it was one tile too far.&lt;br /&gt;
* Fixed that custom chart tags from 1.0 and older wouldn&#039;t show. ([https://forums.factorio.com/91716 more])&lt;br /&gt;
* Fixed that the bonus GUI inserter lists were backwards. ([https://forums.factorio.com/91792 more])&lt;br /&gt;
* Fixed that the main-screen langauge selection didn&#039;t work. ([https://forums.factorio.com/91793 more])&lt;br /&gt;
* Fixed a desync with spider logistics when loading 1.0 saves in 1.1. ([https://forums.factorio.com/91699 more])&lt;br /&gt;
* Fixed that blueprint building could build underground belt ghost on top of different underground belt. ([https://forums.factorio.com/91702 more])&lt;br /&gt;
* Fixed blueprint flipping when building in the map view. ([https://forums.factorio.com/91740 more])&lt;br /&gt;
* Fixed rename station window sorting. ([https://forums.factorio.com/91774 more])&lt;br /&gt;
* Fixed a crash due to transport line groups consistency when entities are removed due to mod removal. ([https://forums.factorio.com/91805 more])&lt;br /&gt;
* Fix typos in introduction tip and trick simulation Lua. ([https://forums.factorio.com/91813 more])&lt;br /&gt;
* Fixed that removing belt from blueprint didn&#039;t disconnect the entities leading to possible crashes. ([https://forums.factorio.com/91710 more])&lt;br /&gt;
* Fixed that solar panel status was always not power, not it shows no power only during the night. ([https://forums.factorio.com/91775 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* Removed utility constants &amp;quot;main_menu_simulation_volume_modifier&amp;quot;.&lt;br /&gt;
* Added crafting machine prototype &amp;quot;show_recipe_icon_on_map&amp;quot;.&lt;br /&gt;
* Adjusted secondary draw order for graphics layers of car. ([https://forums.factorio.com/91764 more])&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Removed LuaControl::auto_trash_filters read/write. [set, get, clear]_[personal, vehicle]_logistic_slot replace the functionality.&lt;br /&gt;
* Fixed that the on_pre_build flip_horizontal/vertical were ints instead of booleans. ([https://forums.factorio.com/91821 more])&lt;br /&gt;
== 1.1.0 ==&lt;br /&gt;
Date: 23.11.2020&lt;br /&gt;
&lt;br /&gt;
=== Major Features ===&lt;br /&gt;
&lt;br /&gt;
* Added logistic requests to spidertron.&lt;br /&gt;
* Train stop allows to set limit of incoming trains.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
* The continue button now respects the last type of game played (single player, MP host, MP client).&lt;br /&gt;
* Added support to use blueprints, deconstruction planners, upgrade planners, and modded selection tools from the map view.&lt;br /&gt;
* Hovering the alert notification will show arrows on the edge of the pointing to alert locations.&lt;br /&gt;
* Rich text icon selector.&lt;br /&gt;
* Newly unlocked recipes are highlighted until hovered.&lt;br /&gt;
* Spidertron remotes now allow to add queue commands and a command to follow any entity.&lt;br /&gt;
* Added vertical/horizontal blueprint flipping.&lt;br /&gt;
* Transport belt drag building is locked into a line, can be turned off by an interface setting.&lt;br /&gt;
* Ghosts can be fast replaced and rotated.&lt;br /&gt;
* Ghost build can be used to fast replace non-ghost entities, which results in an upgrade order with (optionally) a direction change order.&lt;br /&gt;
&lt;br /&gt;
=== Minor Features ===&lt;br /&gt;
&lt;br /&gt;
* When editing blueprint: Added a way to specify relative grid position for blueprint that is snapping to absolute grid. Blueprint preview rendering box is updated based on selected grid size and position.&lt;br /&gt;
* Inventory transfer works on empty equipment grid slot the same as on empty inventory slot (moves all).&lt;br /&gt;
* Equipment can be placed by moving.&lt;br /&gt;
* Cursor replenishes when placing into the equipment grid the same way as when building in world.&lt;br /&gt;
* Spidertron item shows its color.&lt;br /&gt;
* Added a way to reset spidertron remote.&lt;br /&gt;
* Spider tries to move legs away when they are blocking robots construction.&lt;br /&gt;
* Power poles/underground belts built by dragging logic works also with ghost building.&lt;br /&gt;
* Power pole ghosts show connections.&lt;br /&gt;
* Power pole connections are saved in the blueprint. They still auto connect to other poles outside the blueprint.&lt;br /&gt;
* Entities marked for deconstruction show the target upgrade.&lt;br /&gt;
* Added tags, worker robots, rail signal states and recipes toggles into the settings to what show on the map.&lt;br /&gt;
* Added support to use the add-stop and add-temporary-stop controls for the train you&#039;re driving in the map view.&lt;br /&gt;
* Added hotkey (F10) to switch between viewed player in replay.&lt;br /&gt;
* Added support to reset mod settings in the &amp;quot;failed to load mods&amp;quot; startup GUI.&lt;br /&gt;
* Expanded undo to work with fast replace and upgrade planner.&lt;br /&gt;
* Added SteelSeries GameSense support. ([https://steelseries.com/engine/apps more])&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
* Added unique technology icon for Advanced material processing 2 (Electric furnace).&lt;br /&gt;
* Changed postprocessing effect in zoomed-to-world view.&lt;br /&gt;
* Added detailed night lighting of entities.&lt;br /&gt;
&lt;br /&gt;
=== Optimisations ===&lt;br /&gt;
&lt;br /&gt;
* Multithreaded belt update logic.&lt;br /&gt;
* Overall small entity update time reduction + statistics of how much update time is taken by individual entities.&lt;br /&gt;
&lt;br /&gt;
=== Balancing ===&lt;br /&gt;
&lt;br /&gt;
* Productivity module 1 decreases speed of the machine by 5% instead of 15%.&lt;br /&gt;
* Productivity module 2 decreases speed of the machine by 10% instead of 15%.&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
* the Close GUI key-binding (default value is &amp;quot;E&amp;quot;) was renamed to Confirm Gui. It works the same as before for many cases (just closing the GUI), but in a lot of other cases, it works as confirm, which generally means the same as clicking the &amp;quot;green button&amp;quot;.&lt;br /&gt;
* Renamed clean-cursor to clear-cursor on all the relevant places (locale, key-binding name)&lt;br /&gt;
* Equipment placing now uses the build key-binding instead of the cursor transfer. The default same key-binding is the same.&lt;br /&gt;
* Changed maximum temperature of all fluids apart water and steam to be the same as the default.&lt;br /&gt;
* Poles built by dragging are now actually build on the maximum connection distance from the last built pole instead of the previous logic that was working weird in a lot of corner cases.&lt;br /&gt;
* Underground belt build by dragging now accept the existing piece you start building on as part of the dragging logic.&lt;br /&gt;
* Removed &#039;mineable wreckage&#039; entity. ([https://forums.factorio.com/89381 more])&lt;br /&gt;
* Removed the (+/-) buttons for logistic requests, instead they expand dynamically when something is put in the last line.&lt;br /&gt;
* Wave defense can now only be won by launching a rocket.&lt;br /&gt;
* Invalid names of icons in preview icons of blueprint tools now load as unknowns instead of canceling the import string process for that item. ([https://forums.factorio.com/87383 more])&lt;br /&gt;
* Fluids in train circuit logic treat summed &amp;lt; 1 fluid values as 1 instead of 0.&lt;br /&gt;
* Clicking non-empty quickbar slot with something in cursor sets the quickbar slot to the cursor value rather than selecting the quickbar value.&lt;br /&gt;
* Invalid rail signals output no values into circuit network.&lt;br /&gt;
* Added a confirmation message when loading saves with removed mods or changed mod settings.&lt;br /&gt;
* The cut tool now properly includes trains. It showed trains in the selection preview, but ignored them.&lt;br /&gt;
* Added alternate control locales for keyboard and mouse scroll control binds. ([https://forums.factorio.com/83430 more])&lt;br /&gt;
* Disabled loading of saves before 0.18.0 version (You can use 1.0 to load older saves and re-save them).&lt;br /&gt;
* Adjusted the artillery turret collision box so it is possible to squeak through.&lt;br /&gt;
* Removed the &#039;Rocket silos stats&#039; GUI.&lt;br /&gt;
* Arithmetic combinator &#039;Each&#039; signal can now be used in either left or right parameter.&lt;br /&gt;
&lt;br /&gt;
=== Gui ===&lt;br /&gt;
&lt;br /&gt;
* Added unique icons for technology effects.&lt;br /&gt;
* Added list of affected entities to the technology effect tooltips.&lt;br /&gt;
* Menu background now features various factory simulations instead of a static picture.&lt;br /&gt;
* When entering vehicle, the vehicle window is shown next to the character gun window, instead of replacing it.&lt;br /&gt;
* Moved the character/vehicle gun window to the left of the quickbar.&lt;br /&gt;
* Removed the &amp;quot;Character&amp;quot; tab from the character window.&lt;br /&gt;
* Changed the flat character screen option to be defaulted to true.&lt;br /&gt;
* Added held stack item slot for inserter window.&lt;br /&gt;
* Improved the tips and tricks window: it contains index, search and allows interactive text tags to be used.&lt;br /&gt;
* Added search to loading/saving, settings, shortcuts selection, multiplayer host settings windows and rename stop.&lt;br /&gt;
* Moved the ammo/used-up/health indicator of items down, so it is not obstructed by the number.&lt;br /&gt;
* Added underline for hyperlinks.&lt;br /&gt;
* Personal request button have custom text + red diode when it is out of network or when the personal requests are turned off.&lt;br /&gt;
* Logistic/Trash request buttons show only one number when the trash and request count is the same.&lt;br /&gt;
* Train elapsed time condition has confirmation button and only updates the time when confirmed.&lt;br /&gt;
* Fixed styles for: browse games GUI, host game settings, opened character and select upgrade slot.&lt;br /&gt;
* Tabbing into a textfield selects the text.&lt;br /&gt;
* Removed tiles stay in the list of components in the blueprint setup GUI with 0, the same way as entities, so they can be easily enabled.&lt;br /&gt;
* Added minimum/maximum temperature and heat capacity info to the fluid tooltip.&lt;br /&gt;
* Added usage instruction to capsules/fish.&lt;br /&gt;
* Fixed fish tooltip so it shows consumption/healing instead of shooting/damage.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
&lt;br /&gt;
* Added blueprint building sound.&lt;br /&gt;
* Added undo sound.&lt;br /&gt;
* Added sound for rail planner activation.&lt;br /&gt;
* Added sound for copy/paste.&lt;br /&gt;
* Added sound for opening items and armor.&lt;br /&gt;
* Added sound for selection start and selection finish. Related to blueprint tools.&lt;br /&gt;
* Added sound for pipe to ground as per the pipe.&lt;br /&gt;
* Added sound effects and a specific music track to the main menu.&lt;br /&gt;
* Assembling Machine 2 and 3 made less noisy&lt;br /&gt;
* Robot repair reworked to sound more high tech&lt;br /&gt;
* Removed dead space at the end of some sounds which may have stopped sounds playing&lt;br /&gt;
* Ghost rail building now has the ghost building sound&lt;br /&gt;
* Lowered volume on game won and lost sounds&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
&lt;br /&gt;
* Fixed that copying the spider in the map editor while it had equipment crashed the game. ([https://forums.factorio.com/87920 more])&lt;br /&gt;
* Fixed a crash when trying to use different weapons in the spider. ([https://forums.factorio.com/87974 more])&lt;br /&gt;
* Fixed a crash when reading/writing blueprint icons through the Lua API in some cases. ([https://forums.factorio.com/87981 more])&lt;br /&gt;
* Fixed a crash when importing blueprint books in some cases. ([https://forums.factorio.com/88307 more])&lt;br /&gt;
* Fixed that the spidertron would still be marked as moving when it wasn&#039;t resulting in the &#039;enable logistics while moving&#039; option not working. ([https://forums.factorio.com/88018 more])&lt;br /&gt;
* Fixed splitter behaviour when putting to it directly and it has the priority output blocked. ([https://forums.factorio.com/81421 more])&lt;br /&gt;
* Fixed that spidertron descriptions didn&#039;t show the custom name. ([https://forums.factorio.com/87955 more])&lt;br /&gt;
* Fixed building curved rails with damaged rails could duplicate rails. ([https://forums.factorio.com/84046 more])&lt;br /&gt;
* Fixed logistic request slot highlighting when they&#039;re changed through circuit connections. ([https://forums.factorio.com/85619 more])&lt;br /&gt;
* Fixed a game freeze when empty unit groups are told to build bases. ([https://forums.factorio.com/88435 more])&lt;br /&gt;
* Fixed LuaTrain::path_end_stop would return nil when train had path extended due to waypoint.&lt;br /&gt;
* Fixed the spidertron preview box.&lt;br /&gt;
* Fixed that the blueprint book preview disappeared after editing it.&lt;br /&gt;
* Fixed that spidertron and its remote weren&#039;t swappable.&lt;br /&gt;
* Fixed that players could be stuck in walls when building them.&lt;br /&gt;
* Removed the possibility to specify alpha when changing player color by command.&lt;br /&gt;
* Fixed LuaInventory::find_empty_stack would return only filtered stacks when filter is provided. ([https://forums.factorio.com/88430 more])&lt;br /&gt;
* Fixed that blueprint library slots padding was too big.&lt;br /&gt;
* Fixed that some items didn&#039;t render properly in the world. Specifically blueprint like items, spidertrons and spider remotes. ([https://forums.factorio.com/88297 more])&lt;br /&gt;
* Fixed a crash when a modded fast train goes through junction occupied by another train. ([https://forums.factorio.com/88396 more])&lt;br /&gt;
* Fixed replay desync when existing save is given to a server which promotes or demotes a player based on its own admin list. ([https://forums.factorio.com/86262 more])&lt;br /&gt;
* Fixed train GUI instructions for translations that are long. ([https://forums.factorio.com/87925 more])&lt;br /&gt;
* Fixed interaction with the delete button in the blueprint setup. ([https://forums.factorio.com/85101 more])&lt;br /&gt;
* Fixed that map preview in the train window wasn&#039;t squashing its size when needed. ([https://forums.factorio.com/85964 more])&lt;br /&gt;
* Fixed that force-building blueprint from the blueprint library on top of an existing electric pole triggered wire removal instead of blueprint building. ([https://forums.factorio.com/87695 more])&lt;br /&gt;
* Fixed that the map editor spawn-items GUI didn&#039;t work with chat rich text. ([https://forums.factorio.com/88651 more])&lt;br /&gt;
* Fixed that deconstruction planners and upgrade planners wouldn&#039;t show the logistic overlay when used from the blueprint library. ([https://forums.factorio.com/87824 more])&lt;br /&gt;
* Fixed that rebinding rotate to middle mouse button caused conflicts when trying to rotate while modifiers were pressed. ([https://forums.factorio.com/84302 more])&lt;br /&gt;
* Fixed on_gui_switch_state_changed was not fired for custom switch elements in some cases. ([https://forums.factorio.com/88760 more])&lt;br /&gt;
* Fixed that entities were selected under the GUI on the right side.&lt;br /&gt;
* Fixed that the key to activate tooltips didn&#039;t work outside game, or when the game was stopped.&lt;br /&gt;
* Fixed Team production script error when building before any round starts. ([https://forums.factorio.com/88846 more])&lt;br /&gt;
* Fixed Wave defense error message would error due to trying to concatenate a nil variable. ([https://forums.factorio.com/88845 more])&lt;br /&gt;
* Fixed that it was possible to stay invulnerable after the crash site cutscene. ([https://forums.factorio.com/88024 more])&lt;br /&gt;
* Fixed train mini-tutorial script errors due to missing entity prototypes. ([https://forums.factorio.com/88056 more])&lt;br /&gt;
* Fixed tightspot script error when trying to restore invalid entities. ([https://forums.factorio.com/88021 more])&lt;br /&gt;
* Fixed that bonus research production could add progress even if no research could be done. ([https://forums.factorio.com/88154 more])&lt;br /&gt;
* Fixed that game.server_save() was able to write to locations outside the saves folder. ([https://forums.factorio.com/88866 more])&lt;br /&gt;
* Fixed that technology tooltip in the lab GUI wouldn&#039;t update when research changed. ([https://forums.factorio.com/88633 more])&lt;br /&gt;
* Fixed a bad message when using the permissions command. ([https://forums.factorio.com/88946 more])&lt;br /&gt;
* Fixed a crash when remote calls fail. ([https://forums.factorio.com/88974 more])&lt;br /&gt;
* Fixed that biters would sometimes not be able to attack entities blocking their way. ([https://forums.factorio.com/89002 more])&lt;br /&gt;
* Fixed that writing .energy for entities with heat energy sources didn&#039;t work correctly. ([https://forums.factorio.com/87043 more])&lt;br /&gt;
* Fixed that non-blueprint items in blueprint books didn&#039;t draw their name. ([https://forums.factorio.com/88679 more])&lt;br /&gt;
* Fixed that the cut-paste tool allowed alt-cutting which didn&#039;t deconstruct what was selected. ([https://forums.factorio.com/88262 more])&lt;br /&gt;
* Fixed that setting rolling-stock inventory size to 0 while having an equipment great meant the GUI couldn&#039;t be opened. ([https://forums.factorio.com/89160 more])&lt;br /&gt;
* Fixed that trying to save temporary LuaItemStacks from some events resulted in the save failing to load. ([https://forums.factorio.com/89271 more])&lt;br /&gt;
* Fixed that blueprint component icons weren&#039;t kept in a stable order. ([https://forums.factorio.com/89297 more])&lt;br /&gt;
* Fixed that the finished game sound could play multiple times. ([https://forums.factorio.com/87847 more])&lt;br /&gt;
* Fixed that building blueprints by dragging in the map view didn&#039;t work correctly. ([https://forums.factorio.com/89122 more])&lt;br /&gt;
* Fixed that building train ghosts manually didn&#039;t work in most cases. ([https://forums.factorio.com/87656 more])&lt;br /&gt;
* Fixed that moving blueprint sin the blueprint library didn&#039;t make sounds.&lt;br /&gt;
* Fixed that opening/closing sound were not working properly in latency in some cases.&lt;br /&gt;
* Fixed that LuaEntity::can_insert() didn&#039;t work right for module inventories. ([https://forums.factorio.com/89410 more])&lt;br /&gt;
* Fixed that on_player_built_tile had the wrong &#039;tile&#039; when using hazard concrete in some cases. ([https://forums.factorio.com/89382 more])&lt;br /&gt;
* Fixed that some of the checkboxes weren&#039;t highlighted as they should when hovering reset in the map generator GUI. ([https://forums.factorio.com/88028 more])&lt;br /&gt;
* Fixed performance issue related to rendering long train paths. ([https://forums.factorio.com/84766 more])&lt;br /&gt;
* Fixed missing tooltip on the editing button in upgrade planner, deconstruction planner and blueprint book. ([https://forums.factorio.com/89455 more])&lt;br /&gt;
* Fixed Shallow water 2 to be layered above sand tiles and therefore missing transitions with sand tiles. ([https://forums.factorio.com/89351 more])&lt;br /&gt;
* Fixed stone path and concrete were missing transitions to out-of-map tiles. ([https://forums.factorio.com/88888 more])&lt;br /&gt;
* Fixed the upgrade planner to upgrade the corresponding underground belt for all combinations of real/ghost connections.&lt;br /&gt;
* Fixed that biters could get stuck trying to pathfind toward spidertron, causing performance issues. (https://forums.factorio.com/88744 https://forums.factorio.com/89327)&lt;br /&gt;
* Fixed lights near right or bottom edge of the screen would render twice sometimes. ([https://forums.factorio.com/88388 more])&lt;br /&gt;
* Fixed that setting style properties on LuaGuiElements didn&#039;t work correctly for some widget types. ([https://forums.factorio.com/84607 more])&lt;br /&gt;
* Fixed that rails didn&#039;t have the building smoke.&lt;br /&gt;
* Fixed that modded locomotives with void energy sources and equipment grids wouldn&#039;t show the grid in the GUI. ([https://forums.factorio.com/89642 more])&lt;br /&gt;
* Fixed that modded productivity bonuses in tooltips didn&#039;t always show everything. ([https://forums.factorio.com/86020 more])&lt;br /&gt;
* Fixed that unit groups could get stuck in the gathering phase. ([https://forums.factorio.com/81238 more])&lt;br /&gt;
* Fixed that negative damage stickers didn&#039;t work. ([https://forums.factorio.com/89789 more])&lt;br /&gt;
* Fixed that selection tool type items marked as mod-openable didn&#039;t work correctly in the quickbar. ([https://forums.factorio.com/89661 more])&lt;br /&gt;
* Fixed that train would not repath when possible due to being in chain signal section. ([https://forums.factorio.com/89587 more])&lt;br /&gt;
* Fixed GeneratorPrototype::scale_fluid_usage would cause non-linear scaling of fluid consumption based on energy demand. ([https://forums.factorio.com/88263 more])&lt;br /&gt;
* Fixed crash when storage tank was defined with too small fluid flow sprite with low priority and ended up streamed. ([https://forums.factorio.com/89256 more])&lt;br /&gt;
* Fixed rotating assembling machines with heat and fluid connections. ([https://forums.factorio.com/89945 more])&lt;br /&gt;
* Fixed that it was possible to hold ghost building + blueprint from the library at the same time. ([https://forums.factorio.com/89055 more])&lt;br /&gt;
* Fixed crash related to being possible to insert blueprint for re-assignment into the blueprint library. ([https://forums.factorio.com/89886 more])&lt;br /&gt;
* Fixed that previous technology key-binding focused search in the blueprint library. ([https://forums.factorio.com/88851 more])&lt;br /&gt;
* Fixed that ghosts created by destroying entities weren&#039;t upgradeable. ([https://forums.factorio.com/87684 more])&lt;br /&gt;
* Fixed that kick &amp;amp; ban commands broke replays. ([https://forums.factorio.com/89141 more])&lt;br /&gt;
* Fixed that spidertron would stretch its leg way too much in some special situations. ([https://forums.factorio.com/87982 more])&lt;br /&gt;
* Fixed offshore pump underwater layer being drawn over landfill tiles sometimes. ([https://forums.factorio.com/87696 more])&lt;br /&gt;
* Fixed decimal textfield would not take decimal point as input when selection would make it valid input. ([https://forums.factorio.com/89025 more])&lt;br /&gt;
* Fixed that train could get stuck within chain signal section when exit signal is requested to close by circuit network and train is forced to repath. ([https://forums.factorio.com/90015 more])&lt;br /&gt;
* Fixed that train would not immediately reserve signals in chain signal section after repath when there are no signals within braking distance.&lt;br /&gt;
* Fixed that wrong slider position when requesting items in some cases. ([https://forums.factorio.com/89680 more])&lt;br /&gt;
* Fixed that rocket silo without fixed_recipe didn&#039;t save its recipe in the blueprint. ([https://forums.factorio.com/88753 more])&lt;br /&gt;
* Fixed that the total-raw list in the recipe tooltip for some translations. ([https://forums.factorio.com/85188 more])&lt;br /&gt;
* Fixed glitching sound loops: steam turbine and electric furnace. ([https://forums.factorio.com/89108 more])&lt;br /&gt;
* Fixed changing dawn property of a surface would create visual glitch in day-night cycle. ([https://forums.factorio.com/88585 more])&lt;br /&gt;
* Fixed misleading tooltip for disabled shortcut bar items. ([https://forums.factorio.com/87380 more])&lt;br /&gt;
* Fixed startup music volume balance. ([https://forums.factorio.com/84459 more])&lt;br /&gt;
* Fixed that sounds outside of radar coverage would still play. ([https://forums.factorio.com/88145 more])&lt;br /&gt;
* Fixed personal laser defense with minimum range would stop working when enemies would get within minimum range. ([https://forums.factorio.com/88515 more])&lt;br /&gt;
* Fixed that automatic rail signal direction selection works also when ghost-force building over trees/rocks in the way. ([https://forums.factorio.com/83937 more])&lt;br /&gt;
* Fixed that the replay controls weren&#039;t accessible when the current player opened the technology screen. ([https://forums.factorio.com/84127 more])&lt;br /&gt;
* Fixed the hand behaviour for some cases of fast entity transfer. ([https://forums.factorio.com/88610 more])&lt;br /&gt;
* Fixed sizing of the right panel when show_side_menu is disabled. ([https://forums.factorio.com/82529 more])&lt;br /&gt;
* Fixed that blueprint book tooltip based on chat icon had overflowing contents. ([https://forums.factorio.com/87735 more])&lt;br /&gt;
* Fixed that the entity hover interval wasn&#039;t applied when switching from entity to entity. ([https://forums.factorio.com/86410 more])&lt;br /&gt;
* Fixed that belts didn&#039;t show the proper curved preview when fast replacing. ([https://forums.factorio.com/88340 more])&lt;br /&gt;
* Fixed that the entity tooltip was being shown in some cases where it was not supposed to. ([https://forums.factorio.com/82117 more])&lt;br /&gt;
* Fixed that the station name icons were clipped in some cases. ([https://forums.factorio.com/83591 more])&lt;br /&gt;
* Fixed that the minimap focus wasn&#039;t updating when switching player in the replay. ([https://forums.factorio.com/85387 more])&lt;br /&gt;
* Fixed that it wasn&#039;t possible to start scenario with replay enabled. ([https://forums.factorio.com/85646 more])&lt;br /&gt;
* Fixed losing chain signals in the advanced rail mini-tutorial. ([https://forums.factorio.com/89333 more])&lt;br /&gt;
* Fixed train buttons being cut off in advanced rail mini-tutorial in some locales. ([https://forums.factorio.com/89210 more])&lt;br /&gt;
* Fixed a crash related to building laser turrets through robots. ([https://forums.factorio.com/87139 more])&lt;br /&gt;
* Fixed Bulgarian language name. ([https://forums.factorio.com/80695 more])&lt;br /&gt;
* Fixed text box font not refreshing after being changed. ([https://forums.factorio.com/78003 more])&lt;br /&gt;
* Clarified tooltip text for locked levels in new game GUI. ([https://forums.factorio.com/87852 more])&lt;br /&gt;
* Fixed server crashing when quitting while it&#039;s saving for desync report. ([https://forums.factorio.com/84819 more])&lt;br /&gt;
* Fixed that rolling stock rotation was not set correctly when using the pipette tool.  ([https://forums.factorio.com/89154 more])&lt;br /&gt;
* Fixed that if else chain noise expressions would sometimes produce corrupt results. ([https://forums.factorio.com/87698 more])&lt;br /&gt;
* Fixed a crash when using identical literal expression in spot noise expressions. ([https://forums.factorio.com/87663 more])&lt;br /&gt;
* Fixed that steam engine would show as producing 960kW in electric network GUI. ([https://forums.factorio.com/82509 more])&lt;br /&gt;
* Fixed that rail ghost building didn&#039;t play the ghost building sound.&lt;br /&gt;
* Fixed a crash when a startup error tried to use rich-text. ([https://forums.factorio.com/90438 more])&lt;br /&gt;
* Fixed a crash when related to editing edited scenarios while in vehicles. ([https://forums.factorio.com/90199 more])&lt;br /&gt;
* Fixed that it was possible to specify a rail signal pair that does not collide with each other. ([https://forums.factorio.com/86385 more])&lt;br /&gt;
* Fixed that collision box could be removed from the rail signal resulting in a signal that could be placed not on a tile center. ([https://forums.factorio.com/82623 more])&lt;br /&gt;
* Fixed that it was possible to specify a transport belt connectable entity that would not collide with other belt connectable entities. ([https://forums.factorio.com/82294 more])&lt;br /&gt;
* Fixed barrel recipe generation not taking into account fluid icon_size if fluid icons were defined. ([https://forums.factorio.com/90526 more])&lt;br /&gt;
* Fixed that clients wouldn&#039;t be able to join a multiplayer game if the banlist was too large. ([https://forums.factorio.com/85425 more])&lt;br /&gt;
* Fixed that selecting folders in the save-game-gui would still allow saving as the save file name. ([https://forums.factorio.com/85935 more])&lt;br /&gt;
* Fixed a crash when opening the blueprint library through lua. ([https://forums.factorio.com/90494 more])&lt;br /&gt;
* Fixed the program exit status code when a dedicated server fails. ([https://forums.factorio.com/89819 more])&lt;br /&gt;
* Fixed that blueprints with rolling stocks could get invalidated when syncing shelves. ([https://forums.factorio.com/90545 more])&lt;br /&gt;
* Fixed that the technology screen would show a &amp;quot;Resume&amp;quot; button for technology levels that haven&#039;t yet been researched at all. ([https://forums.factorio.com/85642 more])&lt;br /&gt;
* Fixed that cars with minimap_representation set would still render the default triangle. ([https://forums.factorio.com/89915 more])&lt;br /&gt;
* Fixed building assembling machine ghosts with unresearched recipes left them with no fluid connection previews. ([https://forums.factorio.com/88881 more])&lt;br /&gt;
* Fixed that biters who couldn&#039;t reach their spawner would remain on the map, potentially preventing other biters from spawning. ([https://forums.factorio.com/88614 more])&lt;br /&gt;
* Fixed script data leak in wave defense scenario. ([https://forums.factorio.com/90615 more])&lt;br /&gt;
* Fixed that background sound didn&#039;t fade out when stopping replay. ([https://forums.factorio.com/90467 more])&lt;br /&gt;
* Fixed that the deconstruction planner ignored tile mode &amp;amp; filters when cancelling deconstruction.&lt;br /&gt;
* Fixed signature error when updating non-steam version on OSX. ([https://forums.factorio.com/87964 more])&lt;br /&gt;
* Fixed fast-replacing entity connected to a ghost entity by circuit network. ([https://forums.factorio.com/90515 more])&lt;br /&gt;
* Fixed that on some maps, biter attacks could decrease almost to nothing. ([https://forums.factorio.com/89324 more])&lt;br /&gt;
* Fixed inserter with fluid energy source could consume too much fluid when no fluid usage was given and scaling was disabled. ([https://forums.factorio.com/90613 more])&lt;br /&gt;
* Fixed that building rolling stock could place multiple of them when there are close adjacent rails. ([https://forums.factorio.com/89152 more])&lt;br /&gt;
* Fixed that LuaPlayer::can_place_entity would not calculate player reach the same way as manual building. ([https://forums.factorio.com/90162 more])&lt;br /&gt;
* Fixed that steam engine in multiple connected electric networks would overproduce and waste energy. ([https://forums.factorio.com/86243 more])&lt;br /&gt;
* Fixed problems related to opening blueprint while other blueprint is in the process of being configured. ([https://forums.factorio.com/89387 more])&lt;br /&gt;
* Fixed cutscene starting at {0,0} instead of player position when no start_position was given. ([https://forums.factorio.com/90694 more])&lt;br /&gt;
* Fixed electric network GUI production bar related to tertiary energy sources. ([https://forums.factorio.com/85725 more])&lt;br /&gt;
* Fixed a crash in the pathfinder that could happen when the bounding box didn&#039;t contain the tile center. ([https://forums.factorio.com/90146 more])&lt;br /&gt;
* Fixed tooltips not showing electric energy source information for electric-energy-interface entities. ([https://forums.factorio.com/90779 more])&lt;br /&gt;
* Fixed that undoing a deconstruction order of entities with item requests didn&#039;t recover these requests unless the entity was actually removed. ([https://forums.factorio.com/83571 more])&lt;br /&gt;
* Fixed that spidertron remote usage on map was bound to open item control rather than the build item control it is bound to in normal view. ([https://forums.factorio.com/89949 more])&lt;br /&gt;
* Fixed that flamethrower turrets could fail to shoot at a target. ([https://forums.factorio.com/90815 more])&lt;br /&gt;
* Fixed problem with rich text in blueprint library. ([https://forums.factorio.com/87268 more])&lt;br /&gt;
* Fixed tiles would be rendered with 1px gap between them at some positions, zoom levels and screen resolutions. ([https://forums.factorio.com/83023 more])&lt;br /&gt;
* Fixed heat pipe related drawing only working for boiler type entities. ([https://forums.factorio.com/85306 more])&lt;br /&gt;
* Fixed that running /server-save wouldn&#039;t save anything if the server was started with --start-server-load-scenario. ([https://forums.factorio.com/76767 more])&lt;br /&gt;
* Fixed activation working sound playing even when the entity was already active when being encountered. ([https://forums.factorio.com/80646 more])&lt;br /&gt;
* Fixed a pathfinding-related crash. ([https://forums.factorio.com/87204 more])&lt;br /&gt;
* Fixed crash when organizing sprites into atlases when using &amp;quot;not-compressed&amp;quot; sprite flag. ([https://forums.factorio.com/87820 more])&lt;br /&gt;
* Fixed pipe-to-ground working sound would ignore flow rate. ([https://forums.factorio.com/91073 more])&lt;br /&gt;
* Fixed crash when calling take_screenshot with very small resolution values. ([https://forums.factorio.com/91095 more])&lt;br /&gt;
* Fixed that setting fluid wagon fluid through the Lua API didn&#039;t update the train inactivity value. ([https://forums.factorio.com/91101 more])&lt;br /&gt;
* Fixed various issues related to entities leaving gaps when building too fast.&lt;br /&gt;
* Fixed a crash when setting specific fluids in the infinity pipe GUI. ([https://forums.factorio.com/91211 more])&lt;br /&gt;
* Fixed that the admin GUI didn&#039;t live-update the whitelisted field. ([https://forums.factorio.com/91347 more])&lt;br /&gt;
* Fixed crash related to migrating circuit network entities while loading the blueprint library. ([https://forums.factorio.com/91470 more])&lt;br /&gt;
* Fixed that artillery would keep shooting at something when it moved out of range. ([https://forums.factorio.com/91498 more])&lt;br /&gt;
* Fixed softlock in tutorial if the player took the iron plates too quickly. ([https://forums.factorio.com/91618 more])&lt;br /&gt;
* Fixed missing blueprint components scroll bar when there is a lot of components. ([https://forums.factorio.com/91426 more])&lt;br /&gt;
&lt;br /&gt;
=== Modding ===&lt;br /&gt;
&lt;br /&gt;
* New item flag &amp;quot;spawnable&amp;quot;, every item has to have that flag to be creatable through the shortcuts directly. ([https://forums.factorio.com/87777 more])&lt;br /&gt;
* Renamed create-blueprint-item shortcut action to spawn-item and item_to_create to item_to_spawn.&lt;br /&gt;
* Increased the total number of collision masks from 14 to 55. See the lua-api collision mask concepts page for which layers the game doesn&#039;t actively use.&lt;br /&gt;
* Changed collision mask &#039;layer-11&#039; to &#039;rail-layer&#039;.&lt;br /&gt;
* Changed collision mask &#039;layer-12&#039; to &#039;transport-belt-layer&#039;.&lt;br /&gt;
* Changed loader to only connect to the front belt, not from side. This is to fix internal problems related to modded loaders with custom sizes and side loading of it.&lt;br /&gt;
* Implemented NoiseExpressions::fromPropertyTree for the &amp;quot;offset-points&amp;quot; noise expression function.&lt;br /&gt;
* Removed rocket silo rocket prototype property &amp;quot;result_items&amp;quot; because it did nothing.&lt;br /&gt;
* Added draw_as_light and draw_as_glow property to sprite definitions. draw_as_shadow, draw_as_light and draw_as_glow are mutually exclusive and draw_as_shadow takes precedence.&lt;br /&gt;
* Unified laser and beam related ammo categories to just &amp;quot;laser&amp;quot; and &amp;quot;beam&amp;quot;.&lt;br /&gt;
* Renamed technology &amp;quot;laser-turret-speed&amp;quot;-&amp;gt;&amp;quot;laser-shooting-speed&amp;quot;, it now affects both robots and laser turrets.&lt;br /&gt;
* Renamed technology &amp;quot;turrets&amp;quot;-&amp;gt;&amp;quot;gun-turret&amp;quot;, &amp;quot;laser-turrets&amp;quot;-&amp;gt;&amp;quot;laser-turret&amp;quot;, &amp;quot;combat-robotics&amp;quot;-&amp;gt;&amp;quot;defender&amp;quot;, &amp;quot;combat-robotics-2&amp;quot;-&amp;gt;&amp;quot;distractor&amp;quot;, &amp;quot;combat-robotics-3&amp;quot;-&amp;gt;&amp;quot;destroyer&amp;quot; &amp;quot;tanks&amp;quot;-&amp;gt;&amp;quot;tank&amp;quot;, &amp;quot;stone-walls&amp;quot;-&amp;gt;&amp;quot;stone-wall&amp;quot;, &amp;quot;gates&amp;quot;-&amp;gt;&amp;quot;gate&amp;quot;&lt;br /&gt;
* Internal spidertron specification in a way to make torso and leg scaling much easier.&lt;br /&gt;
* Renamed &amp;quot;source_effects&amp;quot; property of line trigger item to &amp;quot;range_effects&amp;quot;, due to ambiguity with source_effects on action delivery. ([https://forums.factorio.com/90591 more])&lt;br /&gt;
* Added the &amp;quot;linked-container&amp;quot; entity type.&lt;br /&gt;
* Removed &#039;small-plane&#039;, &#039;computer&#039;, &#039;railgun-dart&#039; and &#039;railgun&#039; items.&lt;br /&gt;
* Removed &#039;bait-chest&#039;, &#039;crash-site-assembling-machine-1-broken&#039;, &#039;crash-site-assembling-machine-1-repaired&#039;, &#039;crash-site-assembling-machine-2-broken&#039;, &#039;crash-site-assembling-machine-2-repaired&#039;, &#039;crash-site-electric-pole&#039;, &#039;crash-site-generator&#039;, &#039;crash-site-lab-broken&#039; and &#039;crash-site-lab-repaired&#039; entities.&lt;br /&gt;
* Removed the &amp;quot;auto-character-logistic-trash-slots&amp;quot; modifier and forceDataValues. The auto trash are now always enabled when any trash slots present.&lt;br /&gt;
* Added direction to SimpleEntityWithOwner and SimpleEntityWithForce.&lt;br /&gt;
* Constrained collision_box and collision_mask of transport belt connectable prototypes so it is not possible to build the entities in overlapping positions. ([https://forums.factorio.com/82294 more])&lt;br /&gt;
* Added optional draw_fluid_icon_override boolean to pipe to ground prototypes. Causes fluid icon to be drawn, ignoring the usual pair requirement.&lt;br /&gt;
* Removed fluid turret prototype property &#039;indicator_light&#039;.&lt;br /&gt;
* Added fluid turret prototype properties &#039;enough_fuel_indicator_light&#039; and &#039;not_enough_fuel_indicator_light&#039;.&lt;br /&gt;
* Added locomotive and car prototype properties &#039;front_light_pictures&#039; and &#039;darkness_to_render_light_animation&#039;.&lt;br /&gt;
* Renamed logistic-container prototype property &#039;logistic_slots_count&#039; to &#039;max_logistic_slots&#039;.&lt;br /&gt;
* The data stage files are no longer divided into demo and non-demo. This means the files with the demo- prefix were either merged into files without the prefix and/or the prefix was removed from the file name.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
* Renamed the clean_cursor method to clear_cursor.&lt;br /&gt;
* Renamed on_put_item to on_pre_build, as it is much more precise name for that event. It fires when anything is used for building: item, blueprint, blueprint record or ghost cursor.&lt;br /&gt;
* Changed &#039;control_behavior.parameters.parameters&#039; to just &#039;control_behavior.parameters&#039; for LuaDeciderCombinatorControlBehavior, LuaConstantCombinatorControlBehavior, and LuaArithmeticCombinatorControlBehavior.&lt;br /&gt;
* Changed LuaItemStack::active_index to return `nil` if the blueprint book inventory has zero slots. ([https://forums.factorio.com/88427 more])&lt;br /&gt;
* Changed LuaItemStack::count to return 0 instead of failing when the stack is empty.&lt;br /&gt;
* Changed LuaControl for players in cutscenes so the character is still usable.&lt;br /&gt;
* Changed on_player_cancelled_crafting &#039;cancel_count&#039; to report the exact number of crafts cancelled.&lt;br /&gt;
* Decoupled deactivation by script and deactivation by circuit network.&lt;br /&gt;
* mod-gui.lua no longer defines &#039;mod_gui&#039; as a global variable, it is now only available when required: local mod_gui = require(&amp;quot;mod-gui&amp;quot;)&lt;br /&gt;
* Made LuaEntity::speed read work with spider-vehicle.&lt;br /&gt;
* Made LuaEntityPrototype::guns read work for spider-vehicle.&lt;br /&gt;
* Removed LuaEntityPrototype::production read.&lt;br /&gt;
* Removed LuaBootstrap::is_game_in_debug_mode read.&lt;br /&gt;
* Added LuaEntityPrototype::max_energy_production read.&lt;br /&gt;
* Added LuaEntity::trains_limit read/write.&lt;br /&gt;
* Added LuaEntity::trains_count read.&lt;br /&gt;
* Added LuaTrainStopControlBehavior::trains_count_signal, trains_limit_signal, set_trains_limit and read_trains_count read/write.&lt;br /&gt;
* Added LuaEntity::tree_gray_stage_index, read/write.&lt;br /&gt;
* Added LuaEntity::tree_gray_stage_index_max read.&lt;br /&gt;
* Added LuaEntity::can_wires_reach().&lt;br /&gt;
* Added LuaEntity::crafting_queue_progress read.&lt;br /&gt;
* Added on_spider_command_completed event.&lt;br /&gt;
* Added LuaEntity::get_connected_rolling_stock().&lt;br /&gt;
* Added &#039;create_at_cursor&#039; to LuaPlayer::create_local_flying_text().&lt;br /&gt;
* Added LuaGameScript::map_gen_presets read.&lt;br /&gt;
* Added LuaStyle::extra_margin_when_activated and extra_padding_when_activated write, which also accept arrays of values.&lt;br /&gt;
* Added LuaStyle::size write.&lt;br /&gt;
* Added LuaGuiElement::name write support.&lt;br /&gt;
* Added LuaGuiElement::tags read/write.&lt;br /&gt;
* Added LuaTile::to_be_deconstructed().&lt;br /&gt;
* Added LuaGuiElement::bring_to_front().&lt;br /&gt;
* Added &#039;has-rocket-launch-products&#039; filter to ItemPrototypeFilters.&lt;br /&gt;
* Added support to save/load LuaProfilers. They simply reset the time when saved/loaded.&lt;br /&gt;
* Added LuaEntityPrototype::guns for artillery turrets and wagons.&lt;br /&gt;
* Added LuaEntity::combat_robot_owner read/write.&lt;br /&gt;
* Added LuaPlayer::clear_recipe_notifications and LuaPlayer::add_recipe_notification&lt;br /&gt;
* Added LuaGuiElement::add &amp;quot;index&amp;quot; property, allowing insertion to anywhere in the parent element.&lt;br /&gt;
* Added LuaGuiElement::get_index_in_parent().&lt;br /&gt;
* Added support to connect/disconnect power switches through LuaEntity::connect_neighbour/disconnect_neighbour.&lt;br /&gt;
* Added LuaForce::get_linked_inventory().&lt;br /&gt;
* Added LuaEntity::link_id read/write.&lt;br /&gt;
* Added LuaGui &#039;relative&#039; (player.gui.relative). For showing a CustomGuiElement relative to some base game C++ GUI.&lt;br /&gt;
* Added LuaGuiElement::anchor read/write.&lt;br /&gt;
* Added &#039;alt_mode&#039; to on_player_toggled_alt_mode event.&lt;br /&gt;
* Added &#039;cursor_position&#039; to the custom input events.&lt;br /&gt;
* Added &#039;queued_count&#039; to on_pre_player_crafted_item.&lt;br /&gt;
* Added LuaPlayer::cutscene_character read.&lt;br /&gt;
&lt;br /&gt;
{{VersionNav}}__NOTOC__&lt;/div&gt;</summary>
		<author><name>Atraps003</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Laser_(research)&amp;diff=192139</id>
		<title>Laser (research)</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Laser_(research)&amp;diff=192139"/>
		<updated>2023-08-15T17:51:50Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
{{:Infobox:Laser (research)}}&lt;br /&gt;
&lt;br /&gt;
While it doesn&#039;t give any immediate effects, researching &#039;&#039;&#039;Laser&#039;&#039;&#039; is a required step in getting [[Laser turret (research)|Laser turret]], among others.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Research]]&lt;br /&gt;
* [[Technologies]]&lt;br /&gt;
&lt;br /&gt;
{{TechNav}}&lt;/div&gt;</summary>
		<author><name>Atraps003</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Console&amp;diff=190853</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Console&amp;diff=190853"/>
		<updated>2023-02-22T07:55:16Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: /* Enable faster research */&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;
=== 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;
=== 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;
-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;
=== 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>Atraps003</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Enemies&amp;diff=190852</id>
		<title>Enemies</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Enemies&amp;diff=190852"/>
		<updated>2023-02-21T18:52:57Z</updated>

		<summary type="html">&lt;p&gt;Atraps003: /* Worms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
[[File:biter_intro.png|175px|right]]&#039;&#039;&#039;Enemies&#039;&#039;&#039; (also commonly called &#039;&#039;&#039;Biters&#039;&#039;&#039;) are creatures that want to [[Damage|harm]] the [[player]]. They are the native inhabitants of the extraterrestrial world in the form of arthropods living in organic nests, coexisting with each other peacefully. They are encountered in three species: Biters, spitters and worms. The species are further distinguished in four stages of growth, and thus strength. Enemies and nests show up on the map as red dots. Much like the player, enemies can slowly regain lost health.&lt;br /&gt;
&lt;br /&gt;
== Achievements ==&lt;br /&gt;
Enemies are directly connected to the following achievements:&lt;br /&gt;
{{Achievement|it-stinks-and-they-dont-like-it}}&lt;br /&gt;
{{Achievement|steamrolled}}&lt;br /&gt;
&lt;br /&gt;
==Creatures==&lt;br /&gt;
===Biters===&lt;br /&gt;
Biters are one of two main antagonists in the game. They come in four sizes: small, medium, big and behemoth. In the beginning of a game, there will only be the small ones. With increasing [[pollution]], they will become bigger, related to the enemy&#039;s [[#Evolution|evolution]]. As common sense may suggest, their method of attack is a straightforward charge to &amp;quot;bite&amp;quot; things.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Picture !! Name !! Info&lt;br /&gt;
|-&lt;br /&gt;
| [[File:small_biter.png|center]] || Small Biter&lt;br /&gt;
| Weakest of biters, can be easily killed with a pistol.&lt;br /&gt;
* Health: 15&lt;br /&gt;
* Damage: 7 Physical&lt;br /&gt;
* Attack speed: 1.71/s&lt;br /&gt;
* Speed: 43.2km/h &lt;br /&gt;
* Range: 1&lt;br /&gt;
* Pollution to join attack: 4&lt;br /&gt;
|-&lt;br /&gt;
| [[File:medium_biter.png|center]] || Medium Biter&lt;br /&gt;
| Stronger and slightly faster than the small biter. Can pose a problem for and even kill weaker players.&lt;br /&gt;
* Health: 75&lt;br /&gt;
* Damage: 15 Physical&lt;br /&gt;
* Attack speed: 1.71/s&lt;br /&gt;
* Speed: 51.8km/h&lt;br /&gt;
* Range: 1&lt;br /&gt;
* Pollution to join attack: 20&lt;br /&gt;
&lt;br /&gt;
[[Damage#Resistance|Resistances]]:&lt;br /&gt;
*Explosion: 0/10%&lt;br /&gt;
*Physical: 4/10%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:big_biter.png|center]] || Big Biter&lt;br /&gt;
| Dangerous, resistant to small arms. Can attack through walls, hitting objects directly behind them.&lt;br /&gt;
* Health: 375&lt;br /&gt;
* Damage: 30 Physical&lt;br /&gt;
* Attack speed: 1.71/s&lt;br /&gt;
* Speed: 49.7km/h&lt;br /&gt;
* Range: 2&lt;br /&gt;
* Pollution to join attack: 80&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 0/10%&lt;br /&gt;
*Physical: 8/10%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:behemoth_biter.png|center]] || Behemoth Biter&lt;br /&gt;
| Extremely durable and nearly immune to small arms, except for the strongest ordnance. Can attack through walls, hitting objects directly behind them.&lt;br /&gt;
* Health: 3000&lt;br /&gt;
* Damage: 90 Physical&lt;br /&gt;
* Attack speed: 1.2/s&lt;br /&gt;
* Speed: 64.8km/h&lt;br /&gt;
* Range: 2&lt;br /&gt;
* Pollution to join attack: 400&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 12/10%&lt;br /&gt;
*Physical: 12/10%&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Spitters===&lt;br /&gt;
&#039;&#039;&#039;Spitters&#039;&#039;&#039; are much like [[Enemies#Biters|biters]] and only appear slightly later on in the game as the evolution factor increases. Their main difference from biters is their ranged attack. Using predictive aiming, they spit a stream of acid at enemies which leaves behind a puddle of acid where it hits the ground. Due to the spitters&#039; predictive aiming, the acid stream can be dodged by suddenly changing walking directions or standing still.[https://factorio.com/blog/post/fff-279] Both the stream and the puddle of acid deal damage of time and slow down players and vehicles. Most entities of the game have a much lower resistance to acid than other damage types (including [[turret]]s and [[armor]]), so spitters are effectively more potent against the player and their factories. Their behaviour and size classification are the same as with biters, but their health is universally lower and they are resistant exclusively against explosives, with no physical resistance.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Picture !! Name !! Info&lt;br /&gt;
|-&lt;br /&gt;
| [[File:small_spitter.png|center]] || Small Spitter&lt;br /&gt;
| Weakest of spitters. Easy to kill with any weapon, but attacks at range.&lt;br /&gt;
* Health: 10&lt;br /&gt;
* Range: 13&lt;br /&gt;
* Pollution to join attack: 4&lt;br /&gt;
* Speed: 40.0km/h&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.6/s&lt;br /&gt;
* Area of effect size: 1&lt;br /&gt;
* Damage (on contact): 12 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 7.2 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Movement/vehicle speed modifier: 60%&lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[File:medium_spitter.png|center]] || Medium Spitter&lt;br /&gt;
| Stronger and slower than the smaller version. Can pose a problem for and even kill weaker players.&lt;br /&gt;
* Health: 50&lt;br /&gt;
* Range: 14&lt;br /&gt;
* Pollution to join attack: 12&lt;br /&gt;
* Speed: 35.6km/h&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.6/s&lt;br /&gt;
* Area of effect size: 1.25&lt;br /&gt;
* Damage (on contact): 24 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 28.8 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Movement/vehicle speed modifier: 50%&lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 0/10%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:big_spitter.png|center]] || Big Spitter&lt;br /&gt;
| An even bulkier spitter and so can take more damage.&lt;br /&gt;
* Health: 200&lt;br /&gt;
* Range: 15&lt;br /&gt;
* Pollution to join attack: 30&lt;br /&gt;
* Speed: 32.4km/h&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.6/s&lt;br /&gt;
* Area of effect size: 1.35&lt;br /&gt;
* Damage (on contact): 36 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 130 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Movement/vehicle speed modifier: 40%&lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 0/15%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:behemoth_spitter.png|center]] || Behemoth Spitter&lt;br /&gt;
| The bulkiest of the spitters and so can take even more damage.&lt;br /&gt;
* Health: 1500&lt;br /&gt;
* Range: 16&lt;br /&gt;
* Pollution to join attack: 200&lt;br /&gt;
* Speed: 32.4km/h&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.6/s&lt;br /&gt;
* Area of effect size: 1.75&lt;br /&gt;
* Damage (on contact): 60 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 360 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Movement/vehicle speed modifier: 30%&lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 0/30%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Worms===&lt;br /&gt;
&lt;br /&gt;
The Worms are natural allies of biters and spitters and will attack the player if they get close enough with an attack similar to spitters&#039;. They act like static [[turret]]s and will not follow attackers. They rely on high damage, great range and splash damage to keep the player away from the worms and the nests they protect, but either one of these advantages can be overcome. Unlike other enemies, they are also highly resistant to fire. They will spit acid at the player, which can also leave acidic puddles on the ground that can still damage players and vehicles, as well as slow them both down and leave a brief acidic, damaging effect for a few seconds. However, placed buildings and tiles are unaffected by the acid puddles, but still take damage normally by the acid projectile.&lt;br /&gt;
&lt;br /&gt;
Worms come in 4 sizes, their power increasing with size. Like biters and spitters, behemoth, big and medium worms spawning is influenced by the evolution factor. Worms are only created during enemy expansion when a certain evolution factor requirement is fulfilled. This is 0.3 for the medium worm, 0.5 for the big worm and 0.9 for the behemoth worm. Below these evolution factors, worms can only be created by the map generation. In map generation, the game restricts higher tier worms behind the distance from the starting point. The further away the player goes from the starting area, the stronger the worms become.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Picture !! Name !! Info&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Small worm.png|center]] || Small Worm&lt;br /&gt;
| A weak worm. It is still capable of killing the player unless it is targeted as priority.&lt;br /&gt;
* Health: 200&lt;br /&gt;
* Range: 25&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.66/s&lt;br /&gt;
* Area of effect size: 1.4&lt;br /&gt;
* Damage (on contact): 36 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 21.6 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
** Movement/vehicle speed modifier: 60%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Medium worm.png|center]] || Medium Worm&lt;br /&gt;
| Medium worms are dangerous to even more advanced players. They should be handled with care.&lt;br /&gt;
* Health: 400&lt;br /&gt;
* Range: 30&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.66/s&lt;br /&gt;
* Area of effect size: 1.55&lt;br /&gt;
* Damage (on contact): 48 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 57.6 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
** Movement/vehicle speed modifier: 50%&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 5/15%&lt;br /&gt;
*Fire: 2/50%&lt;br /&gt;
*Physical: 5/0%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Big worm.png|center]] || Big Worm&lt;br /&gt;
| Big worms are not as much more dangerous as resilient. They are almost immune to common gunfire of any sort.&lt;br /&gt;
* Health: 750&lt;br /&gt;
* Range: 38&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.66/s&lt;br /&gt;
* Area of effect size: 1.75&lt;br /&gt;
* Damage (on contact): 72 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 259 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
** Movement/vehicle speed modifier: 40%&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 10/30%&lt;br /&gt;
*Fire: 3/70%&lt;br /&gt;
*Physical: 10/0%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Behemoth worm.png|center]] || Behemoth Worm&lt;br /&gt;
| Behemoth worms are the most dangerous of worms. They are just as resilient as Big worms, with much greater range.&lt;br /&gt;
* Health: 750&lt;br /&gt;
* Range: 48&lt;br /&gt;
&lt;br /&gt;
Acid projectile:&lt;br /&gt;
* Attack speed: 0.66/s&lt;br /&gt;
* Area of effect size: 2&lt;br /&gt;
* Damage (on contact): 96 Acid&lt;br /&gt;
&lt;br /&gt;
Acid puddle:&lt;br /&gt;
* Lifetime: 32 seconds&lt;br /&gt;
* Damage: 691 Acid/second&lt;br /&gt;
* Applies effect (on contact): &lt;br /&gt;
** Duration: 2 seconds&lt;br /&gt;
** Movement/vehicle speed modifier: 30%&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 10/30%&lt;br /&gt;
*Fire: 3/70%&lt;br /&gt;
*Physical: 10/0%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Picture !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[File:worm.gif]] || A worm&#039;s attack animation.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Nests==&lt;br /&gt;
&lt;br /&gt;
The spawn points of biters and spitters. While nests themselves are generally defenseless, the enemies they release over time effectively serve as a form of guards to distract the player and any nearby turrets, and are often accompanied by worms. Nests exposed to pollution will use it to send enemies to join attacks. Enemies not engaged in combat may seek out the nearest nest for protection.&lt;br /&gt;
&lt;br /&gt;
The nests are highly resistant to fire and otherwise generally more resilient than a medium worm.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Picture !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[File:biter_nest.png]] || Biter&#039;s nest&lt;br /&gt;
|&lt;br /&gt;
* Health: 350&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 5/15%&lt;br /&gt;
*Fire: 3/60%&lt;br /&gt;
*Physical: 2/15%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:spitter_nest.png]] || Spitter&#039;s nest&lt;br /&gt;
|&lt;br /&gt;
* Health: 350&lt;br /&gt;
&lt;br /&gt;
Resistances:&lt;br /&gt;
*Explosion: 5/15%&lt;br /&gt;
*Fire: 3/60%&lt;br /&gt;
*Physical: 2/15%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Expansions ===&lt;br /&gt;
Every 4-60 minutes, a group of 5-20 biters/spitters will leave their base to create a new base which will consist of as many worms/nests as there are members in the group. This group will search for a suitable spot that&#039;s 3-7 chunks away from existing bases. The interval between enemy expansions is global, and the higher enemy evolution, the shorter the interval is on average. Furthermore, with higher evolution, the groups are bigger on average.&lt;br /&gt;
&lt;br /&gt;
Once they have found a suitable spot, each biter/spitter in the group dies and forms a new nest or worm. Forming a new nest or worm will destroy anything that is in the way, which can include members of the expansion group. There is a delay between each member sacrificing itself for to create a worm/nest, so creating the new base from the expansion group can take quite a long time, depending on the group size. Medium worms are only formed if the current evolution is higher than 0.3, big worms only if the current evolution is higher than 0.5 and behemoth worms are only formed if current evolution is higher than 0.9. The game randomly chooses whether to form a new biter nest, spitter nest, small worm, or bigger worm if the evolution factor is high enough. [https://gist.github.com/Bilka2/aa88490c23124a6f214c02c73a368aa7]&lt;br /&gt;
&lt;br /&gt;
==Defense==&lt;br /&gt;
[[File:kills_gui.png|thumb|220px|right|&amp;quot;Kills&amp;quot; tab on the [[production statistics]] screen.]]Nests spawn biters and spitters freely. However, biters and spitters will only aggressively engage the player&#039;s factory if the pollution cloud of the factory reaches a nest because pollution is consumed to send biters or spitters to join the next attack. Every 1 to 10 minutes (random) the mustered biters launch an attack. If not all biters have arrived at the rendezvous point by that time, they will wait up to an additional 2 minutes for stragglers. The attack then proceeds to their target over the shortest path possible, accounting for terrain, but not for player entities that could pose an obstacle (like [[wall]]s).&lt;br /&gt;
&lt;br /&gt;
If there is a clear path somewhere around those obstacles, the biters will attempt to go around. If there is no clear passage or a clear passage would mean deviating too far from the original course, the biters will attack whatever is in their way to go through. This can be exploited to an extent; creating mazes at regular intervals along a barrier can direct the biters through a gauntlet not dissimilar to tower defense.&lt;br /&gt;
&lt;br /&gt;
However, if a biter comes in proximity of a [[Military units and structures|military unit or structure]], it will prioritize these and attempt to immediately attack them instead, again trying to reach the new target over the shortest possible path with no too great detours, if possible.&lt;br /&gt;
&lt;br /&gt;
==Evolution==&lt;br /&gt;
[[File:Evolution Biters.png|thumb|right|400px|Spawn chances of biters from biter spawners by evolution factor.]]&lt;br /&gt;
[[File:Evolution Spitters.png|thumb|right|400px|Spawn chances of spitters from spitter spawners by evolution factor.]]&lt;br /&gt;
[[File:Evolution Weights.png|thumb|right|400px|Weight graph of both spawners by evolution factor. The values shown are primarily for indicating when certain types start and stop spawning, for actual chances refer to the tables or other charts.]]&lt;br /&gt;
The evolution factor is a global variable that determines what kind of biters will be spawned. You can check the variable in the dev console via the following command (does not disable achievements):&lt;br /&gt;
&lt;br /&gt;
  /evolution&lt;br /&gt;
&lt;br /&gt;
The evolution factor goes from 0 (not evolved at all) to 1 (maximal evolution). The evolution factor can only increase.&lt;br /&gt;
&lt;br /&gt;
This command also provides percentages for the three sources; each one is the percent of the (unsquashed) total evolution that is contributed by that source.&lt;br /&gt;
&lt;br /&gt;
Besides choosing what kind of biter will be spawned, the evolution factor also influences the spawning interval. This interval (&amp;lt;code&amp;gt;spawning_cooldown&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;enemy-spawner&amp;lt;/code&amp;gt; definition) is interpolated between 360 (0 evolution) and 150 (1 evolution) game ticks (= 6 to 2.5 seconds).&lt;br /&gt;
&lt;br /&gt;
=== Methods of increasing ===&lt;br /&gt;
&lt;br /&gt;
The evolution factor is increased by three kinds of events:&lt;br /&gt;
&lt;br /&gt;
* The passage of time very slightly increases the evolution factor.&lt;br /&gt;
* The global [[Pollution|pollution production]] increases the evolution factor.&lt;br /&gt;
* Destroying [[Enemies#Nests|nests]] significantly increases the evolution factor.&lt;br /&gt;
&lt;br /&gt;
The default settings are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Source per&lt;br /&gt;
!Variable in &amp;lt;code&amp;gt;enemy_evolution&amp;lt;/code&amp;gt;&lt;br /&gt;
!Evolution increase&lt;br /&gt;
|-&lt;br /&gt;
| [[Time#Seconds|Second]] || &amp;lt;code&amp;gt;time_factor&amp;lt;/code&amp;gt; || 0.000004&lt;br /&gt;
|-&lt;br /&gt;
| Destroyed enemy spawner || &amp;lt;code&amp;gt;destroy_factor&amp;lt;/code&amp;gt; || 0.002&lt;br /&gt;
|-&lt;br /&gt;
| 1 Pollution unit || &amp;lt;code&amp;gt;pollution_factor&amp;lt;/code&amp;gt; || 0.0000009 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These values can be set during [[Map_generator#Enemy|world generation]]: the values in the dialog box are multiplied by 10^-7 for time and pollution, and 10^-5 for spawner destruction. In game, they can be found in &amp;lt;code&amp;gt;game.map_settings.enemy_evolution&amp;lt;/code&amp;gt;, though checking or modifying them is considered using cheats.&lt;br /&gt;
&lt;br /&gt;
Pollution production is the total pollution produced by [[Pollution#Polluters|buildings]], not the pollution spreading on the map, so it is not reduced by trees or other absorbers.&lt;br /&gt;
e.g. : 10 boilers produce 300 pollution in one minute, raising the evolution factor by around 0.00027 in that minute.&lt;br /&gt;
&lt;br /&gt;
After totaling up all the evolution from these sources, this quantity is squashed to fit in the range &amp;lt;code&amp;gt;[0, 1)&amp;lt;/code&amp;gt; by applying &amp;lt;code&amp;gt;evolution_factor = total_evolution / (1 + total_evolution)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Equivalently, marginal increases in evolution are reduced by multiplying the increase by &amp;lt;code&amp;gt;(1 - evolution_factor)²&amp;lt;/code&amp;gt;. So for instance destroying enemy spawners in the beginning of the game results in increase of evolution factor by 0.002 while doing this when the evolution factor is 0.5 the increase is only 0.0005.&lt;br /&gt;
&lt;br /&gt;
This also means that the evolution factor approaches 1 asymptotically - generally, increases past 0.9 or so are &#039;&#039;very&#039;&#039; slow and the number never actually reaches 1.0.&lt;br /&gt;
&lt;br /&gt;
=== Spawn chances by evolution factor ===&lt;br /&gt;
&lt;br /&gt;
The probability charts show the chances of each type of biter/spitter for each spawner at all evolution levels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evoChecker&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced: Evolution factor components and computation ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:calc(100%-400px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
This section has charts plotting the individual evolution factor components and discusses possibilities for manually estimating the evolution factor.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Evolution_factor_by_time.png|400px|thumb|right|1. Single-component evolution factor increase with time]]&lt;br /&gt;
[[File:Evolution_factor_by_spawners.png|400px|thumb|right|2. Single-component evolution factor increase with destroyed spawners]]&lt;br /&gt;
[[File:Evolution_factor_by_pollution.png|400px|thumb|right|3. Single-component evolution factor increase with pollution]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Data from version 1.1.50.&lt;br /&gt;
&lt;br /&gt;
* All charts end at approximately an evolution factor of 0.90.&lt;br /&gt;
&lt;br /&gt;
* The calculation steps for time and spawner kills match those used by the game, so these charts should be accurate. The pollution chart assumes a pollution production of 1000 units per second, and due to the recursive nature of the chart values will slightly diverge at different pollution rates. The effect of this is negligible for any reasonable amount pollution production, however.&lt;br /&gt;
&lt;br /&gt;
* Given that the game reports the actual evolution factor (console: &amp;lt;code&amp;gt;/evolution&amp;lt;/code&amp;gt;) whenever the player wishes, these charts are intended primarily to help estimate the impact of planned base expansions and similar activities on the evolution factor&#039;s future development.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Comments&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These charts (click to enlarge) represent the situation where each evolution factor component (time, pollution, destroyed spawners) is the &#039;&#039;only&#039;&#039; component contributing to the evolution factor in that entire game. They are therefore &#039;&#039;&#039;not realistic&#039;&#039;&#039;, as in a typical game all three components will contribute, some at varying times and intensities.&lt;br /&gt;
&lt;br /&gt;
Because of how contributions to the evolution factor (EF) are calculated (multiplied by &amp;lt;code&amp;gt;(1 - current EF)&amp;lt;/code&amp;gt;), it is &#039;&#039;&#039;not&#039;&#039;&#039; possible to simply add the values indicated by these charts for a game&#039;s time passed, pollution generated, and / or spawners destroyed so far to retrieve the total evolution factor.&lt;br /&gt;
&lt;br /&gt;
For example, if 24 hours have passed (single-component EF =~ 0.25), 200,000 pollution units were released (single-component EF =~ 0.15), and 400 spawners were destroyed (single-component EF =~ 0.45), the actual evolution factor will &#039;&#039;&#039;not&#039;&#039;&#039; be (0.25 + 0.15 + 0.45 =) ~0.85.&lt;br /&gt;
&lt;br /&gt;
However, the evolution factor will always be &#039;&#039;&#039;less&#039;&#039;&#039; than the sum of all individual components as indicated by these charts, and &#039;&#039;&#039;at least&#039;&#039;&#039; as high as the highest individual component. Thus, using the values from above, the EF will be &#039;&#039;at least&#039;&#039; 0.35 and &#039;&#039;less than&#039;&#039; 0.85. A smarter approach is required to compute the current evolution factor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Individual components&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The individual components of evolution can be approximated from &amp;lt;code&amp;gt;/evolution&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Given the evolution factor, the unsquashed evolution is &amp;lt;code&amp;gt;unsquashed = evolution_factor / (1 - evolution_factor)&amp;lt;/code&amp;gt;.  Multiply this by the percentage for a given component to get its approximate unsquashed contribution.  Of course, total pollution and spawner kills can also be found on the [[Production_statistics|production statistics]] screen, and time passed can be found using the &amp;lt;code&amp;gt;/time&amp;lt;/code&amp;gt; command, so it&#039;s not fully necessary.&lt;br /&gt;
&lt;br /&gt;
The actual factors can be found in &amp;lt;code&amp;gt;game.forces.enemy.evolution_factor_by_time&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;...evolution_factor_by_killing_spawners&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;...evolution_factor_by_pollution&amp;lt;/code&amp;gt;, if you don&#039;t mind disabling achievements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=270px heights=140px&amp;gt;&lt;br /&gt;
File:player_near_enemy_nests.png|The player near some enemy nests and worms.&lt;br /&gt;
File:player_worms_acid.png|The player among acid puddles created by attacking worms.&lt;br /&gt;
File:player_attacked_by_biters.png|Both the player and some buildings getting attacked by biters.&lt;br /&gt;
File:enemy_nests_mapgen.png|Enemy nests seen in a map generation preview (deathworld setting).&lt;br /&gt;
File:turret_wall_biters.png|Line of gun turrets defending against biters.&lt;br /&gt;
File:titlescreen_enemies.png|Enemies seen at the title screen.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{history|0.17.0|&lt;br /&gt;
* Behemoth worm added.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.15.0|&lt;br /&gt;
* Increased the damage, range, and health of worms.&lt;br /&gt;
* Decreased health and resist of Behemoth biters.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.10|&lt;br /&gt;
* Biters and other units won&#039;t become aggressive as a result of friendly-fire.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Big and behemoth enemies now spawn 50% slower.&lt;br /&gt;
* Changed the way evolution factor approaches the maximum (1).&lt;br /&gt;
** The addition of evolution factor was changed from addition * (1 - evolution) to addition * (1 - evolution)^2&lt;br /&gt;
** This means that the progress gets more slower towards the high values.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.26|&lt;br /&gt;
* Running biters over with a vehicle will now anger them in peaceful mode.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Updated sounds for enemies.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.11.17|&lt;br /&gt;
* Items dropped by enemies([[alien artifact|*]]) are now collected automatically and from longer distances.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.11.6|&lt;br /&gt;
* Range of spitters is now 15, less than turrets.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.11.0|&lt;br /&gt;
* Spitters added.&lt;br /&gt;
* Drawing of enemies optimised, so adding new colors does not impact VRAM.&lt;br /&gt;
* Blood splashes on death are now procedural.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.9.0|&lt;br /&gt;
* Turrets no longer search for enemies when none are near.&lt;br /&gt;
* Biters can no longer destroy the shipwreck in the 3rd new hope campaign.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.1|&lt;br /&gt;
* Further improvement to enemy AI.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.0|&lt;br /&gt;
* Decreased the range of medium worm from 25 to 20.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.7.2|&lt;br /&gt;
* Biter AI improved.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.7.1|&lt;br /&gt;
* Peaceful mode added for freeplay.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.7.0|&lt;br /&gt;
* Enemy creepers were replaced by small, medium and big biters.&lt;br /&gt;
* Enemy turrets were replaced by small, medium and big shooting worms.&lt;br /&gt;
* Enemies move and attack in groups.&lt;br /&gt;
* Enemies wander around their base when they have nothing to do.&lt;br /&gt;
* Enemies call for help when attacked.&lt;br /&gt;
* Enemies can create new bases.&lt;br /&gt;
* Enemies can now destroy all player creations they find.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced, called &#039;creepers&#039;}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Damage]]&lt;br /&gt;
* [[Pollution]]&lt;/div&gt;</summary>
		<author><name>Atraps003</name></author>
	</entry>
</feed>