# Custom item textures

{% hint style="info" %}
There are known issues in the latest release. This function may not work properly! We're working on a solution.
{% endhint %}

## Introduction

GensPlus supports Oraxen, ItemsAdder and custom model data id for custom textures. Below we'll be going over how to setup InfiniteForge in each of these three scenarios

### ItemsAdder

In order to use ItemsAdder models, when entering blockType or spawnItem, you need to prefix it with itemsadder: and further specify the model name, like ruby\_ore, for example.

### Oraxen

In order to use Oraxen models, when entering blockType or spawnItem, you need to prefix it with oraxen: and further specify the model name, like amethyst\_ore, for example. You can find item names by entering the Oraxen folder, than going into items folder and opening any of the yml files from there. For example, this may be the blocks.yml:

{% code fullWidth="false" %}

```yaml
# Material list for latest spigot version: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
# EntityType list for latest spigot version: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html
# Attribute list for latest spigot version: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/attribute/Attribute.html
# Potion effects list for latest spigot version: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
# Random UUID generator: https://www.uuidgenerator.net/
# Color codes: https://docs.adventure.kyori.net/minimessage.html#format
caveblock:
  displayname: "<#D5D6D8>Cave Block"
  material: PAPER
  Pack:
    generate_model: false # because this is a block, a 2nd model pointing to specified one will be generated anyway
    model: default/caveblock
  Mechanics:
    noteblock:
      block_sounds:
        break_sound: block.glass.break
        place_sound: block.glass.place
      custom_variation: 0
      model: default/caveblock
      hardness: 1
      drop:
        silktouch: false # enable if you want to cancel loots and drop the block when a silktouch pickaxe is used
        loots:
          - { oraxen_item: caveblock, probability: 1.0 } # item_section: probability of loot

amethyst_ore:
  displayname: '<gradient:#4B36B1:#6699FF>Amethyst Ore'
  material: PAPER
  Pack:
    generate_model: true
    parent_model: block/cube_all
    textures:
      - default/amethyst_ore
  Mechanics:
    noteblock:
      block_sounds:
        break_sound: block.stone.break
        place_sound: block.stone.place
      custom_variation: 1
      model: amethyst_ore
      hardness: 6
      drop:
        silktouch: true
        fortune: true
        minimal_type: IRON
        best_tools:
          - PICKAXE
        loots:
          - oraxen_item: amethyst
            probability: 1.0
```

{% endcode %}

From here, we can conclude that item name for Amethyst Ore would be amethyst\_ore, so when specifying spawnItem or blockType, you would write `spawnItem: "oraxen:amethyst_ore"`, for example.

### Custom Model Data Id

In order to specify custom model data id, you would need to specfiy spawnItem and blockType as following: `spawnItem: "customId:<id>;<item_name>"`, for example:

`spawnItem: "customId:5839;cookie"`
