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

# Machine GUI

The Machine GUI is the main tool to interact with the machine in-world. It will be used to display the current status of the machine as well as the different components and their contents.

A machine GUI is not mandatory, if you don't want it just don't put it in the machine json.

A Machine GUI is composed of various GUI Elements, there is no limit of how many elements you can put.

The Machine GUI and it's Elements must be defined as such in the machine json :

```json5
"gui": [
    {
        //Element 1
    },
    {
        //Element 2
    }
]
```

### GUI Elements

There are currently 17 available GUI elements :&#x20;

{% content-ref url="/pages/Iqr9B4YgbpwKIUlInMh6" %}
[Bar element](/custom-machinery-1.19/creating-custom-machines/machine-gui/bar-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/JURzyjSkj2h1SWq4msyb" %}
[Button element](/custom-machinery-1.19/creating-custom-machines/machine-gui/button-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/Th1xdiOT00mCDgbRF5l3" %}
[Config element](/custom-machinery-1.19/creating-custom-machines/machine-gui/config-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/sDjbuBVEw9ShqnykcrEt" %}
[Dump element](/custom-machinery-1.19/creating-custom-machines/machine-gui/dump-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/fGmpxeIXbbyaNvO27y40" %}
[Empty element](/custom-machinery-1.19/creating-custom-machines/machine-gui/empty-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/uHeB6I5i3xWcZmjSobRT" %}
[Energy element](/custom-machinery-1.19/creating-custom-machines/machine-gui/energy-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/wuJmIsWQbxVjjmeYY2Xv" %}
[Experience element](/custom-machinery-1.19/creating-custom-machines/machine-gui/experience-element.md)
{% endcontent-ref %}

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

{% content-ref url="/pages/RKGaEXJIgLsGevQpyRQt" %}
[Fuel element](/custom-machinery-1.19/creating-custom-machines/machine-gui/fuel-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/HC0MKoYadefiqj9SRHDg" %}
[Player inventory element](/custom-machinery-1.19/creating-custom-machines/machine-gui/player-inventory-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/dUW7PdOPn7rrMIgxOhBJ" %}
[Progress bar element](/custom-machinery-1.19/creating-custom-machines/machine-gui/progress-bar-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/e0XfVzlBiQzqvErLqE1B" %}
[Reset element](/custom-machinery-1.19/creating-custom-machines/machine-gui/reset-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/rUPHgsYcZT57KxHlNVQG" %}
[Size element](/custom-machinery-1.19/creating-custom-machines/machine-gui/size-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/lYGruA2LpIDm2BpI3Fs2" %}
[Slot element](/custom-machinery-1.19/creating-custom-machines/machine-gui/slot-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/eeNcFg7Htb8iZAgYmlk4" %}
[Status element](/custom-machinery-1.19/creating-custom-machines/machine-gui/status-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/rDQLBVHAjkTbpzDvn6it" %}
[Text element](/custom-machinery-1.19/creating-custom-machines/machine-gui/text-element.md)
{% endcontent-ref %}

{% content-ref url="/pages/YmsFonQswqxyyENquX7m" %}
[Texture element](/custom-machinery-1.19/creating-custom-machines/machine-gui/texture-element.md)
{% endcontent-ref %}

### Notes

The Machine GUI is by default (and for now it can't be changed) 256px wide and 192px high.

This mean that **the x property cannot be higher than 256** and **the y property cannot be higher than 192**.

Minecraft GUI (including the Custom Machine GUI) are rendered in 2 dimensions Axis X/Y.

X axis is the horizontal axis with 0 at the left of the screen and going to the right.

Y axis is the vertical axis with 0 at the top (no that is not an error) of the screen and going to the bottom.

I repeat because this is a very weird concept but the origin point in Minecraft GUI coordinates is at the top left of the screen, not the bottom left but really the top left !!! And the Y axis is inversed so the positives values are going to the bottom of the screen.

To illustrate this concept here is an image :

![coordinates](https://camo.githubusercontent.com/073bf66a2e5f818f5e004315635cea844900205bafeb4cd8088aa5c3b77c6f2b/68747470733a2f2f692e737461636b2e696d6775722e636f6d2f697059575a2e676966)

(The "stage" white square is your screen)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.19/creating-custom-machines/machine-gui.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.
