> 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-appearance/item-appearance.md).

# Item appearance

By default the machine item will have the same appearance that the machine block, you can change it by using the Item Property.

There is 2 way of using the `item` property :

### Using an item

The `item` property can take an item using the format : `namespace:item_id` and will mimic its model and textures.

Example :

```json5
"appearance": {
    "item": "minecraft:diamond"
}
```

That way the machine item will show as a vanilla diamond.

Note: for items with animated textures (bow/compass/watch...) that may not work or cause issues. For items with more complex rendering (trident, chest, armor stand...) that will just not works.

### Using a custom model

If you don't want to mimic an existing item you can use the `item` property to point a custom model that the machine will use.

The model must be a Minecraft type json model, if you are not familiar with this type of model see the official MC Wiki.

The model MUST be loaded in-game using either a ResourcePack or a Resource Loader mod like Open Loader.

The model MUST be located in assets/namespace/models/machine any other model location such as assets/namespace/models/item will not work.

Example : A model located in assets/namespace/models/machine/my\_machine.json must be defined as namespace:machine/my\_machine, the model loader will search for files in the models folder and it's subfolders and will also add the .json so you don't have to.

Example :

```json5
"appearance": {
    "item": "custommachinery:machines/my_model"
}
```

That way the machine will use the file located in assets/custommachinery/models/machines/my\_model.json as the machine item model.

{% hint style="warning" %}
**Adding a new custom model inside that directory will require a game restart.**
{% endhint %}
