# Dimension

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

The dimension requirement is an input only requirement, meaning that you don't have to define the "mode" property. It is used only to restrict or allow the usage of a recipe in certain dimensions of the world.

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

### Properties

The dimension requirement have 2 mandatory properties and 1 optional property.

#### Mandatory properties

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

<details>

<summary>Filter</summary>

#### Name : `filter`

#### Description :

A single or array of dimensions ID to check if the machine is in or not.\
The dimensions ID must mus be like "minecraft:overworld" or any custom dimensions.\
This list may be a whitelist or a blacklist depending of the "blacklist" property.

#### Default : `empty`

Any biomes will be allowed if the filter is a whitelist.

#### Example :

```json
"filter": ["minecraft:overworld"]
```

The recipe will only run if the machine is in the overworld.

</details>

#### Optional properties

<details>

<summary>Blacklist</summary>

#### Name : `blacklist`

#### Description :

A Boolean value used to define if the "filter" property should be a blacklist instead of a whitelist.

#### Default : `false`

The "filter" property will act as a whitelist.

#### Example :

```json
"blacklist": true
```

The "filter" property will act as a blacklist.

</details>

### Example

A dimension requirement that will make the recipe works in all dimensions but the overworld :

```json
{
    "type": "custommachinery:dimension",
    "filter": "minecraft:overworld",
    "blacklist": true
}
```
