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

# Debug Report

> The config report: every load problem with the part that's wrong and how to fix it.

Shows everything that went wrong (or almost wrong) on the last load: broken mob entries, unparseable effect lines, duplicate ids. Console warnings scroll away; the debug report is kept and you can ask for it any time.

## Usage

```text theme={null}
/nme debug              # every section, previewing the first few problems of each
/nme debug Mobs         # everything wrong in the Mobs/ folder
/nme debug Effects      # everything wrong in the Effects/ folder
```

**Permission:** `nmentities.debug`

## The report

```text theme={null}
------ NMEntities config report ------

Mobs: Loaded 7 mob(s) from Mobs/.
  3 error(s), 0 warning(s)
  boss.yml -> mob 'flame_lord' -> effects[0]
    unknown mechanic 'narrat' - line skipped
    line: narrat "you dare?" #onSpawn @self
    hint: did you mean 'narrate'?
  ...

Effects: Loaded 12 effect(s) from Effects/.
  no problems.
```

Each problem names the file, the mob, the position in its effect list, the part that's wrong, the line quoted back, and a fix. Typos are matched against the real names, so `narrat` suggests `narrate`, `@taget` suggests `@target`, and `#onHurted` suggests `~onHurt`.

## Errors vs warnings

* **Errors** mean something was dropped: a mob skipped, an effect line thrown away.
* **Warnings** mean it loaded anyway, like a duplicate id overriding an earlier one.

`/nme reload` finishes by telling you the totals and pointing you at `/nme debug` when either is non-zero, so a broken file can't quietly go unnoticed.

## The kinds of problems it catches

| What you wrote                | What you're told                                                   |
| ----------------------------- | ------------------------------------------------------------------ |
| `narrat "hi" @self`           | unknown mechanic `'narrat'` - did you mean `'narrate'`?            |
| `narrate "hi" #onHurted`      | unknown trigger `'#onHurted'` - did you mean `'~onHurt'`?          |
| `narrate "hi" @taget`         | unknown targeter `'@taget'` - did you mean `'@target'`?            |
| `narrate "hi" @playersRadius` | targeter needs a numeric radius - write it as `@playersRadius[20]` |
| `damage @self`                | mechanic rejected its arguments - usage: `damage{amount=<number>}` |
| `damage{amount=5 @self`       | mechanic has an unclosed `'{'`                                     |

Mob entries get the same treatment: a missing `base`, an unknown or unspawnable `base`, a mob id with a space, a misspelled field (`helth:`), a duplicate id, or a mob disabled because its model is gone.

> An unclosed `{` in a multi-line block is reported on the line that has it, and everything below still loads. One typo can't swallow the rest of the file.
