> For the complete documentation index, see [llms.txt](https://frinn.gitbook.io/custom-machinery-1.21/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://frinn.gitbook.io/custom-machinery-1.21/creating-custom-machines/machine-components/contraption-component-create.md).

# Contraption component (Create)

{% hint style="warning" %}
This component requires [Custom Machinery Create](https://www.curseforge.com/minecraft/mc-mods/custom-machinery-create) to be installed.
{% endhint %}

The contraption machine component is used to customize which sides of the machine are able to connect with Create kinetic network (shafts, gears, motors etc...).

This component is fully optional, if not present the machine will still be able to interact with Create kinetic network on all sides.

This component can also be used to make the machine bring a kinetic stress impact on the network by default when the machine is idle, errored or paused. If the machine is running the kinetic stress impact defined on the recipe takes priority over the value defined in this component.

{% hint style="info" %}
Only one contraption component must be added per machine.
{% endhint %}

Contraption component is defined with `"type": "custommachinery:contraption"` in the json.

### Properties

The contraption component has 1 mandatory property and 2 optional properties :&#x20;

#### Mandatory property&#x20;

```json
"type": "custommachinery:contraption" //Mandatory to define a contraption component.
```

#### Optional properties&#x20;

<details>

<summary>Stress impact</summary>

#### Name : `stress_impact`

#### Description :&#x20;

A positive decimal value that define the kinetic stress impact the machine will bring to the network when idle, errored or paused.

If the machine is running the kinetic stress impact defined on the recipe takes priority over the value defined in this component.

Note : if the machine currently has a rotation speed of 64 rpm and a stress impact of 2 that means it will take a total of 64 \* 2 = 128 SU from the kinetic network, of course if the network doesn't have enouh SU capacity it will overstress and stop rotating.

#### Default : 0

#### Example :&#x20;

The machine will add a kinetic stress impact of 2 by default :&#x20;

```json
"stress_impact": 2
```

</details>

{% content-ref url="/pages/uenqSEKGUmmcrLEc92ff" %}
[Toggle Config](/custom-machinery-1.21/misc/toggle-config.md)
{% endcontent-ref %}

### Example

An example of a contraption component that will allow the machine to interact with a create shaft only on the left and right sides and bring a kinetic stress impact of 4.

```json5
{
    "type": "custommachinery:contraption",
    "config": {
        "default": "disabled",
        "left": "enabled",
        "right": "enabled"
    },
    "stress_impact": 4
}
```

You just have to put that in the `components` array in the machine json.
