---
description: Use the structure requirement in a Crafttweaker recipe
---

# Structure

**Use one of these methods to add a** [**Structure Requirement**](../../../recipes/requirements/structure) **to the recipe.**

```java
//Only requires the structure
.requireStructure(String[][] pattern, Map<char, String> keys)

//Destroys the structure (DON'T drop the blocks)
.destroyStructure(String[][] pattern, Map<char, String> keys)

//Break the structure (drops the blocks)
.breakStructure(String[][] pattern, Map<char, String> keys)

//Place the structure (drops the replaced blocks)
.placeStructure(String[][] pattern, Map<char, String> keys, true)

//Place the structure (DON'T drop the replaced blocks)
.placeStructure(String[][] pattern, Map<char, String> keys, false)
```

* The `pattern` param must be an array of array of strings. \
  See `pattern` property of structure requirement.\
  Example: `[["aaa", "aaa", "aaa"], ["aaa", "ama", "aaa"], ["aaa", "aaa", "aaa"]]` Define a 3x3x3 box around the machine `m`
* The `keys` param must be a map of string -> string. \
  See `keys` property of structure requirement.\
  The keys of the map must be single characters (except `m` which is reserved for the machine) and the values must be a block ID with the format: `namespace:block_id[state1=value,state2=value]` (states are optional).\
  Example: `{"a": "minecraft:stone", "b": "minecraft:diamond_block"}`

#### Example

```javascript
.requireStructure([[
    "aaa",
    "a a",
    "aaa",
    " m "
]], {"a": "minecraft:stone"})
```

A 3x1x3 hollow ring of stone behind the machine.
