> 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.md).

# Machine components

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.21/creating-custom-machines/machine-components/energy-component.md)
{% endcontent-ref %}

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

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

{% content-ref url="/pages/gWXy3s1xaflzWYPYddG8" %}
[Redstone component](/custom-machinery-1.21/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 %}
