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

# File Layout

> Where everything lives under plugins/NMEntities, and how folders are read.

Everything NMEntities reads and writes lives under `plugins/NMEntities/`.

```text theme={null}
plugins/NMEntities/
├── config.yml       # plugin settings - see the Config Reference
├── factions.yml     # faction relations
├── models/          # your .bbmodel files
├── Mobs/            # mob definitions, and the spawners that go with them
├── Effects/         # named effects and natural spawn rules
├── NPCs/            # NPC definitions
├── Dialogs/         # branching conversations
├── gui/             # menu overlay images
└── build/           # the generated resource pack
```

The folders are created on first boot, and `/nme reload` re-reads all of them.

## Subfolders work everywhere

`Mobs/`, `Effects/` and `NPCs/` are read **all the way to the bottom**, so organise them however suits you:

```text theme={null}
Mobs/
├── mobs.yml
├── bosses/
│   ├── lich.yml
│   └── tier2/dragon.yml
└── wildlife/deer.yml
```

Folder and file names mean nothing to the plugin — only the ids inside do. MythicMobs conversion, the `.mm-bak` backups and the `+trigger` rewrite all follow into subfolders, and console messages name a file by its path (`bosses/tier2/dragon.yml`) rather than just its name.

<Warning>
  **Ids stay global.** Two mobs in different folders still cannot share an id, and you get a duplicate warning if they do. The same goes for effects and NPCs.
</Warning>

`Dialogs/` uses its subfolders differently — a folder there groups one conversation's nodes. See [Dialog Files](dialog-files).

## What goes where

| Folder     | Holds                                                                                                 | Reference                                                        |
| :--------- | :---------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- |
| `models/`  | `.bbmodel` files exported from Blockbench. The name without the extension is the model name.          | [Models](models)                                                 |
| `Mobs/`    | One top-level key per mob. Also the reserved `spawners:` key.                                         | [Mob Fields](mob-fields), [Spawners](spawners)                   |
| `Effects/` | Named effects, and `type: spawn` natural spawn rules.                                                 | [Named Effects](named-effects), [Natural Spawns](natural-spawns) |
| `NPCs/`    | NPC drafts and their placed copies.                                                                   | [NPC Files](npc-files)                                           |
| `Dialogs/` | Conversation nodes.                                                                                   | [Dialog Files](dialog-files)                                     |
| `gui/`     | `category.png` and friends, baked into the pack as menu overlays. `gui/items/` holds button textures. | [Menu Overlay](menu-overlay)                                     |
| `build/`   | Generated. Do not edit — it is rewritten on every reload.                                             | [Importing a Model](importing-a-model)                           |

## Files the plugin writes itself

These are state, not settings. They are safe to delete — you lose the remembered decision, nothing else.

| File                  | Remembers                                                  |
| :-------------------- | :--------------------------------------------------------- |
| `spawner-state.yml`   | Which [spawners](spawners) an admin switched off.          |
| `spawnrule-state.yml` | Which [spawn rules](natural-spawns) an admin switched off. |
| `*.mm-bak`            | The original of any MythicMobs file that was converted.    |

## When something does not load

A file that fails to parse does not take the rest down with it. Problems are collected as the folder is read, summarised in the console, and browsable afterwards with [`/nme debug`](debug) — each one naming the file, the entry, what is wrong and a hint.
