|
|
Line 2: |
Line 2: |
| This is a technical description of the blueprint string format, used to share blueprints with other users. | | This is a technical description of the blueprint string format, used to share blueprints with other users. |
|
| |
|
| 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. | | A blueprint string is a JSON representation of the blueprint, compressed with zlib deflate and then encoded using base64 with a version byte in front. The version byte is currently 0 for vanilla 0.15 and 0.16. |
| | So to get the JSON representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib inflate. |
|
| |
|
| == Json representation of a blueprint/blueprint book == | | == Json representation of a blueprint/blueprint book == |
Revision as of 18:25, 13 July 2018
This is a technical description of the blueprint string format, used to share blueprints with other users.
A blueprint string is a JSON representation of the blueprint, compressed with zlib deflate and then encoded using base64 with a version byte in front. The version byte is currently 0 for vanilla 0.15 and 0.16.
So to get the JSON representation of a blueprint from a blueprint string, skip the first byte, base64 decode the string, and finally decompress using zlib inflate.
Json representation of a blueprint/blueprint book
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.
Blueprint book object
Key |
Description |
Data type
|
item
|
String, the name of the item that was saved ("blueprint-book" in vanilla).
|
String
|
label
|
String, the name of the blueprint set by the user.
|
String
|
blueprints
|
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.
|
Array
|
active_index
|
Index of the currently selected blueprint, 0-based.
|
Integer
|
version
|
The map version of the map the blueprint was created in.
|
Integer (long)
|
Blueprint object
Key |
Description |
Data type
|
item
|
String, the name of the item that was saved ("blueprint" in vanilla).
|
String
|
label
|
String, the name of the blueprint set by the user.
|
String
|
entities
|
The actual content of the blueprint, array of #Entity objects.
|
Array
|
tiles
|
The tiles included in the blueprint, array of #Tile objects.
|
Array
|
icons
|
The icons of the blueprint set by the user, array of #Icon objects.
|
Array
|
version
|
The map version of the map the blueprint was created in.
|
Integer (long)
|
Icon object
Key |
Description |
Data type
|
index
|
Index of the icon, 1-based.
|
Integer
|
signal
|
The icon that is displayed, #SignalID object.
|
Object
|
SignalID object
Key |
Description |
Data type
|
name
|
Name of the signal prototype this signal is set to.
|
String
|
type
|
Type of the signal. Either "item", "fluid" or "virtual".
|
String
|
Entity object
Key |
Description |
Data type
|
entity_number
|
Index of the entity, 1-based.
|
Integer
|
name
|
Prototype name of the entity (e.g. "offshore-pump").
|
String
|
position
|
#Position object, position of the entity within the blueprint.
|
Object
|
direction
|
Direction of the entity, uint (optional).
|
Integer
|
connections
|
Circuit connection, object with keys starting from 1, values are #Connection objects (optional).
|
Object
|
control_behaviour
|
|
Object
|
items
|
Item requests by this entity, this is what defines the item-request-proxy when the blueprint is placed, optional. #Item request object
|
Object
|
recipe
|
Name of the recipe prototype this assembling machine is set to, optional, string.
|
String
|
bar
|
Used by Prototype/Container, optional. The index of the first inaccessible item slot due to limiting with the red "bar". 0-based Types/ItemStackIndex.
|
Integer
|
infinity_settings
|
Used by Prototype/InfinityContainer, optional. #Infinity settings object
|
Object
|
type
|
Type of the underground belt or loader, optional. Either "input" or "output".
|
String
|
input_priority
|
Input priority of the splitter, optional. Either "right" or "left", "none" is omitted.
|
String
|
output_priority
|
Output priority of the splitter, optional. Either "right" or "left", "none" is omitted.
|
String
|
filter
|
Filter of the splitter, optional. Name of the item prototype the filter is set to, string.
|
String
|
filters
|
Filters of the filter inserter or loader, optional. Array of #Item filter objects.
|
Array
|
override_stack_size
|
The stack size the inserter is set to, optional. Types/uint8.
|
Integer
|
drop_position
|
The drop position the inserter is set to, optional. #Position object.
|
Object
|
pickup_position
|
The pickup position the inserter is set to, optional. #Position object.
|
Object
|
request_filters
|
Used by Prototype/LogisticContainer, optional. #Logistic filter object.
|
Array
|
request_from_buffers
|
Boolean. Whether this requester chest can request from buffer chests.
|
Boolean
|
parameters
|
Used by Programmable speaker, optional. #Speaker parameter object.
|
Object
|
alert_parameters
|
Used by Programmable speaker, optional. #Speaker alert parameter object
|
Object
|
auto_launch
|
Used by the rocket silo, optional. Boolean, whether auto launch is enabled.
|
Boolean
|
variation
|
Used by Prototype/SimpleEntityWithForce or Prototype/SimpleEntityWithOwner, optional. Types/GraphicsVariation
|
|
color
|
Color of the Prototype/SimpleEntityWithForce, Prototype/SimpleEntityWithOwner, or train station, optional. #Color object.
|
Object
|
station
|
The name of the train station, optional.
|
String
|
Tile object
Key |
Description |
Data type
|
name
|
Prototype name of the tile (e.g. "concrete")
|
String
|
position
|
#Position object, position of the entity within the blueprint.
|
Object
|
Position object
Key |
Description |
Data type
|
x
|
X position within the blueprint, 0 is the center.
|
Floating point
|
y
|
Y position within the blueprint, 0 is the center.
|
Floating point
|
Connection object
Object containing information about the connections to other entities formed by red or green wires.
Key |
Description |
Data type
|
1
|
First connection point. The default for everything that doesn't have multiple connection points.#Connection point object
|
Object
|
2
|
Second connection point. For example, the "output" part of an arithmetic combinator.#Connection point object
|
Object
|
Connection point object
The actual point where a wire is connected to. Contains information about where it is connected to.
Key |
Description |
Data type
|
red
|
An array of #Connection data object containing all the connections from this point created by red wire.
|
Array
|
green
|
An array of #Connection data object containing all the connections from this point created by green wire.
|
Array
|
Connection data object
Information about a single connection between two connection points.
Key |
Description |
Data type
|
entity_id
|
ID of the entity this connection is connected with.
|
Integer
|
circuit_id
|
ID of the circuit this connection is connected with.
|
Integer
|
Item request object
1 or more instances of key/value pairs.
Key is the name of the item, string.
Value is the amount of items to be requested, Types/ItemCountType.
Item filter object
Key |
Description |
Data type
|
name
|
Name of the item prototype this filter is set to.
|
String
|
index
|
Index of the filter, 1-based.
|
Integer
|
Infinity settings object
Key |
Description
|
remove_unfiltered_items
|
Boolean. Whether the "remove unfiltered items" checkbox is checked.
|
Boolean
|
filters
|
Filters of the infinity container, optional. Array of #Infinity filter objects.
|
Array
|
Infinity filter object
Key |
Description
|
name
|
Name of the item prototype the filter is set to, string.
|
String
|
count
|
Number the filter is set to, Types/ItemCountType.
|
Integer
|
mode
|
Mode of the filter. Either "at-least", "at-most", or "exactly".
|
String
|
index
|
Index of the filter, 1-based.
|
Integer
|
Logistic filter object
Key |
Description |
Data type
|
name
|
Name of the item prototype this filter is set to.
|
String
|
index
|
Index of the filter, 1-based.
|
Integer
|
count
|
Number the filter is set to, Types/ItemCountType. Is 0 for storage chests.
|
Integer
|
Speaker parameter object
Key |
Description |
Data type
|
playback_volume
|
Types/double. Volume of the speaker.
|
Floating point
|
playback_globally
|
Boolean, whether global playback is enabled.
|
Boolean
|
allow_polyphony
|
Boolean, whether polyphony is allowed.
|
Boolean
|
Speaker alert parameter object
Key |
Description |
Data type
|
show_alert
|
Boolean, whether an alert is shown.
|
Boolean
|
show_on_map
|
Boolean, whether an alert icon is shown on the map.
|
Boolean
|
icon_signal_id
|
The icon that is displayed with the alert, #SignalID object.
|
Object
|
alert_message
|
String, message of the alert.
|
String
|
Color object
Key |
Description
|
r
|
red
|
g
|
green
|
b
|
blue
|
a
|
transparency
|