> For the complete documentation index, see [llms.txt](https://frinn.gitbook.io/custom-machinery-1.19/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.19/creating-custom-machines/machine-components.md).

# Machine components

Customize the inventory, buffers and world interactions of the machine.

Machine components are what allow the machine to use the different systems the game provide.

These components must be defined in the machine json, under the `component` property.

{% hint style="info" %}
There is no limit to how many components you can add.
{% endhint %}

### Available components

There are currently 4 available components :&#x20;

{% content-ref url="/pages/1KLp0NDve7P4ojYdFNcN" %}
[Energy component](/custom-machinery-1.19/creating-custom-machines/machine-components/energy-component.md)
{% endcontent-ref %}

{% content-ref url="/pages/ytccg9MsHPn1VMJn9hRt" %}
[Fluid component](/custom-machinery-1.19/creating-custom-machines/machine-components/fluid-component.md)
{% endcontent-ref %}

{% content-ref url="/pages/OsrSl87rERlLzxBJK8eA" %}
[Item component](/custom-machinery-1.19/creating-custom-machines/machine-components/item-component.md)
{% endcontent-ref %}

{% content-ref url="/pages/gWXy3s1xaflzWYPYddG8" %}
[Redstone component](/custom-machinery-1.19/creating-custom-machines/machine-components/redstone-component.md)
{% endcontent-ref %}

### Template

```json5
{
    "name": "Machine",
    "appearance": {},
    "components": [
        {
            //First component
        }, 
        {
            //Second component
        }
    ]
}
```

{% hint style="info" %}
Machine Components are optional, if you don't want it just don't put it in the machine json.
{% endhint %}
