# IEntityManager > Manages entity-related effects for players running the Lectern client. `gg.lode.lecternapi.api.manager.IEntityManager` --- ## Signature ```java public interface IEntityManager ``` --- ## Methods ### setCape ```java void setCape(Player player, UUID entityUuid, String capeId) ``` Sets a custom cape on an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the cape. | | `entityUuid` | `UUID` | The UUID of the entity to apply the cape to. | | `capeId` | `String` | The cape texture identifier (e.g. `"namespace:textures/cape.png"`). | --- ### removeCape ```java void removeCape(Player player, UUID entityUuid) ``` Removes a custom cape from an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearCapes ```java void clearCapes(Player player) ``` Clears all custom capes on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### setSkin ```java void setSkin(Player player, UUID entityUuid, String skinId) ``` Overrides the skin of an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the skin. | | `entityUuid` | `UUID` | The UUID of the entity to reskin. | | `skinId` | `String` | The skin texture identifier. | --- ### setSkinToPlayer ```java void setSkinToPlayer(Player player, UUID entityUuid, String playerName) ``` Overrides the skin of an entity to match another player's skin, looked up by player name. The client fetches the skin from the Mojang API. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the skin. | | `entityUuid` | `UUID` | The UUID of the entity to reskin. | | `playerName` | `String` | The username of the player whose skin to use. | --- ### setSkinToUuid ```java void setSkinToUuid(Player player, UUID entityUuid, UUID skinUuid) ``` Overrides the skin of an entity to match another player's skin, looked up by UUID. The client fetches the skin from the Mojang API. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the skin. | | `entityUuid` | `UUID` | The UUID of the entity to reskin. | | `skinUuid` | `UUID` | The UUID of the player whose skin to use. | --- ### removeSkin ```java void removeSkin(Player player, UUID entityUuid) ``` Removes a skin override from an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearSkins ```java void clearSkins(Player player) ``` Clears all skin overrides on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### setNametag ```java void setNametag(Player player, UUID entityUuid, String name) ``` Overrides the nametag text of an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the nametag. | | `entityUuid` | `UUID` | The UUID of the entity. | | `name` | `String` | The nametag text. | --- ### setNametagColor ```java void setNametagColor(Player player, UUID entityUuid, int color) ``` Overrides the nametag color of an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the color. | | `entityUuid` | `UUID` | The UUID of the entity. | | `color` | `int` | The color as a packed RGB integer. | --- ### removeNametag ```java void removeNametag(Player player, UUID entityUuid) ``` Removes a nametag text override from an entity. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### removeNametagColor ```java void removeNametagColor(Player player, UUID entityUuid) ``` Removes a nametag color override from an entity. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearNametags ```java void clearNametags(Player player) ``` Clears all nametag text overrides on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### clearNametagColors ```java void clearNametagColors(Player player) ``` Clears all nametag color overrides on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### tintEntity ```java void tintEntity(Player player, UUID entityUuid, int red, int green, int blue, float alpha) ``` Tints an entity with a color as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the tint. | | `entityUuid` | `UUID` | The UUID of the entity to tint. | | `red` | `int` | Red component (0-255). | | `green` | `int` | Green component (0-255). | | `blue` | `int` | Blue component (0-255). | | `alpha` | `float` | The tint opacity (0.0 to 1.0). | --- ### removeTint ```java void removeTint(Player player, UUID entityUuid) ``` Removes a tint from an entity. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearTints ```java void clearTints(Player player) ``` Clears all entity tints on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### hideEntity ```java void hideEntity(Player player, UUID entityUuid) ``` Hides an entity on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity to hide. | --- ### showEntity ```java void showEntity(Player player, UUID entityUuid) ``` Shows a previously hidden entity on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity to show. | --- ### clearEntityVisibility ```java void clearEntityVisibility(Player player) ``` Clears all entity visibility overrides on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### setHandVisible ```java void setHandVisible(Player player, boolean visible) ``` Hides or shows the player's hand rendering. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `visible` | `boolean` | `true` to show hands, `false` to hide. | --- ### playEmote ```java void playEmote(Player player, UUID entityUuid, String emoteId, boolean showHands, int priority) ``` Plays an emote animation on an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the emote. | | `entityUuid` | `UUID` | The UUID of the entity to animate. | | `emoteId` | `String` | The emote identifier (e.g. `"lodestone:wave"`). | | `showHands` | `boolean` | Whether to show the entity's hands during the emote. | | `priority` | `int` | The animation priority. | --- ### stopEmote ```java void stopEmote(Player player, UUID entityUuid, String emoteId) ``` Stops a specific emote on an entity. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | | `emoteId` | `String` | The emote identifier to stop. | --- ### stopAllEmotes ```java void stopAllEmotes(Player player, UUID entityUuid) ``` Stops all emotes on an entity. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `entityUuid` | `UUID` | The UUID of the entity. | --- ### clearEmotes ```java void clearEmotes(Player player) ``` Clears all emote state on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### attachModel ```java void attachModel(Player player, String attachmentId, UUID entityUuid, String itemId, String customModel, String bodyPart, float offsetX, float offsetY, float offsetZ, float scaleX, float scaleY, float scaleZ, float rotationX, float rotationY, float rotationZ) ``` Attaches a model to a body part of an entity as seen by the target player. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The player who will see the attachment. | | `attachmentId` | `String` | A unique identifier for this attachment. | | `entityUuid` | `UUID` | The UUID of the entity to attach to. | | `itemId` | `String` | The item identifier for the model. | | `customModel` | `String` | The custom model data string. | | `bodyPart` | `String` | The body part: `"head"`, `"hat"`, `"body"`, `"right_arm"`, `"left_arm"`, `"right_leg"`, or `"left_leg"`. | | `offsetX` | `float` | X offset from the body part. | | `offsetY` | `float` | Y offset from the body part. | | `offsetZ` | `float` | Z offset from the body part. | | `scaleX` | `float` | X scale factor. | | `scaleY` | `float` | Y scale factor. | | `scaleZ` | `float` | Z scale factor. | | `rotationX` | `float` | X rotation in degrees. | | `rotationY` | `float` | Y rotation in degrees. | | `rotationZ` | `float` | Z rotation in degrees. | --- ### removeAttachment ```java void removeAttachment(Player player, String attachmentId) ``` Removes a model attachment by its unique identifier. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `attachmentId` | `String` | The unique identifier of the attachment to remove. | --- ### clearAttachments ```java void clearAttachments(Player player) ``` Clears all model attachments on the target player's client. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | --- ### setVisualChain ```java void setVisualChain(Player player, boolean enabled) ``` Enables or disables the visual chain leash effect on the target player's client. When enabled, leash connections render as chain blocks instead of the default leash rope. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | The target player. | | `enabled` | `boolean` | `true` to enable chain rendering, `false` to disable. | --- ### setSkinToTexture ```java void setSkinToTexture(Player player, UUID entityUuid, String textureValue, String textureSignature) ``` Overrides the skin of an entity using a raw Mojang texture property (the base64 `value` and its `signature`), the standard skin format used by GameProfile properties. The client decodes the value to resolve the skin URL and model (slim/wide) and downloads the texture. Use this when you already hold the texture property (e.g. from a cached profile) and want to avoid a Mojang API lookup by name/UUID. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | the player who will see the skin | | `entityUuid` | `UUID` | the UUID of the entity to reskin | | `textureValue` | `String` | the base64-encoded textures property value | | `textureSignature` | `String` | the property signature (may be null/empty; used for authenticity, not required to render) | --- ### disintegrate ```java void disintegrate(Player player, UUID entityUuid, int durationMs, int holdMs, boolean sweepUp) void disintegrate(Player player, UUID entityUuid, int durationMs, int holdMs, boolean sweepUp, boolean inverted) dissolve. disintegrate(player, entityUuid, durationMs, holdMs, sweepUp) void disintegrate(Player player, UUID entityUuid, int durationMs, int holdMs) void disintegrate(Player player, UUID entityUuid) ``` Disintegrates a player entity on the target player's client (Thanos-snap style): the entity's pose freezes, the model turns into skin-pixel voxels, and the voxels dissolve into wind-blown dust. The entity stays hidden on the client after the dissolve until `stopDisintegrate` is sent. The effect is purely visual, pair it with a server-side freeze so the frozen statue doesn't move with the live entity. Disintegrates a player entity, optionally in reverse. | Parameter | Type | Disintegrates a player entity with the default feet-first upward sweep. Disintegrates a player entity with default timing (4s dissolve, 600ms hold). --- ### stopDisintegrate ```java void stopDisintegrate(Player player, UUID entityUuid) ``` Cancels a disintegration (or unhides the entity after one finished) on the target player's client. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### setVerityModel ```java void setVerityModel(Player player, UUID entityUuid, VerityModel model, VerityFace face, VerityFit fit, float scale, int hue) void setVerityModel(Player player, UUID entityUuid, VerityModel model, VerityFace face, VerityFit fit, float scale, int hue, boolean playIntro) void setVerityModel(Player player, UUID entityUuid, VerityFace face) ``` Replaces an entity's rendering with the Verity model on the target player's client: a face-textured sphere (or the cardboard box it ships in) drawn in place of the entity's own model. The effect is purely visual, the entity keeps its real model server-side and its hitbox, movement and AI are untouched. The client drives the animation off the entity's own motion: the ball rolls as it travels and unwinds when it stops, squashes on landing, and turns to face wherever the entity is looking. It is also kept out of block geometry so it doesn't sink through floors or clip into walls. Re-applying to an entity that already wears the model retunes it in place rather than restarting it, so the drop-in intro doesn't replay. Applies the Verity model, optionally without its drop-in intro. Applies the Verity ball with default sizing (hitbox width), no tint and a happy face. --- ### removeVerityModel ```java void removeVerityModel(Player player, UUID entityUuid) ``` Removes the Verity model from an entity, restoring its normal rendering. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### clearVerityModels ```java void clearVerityModels(Player player) ``` Clears every Verity model on the target player's client. | Parameter | Type | |---|---| | `player` | `Player` | --- ### setVerityModelType ```java void setVerityModelType(Player player, UUID entityUuid, VerityModel model) ``` Switches which model an entity wears without restarting its animation state. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `model` | `VerityModel` | --- ### setVerityFace ```java void setVerityFace(Player player, UUID entityUuid, VerityFace face) ``` Changes the face an entity's ball is wearing. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `face` | `VerityFace` | --- ### setVerityFit ```java void setVerityFit(Player player, UUID entityUuid, VerityFit fit) ``` Changes how the ball is sized against the entity's hitbox. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `fit` | `VerityFit` | --- ### setVerityTalking ```java void setVerityTalking(Player player, UUID entityUuid, boolean talking) ``` Flags the ball as talking, which swaps in the current face's talking texture and starts a continuous squash/stretch pulse. Stays on until switched back off. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `talking` | `boolean` | --- ### setVerityScale ```java void setVerityScale(Player player, UUID entityUuid, float scale) ``` Rescales the ball. Multiplies whatever size the current fit produces. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `entityUuid` | `UUID` | | | `scale` | `float` | size multiplier; values `<= 0` are ignored | --- ### setVerityHue ```java void setVerityHue(Player player, UUID entityUuid, int hue) ``` Tints the ball. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `entityUuid` | `UUID` | | | `hue` | `int` | 0 for the texture's own colors, otherwise a 1-360 hue | --- ### setVerityPhysics ```java void setVerityPhysics(Player player, UUID entityUuid, boolean physics) ``` Toggles the collision constraint that keeps the ball out of block geometry. On by default; turn it off if you want the ball to pass through the world. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `physics` | `boolean` | --- ### playVerityBounce ```java void playVerityBounce(Player player, UUID entityUuid) ``` Replays the ball's drop-and-settle intro. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### playVerityBoxOpen ```java void playVerityBoxOpen(Player player, UUID entityUuid) ``` Plays the box's lid-open animation: the flaps swing apart and the box launches upward and shrinks away. No-op unless the entity is wearing `VerityModel.BOX`. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### setVerityItemModels ```java void setVerityItemModels(Player player, boolean enabled, int hue) ``` Controls whether items tagged for the Verity model render as the ball on this player's client, and what tint they get. An item opts in through its custom data (`{"lodestone:verity":"<face>"}`) and then renders as a ball in hand, in third person, on the ground and in the inventory. This toggle is a client-wide override for that behaviour; it is on by default, since the tag itself is already opt-in. --- ### setVerityMonster ```java void setVerityMonster(Player player, UUID entityUuid, float height, int hue) void setVerityMonster(Player player, UUID entityUuid) ``` Replaces an entity's rendering with the Verity monster on the target player's client , a fully animated character model drawn in place of the entity's own. Purely visual, like the ball: the entity keeps its real model server-side and its AI and movement are untouched. The client animates it from the entity's own motion, cross-fading idle, walk and run by speed and driving the stride from ground covered rather than from the clock, so it stays in step at any size or movement speed. Its hitbox and eye height follow the costume client-side, so a three-block monster sees and collides like one. Applies the Verity monster at two blocks tall with no tint. --- ### removeVerityMonster ```java void removeVerityMonster(Player player, UUID entityUuid) ``` Removes the Verity monster from an entity, restoring its normal rendering. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### clearVerityMonsters ```java void clearVerityMonsters(Player player) ``` Clears every Verity monster on the target player's client. | Parameter | Type | |---|---| | `player` | `Player` | --- ### setVerityMonsterHeight ```java void setVerityMonsterHeight(Player player, UUID entityUuid, float height) ``` Resizes a monster already being rendered. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `entityUuid` | `UUID` | | | `height` | `float` | the model's height in blocks; the hitbox and eye height follow it | --- ### setVerityMonsterHue ```java void setVerityMonsterHue(Player player, UUID entityUuid, int hue) ``` Tints a monster already being rendered. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `entityUuid` | `UUID` | | | `hue` | `int` | 0 for the texture's own colors, otherwise a 1-360 hue tint | --- ### setVerityMonsterCrawling ```java void setVerityMonsterCrawling(Player player, UUID entityUuid, boolean crawling) ``` Switches the monster between standing and crawling. Crawling swaps the whole locomotion set, not just the pose: it idles and moves on all fours, and its hitbox and eye height drop to match, the crawl is barely a third as tall as the stance and correspondingly wider. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `crawling` | `boolean` | --- ### setVerityMonsterFirstPerson ```java void setVerityMonsterFirstPerson(Player player, UUID entityUuid, boolean visible) ``` Whether a player wearing the monster sees their own model in first person. With this on the camera rides the model's head, so the view moves with the animation rather than floating while the head swings around it, and the head geometry is dropped so the wearer isn't looking at the inside of its own face. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `entityUuid` | `UUID` | the costumed entity; only meaningful for the viewing player themselves | | `visible` | `boolean` | | --- ### playVerityMonsterClip ```java void playVerityMonsterClip(Player player, UUID entityUuid, VerityClip clip) void playVerityMonsterClip(Player player, UUID entityUuid, VerityClip clip, UUID cameraViewer) ``` Plays a clip once over the top of the monster's locomotion, which resumes when it ends. Plays a clip once, optionally handing that clip's own camera to a chosen player. Only `VerityClip.JUMPSCARE` carries a camera. Naming a viewer puts that player behind it for the length of the clip, dropped to the floor in front of the monster, looking back up at it, and returns control when it ends. Everyone else watches from wherever they are. --- ### setVerityMonsterAnimation ```java void setVerityMonsterAnimation(Player player, UUID entityUuid, VerityClip clip) ``` Holds a clip indefinitely, overriding the automatic locomotion until released. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | | `clip` | `VerityClip` | --- ### clearVerityMonsterAnimation ```java void clearVerityMonsterAnimation(Player player, UUID entityUuid) ``` Releases a held clip, handing the monster back to automatic locomotion. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### verityMonsterGrab ```java void verityMonsterGrab(Player player, UUID entityUuid, UUID victimUuid) ``` Renders an entity in the monster's hands until released. The held entity is relocated rather than redrawn, so its skin, armour and animation come along unchanged; its real position and collision are untouched. Grabbing also clears any corpse left from a previous scare, so the same victim can be caught again. A grabbed victim is what makes `VerityClip.JUMPSCARE` a kill rather than a gesture: the bite lands partway through the clip and leaves a corpse behind. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `entityUuid` | `UUID` | | | `victimUuid` | `UUID` | the entity to hold | --- ### verityMonsterRelease ```java void verityMonsterRelease(Player player, UUID entityUuid) ``` Lets go of whoever the monster is holding, without biting them. | Parameter | Type | |---|---| | `player` | `Player` | | `entityUuid` | `UUID` | --- ### spawnPlayerRagdoll ```java void spawnPlayerRagdoll(Player player, UUID ragdollId, UUID skinSource, Location location, double height, boolean beheaded) void spawnPlayerRagdoll(Player player, UUID ragdollId, UUID skinSource, Location location) ``` Drops a simulated corpse on the target player's client, wearing another player's skin. The corpse is a **prop, not a replacement**. The player it is cloned from is left entirely alone (still rendered, still themselves) so a body can lie at their feet while they stand over it, several corpses can wear the same skin, and one viewer can be shown a corpse that nobody else sees. It falls under gravity, collides with the world, and is jointed so it folds like a body rather than through itself. The skin is looked up from the player list, so the player being cloned need not be loaded, visible, or nearby. Verity's bite spawns one of these itself, positioned from where the victim's head was. This is the direct route, for deaths that have nothing to do with a monster. --- ### removePlayerRagdoll ```java void removePlayerRagdoll(Player player, UUID ragdollId) ``` Removes a corpse by its own id. The player it was cloned from is unaffected. | Parameter | Type | |---|---| | `player` | `Player` | | `ragdollId` | `UUID` | --- ### clearPlayerRagdolls ```java void clearPlayerRagdolls(Player player) ``` Clears every corpse on the target player's client. | Parameter | Type | |---|---| | `player` | `Player` | --- ## Related Pages - [[ILecternAPI]]. Access via `getEntityManager()`