What's LibsDisguises?
LibsDisguises changes how entities appear to players. For example, it can make a sheep look like a player. Install and enable a LibsDisguises build compatible with your server before using EliteMobs disguises; supported disguise types depend on that build and the Minecraft version.
There are free and premium versions. Use the LibsDisguises project's support resources for installation and its own commands; this page covers the EliteMobs configuration.
How can I disguise an entity as a player?
To disguise a custom boss (or a regional boss, or even an NPC!) as a player, all you need to do is add the following line to the boss config file:
disguise: player:name
As an example, if you want to disguise a boss as my player's skin, the configuration line would look like:
disguise: player:magmaguy
Note: A configured custom model takes precedence when custom-model support is enabled and that model exists. Choose the intended appearance explicitly; a missing or unavailable model may allow the disguise path to run instead.
Player Disguise Nametag Visibility
When using player disguises, nametag visibility is controlled by the EliteMobs configuration setting alwaysShowEliteMobNameTags in the config.yml file. If this setting is enabled, player disguises will display the entity's custom name above their head.
A Custom Boss can also opt in by setting alwaysShowName: true in its own config file. The normal path queues the disguise before spawning and respects either setting. The fallback that applies a disguise after spawning reapplies it 20 ticks later if the entity is still valid. It shows the name when the global setting is enabled, the entity's custom name is visible, or the underlying entity is a Villager.
NPCs manage their own stacked name and role labels and hide the player-disguise name during nameplate initialization. Their labels are separate from the boss nametag settings; the delayed fallback can still reapply the Villager disguise's visibility.
How can I disguise an entity as a player skin, but not necessarily a player?
This is the most flexible way of disguising an entity as a player, as it allows admins to use online skins or even create their own to disguise a boss. It is also a little bit more complex to do.
The example below uses a skin URL. The official LibsDisguises command reference also documents /grabskin with a player name, UUID or PNG filename from plugins/LibsDisguises/skins/. The command requires libsdisguises.grabskin.
1. Setting the disguise
For the disguise, you will want to do something like this:
disguise: custom:your_unique_skin_name
2. Generating the disguise data
This is the tricky part. You start by creating the following config entry:
customDisguiseData: player your_unique_skin_name setskin
The name after custom: is the custom-disguise alias. The name after player in the data is the player disguise's name; they serve different purposes and do not have to match. This example uses the same text for convenience. Choose a unique alias: if LibsDisguises already has that alias, EliteMobs uses the existing disguise and does not replace it with customDisguiseData.
Then you will need to deserialize a player skin. The easiest way to do this for a skin publicly available online is by using the LibsDisguises command /grabskin.
Run /grabskin <direct_skin_png_url>, replacing the placeholder with the direct PNG URL, not the web page containing the skin.
Copy the complete serialized profile returned by your installed version after setskin. If the output is split into numbered copy sections, concatenate all sections in order without omitting characters. Keep the resulting YAML value on one line. The following illustrates the format; generate the data for the skin you intend to use:
customDisguiseData: player your_unique_skin_name setskin {"id":"d1fbb77f-b184-4718-b0a2-c7ae866798d3","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYyNzU0ODkwMjQ0OSwKICAicHJvZmlsZUlkIiA6ICIxOTI1MjFiNGVmZGI0MjVjODkzMWYwMmE4NDk2ZTExYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJTZXJpYWxpemFibGUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzlmYTZkMWFlODA2YTY2OGI0OTgzYmZhY2ZkMGUzMzQ5MGE5MGU4YTZmMWE2MmEwZGQ5YzQ1YjdkYjBiNjU1MyIKICAgIH0KICB9Cn0=","signature":"P/XSvxX45MUZGc5uuDKuVgmMUk2V1HADPI84Os5J4NnmURhLeS4jL4FSeShmz0cH7sBWmMg80g9ADP33R9PcOmzbHK4hJBFt2VYLJNgSYHK6VGp6qLGXDfdAa3vRNXN7jKtsrqVEANax7Gzv3xcWARLbq1FuQ6yYdXDY8Coc02Y/POMRG/i6iACtro5DQGhr2JgbL++95UhSBFxmU82Zef3UMHLfgt7lC4vWN4c4xrOAKllzF2mwohuMmEkoKzu/6s/eu5q4J4bBH08M8UN02/yJuEH5sTy/iVJfaoPs90ZfcVdRpUZvVDZh5eXapQN1/Q9/79Pc8YOXF/20iygZ/hpvTPKP8wbMP2b1cJSyAaEIUtG9I7mG3bAXbH7mcswM1CNFF3+GEFnZI5dPxzuOelJR/t2mtVl82a4zEm9KG9Fq7iGfuK9aiWR8Yot1KeuIddPbBL8JnxHy2wW9OySjzAbs8tUI/i5KKmZmQrPH0RmHrFIuVK4C849QtRt57sQaUr1+W6Vto3r7J5jhpZ30wIIfS9hvW/ReB9rbwUQWERWie5Lchfcp7YkKbzuuaddnIjPew2IQDESlXzVW84kXtYKCs8hFgYVn27wU8jqtBCVkr0iHW7YLQTl4SFUzTFCSgAx5KSFHGm/4kqXqpHNdjS687o13MWpxrxLkV1svIp4="}],"legacy":false}
Use a serialized skin profile accepted by your installed LibsDisguises version. Other LibsDisguises tools that produce the same supported disguise data can also supply this value.
Embedding the profile avoids relying on a particular player's current skin. It still requires LibsDisguises and valid profile/texture data; it does not guarantee that textures can load without network access.
How can I disguise a custom boss as another type of entity?
To disguise a custom boss (or a regional boss) as another type of entity, all you need to do is add the following line to the boss config file:
disguise: ENTITY_TYPE
As an example, if you want your custom boss to be disguised as a sheep, you'd do:
disguise: SHEEP
How can I disguise a custom boss as a baby entity?
To disguise a custom boss (or a regional boss) as a baby entity, all you need to do is add the following line to the boss config file:
disguise: HOGLIN:baby
This example requests a baby Hoglin. The :baby suffix applies to mob disguises; use a type that supports a baby appearance in your installed version.
How can I disguise an entity with a custom disguise?
To use a custom LibsDisguises disguise, create its alias in LibsDisguises first, or provide customDisguiseData in the boss configuration so EliteMobs can register a missing alias. An existing alias takes precedence over inline data.
Once that's done, the correct syntax is:
disguise: custom:your_custom_disguise_name
Valid disguises
EliteMobs parses entity disguise names using the installed LibsDisguises DisguiseType enum. Names are case-sensitive, for example SHEEP, ZOMBIE and SKELETON.
Check the official DisguiseType source for the enum names and their Minecraft version annotations. Select the tag matching your installed LibsDisguises version when checking older servers. Bukkit's EntityType list is not the accepted-name list, and not every enum value is available on every server version.
For example, newer versions use wood-specific boat names such as OAK_BOAT; the old generic BOAT entry has a removal-version annotation. Use an entry supported by both your Minecraft version and your installed LibsDisguises build.