# Position

Position requirement is used to make the custom machine recipe work only in some positions of the world.

The position requirement is an **input only** requirement, meaning that you don't have to define the `mode` property.&#x20;

It is used only to restrict or allow the usage of a recipe at certain positions of the world.

The requirement type of position requirement is : "`custommachinery:position"`.

### Properties

The position requirement has 1 mandatory property and 3 optional properties.

#### Mandatory property

```json
"type": "custommachinery:position" //Mandatory to define a position requirement.
```

#### Optional property

<details>

<summary>X</summary>

#### Name : `x`

#### Description :&#x20;

A [range](https://frinn.gitbook.io/custom-machinery-1.21/misc/range) that define the valid positions on the X axis that the machine can process this recipe.

#### Default : `"*"`

Any X positions are allowed.

#### Example :&#x20;

```json
"x": "[,0)"
```

The recipe will run only if the machine is in negative coordinates in the X axis.

</details>

<details>

<summary>Y</summary>

#### Name : `y`

#### Description :&#x20;

A [range](https://frinn.gitbook.io/custom-machinery-1.21/misc/range) that define the valid positions on the Y axis that the machine can process this recipe.

#### Default : `"*"`

Any Y positions are allowed.

#### Example :&#x20;

```json
"y": "[,0)"
```

The recipe will run only if the machine is in negative coordinates in the Y axis.

</details>

<details>

<summary>Z</summary>

#### Name : `z`

#### Description :&#x20;

A [range](https://frinn.gitbook.io/custom-machinery-1.21/misc/range) that define the valid positions on the Z axis that the machine can process this recipe.

#### Default : `"*"`

Any Z positions are allowed.

#### Example :&#x20;

```json
"z": "[,0)"
```

The recipe will run only if the machine is in negative coordinates in the Z axis.

</details>

### Example

A position requirement that will allow the recipe to run only if the machine is higher than the 128 y layer :

```json
{
    "type": "custommachinery:position",
    "y": "(128,)"
}
```
