> 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/edcosmetics/getting-started/resource-pack.md).

# Resource Pack

The plugin ships one resource pack with everything that needs one: the hat and wing models, the wing / skin effect / emote shaders, the animated `fx-` text colours, and the emote wheel and wardrobe HUD art. You never copy it by hand.

## How it is installed

On every start (and `/edcosmetics reload`) the pack is written where your pack plugin reads it. Only changed files are written, files that no longer belong to it are removed, and your pack plugin is asked to rebuild only when something changed.

| `resource-pack.target` | Folder                                                              | Rebuild                     |
| ---------------------- | ------------------------------------------------------------------- | --------------------------- |
| `itemsadder`           | `plugins/ItemsAdder/contents/edcosmetics/resourcepack/`             | `/iazip` is run for you     |
| `nexo`                 | `plugins/Nexo/pack/external_packs/EdCosmetics/`                     | Nexo regenerates its pack   |
| `oraxen`               | `plugins/Oraxen/pack/uploads/EdCosmetics/`                          | Oraxen regenerates its pack |
| `zip`                  | `plugins/EdCosmetics/pack/` + `EdCosmetics-pack.zip`                | merge it into your own pack |
| `auto` (default)       | the first of ItemsAdder, Nexo, Oraxen that is installed, else `zip` |                             |

```yaml
resource-pack:
  enabled: true
  target: auto
  auto-rebuild: true   # false = you rebuild your pack yourself
```

`/edcosmetics pack` shows the target, the folder and what the last install did. `/edcosmetics pack install` writes it again and asks for a rebuild even if nothing changed.

The pack uses **overlays** (one folder per client generation: 1.21.6-1.21.11, 26.1, 26.2, 26.3+). ItemsAdder, Nexo and Oraxen all merge the overlay list of `pack.mcmeta` into the final pack; if you merge the zip yourself, keep the `overlays` entries of its `pack.mcmeta` too, or the shaders won't load.

## Shader conflicts

A pack can only have one copy of each core shader. If another plugin writes the same shader, one of them wins and the other one's feature stops working. Turn these options off if you use the matching EdCosmetics feature:

| Plugin                                       | Option that writes the same shaders                                                                                                 | EdCosmetics feature it breaks        |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| Oraxen                                       | `TextEffects.enabled` (on by default), animated glyphs, `hide_scoreboard_numbers`                                                   | `fx-` colours, emote wheel, wardrobe |
| Nexo                                         | `Misc.hide_scoreboard_background` / `hide_scoreboard_numbers`, SHADER-type animated glyphs                                          | `fx-` colours, emote wheel, wardrobe |
| ItemsAdder                                   | `text_effects.enabled` (on by default: ItemsAdder then leaves EdCosmetics' text shaders out of the pack), `hide_scoreboard_numbers` | `fx-` colours, emote wheel, wardrobe |
| Other HUD plugins with their own text shader |                                                                                                                                     | `fx-` colours, emote wheel, wardrobe |

With **ItemsAdder**, EdCosmetics puts its overlays after ItemsAdder's every time ItemsAdder builds its pack, so its entity shader (skin effects, wings, emote models) wins over ItemsAdder's own player-model shader. ItemsAdder's own emotes (`entities.custom_entities.emotes`) and custom player animations don't draw while EdCosmetics' shader is active: use EdCosmetics' emotes instead. The console warns at start when ItemsAdder's `text_effects` are on.

**ModelEngine** is fine: EdCosmetics' entity shader already contains ModelEngine's player model code, and its overlays are listed after ModelEngine's so they win. If you see ModelEngine models break or skin effects disappear after adding ModelEngine, make sure EdCosmetics' pack is merged after ModelEngine's (Nexo: `Pack.import.external_pack_order`).

Without EdCosmetics' text shader (for example because another plugin's won), `fx-` colours show as a plain colour and the HUDs don't draw right: fix the conflict, or set `menus.cosmetics` and `menus.emotes` back to `gui`.

## Updating

A new EdCosmetics version updates its pack by itself on the first start. Players get it the next time your pack plugin sends the pack (usually on join).
