# CustomItem
> Abstract base class for defining custom items with a unique ID and display name.
`gg.lode.bookshelfapi.api.item.CustomItem`
---
## Signature
```java
public abstract class CustomItem
```
---
## Constructor
| Constructor | Description |
|-------------|-------------|
| `CustomItem(String id, String name)` | Creates a custom item with the given ID and display name. |
### Parameters
| Parameter | Type | Description |
|-----------|------|-------------|
| `id` | `String` | Unique identifier for the custom item. |
| `name` | `String` | Display name of the custom item. |
---
## Methods
| Method | Return Type | Description |
|--------|-------------|-------------|
| `getId()` | `String` | Returns the unique identifier. |
| `getName()` | `String` | Returns the display name. |
| `abstract build()` | `ItemStack` | Builds and returns the ItemStack representation. |
---
## Usage
```java
public class DiamondSword extends CustomItem {
public DiamondSword() {
super("diamond_sword", "Custom Diamond Sword");
}
@Override
public ItemStack build() {
ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
// customize item meta
return item;
}
}
```
---
## Related Pages
- [[ICustomItemManager]]