# IEmoteManager > Manages emote playback for players running the Lectern client. `gg.lode.lecternapi.api.manager.IEmoteManager` --- ## Signature ```java public interface IEmoteManager ``` --- ## Targeting Modes IEmoteManager provides four levels of targeting: | Mode | Description | |---|---| | **Targeted** | Play an emote on a specific entity, visible to a specific viewer. | | **Local** | Play an emote on a player, visible only to themselves. | | **Broadcast** | Play an emote on an entity, visible to all online players. | | **Collection** | Play an emote on an entity, visible to a specific set of viewers. | --- ## Methods. Targeted ### playEmote ```java void playEmote(Player viewer, UUID entityUuid, String emoteId, boolean showHands, int priority) ``` Plays an emote on an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | The player who will see the emote. | | `entityUuid` | `UUID` | The UUID of the entity to animate. | | `emoteId` | `String` | The emote identifier (registered in the client animation registry). | | `showHands` | `boolean` | Whether to show the entity's hands during the emote. | | `priority` | `int` | The animation layer priority (higher = on top). | --- ### stopEmote ```java void stopEmote(Player viewer, UUID entityUuid, String emoteId) ``` Stops a specific emote on an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | | `emoteId` | `String` | The emote identifier to stop. | --- ### stopAllEmotes ```java void stopAllEmotes(Player viewer, UUID entityUuid) ``` Stops all emotes on an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearEmotes ```java void clearEmotes(Player viewer) ``` Clears all emote state on the target player's client. | Parameter | Type | Description | |---|---|---| | `viewer` | `Player` | The target player. | --- ### broadcastEmote ```java void broadcastEmote(UUID entityUuid, String emoteId, boolean showHands, int priority) void broadcastEmote(Player target, String emoteId, boolean showHands, int priority) ``` Plays an emote on an entity, visible to all online players. Plays an emote on a player, visible to all online players. Convenience overload that extracts the player's UUID. --- ### broadcastStopEmote ```java void broadcastStopEmote(UUID entityUuid, String emoteId) void broadcastStopEmote(Player target, String emoteId) ``` Stops a specific emote on an entity for all online players. Stops a specific emote on a player for all online players. --- ### broadcastStopAllEmotes ```java void broadcastStopAllEmotes(UUID entityUuid) void broadcastStopAllEmotes(Player target) ``` Stops all emotes on an entity for all online players. Stops all emotes on a player for all online players. --- ### setEmoteWheel ```java void setEmoteWheel(Player player, List<EmoteWheelSlot> slots, int accentColor) void setEmoteWheel(Player player, List<EmoteWheelSlot> slots, int accentColor, boolean stopMovement) ``` Replaces the contents of the player's emote wheel: up to 12 slots plus an accent colour (ARGB, 0 = client default). Contents and visibility are separate so a wheel can be prepared ahead of time and opened instantly. The same, saying whether the wheel should hold the player still while it is open. It normally should not. The wheel is opened mid-stride, often mid-fight, and stopping someone dead to let them pick an emote is a worse surprise than the emote is worth, so `false` is what the three-argument form asks for and what a wheel does by default. Pass `true` where standing still is the point: a lobby, a cutscene, a menu that happens to be round. A client too old to know about the flag ignores it and keeps moving, which is the same answer it has always given. --- ### showEmoteWheel ```java void showEmoteWheel(Player player, boolean visible) ``` Opens or closes the wheel. Opening with no slots set is ignored client-side. The outcome comes back as an `EmoteWheelSelectEvent` or `EmoteWheelCancelEvent` , exactly one per opening. | Parameter | Type | |---|---| | `player` | `Player` | | `visible` | `boolean` | --- ### toggleEmoteWheel ```java void toggleEmoteWheel(Player player) ``` Flips the wheel's visibility. | Parameter | Type | |---|---| | `player` | `Player` | --- ### commitEmoteWheel ```java void commitEmoteWheel(Player player) ``` Closes the wheel by taking whatever slot the cursor is on, exactly as a click would. This is what a hold-to-open wheel needs when the key comes up: the player has already said which slot they mean by pointing at it, and only the client knows where they are pointing. Hiding the wheel instead reports a dismissal and throws that choice away. Resting on no slot still cancels, so letting go while pointing at nothing means nothing. | Parameter | Type | |---|---| | `player` | `Player` | --- ### clearEmoteWheel ```java void clearEmoteWheel(Player player) ``` Closes the wheel and forgets its slots. | Parameter | Type | |---|---| | `player` | `Player` | --- ## Methods. Local ### playLocalEmote ```java void playLocalEmote(Player player, String emoteId, boolean showHands, int priority) ``` Plays an emote on the player, visible only to themselves. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player to animate (also the viewer). | | `emoteId` | `String` | The emote identifier. | | `showHands` | `boolean` | Whether to show hands during the emote. | | `priority` | `int` | The animation layer priority. | --- ### stopLocalEmote ```java void stopLocalEmote(Player player, String emoteId) ``` Stops a specific local emote on the player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `emoteId` | `String` | The emote identifier to stop. | --- ### stopAllLocalEmotes ```java void stopAllLocalEmotes(Player player) ``` Stops all local emotes on the player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ## Methods. Broadcast ### broadcastEmote (UUID) ```java void broadcastEmote(UUID entityUuid, String emoteId, boolean showHands, int priority) ``` Plays an emote on an entity, visible to all online players. | Parameter | Type | Description | |---|---|---| | `entityUuid` | `UUID` | The UUID of the entity to animate. | | `emoteId` | `String` | The emote identifier. | | `showHands` | `boolean` | Whether to show hands during the emote. | | `priority` | `int` | The animation layer priority. | --- ### broadcastEmote (Player) ```java void broadcastEmote(Player target, String emoteId, boolean showHands, int priority) ``` Plays an emote on a player, visible to all online players. Convenience overload that extracts the player's UUID. | Parameter | Type | Description | |---|---|---| | `target` | `Player` | The player to animate. | | `emoteId` | `String` | The emote identifier. | | `showHands` | `boolean` | Whether to show hands during the emote. | | `priority` | `int` | The animation layer priority. | --- ### broadcastStopEmote (UUID) ```java void broadcastStopEmote(UUID entityUuid, String emoteId) ``` Stops a specific emote on an entity for all online players. | Parameter | Type | Description | |---|---|---| | `entityUuid` | `UUID` | The UUID of the entity. | | `emoteId` | `String` | The emote identifier to stop. | --- ### broadcastStopEmote (Player) ```java void broadcastStopEmote(Player target, String emoteId) ``` Stops a specific emote on a player for all online players. | Parameter | Type | Description | |---|---|---| | `target` | `Player` | The player. | | `emoteId` | `String` | The emote identifier to stop. | --- ### broadcastStopAllEmotes (UUID) ```java void broadcastStopAllEmotes(UUID entityUuid) ``` Stops all emotes on an entity for all online players. | Parameter | Type | Description | |---|---|---| | `entityUuid` | `UUID` | The UUID of the entity. | --- ### broadcastStopAllEmotes (Player) ```java void broadcastStopAllEmotes(Player target) ``` Stops all emotes on a player for all online players. | Parameter | Type | Description | |---|---|---| | `target` | `Player` | The player. | --- ## Methods. Collection-Based ### playEmote (Collection) ```java void playEmote(Collection<? extends Player> viewers, UUID entityUuid, String emoteId, boolean showHands, int priority) ``` Plays an emote on an entity, visible to a specific collection of viewers. | Parameter | Type | Description | |---|---|---| | `viewers` | `Collection<? extends Player>` | The players who will see the emote. | | `entityUuid` | `UUID` | The UUID of the entity to animate. | | `emoteId` | `String` | The emote identifier. | | `showHands` | `boolean` | Whether to show hands during the emote. | | `priority` | `int` | The animation layer priority. | --- ### stopEmote (Collection) ```java void stopEmote(Collection<? extends Player> viewers, UUID entityUuid, String emoteId) ``` Stops a specific emote on an entity for a collection of viewers. | Parameter | Type | Description | |---|---|---| | `viewers` | `Collection<? extends Player>` | The viewer set. | | `entityUuid` | `UUID` | The UUID of the entity. | | `emoteId` | `String` | The emote identifier to stop. | --- ### stopAllEmotes (Collection) ```java void stopAllEmotes(Collection<? extends Player> viewers, UUID entityUuid) ``` Stops all emotes on an entity for a collection of viewers. | Parameter | Type | Description | |---|---|---| | `viewers` | `Collection<? extends Player>` | The viewer set. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearEmotes (Collection) ```java void clearEmotes(Collection<? extends Player> viewers) ``` Clears all emote state for a collection of viewers. | Parameter | Type | Description | |---|---|---| | `viewers` | `Collection<? extends Player>` | The viewer set. | --- ## Related Pages - [[ILecternAPI]]. Access via `getEmoteManager()`