Epic Fight replaces the player's vanilla skeleton with its own animation armature and takes over rendering the player model. Every other mod that reads or draws the vanilla player model stops working correctly once Epic Fight is installed:
None of this is a bug in any of those mods individually. This mod fixes the interaction between them and Epic Fight.
Essential cosmetics & store outfits: re-posed from Epic Fight's armature onto the vanilla model skeleton every frame, so outfits track the actual animation being played instead of an idle pose.
Essential emotes: while an emote is playing on a player, this mod hands rendering for that player back to the vanilla pipeline for the duration of the emote, then returns control to Epic Fight when it ends.
GeckoLib armor (Hazen 'n Stuff, Iron's Spellbooks): rendered live through GeckoLib's own renderer instead of Epic Fight's static bake, so wing, cloth, and other built-in animations keep playing, along with emissive/glow render passes the bake drops.
AzureLib armor (Cataclysm Spellbooks): same live-render approach through a separate code path, since AzureLib is a different rendering system from GeckoLib with its own registry. This is what fixes the purple missing-texture boxes.
Spellcasting animations: same hand-off as emotes. While a playerAnimator cast animation from Iron's Spellbooks or Cataclysm Spellbooks is active, that player renders through the vanilla pipeline in both third and first person.
L'Ender's Cataclysm weapons: Ancient Spear, Coral Spear, Coral Bardiche, Astrape, Ceraunus, Soul Render, The Incinerator, The Annihilator, Meat Shredder, The Immolator, the three Gauntlets, Tidal Claws, and Athame are registered with Epic Fight weapon capability data so they use the spear, greatsword, fist, or dagger moveset they're meant to.
Everything else is optional. Each fix only activates if the mod it targets is installed.
Every fix is toggleable in config/efcompat-client.toml:
essential.fixCosmeticsessential.fixEmotesgeckolib.fixArmorazurelib.fixArmorplayeranimator.fixCastAnimationsplayeranimator.fixFirstPersonCasts