Anonventions
← Back to guides
A LITTLE KNOW-HOW

1.0.3 Update Notes

On this page
  1. 1.0.3 Update Log
  2. Artifacts
  3. Requirements
  4. Installation
  5. Standalone Paper
  6. Proxy Network
  7. SQL Configuration
  8. MySQL Example
  9. PostgreSQL Example
  10. Runtime Sync Behavior
  11. Iris and OptiFine Behavior
  12. Commands
  13. Resource Pack and Merge Support
  14. Notes for Server Owners

Animotions 1.0.3

Animotions is a Paper emote plugin that renders animated player models with display entities, Blockbench-authored emotes, MineSkin body-part textures, built-in pack delivery, and duo invite flows.

Version 1.0.3

1.0.3 Update Log

  • Updated all Resourcepacks to now support all version from 1.21.4 +

(Please Make sure you restart server to load new pack and reload Nexo and Itemadder so they can grab the new Resourcepacks. If need any help reach out in discord!)

  • Fixed legacy version not working on 1.21.5 and 1.21.4 with ViaVersion
  • Fixed Resoucepack pathing issue on 1.21.5 with Nexo
  • Code Clean-up

Artifacts

Build outputs:

  • animotions-paper/target/Animotions.jar
  • animotions-velocity/target/Animotions-Velocity.jar
  • animotions-bungeecord/target/Animotions-BungeeCord.jar

Use:

  • Animotions.jar on every Paper backend
  • Animotions-Velocity.jar on a Velocity proxy
  • Animotions-BungeeCord.jar on a BungeeCord proxy

Only install the proxy companion that matches your network.

Requirements

  • Java 21+
  • Paper 1.21.11+ for backend servers
  • PacketEvents on backend servers
  • MineSkin API key if you want full body textures for Iris or OptiFine users
  • One of:
  • standalone backend with local H2
  • shared MySQL database
  • shared PostgreSQL database

Installation

Standalone Paper

  1. Install PacketEvents on the backend server.
  2. Place Animotions.jar into plugins/.
  3. Start the server once to generate config files.
  4. Put your license key in plugins/Animotions/anim-license.txt.
  5. Set resource-pack.host and resource-pack.port.
  6. Set a real MineSkin API key if you want correct body textures for shader-mod clients.
  7. Leave network.mode: standalone.
  8. Leave storage.type: h2 unless you want external SQL.

Proxy Network

  1. Install PacketEvents and Animotions.jar on every Paper backend.
  2. Install the matching proxy companion jar on Velocity or BungeeCord.
  3. Use the same network.sync-channel on proxy and backend jars. Default: animotions:sync.
  4. Give every backend a unique network.server-id.
  5. Set network.mode: velocity or network.mode: bungeecord on each backend.
  6. Point every backend at the same MySQL or PostgreSQL database.
  7. Restart the proxy and all backends.

SQL Configuration

config.yml now includes:

network:
  mode: standalone
  server-id: "backend-1"
  sync-channel: "animotions:sync"

storage:
  type: h2
  jdbc-url: ""
  username: ""
  password: ""
  pool:
    maximum-size: 10
    minimum-idle: 2
    connection-timeout-ms: 10000

MySQL Example

network:
  mode: velocity
  server-id: "hub-1"
  sync-channel: "animotions:sync"

storage:
  type: mysql
  jdbc-url: "jdbc:mysql://127.0.0.1:3306/animotions?useSSL=false&serverTimezone=UTC"
  username: "animotions"
  password: "change-me"
  pool:
    maximum-size: 10
    minimum-idle: 2
    connection-timeout-ms: 10000

PostgreSQL Example

network:
  mode: velocity
  server-id: "survival-2"
  sync-channel: "animotions:sync"

storage:
  type: postgresql
  jdbc-url: "jdbc:postgresql://127.0.0.1:5432/animotions"
  username: "animotions"
  password: "change-me"
  pool:
    maximum-size: 10
    minimum-idle: 2
    connection-timeout-ms: 10000

Runtime Sync Behavior

Shared runtime state now stores:

  • current backend server
  • shader compatibility state
  • resource-pack availability state
  • MineSkin readiness state
  • duo invite state
  • active emote session state

What this means in practice:

  • backend servers can see whether a player is currently tracked on the network
  • duo invite lifecycle is persisted instead of being memory-only
  • solo emote sessions can restart after the player joins another backend
  • Iris and OptiFine warnings are consistent with MineSkin readiness

Current limit:

  • duo playback still requires both players to be on the same backend because the animated entities are rendered by the backend server, not the proxy

Iris and OptiFine Behavior

When a shader-mod client is detected:

  • Animotions still allows the emote to start
  • the player gets a one-time warning if MineSkin is disabled
  • the player gets a one-time warning if MineSkin textures are still processing
  • once MineSkin finishes, body-part textures can update correctly

Without MineSkin, shader-mod clients still fall back to repeated head-texture rendering on body parts. That is a rendering limitation of the shader fallback path.

Commands

  • /animotions <name>: play a solo emote
  • /animotions <name> <player>: send a duo invite
  • /animotions accept: accept a duo invite
  • /animotions deny: deny a duo invite
  • /animotions stop: stop your current emote
  • /animotions list: list emotes
  • /animotions reload: reload config, categories, and emotes
  • /animotions cload: append newly discovered emotes into category.yml
  • /animotions pack: resend or debug the resource pack

Resource Pack and Merge Support

Animotions still supports:

  • built-in HTTP self-hosting
  • Nexo merge mode
  • ItemsAdder merge mode
  • Oraxen merge mode
  • custom folder pack export mode

Notes for Server Owners

  • Use MineSkin if your playerbase uses Iris or OptiFine.
  • Use MySQL or PostgreSQL for proxy networks. H2 is fine for standalone servers.
  • Keep backend server-id values unique.
  • Keep the proxy companion plugin installed only on the proxy, never on Paper.
  • Keep Animotions.jar installed only on backend servers, never on the proxy.
THE LITTLE DETAILS MATTER

Choose what this shop may load. Saying no to optional features does not prevent shopping.