# 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]]