# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://frinn.gitbook.io/custom-machinery-1.21/creating-custom-machines/machine-components.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
