Disguise As (Entity Action Type)
Makes the entity appear as another entity — a mob type, or a player.
Makes the entity appear as another entity — a mob type, or a player. Ported from the Sync mod (merging disguise_as and disguise_as_player). Client-side visual; the entity’s actual type/behavior is unchanged.
Type ID: apoli:disguise_as
Alias:
apoli:disguise_as_playeris the same action (use whichever reads better). Provideentity_typefor a mob disguise, orplayer_name/player_uuidfor a player disguise. Player disguises currently show the target’s skin when that player is online; offline players and slim/wide model-swap are not yet supported.
Fields
| Field | Type | Default | Description |
|---|---|---|---|
entity_type | Identifier | optional | The mob type to appear as (e.g. minecraft:zombie). Ignored if a player field is set. |
player_name | String | optional | Name of the player to appear as. Resolved from the server’s profile cache. |
player_uuid | String | optional | UUID of the player to appear as. Takes priority over player_name. |
nbt | NBT | optional | Extra NBT applied to the mob disguise (e.g. to set a variant or custom name). |
overwrite | Boolean | true | If false, does nothing when the entity is already disguised. |
change_name | Boolean | true | Whether the disguise also changes the entity’s shown name — nameplate, chat and multiplayer tab list. Set false to keep the original name. |
before_action | Entity Action Type | optional | Runs on the entity before the disguise is applied. |
after_action | Entity Action Type | optional | Runs on the entity after the disguise is applied. |
Examples
"entity_action": {
"type": "apoli:disguise_as",
"entity_type": "minecraft:armor_stand"
} Disguises the entity as an armor stand.
"entity_action": {
"type": "apoli:disguise_as_player",
"player_name": "Notch"
} Disguises the entity as the player “Notch” (shown with their skin if they are online).
How the disguise renders
For a mob disguise the client builds a hidden copy of that entity type and draws it in place of the real one, so everything about the disguise is client-side — hitbox, collisions and behaviour are unchanged.
That copy is kept in step with the entity it is hiding:
- Animations play. Walking, swimming, sneaking, the hurt flash, death and pose all follow the real entity.
- Attacks animate too. Swinging, and the attack animations of mobs that have their own — an Iron Golem’s arm swing, a Warden’s lunge — fire when the disguised entity attacks.
- Fire shows on the disguise when the real entity is burning.
- The disguise is silent. It never plays the disguise mob’s idle or attack sounds; only the real entity’s own sounds are heard.
- Particle effects belonging to the disguise mob (an Enderman’s portal particles, for instance) do appear.
Disguising as something that is not a living entity — an arrow, a boat, an item — renders correctly but stays still; only living disguises are animated.
An action that damages without a swing (a bare apoli:damage, say) produces no attack animation, because nothing tells the client an attack happened.
Since 2026-07-10 a disguise also changes the holder’s name in chat and the multiplayer tab list (not just the nameplate), unless
change_nameisfalse. An active apoli:modify_label_render takes priority over the disguise’s name.