> 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/mod-integrations/kubejs/custom-block-item.md).

# Custom Block/Item

Create a custom block and item for your machine

By default all machines share the same block (id: `custommachinery:custom_machine_block`) and the same item (id: `custommachinery:custom_machine_item`) and are differentiated by their NBT tag (like enchanted books for example).

This can cause issue when some mod can't differentiate blocks/items by NBT (questing mods, guidebook, ponders...).

However you can use [KubeJS](https://www.curseforge.com/minecraft/mc-mods/kubejs) to create a custom block and custom item for the machine.

{% hint style="warning" %}
The following script MUST be put on the `startup_scripts` folder and be the same on both the server and the client.
{% endhint %}

```java
//Subscribe to the block registry event.
//No need to use the item registry event, the item will be created automatically.
StartupEvents.registry('block', event => {
	//Syntax : event.create("namespace:block_id", "custommachinery").machine("namespace:machine_id)
	event.create("kubejs:stone_generator", "custommachinery").machine("custommachinery:stone_generator")
	
	//If the block id is the same than the machine id you don't have to use .machine()
	event.create("custommachinery:power_crusher", "custommachinery")
	
	//You can specify the render type of the block by using .renderType("type")
	//Type must be one of solid, cutout or translucent
	//Default is translucent
	event.create("custommachinery:power_crusher", "custommachinery").renderType("solid")
	
	//Add .occlude() to make the machine block full opaque (block light)
	//This may cause rendering issues
	event.create("custommachinery:power_crusher", "custommachinery").occlude()
})
```
