> For the complete documentation index, see [llms.txt](https://nirsland.gitbook.io/morecreativetabs-reborn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nirsland.gitbook.io/morecreativetabs-reborn/create-a-custom-tab.md).

# Create a Custom Tab

Creating or configuring a custom tab, is done through JSON through a Resource pack.

{% hint style="warning" %}
You can now reload edited tabs by running the `/mct reloadTabs` command.

To reload Language files, you need to use the standard `F3 + T` key combo
{% endhint %}

{% hint style="info" %}
You can define multiple tabs inside a single pack. You do not need to create a pack for each one
{% endhint %}

***

#### Getting Started

The first thing you want to do is, create a new, empty resource pack. To save you some time, you can also download the SKELETON packs below with all the base files already created.

`Other Downloads`

<a href="https://cdn.firstdarkdev.xyz/curse/mct/dl/skeleton_pack_v2.zip" class="button primary">New Format(1.18)</a><a href="https://cdn.firstdarkdev.xyz/curse/mct/dl/skeleton_pack_19_v3.zip" class="button primary">New Format(1.19-1.19.2)</a><a href="https://cdn.firstdarkdev.xyz/curse/mct/dl/skeleton_pack_193_v2.zip" class="button primary">New Format(1.19.3+)</a>

Inside your resource pack, you will need the following folder layout:

```none
|-- Pack Folder
    |-- assets
        |-- minecraft
            |-- lang
                |-- en_us.json
            |-- morecreativetabs
                |-- my_tab.json
    |-- pack.mcmeta
```

When using the SKELETON PACK, these files/folders will already be created for you

***

#### Creating your first tab

To create a new creative tab, create a file inside the `morecreativetabs` folder. You can call this `whateveryouwant.json`. This file will tell the mod how to configure the creative tab.

You will also need a lang file inside the `lang` folder. For this example, we will use `en_us.json` which is the English version of the tab names.

Below is a sample config file, with an explanation at the bottom:

```json
{
  "tab_enabled": true,
  "tab_name": "test_tab",
  "tab_stack": { "name": "minecraft:light", "nbt": "{BlockStateTag: {level:\"4\"}}"},
  "search_bar": true,
  "tab_items": [
    {
      "name": "minecraft:light",
      "nbt": "{BlockStateTag: {level:\"10\"}}"
    },
    {
      "name": "minecraft:torch"
    },
    {
      "name": "minecraft:soul_torch",
      "nbt": "{customName: \"Oi Govener!\"}"
    },
    {
      "name": "minecraft:candle"
    }
  ]
}
```

Explanation:

| Item/Variable             | Purpose                                                                                                                                                                                     |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "tab\_enabled"            | Should this custom tab be loaded by the mod                                                                                                                                                 |
| "tab\_name"               | The translation key used in the `lang` file. For example: `lighting_tab`. This will be prefixed with `morecreativetabs.` So `lighting_tab` will become `morecreativetabs.lighting_tab`      |
| "tab\_stack"              | The registry name and optional NBT of the item to use as the tab icon. See example above                                                                                                    |
| "tab\_items"              | This contains a reference to all the items contained in the tab                                                                                                                             |
| "name"                    | The registry name of the item to use as the tab icon. This must always be in format `modid:itemname`. You can find this by dropping an item on the ground and looking at it, with F3 active |
| "nbt" -> Optional         | Pretty self explanatory, but this allows you to set NBT values on an item inside the tab                                                                                                    |
| "search\_bar" -> Optional | When set to true shows search bar on the tab.                                                                                                                                               |

{% hint style="warning" %}
"tab\_enabled", "tab\_name", "tab\_stack" and "tab\_items" must always be present, or the file will not load
{% endhint %}

***

#### Changing the name of an item

You can override the name of an item in a custom tag. To do this, add the following to your NBT tag:

```none
customName: \"Your Custom Name Here\"
```
