promotional bannermobile promotional banner

Enchanted Outlines

Each enchantment type is assigned a unique color identifier, allowing you to instantly comprehend the power of the item in your hand
Back to Files

enchanted_outlines-0.1.4.jar

File nameenchanted_outlines-0.1.4.jar
Uploader
LOVE_U987LOVE_U987
Uploaded
Aug 8, 2026
Downloads
22
Size
71.1 KB
Mod Loaders
NeoForge
File ID
8602054
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:enchanted-outlines-1643642:8602054"

Learn more about Curse Maven

What's new

v0.1.4 (2026-08-08)


🛠️ Fix: Elytra Outline Misalignment with FA+Player & EMF Resource Packs

  • Issue: When using the FA+Player v1.1 resource pack (which includes emf/cem/elytra.jem), the elytra outline would drift out of sync with the actual wing model.
  • Root Cause: In Minecraft 1.21.1, ElytraLayer fetches the ElytraModel via EntityModelSet.bakeLayer(ModelLayers.ELYTRA). EMF (Entity Model Features) intercepts this call and swaps in a custom model tree from the .jem file (moving wing geometry into custom EMF sub-parts with bespoke animations). Our previous approach tried to mirror the entire render pipeline—copyPropertiesTo, setupAnim, and even manually triggering EMF animations via reflection at ElytraLayer#render HEAD. Even the tiniest deviation from the native render path caused the outline to desync from the actual pose.
  • Fix: Moved the outline injection point to ElytraLayer#render TAIL. The native render flow is translate(0,0,0.125) → copyPropertiesTo → setupAnim → renderToBuffer, with EMF's custom animations applied internally during renderToBuffer → EMFModelPartWithState.render → root.animate(). At TAIL, the native render is complete and elytraModel holds the final pose used for the actual wings. We simply reuse that exact pose to render the outline—no logic duplication, no reflection, 100% sync with the base model. Depth testing handles the rest: the base model (cutout, drawn first, writes depth) occludes the inner surface of the expanded outline shell, while the outline (translucent, drawn second) only shows the outer edge without bleeding onto the base model.
  • Removed: The old HEAD approach's manual setupAnim replication and EMF getRoot()/animate() reflection calls (no longer needed).
  • Compatibility Note: This feature has zero hard dependencies on EMF or any other mod (like ETF). We don't reference a single EMF class, and neoforge.mods.toml only lists NeoForge/Minecraft as required. When EMF is present, the outline automatically syncs to its custom animations; when absent, it falls back to vanilla poses—one codebase, both scenarios.
  • Files Changed: src/main/java/com/enchantedoutlines/mod/mixin/ElytraLayerMixin.java

Fly true. Your wings and their glow are finally one. 🪽✨

This mod has no additional files