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_player is the same action (use whichever reads better). Provide entity_type for a mob disguise, or player_name/player_uuid for 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

FieldTypeDefaultDescription
entity_typeIdentifieroptionalThe mob type to appear as (e.g. minecraft:zombie). Ignored if a player field is set.
player_nameStringoptionalName of the player to appear as. Resolved from the server’s profile cache.
player_uuidStringoptionalUUID of the player to appear as. Takes priority over player_name.
nbtNBToptionalExtra NBT applied to the mob disguise (e.g. to set a variant or custom name).
overwriteBooleantrueIf false, does nothing when the entity is already disguised.
change_nameBooleantrueWhether the disguise also changes the entity’s shown name — nameplate, chat and multiplayer tab list. Set false to keep the original name.
before_actionEntity Action TypeoptionalRuns on the entity before the disguise is applied.
after_actionEntity Action TypeoptionalRuns 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_name is false. An active apoli:modify_label_render takes priority over the disguise’s name.