https://wiki.factorio.com/api.php?action=feedcontributions&user=DarkShadow84&feedformat=atomOfficial Factorio Wiki - User contributions [en]2024-03-29T12:44:15ZUser contributionsMediaWiki 1.38.2https://wiki.factorio.com/index.php?title=Tutorial:Nuclear_power&diff=159061Tutorial:Nuclear power2018-05-11T12:09:33Z<p>DarkShadow84: /* Enrichment */</p>
<hr />
<div>[[Nuclear power]] is a major new feature introduced in version 0.15. It requires higher level technology compared to either solar power or steam boiler power, but it offers very high power output in exchange. It's a great solution for middle- to end-game power generation and it works well in combination with other power generation techniques.<br />
<br />
This guide is written for people who want to know exactly how nuclear power works, but don't necessarily want all the solutions. It focuses on what you should do and what you should know to get Nuclear up and running, but doesn't tell you what to do or exactly how to solve the problems.<br />
<br />
== First steps ==<br />
<br />
:'''Technology required:''' [[Nuclear power (research)|Nuclear power]]<br />
:''You can mine uranium ore sooner, but you'll need the nuclear power technology to do anything useful with it.''<br />
<br />
=== [[Uranium ore]] ===<br />
To start, you'll need uranium ore. It glows green, so you can't miss it. It tends to form smaller deposits, though, and you may have to search a while to find a good patch.<br />
<br />
Like every other ore in the game, you can mine it with an [[electric mining drill|Electric mining drill]]. Unlike every other ore, however, only the [[electric mining drill| Electric mining drill]] will do. You also need to supply [[sulfuric acid]] to the drill. The drills conduct excess acid through themselves, so a row of drills can be supplied by acid from a single side.<br />
<br />
:'''Mixed ores:''' If a mining drill covers even a single patch of uranium ore, it will require acid to run at all. The mine will produce mixed ore, as usual.<br />
<br />
=== [[Uranium processing|Ore processing]] ===<br />
Once you've got raw uranium ore, you'll need to process it into [[uranium-235]] and [[uranium-238]]. You do this in a centrifuge.<br />
<br />
In an un-moduled [[centrifuge]], you can process one ore every 13.3 seconds.<br />
<br />
Centrifuges produce a combination of U-235 (the light green stuff) and U-238 (the dark green stuff). Every ten ore processed have a chance to become precisely one of these two products. Out of every 10k ore you process, you can expect to get, on average:<br />
<br />
{| class="wikitable" |-<br />
! Count !! Product <br />
|-<br />
| 7 || U-235 <br />
|-<br />
| 993 || U-238<br />
|}<br />
<br />
That means you can roughly expect to get a single U-235 in one out of every 143 ore. A centrifuge can then be expected to produce U-235 every 1904 seconds. Later on, this won't matter so much. However, when you first start out, this will be an important bottleneck.<br />
<br />
:'''Regarding averages:''' Be aware, random is random. These values are ''average'' values. Which means that over the long term, they work out to about these figures. In reality, you'll see long stretches with no U-235 and short stretches with lots of them. Eventually, it won't matter much. But early on, make sure your generation rate is sufficiently high, or you have a sufficient reserve, so you don't find yourself without power when you hit an unlucky stretch.<br />
<br />
=== Fuel ===<br />
Before you can burn it in a nuclear reactor, you need to create [[uranium fuel cell]]s. You'll probably be using an assembling machine 2, so these will take 13.3 seconds to create as well. Which is fine because fuel cell creation will very rarely be the bottleneck.<br />
<br />
You won't want to automatically convert all U-235 into fuel. Only convert what you need to fill your reactor. You're going to want a big fat stockpile of it when you research [[Kovarex enrichment process|kovarex enrichment]] later on.<br />
<br />
Fuel cells are produced in stacks of 10, and to produce one such stack you need 1 U-235, 19 U-238, and 10 iron plate.<br />
<br />
:'''Tip:''' It isn't a bad idea to use a chest and just stick a pile of iron in it rather than belting the iron in. A full chest of iron probably won't run out before you get bots and replace it with a requester.<br />
<br />
Each fuel cell has a nominal energy value of 8 GJ, but it's possible to make them go even farther with reactor neighbor bonuses (more on that later).<br />
<br />
=== [[Nuclear reactor]] ===<br />
Once you've got fuel, you'll need to burn it in a nuclear reactor. This is the first step toward turning it into usable energy.<br />
<br />
A reactor will produce exactly 40 MW of heat energy. Since a Watt is a Joule per second, this means the reactor will consume one fuel cell every 200 seconds.<br />
<br />
Once expended, reactors will produce a "[[used up uranium fuel cell]]", which will need to be cleared. Initially, these will simply accumulate in a chest. Eventually, you can reprocess them into U-238.<br />
<br />
:'''Working backward:''' A reactor consumes a fuel cell every 200 seconds and each U-235 gives 10 fuel cells, so every U-235 provides 2000 seconds of reactor power. A centrifuge requires about 1904 seconds to produce a U-235, so you'll need about one processing centrifuges per reactor.<br />
<br />
The reactor needs input of fuel and produces heat that needs to be exported using [[heat pipe]]s that go to a [[heat exchanger]] (unless a [[heat exchanger]] is attached to the reactor).<br />
<br />
=== [[Heat exchanger]] ===<br />
The heat exchanger takes heat and uses it to convert [[water]] into [[steam]]. It works much like the boiler, but instead of burning fuel, you need to connect it to a heat source. The heat input is marked by a flame when you're placing it.<br />
<br />
For simple reactor designs, you can connect it directly to your reactor (which produces heat at points also marked with a flame).<br />
<br />
Heat exchangers also require water input, in precisely the way boilers do. They can heat up to 103.09 units/second of water into 500°C steam.<br />
<br />
Heat exchangers produce nothing when they are below 500°C. Since they only cool as a consequence of heating water, they will never cool to below that temperature once they've reached it.<br />
<br />
Heat exchangers transfer 10 MW of power, so you'll need 4 exchangers to fully consume the power produced by a lone reactor. (Neighbor bonuses can increase this significantly. Again, discussed later.)<br />
<br />
The [[steam]] can then be transported to the [[Steam turbine]] using normal [[Pipe]]s<br />
<br />
==== [[Heat pipe]]s ====<br />
More complex designs will require heat pipes. Heat pipes work much like regular pipes. Like regular pipes, they have limited throughput, which means that shorter pipes are better. <br />
<br />
Connect heat pipes point to point, flame to flame, exactly as you would with water pipes. Heat pipes cannot go underground, so if water pipes need to cross them, the water pipe will need to go under. They don't block movement, though, so you can walk right over them.<br />
<br />
Throughput on heat pipes is far more limited than regular pipes, in part because there is no analogous "Heat pump". Here are some rough limits on transfer distance:<br />
<br />
{| class="wikitable" |-<br />
! Power !! Distance<br />
|-<br />
| 40 MW || ~140<br />
|-<br />
| 80 MW || ~80<br />
|-<br />
| 120 MW || ~55<br />
|-<br />
| 160 MW || ~45<br />
|}<br />
<br />
Past these distances, less than 100% of the power will be transferred. This is because at this distance, the maximum reactor temperature of 1000ºC is insufficient to heat the pipe to beyond 500ºC.<br />
<br />
:'''Heat pipe storage:''' Heat pipes can store quite a bit of heat as well. A single heat pipe can hold as much energy as a tank with 5.1k steam in it, which makes them even more space efficient than tanks for holding energy (though considerably more expensive). Be cautious, however, with transfer efficiencies. It's very easy to lose more power than you store with an inefficient design.<br />
<br />
=== [[Steam turbine]] ===<br />
These are the steam engine's beefy big brother. Using regular fluid pipes, you'll pipe the steam produced by heat exchangers into these turbines.<br />
<br />
:'''Perfect matches:''' The steam turbine is a perfect match for the heat exchanger. The steam engine is a perfect match for the boiler. Although it is possible to get energy out of mismatched systems, it's very wasteful and there's no real reason to do it.<br />
<br />
Steam turbines consume up to 60 units of steam/second, so you need roughly two steam turbines for every heat exchanger. At large scales, however, you can use fewer turbines, since exchangers only produce 103.09 steam/second. You'll require a separate pump for every 20 turbines.<br />
<br />
=== Simplest thing that works ===<br />
At this point, you have all the parts to build your very first reactor:<br />
<br />
* A few uranium miners, supplied with sulfuric acid<br />
* 1 Centrifuge, processing uranium ore<br />
* 1 Assembling machine, making uranium fuel cells<br />
* 1 Nuclear reactor<br />
* 4 Heat exchangers, supplied by a single off-shore pump<br />
* 8 Steam turbines<br />
<br />
And, of course, assorted belts, inserters, filter inserters, and other tools for moving things around. This will produce a maximum of 40 MW of power.<br />
<br />
== Moving forward ==<br />
Past your simplest reactor, there are some additional nuclear features of which you should be aware.<br />
<br />
=== Neighbor bonus ===<br />
This is a critical part of how nuclear designs scale, but it's not complicated. Simply put:<br />
<br />
'''Every reactor gets +100% heating power for every active neighboring reactor.'''<br />
<br />
Neighbors have to align completely on each side, so reactors will line up in a nice square grid. When they do, the neighbor bonus is activated. You can see the current bonus by hovering over an active reactor.<br />
<br />
The bonus to heating power does not increase the fuel consumption. Rather, it simply increases the heat produced!<br />
<br />
This, of course, means you'll need more heat exchangers and steam turbines to turn that heat into electricity.<br />
<br />
{| class="wikitable" |-<br />
! Configuration !! Reactors !! Exchangers !! Turbines !! Power !! Power per reactor<br />
|-<br />
| Single || 1 || 4 || 7 || 40MW || 40MW<br />
|-<br />
| 2x1 || 2 || 16 || 28 || 160MW || 80MW<br />
|-<br />
| 2x2 || 4 || 48 || 83 || 480MW || 120MW<br />
|-<br />
| 2x3 || 6 || 80 || 138 || 800MW || 133MW<br />
|}<br />
<br />
'''How to count heat exchangers:''' Count the number of edges where reactors fully touch. Double that. Add the total number of reactors. Then multiply it all by 4. That's your count of Heat Exchangers. You'll need 1.718 turbines per exchanger (rounded up). Each exchanger will provide up to 10 MW of power.<br />
<br />
=== Always on! ===<br />
Unlike every other power generation technique, nuclear reactors '''DO NOT''' scale down power usage. Nuclear reactors will continue consuming one fuel cell every 200 seconds, regardless of the need.<br />
<br />
As the reactor consumes its fuel, it heats up to a maximum temperature of 1000°C. At that point, additional fuel burned is simply wasted.<br />
<br />
Turbines do scale their production (and steam consumption) to match demand. Likewise, exchangers won't consume heat if there's nowhere to put the steam.<br />
<br />
:'''Turbines and engines:''' Be aware that steam turbines and steam engines are both the same "class" of energy producer, so they'll need to be scaled all together. This means that in a complete energy system, your coal boilers may be running when the nuclear plant could fully cover the load. And, worse yet, the nuclear power is just being wasted!<br />
:Consider using accumulators, switches, and circuit logic to disable the coal boilers when nuclear systems can cover the demand.<br />
<br />
The simplest solution to this problem is to just run the nuclear reactors part of the time. You can store steam in tanks. (And check out the "fill gauge"; the steam floats!) Since exchanges produce 120 steam/second and a tank holds 25k steam, a tank will keep 208 seconds worth of heat exchanger.<br />
<br />
You can put a tank or two at the end of each heat exchanger and use circuit logic to only insert a fuel into the reactors when they get low. Make sure all exchangers are powered at the same time, or you won't get full neighbor bonuses. If you can't keep it from over-fueling, you can also add extra tanks to lengthen the cycle.<br />
<br />
=== Enrichment ===<br />
:'''Required technology:''' [[Kovarex enrichment process (research)|Kovarex enrichment process]]<br />
:''Kovarex Enrichment allows you to turn some U-238 into U-235, but it's slow and takes a lot of U-235 as catalyst.''<br />
<br />
Your first few patches of uranium ore will last you a reasonable length of time, but eventually you will start running out of ore and places to put extraneous U-238. Enrichment helps solve both problems.<br />
<br />
The enrichment process takes about 67 seconds in an un-moduled centrifuge. It requires 40 U-235 (!) and 5 U-238 and makes 41 U-235 and 2 U-238. In effect, it takes 3 U-238 and turns it into 1 U-235; it just requires an extra 40 U-235 and 2 U-238 along for the ride to act as a catalyst.<br />
<br />
:'''All the things!:''' Before you ''enrich all the things!'', be aware that you do need 19 U-238 for each fuel cell, as well as requiring it for uranium ammo you will want for storing inside biters and their nests. Circuit logic can help you put a limiter on large-scale enrichment operations.<br />
<br />
One Centrifuge enriching uranium is sufficient to supply 29 reactors with fuel, assuming plenty of U-238.<br />
<br />
=== Reprocessing fuel ===<br />
:'''Required technology:''' [[Nuclear fuel reprocessing (research)|Nuclear fuel reprocessing]]<br />
:''Reprocessing turns your spent fuel into U-238.''<br />
<br />
Eventually, you will run out of places to put spent fuel. You can use reprocessing to turn it back into U-238 to use for enrichment, fuel cells, or ammo. Of the 19 U-238 that go into each 10-pack of fuel cells, this returns 6. This significantly reduces the total ore requirement for nuclear fuel.<br />
<br />
=== Weapons ===<br />
:'''Required technology:''' [[Uranium ammo (research)|Uranium ammo]] / [[Atomic bomb (research)|Atomic bomb]]<br />
:''Better bullets / Bigger bombs''<br />
<br />
With the Nuclear Age comes nuclear weapons. Uranium ammunition is top-tier, especially when you load a tank with it. It mows down biter nests and clears swarms quite quickly. It uses U-238, so you've probably got plenty of it lying around.<br />
<br />
On the other side, you can get [[atomic bomb]]s, which are rockets (shot by a [[rocket launcher]]) that do incredible damage. Be aware, they can easily kill you if you fire them anywhere near you, and even at max range, it's advised that you run in the opposite direction. Rather than a single explosion, they do damage in an expanding ring, giving you time to escape. They require a lot of U-235 and blue chips, so they're an expensive weapon.<br />
<br />
== Version ==<br />
This guide is compatible with Factorio 0.15.13. Newer versions may, and likely will, change many of the values and mechanics on which this guide depends.<br />
<br />
: This guide was originally written by ''alficles'' and published on [https://gist.github.com/alficles/972796997d1bc40d57866b0a3725895a gist].<br />
:'''License:''' [https://creativecommons.org/licenses/by-sa/4.0/ CC BY-SA 4.0]<br />
:As an exception to the above, any or all of this work or adaptations thereof may be used on the official [https://wiki.factorio.com Factorio Wiki].</div>DarkShadow84https://wiki.factorio.com/index.php?title=Blueprint_string_format&diff=158767Blueprint string format2018-04-30T18:43:39Z<p>DarkShadow84: /* Connection point object */</p>
<hr />
<div>{{Languages}} [[Category:Technical]]<br />
This is a technical description of the blueprint string format, used to share blueprints with other users.<br />
<br />
A blueprint string is a json representation of the blueprint, encoded using base 64 with the version byte in front (0 in vanilla 0.15 and 0.16) and then compressed with zlib deflate. So to get the json representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib deflate. <br />
<br />
== Json representation of a blueprint/blueprint book ==<br />
<br />
The json representation of a blueprint or blueprint book is one large object inside another "wrapping" object, its key inside that object is either blueprint or blueprint-book.<br />
<br />
=== Blueprint book object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| item<br />
| String, the name of the item that was saved ("blueprint-book" in vanilla).<br />
| String<br />
|-<br />
| label<br />
| String, the name of the blueprint set by the user.<br />
| String<br />
|-<br />
| blueprints<br />
| The actual content of the blueprint book, array of objects containing an "index" key and 0-based value and a "blueprint" key with a [[#Blueprint object]] as the value.<br />
| Array<br />
|-<br />
| active_index<br />
| Index of the currently selected blueprint, 0-based.<br />
| Integer<br />
|-<br />
| version<br />
| The map version of the map the blueprint was created in.<br />
| Integer (long)<br />
|}<br />
<br />
=== Blueprint object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| item<br />
| String, the name of the item that was saved ("blueprint" in vanilla).<br />
| String<br />
|-<br />
| label<br />
| String, the name of the blueprint set by the user.<br />
| String<br />
|-<br />
| entities<br />
| The actual content of the blueprint, array of [[#Entity object]]s.<br />
| Array<br />
|-<br />
| tiles<br />
| The tiles included in the blueprint, array of [[#Tile object]]s.<br />
| Array<br />
|-<br />
| icons<br />
| The icons of the blueprint set by the user, array of [[#Icon object]]s.<br />
| Array<br />
|-<br />
| version<br />
| The map version of the map the blueprint was created in.<br />
| Integer (long)<br />
|}<br />
<br />
=== Icon object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| index<br />
| Index of the icon, 1-based.<br />
| Integer<br />
|-<br />
| signal<br />
| The icon that is displayed, [[#SignalID object]].<br />
| Object<br />
|}<br />
<br />
=== SignalID object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Name of the signal prototype this signal is set to.<br />
| String<br />
|-<br />
| type<br />
| Type of the signal. Either "item", "fluid" or "virtual".<br />
| String<br />
|}<br />
<br />
=== Entity object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| entity_number<br />
| Index of the entity, 1-based.<br />
| Integer<br />
|-<br />
| name<br />
| Prototype name of the entity (e.g. "offshore-pump").<br />
| String<br />
|-<br />
| position<br />
| [[#Position object]], position of the entity within the blueprint.<br />
| Object<br />
|-<br />
| direction<br />
| Direction of the entity, uint (optional).<br />
| Integer<br />
|-<br />
| connections<br />
| Circuit connection, object with keys starting from 1, values are [[#Connection object]]s (optional).<br />
| Object<br />
|-<br />
| control_behaviour<br />
|<br />
| Object<br />
|-<br />
| items<br />
| Item requests by this entity, this is what defines the item-request-proxy when the blueprint is placed, optional. [[#Item request object]]<br />
| Object<br />
|-<br />
| recipe<br />
| Name of the recipe prototype this assembling machine is set to, optional, string.<br />
|String<br />
|-<br />
| bar<br />
| Used by [[Prototype/Container]], optional. The index of the first inaccessible item slot due to limiting with the red "bar". 0-based [[Types/ItemStackIndex]].<br />
| Integer<br />
|-<br />
| infinity_settings<br />
| Used by [[Prototype/InfinityContainer]], optional. [[#Infinity settings object]]<br />
| Object<br />
|-<br />
| type<br />
| Type of the underground belt or loader, optional. Either "input" or "output".<br />
| String<br />
|-<br />
| input_priority<br />
| Input priority of the splitter, optional. Either "right" or "left", "none" is omitted.<br />
| String<br />
|-<br />
| output_priority<br />
| Output priority of the splitter, optional. Either "right" or "left", "none" is omitted.<br />
| String<br />
|-<br />
| filter<br />
| Filter of the splitter, optional. Name of the item prototype the filter is set to, string.<br />
| String<br />
|-<br />
| filters<br />
| Filters of the filter inserter or loader, optional. Array of [[#Item filter object]]s.<br />
| Array<br />
|-<br />
| override_stack_size<br />
| The stack size the inserter is set to, optional. [[Types/uint8]].<br />
| Integer<br />
|-<br />
| drop_position<br />
| The drop position the inserter is set to, optional. [[#Position object]].<br />
| Object<br />
|-<br />
| pickup_position<br />
| The pickup position the inserter is set to, optional. [[#Position object]].<br />
| Object<br />
|-<br />
| request_filters<br />
| Used by [[Prototype/LogisticContainer]], optional. [[#Logistic filter object]].<br />
| Array<br />
|-<br />
| request_from_buffers<br />
| Boolean. Whether this requester chest can request from buffer chests.<br />
| Boolean<br />
|-<br />
| parameters<br />
| Used by [[Programmable speaker]], optional. [[#Speaker parameter object]].<br />
| Object<br />
|-<br />
| alert_parameters<br />
| Used by [[Programmable speaker]], optional. [[#Speaker alert parameter object]]<br />
| Object<br />
|-<br />
| auto_launch<br />
| Used by the rocket silo, optional. Boolean, whether auto launch is enabled.<br />
| Boolean<br />
|-<br />
| variation<br />
| Used by [[Prototype/SimpleEntityWithForce]] or [[Prototype/SimpleEntityWithOwner]], optional. [[Types/GraphicsVariation]]<br />
|<br />
|-<br />
| color<br />
| Color of the [[Prototype/SimpleEntityWithForce]], [[Prototype/SimpleEntityWithOwner]], or train station, optional. [[#Color object]].<br />
| Object<br />
|-<br />
| station<br />
| The name of the train station, optional.<br />
| String<br />
|}<br />
<br />
=== Tile object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Prototype name of the tile (e.g. "concrete")<br />
| String<br />
|-<br />
| position<br />
| [[#Position object]], position of the entity within the blueprint.<br />
| Object<br />
|}<br />
<br />
=== Position object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| x<br />
| X position within the blueprint, 0 is the center.<br />
| Floating point<br />
|-<br />
| y<br />
| Y position within the blueprint, 0 is the center.<br />
| Floating point<br />
|}<br />
<br />
=== Connection object ===<br />
Object containing information about the connections to other entities formed by red or green wires.<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| 1<br />
| First connection point. The default for everything that doesn't have multiple connection points.[[#Connection point object]]<br />
| Object<br />
|-<br />
| 2<br />
| Second connection point. For example, the "output" part of an arithmetic combinator.[[#Connection point object]]<br />
| Object<br />
|}<br />
<br />
=== Connection point object ===<br />
The actual point where a wire is connected to. Contains information about where it is connected to.<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| red<br />
| An array of [[#Connection data object]] containing all the connections from this point created by red wire.<br />
| Array<br />
|-<br />
| green<br />
| An array of [[#Connection data object]] containing all the connections from this point created by green wire.<br />
| Array<br />
|}<br />
<br />
=== Connection data object ===<br />
Information about a single connection between two connection points.<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| entity_id<br />
| ID of the entity this connection is connected with.<br />
| Integer<br />
|-<br />
| circuit_id<br />
| ID of the circuit this connection is connected with.<br />
| Integer<br />
|}<br />
<br />
=== Item request object ===<br />
1 or more instances of key/value pairs.<br />
Key is the name of the item, string.<br />
Value is the amount of items to be requested, [[Types/ItemCountType]].<br />
<br />
=== Item filter object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Name of the item prototype this filter is set to.<br />
| String<br />
|-<br />
| index<br />
| Index of the filter, 1-based. <br />
| Integer<br />
|}<br />
<br />
=== Infinity settings object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| remove_unfiltered_items<br />
| Boolean. Whether the "remove unfiltered items" checkbox is checked.<br />
| Boolean<br />
|-<br />
| filters<br />
| Filters of the infinity container, optional. Array of [[#Infinity filter object]]s.<br />
| Array<br />
|}<br />
<br />
=== Infinity filter object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Name of the item prototype the filter is set to, string.<br />
| String<br />
|-<br />
| count<br />
| Number the filter is set to, [[Types/ItemCountType]].<br />
| Integer<br />
|-<br />
| mode<br />
| Mode of the filter. Either "at-least", "at-most", or "exactly".<br />
| String<br />
|-<br />
| index<br />
| Index of the filter, 1-based.<br />
| Integer<br />
|}<br />
<br />
=== Logistic filter object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Name of the item prototype this filter is set to.<br />
| String<br />
|-<br />
| index<br />
| Index of the filter, 1-based.<br />
| Integer<br />
|-<br />
| count<br />
| Number the filter is set to, [[Types/ItemCountType]]. Is 0 for storage chests.<br />
| Integer<br />
|}<br />
<br />
=== Speaker parameter object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| playback_volume<br />
| [[Types/double]]. Volume of the speaker.<br />
| Floating point<br />
|-<br />
| playback_globally<br />
| Boolean, whether global playback is enabled.<br />
| Boolean<br />
|-<br />
| allow_polyphony<br />
| Boolean, whether polyphony is allowed.<br />
| Boolean<br />
|}<br />
<br />
=== Speaker alert parameter object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| show_alert<br />
| Boolean, whether an alert is shown.<br />
| Boolean<br />
|-<br />
| show_on_map<br />
| Boolean, whether an alert icon is shown on the map.<br />
| Boolean<br />
|-<br />
| icon_signal_id<br />
| The icon that is displayed with the alert, [[#SignalID object]].<br />
| Object<br />
|-<br />
| alert_message<br />
| String, message of the alert.<br />
| String<br />
|}<br />
<br />
=== Color object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| r<br />
| red<br />
|-<br />
| g<br />
| green<br />
|-<br />
| b<br />
| blue<br />
|-<br />
| a<br />
| transparency<br />
|}</div>DarkShadow84https://wiki.factorio.com/index.php?title=Blueprint_string_format&diff=158766Blueprint string format2018-04-30T18:41:09Z<p>DarkShadow84: </p>
<hr />
<div>{{Languages}} [[Category:Technical]]<br />
This is a technical description of the blueprint string format, used to share blueprints with other users.<br />
<br />
A blueprint string is a json representation of the blueprint, encoded using base 64 with the version byte in front (0 in vanilla 0.15 and 0.16) and then compressed with zlib deflate. So to get the json representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib deflate. <br />
<br />
== Json representation of a blueprint/blueprint book ==<br />
<br />
The json representation of a blueprint or blueprint book is one large object inside another "wrapping" object, its key inside that object is either blueprint or blueprint-book.<br />
<br />
=== Blueprint book object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| item<br />
| String, the name of the item that was saved ("blueprint-book" in vanilla).<br />
| String<br />
|-<br />
| label<br />
| String, the name of the blueprint set by the user.<br />
| String<br />
|-<br />
| blueprints<br />
| The actual content of the blueprint book, array of objects containing an "index" key and 0-based value and a "blueprint" key with a [[#Blueprint object]] as the value.<br />
| Array<br />
|-<br />
| active_index<br />
| Index of the currently selected blueprint, 0-based.<br />
| Integer<br />
|-<br />
| version<br />
| The map version of the map the blueprint was created in.<br />
| Integer (long)<br />
|}<br />
<br />
=== Blueprint object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| item<br />
| String, the name of the item that was saved ("blueprint" in vanilla).<br />
| String<br />
|-<br />
| label<br />
| String, the name of the blueprint set by the user.<br />
| String<br />
|-<br />
| entities<br />
| The actual content of the blueprint, array of [[#Entity object]]s.<br />
| Array<br />
|-<br />
| tiles<br />
| The tiles included in the blueprint, array of [[#Tile object]]s.<br />
| Array<br />
|-<br />
| icons<br />
| The icons of the blueprint set by the user, array of [[#Icon object]]s.<br />
| Array<br />
|-<br />
| version<br />
| The map version of the map the blueprint was created in.<br />
| Integer (long)<br />
|}<br />
<br />
=== Icon object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| index<br />
| Index of the icon, 1-based.<br />
| Integer<br />
|-<br />
| signal<br />
| The icon that is displayed, [[#SignalID object]].<br />
| Object<br />
|}<br />
<br />
=== SignalID object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Name of the signal prototype this signal is set to.<br />
| String<br />
|-<br />
| type<br />
| Type of the signal. Either "item", "fluid" or "virtual".<br />
| String<br />
|}<br />
<br />
=== Entity object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| entity_number<br />
| Index of the entity, 1-based.<br />
| Integer<br />
|-<br />
| name<br />
| Prototype name of the entity (e.g. "offshore-pump").<br />
| String<br />
|-<br />
| position<br />
| [[#Position object]], position of the entity within the blueprint.<br />
| Object<br />
|-<br />
| direction<br />
| Direction of the entity, uint (optional).<br />
| Integer<br />
|-<br />
| connections<br />
| Circuit connection, object with keys starting from 1, values are [[#Connection object]]s (optional).<br />
| Object<br />
|-<br />
| control_behaviour<br />
|<br />
| Object<br />
|-<br />
| items<br />
| Item requests by this entity, this is what defines the item-request-proxy when the blueprint is placed, optional. [[#Item request object]]<br />
| Object<br />
|-<br />
| recipe<br />
| Name of the recipe prototype this assembling machine is set to, optional, string.<br />
|String<br />
|-<br />
| bar<br />
| Used by [[Prototype/Container]], optional. The index of the first inaccessible item slot due to limiting with the red "bar". 0-based [[Types/ItemStackIndex]].<br />
| Integer<br />
|-<br />
| infinity_settings<br />
| Used by [[Prototype/InfinityContainer]], optional. [[#Infinity settings object]]<br />
| Object<br />
|-<br />
| type<br />
| Type of the underground belt or loader, optional. Either "input" or "output".<br />
| String<br />
|-<br />
| input_priority<br />
| Input priority of the splitter, optional. Either "right" or "left", "none" is omitted.<br />
| String<br />
|-<br />
| output_priority<br />
| Output priority of the splitter, optional. Either "right" or "left", "none" is omitted.<br />
| String<br />
|-<br />
| filter<br />
| Filter of the splitter, optional. Name of the item prototype the filter is set to, string.<br />
| String<br />
|-<br />
| filters<br />
| Filters of the filter inserter or loader, optional. Array of [[#Item filter object]]s.<br />
| Array<br />
|-<br />
| override_stack_size<br />
| The stack size the inserter is set to, optional. [[Types/uint8]].<br />
| Integer<br />
|-<br />
| drop_position<br />
| The drop position the inserter is set to, optional. [[#Position object]].<br />
| Object<br />
|-<br />
| pickup_position<br />
| The pickup position the inserter is set to, optional. [[#Position object]].<br />
| Object<br />
|-<br />
| request_filters<br />
| Used by [[Prototype/LogisticContainer]], optional. [[#Logistic filter object]].<br />
| Array<br />
|-<br />
| request_from_buffers<br />
| Boolean. Whether this requester chest can request from buffer chests.<br />
| Boolean<br />
|-<br />
| parameters<br />
| Used by [[Programmable speaker]], optional. [[#Speaker parameter object]].<br />
| Object<br />
|-<br />
| alert_parameters<br />
| Used by [[Programmable speaker]], optional. [[#Speaker alert parameter object]]<br />
| Object<br />
|-<br />
| auto_launch<br />
| Used by the rocket silo, optional. Boolean, whether auto launch is enabled.<br />
| Boolean<br />
|-<br />
| variation<br />
| Used by [[Prototype/SimpleEntityWithForce]] or [[Prototype/SimpleEntityWithOwner]], optional. [[Types/GraphicsVariation]]<br />
|<br />
|-<br />
| color<br />
| Color of the [[Prototype/SimpleEntityWithForce]], [[Prototype/SimpleEntityWithOwner]], or train station, optional. [[#Color object]].<br />
| Object<br />
|-<br />
| station<br />
| The name of the train station, optional.<br />
| String<br />
|}<br />
<br />
=== Tile object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Prototype name of the tile (e.g. "concrete")<br />
| String<br />
|-<br />
| position<br />
| [[#Position object]], position of the entity within the blueprint.<br />
| Object<br />
|}<br />
<br />
=== Position object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| x<br />
| X position within the blueprint, 0 is the center.<br />
| Floating point<br />
|-<br />
| y<br />
| Y position within the blueprint, 0 is the center.<br />
| Floating point<br />
|}<br />
<br />
=== Connection object ===<br />
Object containing information about the connections to other entities formed by red or green wires.<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| 1<br />
| First connection point. The default for everything that doesn't have multiple connection points.[[#Connection point object]]<br />
| Object<br />
|-<br />
| 2<br />
| Second connection point. For example, the "output" part of an arithmetic combinator.[[#Connection point object]]<br />
| Object<br />
|}<br />
<br />
=== Connection point object ===<br />
The actual point where a wire is connected to. Contains information about where it is connected to.<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| red<br />
| An array containing all the connections from this point created by red wire.<br />
| Array<br />
|-<br />
| green<br />
| An array of [[#Connection data object]] containing all the connections from this point created by green wire.<br />
| Array<br />
|}<br />
<br />
=== Connection data object ===<br />
Information about a single connection between two connection points.<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| entity_id<br />
| ID of the entity this connection is connected with.<br />
| Integer<br />
|-<br />
| circuit_id<br />
| ID of the circuit this connection is connected with.<br />
| Integer<br />
|}<br />
<br />
=== Item request object ===<br />
1 or more instances of key/value pairs.<br />
Key is the name of the item, string.<br />
Value is the amount of items to be requested, [[Types/ItemCountType]].<br />
<br />
=== Item filter object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Name of the item prototype this filter is set to.<br />
| String<br />
|-<br />
| index<br />
| Index of the filter, 1-based. <br />
| Integer<br />
|}<br />
<br />
=== Infinity settings object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| remove_unfiltered_items<br />
| Boolean. Whether the "remove unfiltered items" checkbox is checked.<br />
| Boolean<br />
|-<br />
| filters<br />
| Filters of the infinity container, optional. Array of [[#Infinity filter object]]s.<br />
| Array<br />
|}<br />
<br />
=== Infinity filter object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Name of the item prototype the filter is set to, string.<br />
| String<br />
|-<br />
| count<br />
| Number the filter is set to, [[Types/ItemCountType]].<br />
| Integer<br />
|-<br />
| mode<br />
| Mode of the filter. Either "at-least", "at-most", or "exactly".<br />
| String<br />
|-<br />
| index<br />
| Index of the filter, 1-based.<br />
| Integer<br />
|}<br />
<br />
=== Logistic filter object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| name<br />
| Name of the item prototype this filter is set to.<br />
| String<br />
|-<br />
| index<br />
| Index of the filter, 1-based.<br />
| Integer<br />
|-<br />
| count<br />
| Number the filter is set to, [[Types/ItemCountType]]. Is 0 for storage chests.<br />
| Integer<br />
|}<br />
<br />
=== Speaker parameter object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| playback_volume<br />
| [[Types/double]]. Volume of the speaker.<br />
| Floating point<br />
|-<br />
| playback_globally<br />
| Boolean, whether global playback is enabled.<br />
| Boolean<br />
|-<br />
| allow_polyphony<br />
| Boolean, whether polyphony is allowed.<br />
| Boolean<br />
|}<br />
<br />
=== Speaker alert parameter object ===<br />
{| class="wikitable"<br />
! Key !! Description !! Data type<br />
|-<br />
| show_alert<br />
| Boolean, whether an alert is shown.<br />
| Boolean<br />
|-<br />
| show_on_map<br />
| Boolean, whether an alert icon is shown on the map.<br />
| Boolean<br />
|-<br />
| icon_signal_id<br />
| The icon that is displayed with the alert, [[#SignalID object]].<br />
| Object<br />
|-<br />
| alert_message<br />
| String, message of the alert.<br />
| String<br />
|}<br />
<br />
=== Color object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| r<br />
| red<br />
|-<br />
| g<br />
| green<br />
|-<br />
| b<br />
| blue<br />
|-<br />
| a<br />
| transparency<br />
|}</div>DarkShadow84https://wiki.factorio.com/index.php?title=Blueprint_string_format&diff=158763Blueprint string format2018-04-30T17:20:43Z<p>DarkShadow84: </p>
<hr />
<div>{{Languages}} [[Category:Technical]]<br />
This is a technical description of the blueprint string format, used to share blueprints with other users.<br />
<br />
A blueprint string is a json representation of the blueprint, encoded using base 64 with the version byte in front (0 in vanilla 0.15 and 0.16) and then compressed with zlib deflate. So to get the json representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib deflate. <br />
<br />
== Json representation of a blueprint/blueprint book ==<br />
<br />
The json representation of a blueprint or blueprint book is one large object inside another "wrapping" object, its key inside that object is either blueprint or blueprint-book.<br />
<br />
=== Blueprint book object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| item<br />
| String, the name of the item that was saved ("blueprint-book" in vanilla).<br />
|-<br />
| label<br />
| String, the name of the blueprint set by the user.<br />
|-<br />
| blueprints<br />
| The actual content of the blueprint book, array of objects containing an "index" key and 0-based value and a "blueprint" key with a [[#Blueprint object]] as the value.<br />
|-<br />
| active_index<br />
| Index of the currently selected blueprint, 0-based.<br />
|-<br />
| version<br />
| The map version of the map the blueprint was created in.<br />
|}<br />
<br />
=== Blueprint object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| item<br />
| String, the name of the item that was saved ("blueprint" in vanilla).<br />
|-<br />
| label<br />
| String, the name of the blueprint set by the user.<br />
|-<br />
| entities<br />
| The actual content of the blueprint, array of [[#Entity object]]s.<br />
|-<br />
| tiles<br />
| The tiles included in the blueprint, array of [[#Tile object]]s.<br />
|-<br />
| icons<br />
| The icons of the blueprint set by the user, array of [[#Icon object]]s.<br />
|-<br />
| version<br />
| The map version of the map the blueprint was created in.<br />
|}<br />
<br />
=== Icon object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| index<br />
| Index of the icon, 1-based.<br />
|-<br />
| signal<br />
| The icon that is displayed, [[#SignalID object]].<br />
|}<br />
<br />
=== SignalID object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Name of the signal prototype this signal is set to.<br />
|-<br />
| type<br />
| Type of the signal. Either "item", "fluid" or "virtual".<br />
|}<br />
<br />
=== Entity object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| entity_number<br />
| Index of the entity, 1-based.<br />
|-<br />
| name<br />
| Prototype name of the entity (e.g. "offshore-pump").<br />
|-<br />
| position<br />
| [[#Position object]], position of the entity within the blueprint.<br />
|-<br />
| direction<br />
| Direction of the entity, uint (optional).<br />
|-<br />
| connections<br />
| Circuit connection, object with keys starting from 1, values are [[#Connection object]]s (optional).<br />
|-<br />
| control_behaviour<br />
|<br />
|-<br />
| items<br />
| Item requests by this entity, this is what defines the item-request-proxy when the blueprint is placed, optional. [[#Item request object]]<br />
|-<br />
| recipe<br />
| Name of the recipe prototype this assembling machine is set to, optional, string.<br />
|-<br />
| bar<br />
| Used by [[Prototype/Container]], optional. The index of the first inaccessible item slot due to limiting with the red "bar". 0-based [[Types/ItemStackIndex]].<br />
|-<br />
| infinity_settings<br />
| Used by [[Prototype/InfinityContainer]], optional. [[#Infinity settings object]]<br />
|-<br />
| type<br />
| Type of the underground belt or loader, optional. Either "input" or "output".<br />
|-<br />
| input_priority<br />
| Input priority of the splitter, optional. Either "right" or "left", "none" is omitted.<br />
|-<br />
| output_priority<br />
| Output priority of the splitter, optional. Either "right" or "left", "none" is omitted.<br />
|-<br />
| filter<br />
| Filter of the splitter, optional. Name of the item prototype the filter is set to, string.<br />
|-<br />
| filters<br />
| Filters of the filter inserter or loader, optional. Array of [[#Item filter object]]s.<br />
|-<br />
| override_stack_size<br />
| The stack size the inserter is set to, optional. [[Types/uint8]].<br />
|-<br />
| drop_position<br />
| The drop position the inserter is set to, optional. [[#Position object]].<br />
|-<br />
| pickup_position<br />
| The pickup position the inserter is set to, optional. [[#Position object]].<br />
|-<br />
| request_filters<br />
| Used by [[Prototype/LogisticContainer]], optional. [[#Logistic filter object]].<br />
|-<br />
| request_from_buffers<br />
| Boolean. Whether this requester chest can request from buffer chests.<br />
|-<br />
| parameters<br />
| Used by [[Programmable speaker]], optional. [[#Speaker parameter object]].<br />
|-<br />
| alert_parameters<br />
| Used by [[Programmable speaker]], optional. [[#Speaker alert parameter object]]<br />
|-<br />
| auto_launch<br />
| Used by the rocket silo, optional. Boolean, whether auto launch is enabled.<br />
|-<br />
| variation<br />
| Used by [[Prototype/SimpleEntityWithForce]] or [[Prototype/SimpleEntityWithOwner]], optional. [[Types/GraphicsVariation]]<br />
|-<br />
| color<br />
| Color of the [[Prototype/SimpleEntityWithForce]], [[Prototype/SimpleEntityWithOwner]], or train station, optional. [[#Color object]].<br />
|-<br />
| station<br />
| The name of the train station, optional.<br />
|}<br />
<br />
=== Tile object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Prototype name of the tile (e.g. "concrete")<br />
|-<br />
| position<br />
| [[#Position object]], position of the entity within the blueprint.<br />
|}<br />
<br />
=== Position object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| x<br />
| X position within the blueprint, 0 is the center.<br />
|-<br />
| y<br />
| Y position within the blueprint, 0 is the center.<br />
|}<br />
<br />
=== Connection object ===<br />
<br />
=== Item request object ===<br />
1 or more instances of key/value pairs.<br />
Key is the name of the item, string.<br />
Value is the amount of items to be requested, [[Types/ItemCountType]].<br />
<br />
=== Item filter object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Name of the item prototype this filter is set to.<br />
|-<br />
| index<br />
| Index of the filter, 1-based. <br />
|}<br />
<br />
=== Infinity settings object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| remove_unfiltered_items<br />
| Boolean. Whether the "remove unfiltered items" checkbox is checked.<br />
|-<br />
| filters<br />
| Filters of the infinity container, optional. Array of [[#Infinity filter object]]s.<br />
|}<br />
<br />
=== Infinity filter object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Name of the item prototype the filter is set to, string.<br />
|-<br />
| count<br />
| Number the filter is set to, [[Types/ItemCountType]].<br />
|-<br />
| mode<br />
| Mode of the filter. Either "at-least", "at-most", or "exactly".<br />
|-<br />
| index<br />
| Index of the filter, 1-based. <br />
|}<br />
<br />
=== Logistic filter object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| name<br />
| Name of the item prototype this filter is set to.<br />
|-<br />
| index<br />
| Index of the filter, 1-based.<br />
|-<br />
| count<br />
| Number the filter is set to, [[Types/ItemCountType]]. Is 0 for storage chests.<br />
|}<br />
<br />
=== Speaker parameter object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| playback_volume<br />
| [[Types/double]]. Volume of the speaker.<br />
|-<br />
| playback_globally<br />
| Boolean, whether global playback is enabled.<br />
|-<br />
| allow_polyphony<br />
| Boolean, whether polyphony is allowed.<br />
|}<br />
<br />
=== Speaker alert parameter object ===<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| show_alert<br />
| Boolean, whether an alert is shown.<br />
|-<br />
| show_on_map<br />
| Boolean, whether an alert icon is shown on the map.<br />
|-<br />
| icon_signal_id<br />
| The icon that is displayed with the alert, [[#SignalID object]].<br />
|-<br />
| alert_message<br />
| String, message of the alert.<br />
|}<br />
<br />
=== Color object ===<br />
<br />
{| class="wikitable"<br />
! Key !! Description<br />
|-<br />
| r<br />
| red<br />
|-<br />
| g<br />
| green<br />
|-<br />
| b<br />
| blue<br />
|-<br />
| a<br />
| transparency<br />
|}</div>DarkShadow84https://wiki.factorio.com/index.php?title=Blueprint&diff=158762Blueprint2018-04-30T17:15:25Z<p>DarkShadow84: </p>
<hr />
<div>{{Languages}}<br />
{{:Infobox:Blueprint}}<br />
<br />
'''Blueprints''' are items that contain building layouts. Blueprints are used to 'copy & paste' parts of a factory. Built areas can be selected for inclusion in a blueprint. When a blueprint is placed, a [[entity ghost|ghost]] of the layout appears on the ground. This can be used as a guide for manually placing factory pieces, or, more commonly, handed over to [[construction robot]]s for automated completion.<br />
<br />
== Achievements ==<br />
{{Achievement|automated-construction}}<br />
{{Achievement|you-are-doing-it-right}}<br />
<br />
== Usage ==<br />
<br />
Blank blueprints can be crafted by clicking the 'new blueprint' button in the blueprints dialog.<br />
This dialog is opened by pressing {{Key|B}} or clicking the blueprint icon above the mini-map.<br />
<br />
The blank blueprint can now be used to 'copy' a set of buildings.<br />
<br />
For example, copying this small laser defense setup:<br />
<br />
[[File:Blueprint-example-01.png]]<br />
<br />
=== Create a blueprint ===<br />
<br />
To create a blueprint select the blueprint item out of the toolbar or the inventory.<br />
With the blueprint icon shown next to the mouse cursor, click and hold the left mouse button and drag a box as large as needed.<br />
All buildings which will be included in the blueprint will be highlighted with a green square.<br />
Once everything to 'copy' is inside the drag box, release the mouse button, and the 'Blueprint icon setup' menu will open.<br />
<br />
[[File:Blueprint-example-02.png]]<br />
<br />
=== Blueprint icon setup ===<br />
<br />
On the top left of the 'Blueprint icon setup" menu there are four icon slots.<br />
The game chooses automatically the number of icons and which are pre-selected depending on the number of buildings that are included.<br />
This can be changed by simply clicking on the icons to choose the desired ones.<br />
<br />
On the top right there are two icons to 'create blueprint' and 'cancel blueprint'.<br />
The 'create blueprint' icon will also show a preview of how the blueprint icon will look after creation.<br />
The 'Blueprint preview' just shows the preview of the blueprint.<br />
<br />
On the bottom the 'Total' number of buildings included in the blueprint is shown.<br />
<br />
Finally, create the blueprint if everything is fine or cancel it.<br />
Canceling does not consume the blueprint item.<br />
The created blueprint will be in the tool belt or the inventory (or dropped to the ground if no tool belt/inventory slot is available).<br />
<br />
[[File:Blueprint-example-03.png|x440px]]<br />
<br />
=== Placing the blueprint ===<br />
<br />
To use/place the created blueprint select it from the tool belt or inventory.<br />
The whole building setup of the blueprint will be shown at your mouse cursor.<br />
In this case the Blueprint was renamed to "Example blueprint".<br />
It is possible to place it rotated, press the default key {{keybinding|r}} to rotate.<br />
The blueprint can be placed anywhere inside the green (or orange) 110x110 tiles area of a [[Roboport]], or within range of a [[personal roboport]] installed in [[modular armor]].<br />
<br />
[[File:Blueprint-example-04.png]]<br />
<br />
After the blueprint gets placed somewhere, the buildings are placed as ghost buildings.<br />
[[Construction robot]]s will now start to pick up the needed items from the construction network/the player inventory (if using a personal roboport) and place them at the ghost buildings.<br />
The required items need to be in the network in an [[Active provider chest]], a [[Passive provider chest]] or a [[Storage chest]].<br />
<br />
[[File:Blueprint-example-05.png]]<br />
<br />
=== Viewing and clearing a blueprint ===<br />
<br />
Right clicking on a blueprint allows you to can view, edit and clear it.<br />
By clearing it, it will become blank so it can be set again.<br />
<br />
== Importing/Exporting blueprints ==<br />
<br />
Starting with version 0.15.0, it is possible to export blueprints as a text string and import said text string to create a new blueprint. This makes sharing blueprints between players very easy. The text string itself is a base64 encoded, compressed JSON string which contains all the information of the blueprint. It is therefore possible to decode/decompress the text string, change attributes of the blueprint in the JSON text and finally re-encode/compress it back to the known text string format. This basically allows blueprint editing outside of the game itself.<br />
<br />
A complete explanation of the blueprint JSON can be found on the [[Blueprint string format]] page.<br />
<br />
== Additional information ==<br />
<br />
* Once a blueprint is created it can be used unlimited times.<br />
* To place a blueprint that is blocked by existing buildings you can hold shift to place the things that aren't blocked.<br />
* The above trick will also mark rocks and trees for deconstruction.<br />
* Buildings marked for destruction will not block placing a blueprint. The blueprinted building cannot be placed if there are any buildings in the way. This can cause an item outside the construction zone to block construction of a 2x2 building on the edge of the zone.<br />
* The size limit of blueprints is 10k by 10k [[tile]]s.<br />
* Blueprints can be stored in a [[Blueprint book]]. This can store an unlimted amount of blueprints while taking only one inventory spot.<br />
<br />
== History ==<br />
<br />
{{history|0.15.0|<br />
* Blueprint library: Allows for keeping players blueprints between individual game saves and allows sharing blueprints in multiplayer games.<br />
* The build rotation of each blueprint is remembered independently of the general item build rotation.<br />
* Alternative select with blueprints (shift + select) skips the blueprint setup GUI.<br />
* Added ability to export and import blueprints, blueprint books, and deconstruction planners as strings.<br />
* Blueprints, blueprint books and deconstruction planners are obtainable from the library GUI with no crafting cost.}}<br />
<br />
{{history|0.14.15|<br />
* Changed the clear blueprint icon to the trashcan icon and moved it to the left of the cancel button, to make it less confusing for users.}}<br />
<br />
{{history|0.13.13|<br />
* Added [http://lua-api.factorio.com/latest/LuaEntityPrototype.html entity prototype flags] not-blueprintable and not-deconstructable, so these can be controlled by mod makers.}}<br />
<br />
{{history|0.13.9|<br />
* Added tips and tricks for pasting wagon slots and cycling in [[blueprint book]].}}<br />
<br />
{{history|0.13.7|<br />
* Rocks can be mined while holding blueprints.}}<br />
<br />
{{history|0.13.5|<br />
* Blueprints with labels will now show the label when holding them in the active hand.}}<br />
<br />
{{history|0.13.0|<br />
* Blueprints can now be edited.<br />
* Added the [[blueprint book]] item, can hold multiple blueprints in one item.<br />
* Modules are now supported by blueprints.<br />
* Optimized drawing of connections between [[roboport]]s in blueprints.<br />
* [[Circuit network#Virtual_signals|Virtual signals]] can be used in blueprint icons.<br />
}}<br />
<br />
{{history|0.12.2|<br />
* Enabled swapping held blueprints with other blueprints directly.<br />
* Force building blueprints will mark colliding trees for deconstruction.}}<br />
<br />
{{history|0.12.0|<br />
* Enabled mining trees/ghosts while holding blueprints to be built.<br />
* Building blueprints over existing ghosts restores the ghost's life time.<br />
* Proper blueprint centering.<br />
}}<br />
<br />
{{history|0.11.18|<br />
* Blueprints can be built over things marked for deconstruction.<br />
* Blueprints can be force built by shift clicking.<br />
}}<br />
<br />
{{history|0.11.10|<br />
* Added [http://lua-api.factorio.com/latest/LuaItemStack.html Lua API] for reading/writing information from blueprints.}}<br />
<br />
{{history|0.10.2|<br />
* The rotation of turrets in blueprints no longer matters when testing for entity collision.}}<br />
<br />
{{history|0.10.0|<br />
* Blueprints can copy [[circuit network]] connections.<br />
* Miners in blueprints are now ignored if they are non-functional.<br />
* An [[inserter]]'s logistic conditions are copied when blueprinting.<br />
}}<br />
<br />
{{history|0.9.4|<br />
* Limit the size of the blueprint preview, so it is usable for very large blueprints.}}<br />
<br />
{{history|0.9.2|<br />
* The [[train stop]] and [[lab]] built from blueprints are now given dedicated names.}}<br />
<br />
{{history|0.9.0|<br />
*Introduced}}<br />
<br />
== See also ==<br />
* [[Deconstruction planner]]<br />
* [[Blueprint book]]<br />
* [[Logistic network]]<br />
* [[Roboport]]<br />
* [[Personal roboport]]<br />
* [[Construction robot]]<br />
<br />
{{ProductionNav}}<br />
{{C|Tools}}</div>DarkShadow84https://wiki.factorio.com/index.php?title=Blueprint&diff=158754Blueprint2018-04-30T13:16:26Z<p>DarkShadow84: </p>
<hr />
<div>{{Languages}}<br />
{{:Infobox:Blueprint}}<br />
<br />
'''Blueprints''' are items that contain building layouts. Blueprints are used to 'copy & paste' parts of a factory. Built areas can be selected for inclusion in a blueprint. When a blueprint is placed, a [[entity ghost|ghost]] of the layout appears on the ground. This can be used as a guide for manually placing factory pieces, or, more commonly, handed over to [[construction robot]]s for automated completion.<br />
<br />
== Achievements ==<br />
{{Achievement|automated-construction}}<br />
{{Achievement|you-are-doing-it-right}}<br />
<br />
== Usage ==<br />
<br />
Blank blueprints can be crafted by clicking the 'new blueprint' button in the blueprints dialog.<br />
This dialog is opened by pressing {{Key|B}} or clicking the blueprint icon above the mini-map.<br />
<br />
The blank blueprint can now be used to 'copy' a set of buildings.<br />
<br />
For example, copying this small laser defense setup:<br />
<br />
[[File:Blueprint-example-01.png]]<br />
<br />
=== Create a blueprint ===<br />
<br />
To create a blueprint select the blueprint item out of the toolbar or the inventory.<br />
With the blueprint icon shown next to the mouse cursor, click and hold the left mouse button and drag a box as large as needed.<br />
All buildings which will be included in the blueprint will be highlighted with a green square.<br />
Once everything to 'copy' is inside the drag box, release the mouse button, and the 'Blueprint icon setup' menu will open.<br />
<br />
[[File:Blueprint-example-02.png]]<br />
<br />
=== Blueprint icon setup ===<br />
<br />
On the top left of the 'Blueprint icon setup" menu there are four icon slots.<br />
The game chooses automatically the number of icons and which are pre-selected depending on the number of buildings that are included.<br />
This can be changed by simply clicking on the icons to choose the desired ones.<br />
<br />
On the top right there are two icons to 'create blueprint' and 'cancel blueprint'.<br />
The 'create blueprint' icon will also show a preview of how the blueprint icon will look after creation.<br />
The 'Blueprint preview' just shows the preview of the blueprint.<br />
<br />
On the bottom the 'Total' number of buildings included in the blueprint is shown.<br />
<br />
Finally, create the blueprint if everything is fine or cancel it.<br />
Canceling does not consume the blueprint item.<br />
The created blueprint will be in the tool belt or the inventory (or dropped to the ground if no tool belt/inventory slot is available).<br />
<br />
[[File:Blueprint-example-03.png|x440px]]<br />
<br />
=== Placing the blueprint ===<br />
<br />
To use/place the created blueprint select it from the tool belt or inventory.<br />
The whole building setup of the blueprint will be shown at your mouse cursor.<br />
In this case the Blueprint was renamed to "Example blueprint".<br />
It is possible to place it rotated, press the default key {{keybinding|r}} to rotate.<br />
The blueprint can be placed anywhere inside the green (or orange) 110x110 tiles area of a [[Roboport]], or within range of a [[personal roboport]] installed in [[modular armor]].<br />
<br />
[[File:Blueprint-example-04.png]]<br />
<br />
After the blueprint gets placed somewhere, the buildings are placed as ghost buildings.<br />
[[Construction robot]]s will now start to pick up the needed items from the construction network/the player inventory (if using a personal roboport) and place them at the ghost buildings.<br />
The required items need to be in the network in an [[Active provider chest]], a [[Passive provider chest]] or a [[Storage chest]].<br />
<br />
[[File:Blueprint-example-05.png]]<br />
<br />
=== Viewing and clearing a blueprint ===<br />
<br />
Right clicking on a blueprint allows you to can view, edit and clear it.<br />
By clearing it, it will become blank so it can be set again.<br />
<br />
== Importing/Exporting blueprints ==<br />
<br />
Starting with version 0.15.0, it is possible to export blueprints as a text string and import said text string to create a new blueprint. This makes sharing blueprints between players very easy. The text string itself is a base64 encoded, compressed JSON string which contains all the information of the blueprint. It is therefore possible to decode/decompress the text string, change attributes of the blueprint in the JSON text and finally re-encode/compress it back to the known text string format. This basically allows blueprint editing outside of the game itself.<br />
<br />
A complete explanation of the blueprint JSON can be found on the [[Blueprint JSON Format(wip)]] page.<br />
<br />
== Additional information ==<br />
<br />
* Once a blueprint is created it can be used unlimited times.<br />
* To place a blueprint that is blocked by existing buildings you can hold shift to place the things that aren't blocked.<br />
* The above trick will also mark rocks and trees for deconstruction.<br />
* Buildings marked for destruction will not block placing a blueprint. The blueprinted building cannot be placed if there are any buildings in the way. This can cause an item outside the construction zone to block construction of a 2x2 building on the edge of the zone.<br />
* The size limit of blueprints is 10k by 10k [[tile]]s.<br />
* Blueprints can be stored in a [[Blueprint book]]. This can store an unlimted amount of blueprints while taking only one inventory spot.<br />
<br />
== History ==<br />
<br />
{{history|0.15.0|<br />
* Blueprint library: Allows for keeping players blueprints between individual game saves and allows sharing blueprints in multiplayer games.<br />
* The build rotation of each blueprint is remembered independently of the general item build rotation.<br />
* Alternative select with blueprints (shift + select) skips the blueprint setup GUI.<br />
* Added ability to export and import blueprints, blueprint books, and deconstruction planners as strings.<br />
* Blueprints, blueprint books and deconstruction planners are obtainable from the library GUI with no crafting cost.}}<br />
<br />
{{history|0.14.15|<br />
* Changed the clear blueprint icon to the trashcan icon and moved it to the left of the cancel button, to make it less confusing for users.}}<br />
<br />
{{history|0.13.13|<br />
* Added [http://lua-api.factorio.com/latest/LuaEntityPrototype.html entity prototype flags] not-blueprintable and not-deconstructable, so these can be controlled by mod makers.}}<br />
<br />
{{history|0.13.9|<br />
* Added tips and tricks for pasting wagon slots and cycling in [[blueprint book]].}}<br />
<br />
{{history|0.13.7|<br />
* Rocks can be mined while holding blueprints.}}<br />
<br />
{{history|0.13.5|<br />
* Blueprints with labels will now show the label when holding them in the active hand.}}<br />
<br />
{{history|0.13.0|<br />
* Blueprints can now be edited.<br />
* Added the [[blueprint book]] item, can hold multiple blueprints in one item.<br />
* Modules are now supported by blueprints.<br />
* Optimized drawing of connections between [[roboport]]s in blueprints.<br />
* [[Circuit network#Virtual_signals|Virtual signals]] can be used in blueprint icons.<br />
}}<br />
<br />
{{history|0.12.2|<br />
* Enabled swapping held blueprints with other blueprints directly.<br />
* Force building blueprints will mark colliding trees for deconstruction.}}<br />
<br />
{{history|0.12.0|<br />
* Enabled mining trees/ghosts while holding blueprints to be built.<br />
* Building blueprints over existing ghosts restores the ghost's life time.<br />
* Proper blueprint centering.<br />
}}<br />
<br />
{{history|0.11.18|<br />
* Blueprints can be built over things marked for deconstruction.<br />
* Blueprints can be force built by shift clicking.<br />
}}<br />
<br />
{{history|0.11.10|<br />
* Added [http://lua-api.factorio.com/latest/LuaItemStack.html Lua API] for reading/writing information from blueprints.}}<br />
<br />
{{history|0.10.2|<br />
* The rotation of turrets in blueprints no longer matters when testing for entity collision.}}<br />
<br />
{{history|0.10.0|<br />
* Blueprints can copy [[circuit network]] connections.<br />
* Miners in blueprints are now ignored if they are non-functional.<br />
* An [[inserter]]'s logistic conditions are copied when blueprinting.<br />
}}<br />
<br />
{{history|0.9.4|<br />
* Limit the size of the blueprint preview, so it is usable for very large blueprints.}}<br />
<br />
{{history|0.9.2|<br />
* The [[train stop]] and [[lab]] built from blueprints are now given dedicated names.}}<br />
<br />
{{history|0.9.0|<br />
*Introduced}}<br />
<br />
== See also ==<br />
* [[Deconstruction planner]]<br />
* [[Blueprint book]]<br />
* [[Logistic network]]<br />
* [[Roboport]]<br />
* [[Personal roboport]]<br />
* [[Construction robot]]<br />
<br />
{{ProductionNav}}<br />
{{C|Tools}}</div>DarkShadow84