Emote

Server-side emotes using display entities and datapacks

by
205 Downloads
fabricsocial
Rent Server with this Mod

Screenshots

hello

About this Mod

Emote for Fabric

Emote is a Minecraft Fabric emote player for BD Engine humanoid exports.
It plays emotes from datapacks on the server, and modded clients can replace the datapack skin with the player's current skin.

Emote demo

Quick Start

Included Example Datapacks

The repository already includes ready-to-test example datapacks in docs/example:

  • emote.cry.zip
  • emote.hello.zip
  • emote.no.zip
  • emote.yes.zip

To test them as-is:

  1. Put the mod jar into the server mods folder.
  2. Copy the four zip files above into the world datapacks folder.
  3. Replace config/emote/pack.json with this:
{
  "permissions": {
    "": [
      {
        "datapack_identifier": "cry",
        "name": "cry",
        "command_name": "cry",
        "description": "cry",
        "default_animation_name": "default",
        "options": "loop"
      },
      {
        "datapack_identifier": "hello",
        "name": "hello",
        "command_name": "hello",
        "description": "hello",
        "default_animation_name": "default",
        "options": "loop"
      },
      {
        "datapack_identifier": "no",
        "name": "no",
        "command_name": "no",
        "description": "no",
        "default_animation_name": "default",
        "options": "loop"
      },
      {
        "datapack_identifier": "yes",
        "name": "yes",
        "command_name": "yes",
        "description": "yes",
        "default_animation_name": "default",
        "options": "loop"
      }
    ]
  }
}
  • Start the server or run /emote reload.
  • Try:
/emote play hello
/emote play hello default_loop
/emote play yes
/emote menu

The example datapacks already contain play_anim_loop.mcfunction, so options: "loop" immediately adds loop entries such as default_loop.

Key Features

  • Server-side emote playback from datapacks
  • Automatic datapack discovery and reload support
  • /emote command
  • Optional player skin replacement on modded clients
  • Optional MineSkin upload/cache support for baked player skin textures
  • pack.json metadata-based loop entry generation for datapacks with play_anim_loop.mcfunction
  • Support for BD Engine humanoid exports that use emote:* skin markers

Install

Server

  1. Put the mod jar into the server mods folder.
  2. Put the emote datapack zip or folder into the world datapacks folder.
  3. Register the datapack namespace and metadata in config/emote/pack.json.
  4. Start the server or run /emote reload.
  5. Use /emote.

Client

Client installation is optional.

  • With the client mod installed, the emote model can use the player's current skin.
  • Without the client mod, the skin defined in the datapack is used instead.
  • The example datapacks include the developer skin, so their default appearance may look unusual without client skin replacement.

Datapacks

Emotes are loaded from datapacks whose namespaces are listed in config/emote/pack.json.
A datapack is treated as an emote when its data/<namespace> folder matches a configured datapack_identifier.

Prepare Your Own Datapack

BD Engine export zips can be prepared with prepare_emote_datapack.py.
The script adds the emote:* markers used for player skin support and writes an emote.name.zip file.

python docs\prepare_emote_datapack.py [--defaults] [--swap-left-right] path\to\project.zip

Animation Requirements

  • A normal animation entry requires data/<namespace>/function/a/<animation>/play_anim.mcfunction.
  • A loop entry additionally requires data/<namespace>/function/a/<animation>/play_anim_loop.mcfunction.
  • The included example datapacks all provide both play_anim.mcfunction and play_anim_loop.mcfunction for default.

Config

The mod uses two config files:

  • config/emote/config.json
  • config/emote/pack.json

config.json

  • menu_page_size: number of emotes shown per menu page
  • player_skin_port: port used by the built-in skin texture endpoint, 0 for automatic selection
  • mineskin_api_key: optional MineSkin API key for uploading baked player skin textures and using MineSkin-hosted URLs
  • emote_permission: default permission required to use emotes

pack.json

pack.json maps permission strings to emote pack entries.

{
  "permissions": {
    "": [
      {
        "datapack_identifier": "hello",
        "name": "hello",
        "command_name": "hello",
        "description": "hello",
        "default_animation_name": "default",
        "options": "loop"
      }
    ],
    "emote.pack.vip": [
      {
        "datapack_identifier": "wave_pack",
        "name": "wave",
        "command_name": "wave",
        "description": "wave",
        "default_animation_name": "default",
        "options": ""
      }
    ]
  }
}
  • permissions maps a permission string to a list of emote packs
  • datapack_identifier is the datapack namespace, which means the folder name under data/<namespace>
  • An empty permission key "" means the pack has no extra pack-specific permission
  • The same datapack_identifier cannot appear in more than one permission group
  • command_name, name, description, default_animation_name, and options are defined here instead of being read from the datapack itself

options

options is a space-separated string.

  • loop: adds extra *_loop animation entries when the datapack has play_anim_loop.mcfunction
  • visible_player: keeps the real player visible instead of forcing invisibility during playback

Example:

  • ""
  • "loop"
  • "visible_player loop"

License

This project is licensed under the Apache License 2.0.

Available Versions

Emote 0.4.0beta
MC 26.1, 26.1.1, 26.1.2fabric
May 8, 2026
Emote 0.3.0beta
MC 26.1, 26.1.1fabric
April 4, 2026
Emote 0.2.0beta
MC 26.1, 26.1.1fabric
April 3, 2026
emote 0.1.0beta
MC 26.1fabric
March 28, 2026

How to Install Emote on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (26.1.2).

3

Install Mod

Open the mod browser in the dashboard and search for "Emote". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabric

Minecraft Versions

26.1.2, 26.1.1, 26.1

Server-side

Required

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Emote server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (26.1.2). You can switch loaders with one click in the panel.

Is Emote compatible with fabric?

Emote officially supports fabric for Minecraft 26.1.2, 26.1.1, 26.1. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Emote – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Emote consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Emote with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
Apache License 2.0
Server-side
Required

Supported Versions

26.1.226.1.126.1