Diagnosing broken content¶
A resource pack fails silently. An item with a missing texture looks perfect in every log and wrong on every screen. Ember Forge validates the pack before publishing and tells you exactly what it could not render.
/emberforge doctor¶
112 item(s) will not render and were left out of the pack.
Worst packs:
gardenplus — 45
builderslab — 27
cosmetic_expansion_v1 — 14
Causes:
missing texture — 14
missing model — 29
missing parent — 69
Full detail: plugins/EmberForge/content-report.txt
The report is rewritten on every build, so it is never stale, and it names the exact file:
cosmetic_expansion_v1:chicken_hat missing texture assets/cosmetic_expansion_v1/textures/chicken_hat.png
builderslab:acacia_wall_rack missing model assets/builderslab/models/item/acacia_wall_rack.json
iadeco:painting_burst missing parent assets/minecraft/models/item/base/furniture_painting.json
What the causes mean¶
| Cause | Meaning |
|---|---|
missing texture |
The model asks for a .png the pack does not contain |
missing model |
The item points at a model file that is not there |
missing parent |
The model inherits from another model that is absent |
unreadable model |
The .json could not be parsed |
Anything listed is left out of the pack on purpose, so it renders as its plain base item rather than as a magenta-and-black missing-texture block. Fixing the source pack is what brings it back.
What validation actually checks¶
Each dispatch entry is resolved the way the client would:
- the model file exists,
- its parent chain resolves — including parents like
item/base/furniture_painting, which look vanilla but are shipped by a content pack, - every texture it names exists,
- every
#variablea face refers to is defined by the model or a parent, - and every reference is first resolved through sprite aliases.
That last one matters more than it sounds.
Sprite aliases are not file paths
A texture atlas can name a sprite something other than its path:
A model then references ia:908, and no file of that name exists anywhere.
A validator that only checks file existence concludes the item is broken and
deletes content that renders perfectly well. Ember Forge merges every atlas
it finds — additively, like fonts — and resolves aliases before judging
anything.