Play an Essential emote and let EmoteCraft players see it too.
Essential and EmoteCraft each have their own emote systems, and they don't talk to each other. If you own emotes on Essential, only other Essential users can see them; everyone running EmoteCraft sees you standing still. EEBridge closes that gap. It watches the Essential emote you're playing, rebuilds it as an EmoteCraft animation on the fly, and streams it to the server so EmoteCraft players see the same move.
It's client-side and send-only. You install it, other people don't have to. It never plays anything back on your screen (Essential already does that) and it never touches emotes coming the other way.
Essential emotes are authored for its own Bedrock skeleton, with Molang expressions and Bedrock-style pivots. Translating those keyframes by hand is fragile, and getting it wrong is what makes emotes look broken or invisible. So EEBridge doesn't translate them by hand.
Instead it lets Essential do the maths. Essential ships a BedrockModel.computePose() that returns the finished vanilla-player pose (head, body, arms, legs, in radians) with Molang, easing, and axis conversion already applied. EEBridge:
- Detects the emote you're playing through a mixin on the avatar renderer.
- Samples
computePose()once per tick across the length of the emote. - Bakes those poses into an EmoteCraft (PAL) animation.
- Sends it to the server through EmoteCraft's own network pipeline.
Essential loads its classes from nested jars behind a custom class loader, so EEBridge reaches them by reflection rather than compiling against them. That means no Essential or EmoteCraft dependency at build time, and nothing to keep version-locked on their side.
- Minecraft 26.1.2
- Fabric Loader 0.19.3 or newer
- Fabric API
- Java 25
- Essential and EmoteCraft installed (both are what makes the bridge useful, so they're suggested, not hard dependencies)
- Grab the latest
eebridge-*.jarfrom Releases. - Drop it in your
modsfolder next to Fabric API, Essential, and EmoteCraft. - Launch the game. Play an Essential emote in multiplayer and EmoteCraft players will see it.
There's nothing to configure.
git clone https://github.com/redstone-md/EEBridge.git
cd EEBridge
./gradlew buildThe jar lands in build/libs/. Use the file without a -sources suffix.
- One-way. It sends your Essential emotes out; it doesn't bring anyone else's in.
- It bakes each emote when you start it, so very long or heavily randomised emotes are captured as the pose sequence at that moment.
- It tracks Essential's internal classes by name through reflection, so a large Essential rewrite can need a matching update here.
Bug reports, logs, and pull requests are welcome. See CONTRIBUTING.md for how to build, test, and open a change.
MIT. See LICENSE.
EEBridge is an independent project. It isn't affiliated with or endorsed by Essential or EmoteCraft, and it talks to both purely at runtime.