> For the complete documentation index, see [llms.txt](https://edseries-plugins.gitbook.io/p/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edseries-plugins.gitbook.io/p/edpets/developers/models.md).

# Model Pets (EdLib Models)

Pets can render as full **Blockbench models** instead of floating heads — powered by EdLib's model engine (shaded into EdPets; no extra plugin needed).

## Creating a model

1. Author the model in **Blockbench** and export it as Minecraft `/summon` + `data merge` commands (display-entity based).
2. Create `plugins/EdPets/models/<model-id>/model.yml`:

```yaml
cmds:
  - 'summon block_display ... {Passengers:[...]}'   # the exported command(s)
# y-bounding-box: 2.0    # optional height override (name/hitbox anchor)
```

3. Animations go in `models/<model-id>/animations/<animation-name>/keyframe_0.mcfunction`, `keyframe_1.mcfunction`, ... (the exported keyframe files).
4. Point a pet at it:

```yaml
# pets/<id>.yml
display:
  model: <model-id>
  scale: 1.0
```

## Behavior

* Model pets are **packet-only and owner-only** like every other pet.
* Movement uses **smooth interpolation** (`display.smooth-model-movement` in config.yml).
* [Animation profiles](/p/edpets/core/animations.md) play the profile's `model-animation` (an animation folder name, e.g. `attack`) instead of an arm swing.
* The pet's floating name uses the model's own anchor at its bounding-box height.

Restart or `/pets reload` after adding models.
