Compact Machines Recipe Reference/en

introduces its own combination of and in-world crafting mechanics known as Miniaturization Crafting. For more information on how to use this in-game, refer to and for items. This article is not intended as a tutorial for beginning to use , but is meant as a reference for creating new recipes and editing existing recipes using the Miniaturization Crafting technique. Each recipe is stored in its own JSON format file with a .json extension in the /config/compactmachines3/recipes folder under your modpack instance folder.
==Basic data format==
===Object===
The entire recipe structure in each file begins with { and ends with } which makes up a pair of delimiters for an Object container. White space characters and line breaks are ignored outside of string values.
===Key Value===
The primary data elements in the recipes are a series of Key Value pairs with five basic subtypes. All Key names must be strings enclosed in double quotes "Key" and followed by a colon :. The comma , is used as a separator between entries in lists of key values and array elements.
The Key's corresponding Value follows the colon and may be one of the following types:
*string: "value" where value may include special characters by adding a backslash (\) before the character (including a backslash or double quote).
*boolean: one of: true false
*number: decimal value
*object: (see previous section)
*array: [value] where value may be of any other type, but in the most common cases will be either another array (for multi-dimensional arrays) or a list of one or more Strings separated by commas.
==Key Data==
Name 	Type/Subtype	Default Value(blank if required)	Description 	
name 	string 	 	Recipe identifier 	"name": "compactmachines3:zombieegg"
target-item 	string 	 	Result item id. Sometimes specified as "target-block". 	"target-item": "minecraft:spawn_egg"
target-count 	number 	1 	Number of items/blocks produced 	"target-count": 1
target-meta 	number 	0 	Metadata value for the recipe result (sometimes referred to as damage value) used to differentiate between discrete items sharing the same identifier. 	"target-meta": 0
target-nbt 	string 	"" 	NBT tags to apply to the result of the crafting recipe. See these articles on the Minecraft Wiki for more details:
*Tutorials/Command NBT tags
*Chunk format 	"target-nbt": "{EntityTag:{id:\"minecraft:zombie\"}}"
symmetrical 	boolean 	false 	Specifies whether recipes may be mirrored along horizontal directions when being constructed. 	"symmetrical": true
catalyst 	string 	 	The item thrown in to the miniaturization field to begin the crafting process. Additional fields further specifying item details may be used. 	"catalyst": "minecraft:spider_eye"
catalyst-meta	number 	0 	Metadata value for the catalyst item to be thrown into the miniaturization field (sometimes referred to as damage value) often used to differentiate between discrete items sharing the same identifier. 	"catalyst-meta": 0
catalyst-nbt 	string 	"" 	NBT tags required for the catalyst item. If not provided, any tags applied to the item are ignored. Common uses for this would be to require the item to have a certain custom name, enchant, or entity tag.	"catalyst-nbt": "{EntityTag:{id:\"minecraft:zombie\"}}"
duration 	number 	unknown default 	Number of ticks for the miniaturization animation, and the crafting process, to run before it completes. 	"duration": 300
==Special Format Objects==
Special Key	SubKey 	Type 	Description 	Example
input-types	 	Compound Object 	series of Object Keys identifying blocks used in the Multiblock portion of the recipe. 	"input-types": {"a": { "id": "thermaldynamics:duct_0", "meta": 0 },"b": { "id": "minecraft:chest", "meta": 0, "ignore-meta": true }}
input-types	id 	String 	Block Id 	"a": { "id": "thermaldynamics:duct_0" }
input-types	meta 	Numberdefault: 0 	Metadata/damage value identifying block subtype. 	"meta": 0
input-types	ignore-meta	Booleandefault: false 	Sets whether to ignore Metadata/damage value on this block. 	"ignore-meta": true
input-types	ignore-nbt 	Booleandefault: false 	Sets whether to ignore NBT tags on this block. 	"ignore-nbt": true
input-nbt 	input-nbt 	Compound Object 	List of NBT Tags (used as a subtype) required for blocks in the recipe.Usually indicated with a letter, colon, letter sequence for the key name if being used for the recipe.The key names are used in the shape value to represent the combination of input-types and input-nbt.	"input-nbt": {"a:A": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[2,0,0,2,0,2]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:B": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[0,0,2,2,0,0]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:C": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[2,0,2,0,0,2]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:D": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[2,2,0,0,0,0]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:E": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[0,2,0,2,0,2]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:F": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[0,2,2,0,0,2]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:G": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[0,0,0,0,2,2]},id:\"thermaldynamics:duct_energy_basic\"}" },"b:A": { "nbt": "{Items:[],id:\"minecraft:chest\",Lock:\"\"}" },"a:H": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[2,0,0,2,2,0]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:I": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[2,0,2,0,2,0]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:J": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[0,2,0,2,2,0]},id:\"thermaldynamics:duct_energy_basic\"}" },"a:K": { "nbt": "{\"cm3_extra:ThermalDynamicsGrid\":{Connections:[0,2,2,0,2,0]},id:\"thermaldynamics:duct_energy_basic\"}" }}
shape 	shape 	Array String Dimension 3	Array Structure:
#First left bracket [ indicates the beginning of the shape array value representing the Multiblock, last right bracket ] indicates end of value.
#Second level of nested array elements indicates vertical layers, beginning from the top and progressing downward.
#Third level of nested array elements indicates rows of each vertical layer of the Multiblock.
#Each column of each individual row of each layer of the Multiblock is represented as a String in the deepest level of the array.
 
Array Element Values:String taking one of three formats:
#"l", Basic block type Key Name for slot in Multiblock
#"l:U", NBT-included block type Key Name for slot in Multiblock
#"_", Blank space for slot in Multiblock	"shape": [[ [ "a:A", "a:G", "a:H" ], [ "a:B", "_", "a:B" ], [ "a:C", "a:G", "a:I" ] ],[ [ "a:D", "_", "a:D" ], [ "_", "b:A", "_" ], [ "a:D", "_", "a:D" ] ],[ [ "a:E", "a:G", "a:J" ], [ "a:B", "_", "a:B" ], [ "a:F", "a:G", "a:K" ] ]]
Category:Compact Machines