> ## Documentation Index
> Fetch the complete documentation index at: https://items.lodemc.net/llms.txt
> Use this file to discover all available pages before exploring further.

# How content works

> Ids, folders, file paths, text formatting and reloading. The rules every page of these docs builds on.

## The `items/` folder

Everything you add lives in `plugins/LodeItems/items/`. LodeItems reads **every `.yml` and `.yaml` file in it, at any depth**. Folders are only for keeping things tidy, so organise them however you like:

```text theme={null}
items/
├── gems/
│   ├── ruby.yml
│   ├── ruby.png
│   └── sapphire/
│       ├── sapphire.yml
│       └── sapphire.png
├── props/
│   └── kitchen/
│       ├── chairs.yml
│       ├── chair.json
│       └── chair.png
└── emojis.yml
```

Files and folders whose names start with a dot (like `.git`) are skipped.

## Entries and types

Each top-level key in a file is one **entry**. A file can hold as many entries as you want, and they can be of different kinds:

```yaml items/gems/ruby.yml theme={null}
ruby:                     # an item (the default type)
  name: "<red>Ruby"
  texture: ruby.png

ruby_block:
  type: block
  texture: ruby_block.png

ruby_lamp:
  type: prop
  model: ruby_lamp.json
  light: 12
```

`type:` picks what an entry is:

| Type | What it makes | Page |
| - | - | - |
| `item` (default) | An item | [Items](https://items.lodemc.net/items.md) |
| `block` | A placeable block | [Blocks](https://items.lodemc.net/blocks.md) |
| `prop` | A placeable model: chairs, lamps, beds... (once called `furniture`) | [Props](https://items.lodemc.net/furniture.md) |
| `recipe` | A crafting, smelting, smithing, stonecutter or brewing recipe | [Recipes](https://items.lodemc.net/recipes.md) |
| `glyph` | A picture you can put in text, such as an emoji | [Glyphs](https://items.lodemc.net/glyphs.md) |
| `hud` | Text that stays on the action bar | [HUDs](https://items.lodemc.net/huds.md) |
| `sound` | A sound, optionally a music disc song | [Sounds](https://items.lodemc.net/sounds.md) |
| `painting` | A painting variant | [Paintings](https://items.lodemc.net/paintings.md) |
| `translations` | Text in several languages | [Translations](https://items.lodemc.net/translations-and-dialogs.md) |
| `dialog` | A dialog screen | [Dialogs](https://items.lodemc.net/translations-and-dialogs.md#dialogs) |

## Ids

The key is the entry's id. Folders are **never** part of it.

* `ruby:` becomes `lodeitems:ruby`.
* `myserver:ruby:` sets the namespace yourself, which becomes `myserver:ruby`.

Items, blocks and props share one list of ids, because every block and prop also has an item. Two entries with the same id are an error, and the second one is skipped. An id that already belongs to a real item (vanilla or from a mod) is an error as well.

Commands accept the short form when only one namespace has that name, so `/lodeitems give ruby` works.

## Pointing at files

Textures (`.png`), models (`.json`) and sounds (`.ogg`) can sit anywhere inside `items/`, usually right next to the YAML that uses them. There are three ways to point at one:

| You write | It means |
| - | - |
| `texture: ruby.png` | Next to this YAML file. Subfolders work too: `textures/ruby.png`. |
| `texture: /shared/ruby.png` | From the `items/` folder itself. |
| `texture: minecraft:item/diamond` | A texture or model that is already in a resource pack. |

You can leave the extension off, so `texture: ruby` finds `ruby.png`. A path that leaves the `items/` folder, or a file that doesn't exist, is reported as an error.

LodeItems copies every file you use into the resource pack under a unique name, so two `icon.png` files in different folders never clash.

> [!TIP]
>
> Animated textures work the same way as in vanilla: put a `ruby.png.mcmeta` next to `ruby.png`.

### Texture or model

Items and props take either a `texture:` or a `model:`, never both.

* With only a **texture**, LodeItems makes the model for you: a flat item, held like a sword for tools and weapons, or a cube for blocks.
* With a **model** (a Blockbench or hand-written `.json`), the textures it names are found next to the model and copied too. A model that says `"0": "chair"` uses `chair.png` from the model's folder.

### Existing resource packs

Drop a whole resource pack (any folder with an `assets/` folder inside) anywhere in `items/` and it's merged into the pack as it is. That keeps `namespace:path` references from older setups working. See [Resource pack](https://items.lodemc.net/resource-pack.md#merging-other-packs).

## Text formatting

Names, lore, messages and titles use [MiniMessage](https://docs.advntr.dev/minimessage/format.html):

```yaml theme={null}
name: "<gradient:#ff5555:#aa0000>Ruby Sword</gradient>"
lore:
  - "<gray>Forged in <red>fire</red>."
  - "<glyph:fire> <lang:item.myserver.ruby_sword.tip>"
```

LodeItems adds three tags of its own:

| Tag | Does |
| - | - |
| `<glyph:name>` | Inserts one of your [glyphs](https://items.lodemc.net/glyphs.md). |
| `<lang:key>` | Text from your [translations](https://items.lodemc.net/translations-and-dialogs.md), shown in each player's own language. |
| `<shift:N>` | Moves what follows N pixels right (negative numbers move it left). Mostly for [HUDs](https://items.lodemc.net/huds.md). |

## Durations

Anywhere a time is asked for (`cooldown`, `time`, `every`...), you can write:

* `40` or `40t`: ticks (20 ticks is one second)
* `1.5s`, `2m`, `1h`
* Several together: `1m30s`

## Reloading

Run `/lodeitems reload` after you change something. It reads every file again, rebuilds the resource pack, and sends the new pack to everyone online if it changed. Items in players' inventories are [updated to the new config](https://items.lodemc.net/item-mechanics.md#keeping-items-up-to-date).

Almost everything reloads without a restart, including **new blocks**. The exceptions are:

* **Music disc songs and paintings.** Minecraft only accepts new ones at startup. Reload warns you when a restart is needed.
* **The number of block slots** in `config.yml`. See [Blocks](https://items.lodemc.net/blocks.md#how-many-blocks).

## When something is wrong

One mistake never stops the rest from loading. LodeItems skips just the broken entry and tells you where it is:

```text theme={null}
[LodeItems] items/gems/ruby.yml:7:14: [ruby_sword] Unknown item 'diamond_swrod' for 'ruby_sword.material'. Did you mean 'diamond_sword'?
[LodeItems] items/gems/ruby.yml:12:3: Unknown option 'ruby_sword.durabilty' - it is ignored. Did you mean 'durability'?
```

That is the **file, line and column**, which entry, and what to change. Errors skip the entry; warnings (like an option name it doesn't know) load the entry anyway. The console gets the full list. A player running `/lodeitems reload` sees the first ten in chat.

A file that isn't valid YAML at all is reported once and skipped as a whole.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.