Entity format

This feature is exclusive to Java Edition.
 

Entities are stored in the entities folder of respective dimension folders. It is stored like Minecraft Anvil format files, which are named in the form r.x.z.mca.

Directory structure

  • File directory.png: Sprite image for directory in Minecraft world save directory
    • File directory.png: Sprite image for directory in Minecraft entities: Contains entity files for the Overworld. These used to be part of region.
      • File file.png: Sprite image for file in Minecraft r.<x>.<z>.mca
    • File directory.png: Sprite image for directory in Minecraft DIM-1: Contains region files of the Nether.
      • File directory.png: Sprite image for directory in Minecraft entities
        • File file.png: Sprite image for file in Minecraft r.<x>.<z>.mca
    • File directory.png: Sprite image for directory in Minecraft DIM1: Contains region files of the End.
      • File directory.png: Sprite image for directory in Minecraft entities
        • File file.png: Sprite image for file in Minecraft r.<x>.<z>.mca

Entity inheritance

Abstract classes

  • Projectile
  • Vehicle Entity
  • Interfaces

    This article needs cleanup to comply with the style guide.
     [discuss]
    Please help improve this page. The talk page may contain suggestions.
  • Enemy
  • Flying Animal
  • Has Custom Inventory Screen
  • Inventory Carrier
  • Item Steerable
  • Item Supplier
  • Neutral Mob
  • Ownable Entity
  • Player Rideable
  • Powerable Mob
  • Ranged Attack Mob
  • Saddleable
  • Abstract Horse
  • Shearable
  • Variant Holder
  • NBT structure

    Every entity is an unnamed [NBT Compound / JSON Object] compound contained in the Entities list of a chunk file. The sole exception is the Player entity, stored in level.dat, or in <player>.dat files on servers.

    • [NBT Compound / JSON Object] The root tag.
      • [Int] DataVersion: Version of the chunk data.
      • [Int Array] Position: Position of this chunk.
        • [Int]: X coordinate.
        • [Int]: Z coordinate.
      • [NBT List / JSON Array] Entities: All the entities. Each compound in this list defines an entity in this chunk.

    Entity format

    All entities are with the following structure:

    • [NBT Compound / JSON Object] Entity data
      • [Short] Air: How much air the entity has, in game ticks. Decreases when unable to breathe (except suffocating in a block). Increases when it can breathe. [Short] Air being <= -20 game ticks (while still unable to breathe) on a given game tick causes the entity to immediately lose 1 health to drowning damage. This resets [Short] Air to 0 game ticks. Most mobs can have a maximum of 300 game ticks (15 seconds) of [Short] Air, while dolphins can reach up to 4800 game ticks (240 seconds), and axolotls have 6000 game ticks (300 seconds).
      • [NBT Compound / JSON Object][NBT List / JSON Array][String] CustomName: The custom name text component of this entity. Appears in player death messages and villager trading interfaces, as well as above the entity when the player's cursor is over it. May be empty or not exist.
      • [Boolean] CustomNameVisible: 1 or 0 (true/false) - if true, and this entity has a custom name, the name always appears above the entity, regardless of where the cursor points. If the entity does not have a custom name, a default name is shown. May not exist.
      • [NBT Compound / JSON Object] data: Any custom data. Used to store data the custom_data entity component which can be checked by predicates.
      • [Double] fall_distance: Distance the entity has fallen. Larger values cause more damage when the entity lands.
      • [Short] Fire: Number of game ticks until the fire is put out. Negative values reflect how long the entity can stand in fire before burning. Default to -20 when not on fire.
      • [Boolean] Glowing: 1 or 0 (true/false) - if true, the entity has a glowing outline.
      • [Boolean] HasVisualFire: 1 or 0 (true/false) - if true, the entity visually appears on fire, even if it is not actually on fire.
      • [String] id: String representation of the entity's ID. Does not exist for the Player entity.
      • [Boolean] Invulnerable: 1 or 0 (true/false) - if true, the entity should not take damage. This applies to living and nonliving entities alike: mobs should not take damage from any source (including potion effects), and cannot be moved by fishing rods, attacks, explosions, or projectiles, and objects such as vehicles and item frames cannot be destroyed unless their supports are removed. Invulnerable player entities are also ignored by any hostile mobs. Note that these entities can be damaged by players in Creative mode.
      • [NBT List / JSON Array] Motion: List of 3 [Double] doubles describing the current dX, dY, and dZ velocity of the entity in meters per game tick. Only allows between 10.0 and -10.0 (inclusive), else resets to 0.
      • [Boolean] NoGravity: 1 or 0 (true/false) - if true, the entity does not fall down naturally. Set to true by striders in lava.
      • [Boolean] OnGround: 1 or 0 (true/false) - if true, the entity is touching the ground.
      • [NBT List / JSON Array] Passengers: The data of the entities that are riding this entity.
        • [NBT Compound / JSON Object]: The same as this format (recursive). Note that each passenger entity, and the ridden entity (the vehicle) have equal control of the movement of the ridden entity. The topmost entity controls spawning conditions when the vehicle entity is created by a mob spawner.
          • Tags common to all entities see Template:Nbt inherit/entity/template
          • Tags unique to this passenger entity.
      • [Int] PortalCooldown: The number of game ticks before which the entity may be teleported back through a nether portal. Initially starts at 300 game ticks (15 seconds) after teleportation and counts down to 0.
      • [NBT List / JSON Array] Pos: List of 3 [Double] doubles describing the current X, Y, and Z position (coordinates) of the entity.
      • [NBT List / JSON Array] Rotation: List of 2 floats representing the rotation of the entity's facing direction, in degrees. Facing direction can also be described as a looking direction, for most entity's that have heads.
        • [Float] 0: The yaw of the entity's orientation. Yaw is the rotation around the Y axis (called yaw). Values vary from -180 degrees to +180 degrees, rather than from 0 to 360. As the entity turns to the right, this value goes up, and as the entity turns left, this value does down. See table of specific values here: Chunk format/Entity/Rotation (yaw).
        • [Float] 1: The pitch of the entity's orientation. Pitch is the offset from the horizon. Pitch = 0 means the direction is horizontal. A positive pitch (pitch > 0) means the entity is facing downward to some degree, or that the facing direction is facing below the horizon (toward the ground). A negative pitch (pitch > 0) means the entity is facing above the horizon (toward higher ground of the sky). Pitch is always between -90 and +90 degrees, where pitch = -90 means facing directly down, and pitch = +90 means facing directly up.
      • [Boolean] Silent: 1 or 0 (true/false) - if true, this entity is silenced. May not exist.
      • [NBT List / JSON Array] Tags: List of scoreboard tags of this entity. It is not preserved if it is removed.
      • [Int] TicksFrozen: Optional. How many game ticks the entity has been freezing. Although this tag is defined for all entities, it is actually only used by mobs that are not in the freeze_immune_entity_types entity type tag. Increases while in powder snow, even partially, up to a maximum of 300 game ticks (15 seconds), and decreases at double speed while not in powder snow.
      • [Int Array] UUID: This entity's Universally Unique IDentifier. The 128-bit UUID is stored as four 32-bit integers ([Int] Ints), ordered from most to least significant.

    Mobs

    Mobs are a subclass of Living Entity with additional tags to store their health, attacking/damaged state, potion effects, and more depending on the mob. Players and armor stands are a subclass of living entities.

    • [NBT Compound / JSON Object] Mob data
      • Tags common to all entities see Template:Nbt inherit/entity/template
      • [Float] AbsorptionAmount: number of extra health added by Absorption effect.
      • [NBT List / JSON Array] active_effects: The list of potion effects on this mob. May not exist.
        • [NBT Compound / JSON Object] A potion effect
          • [Boolean] ambient: 1 or 0 (true/false) - if true, this effect is provided by a Beacon and therefore should be less intrusive on screen.
          • [Byte] amplifier: The potion effect level. 0 is level 1.
          • [Int] duration: The number of game ticks before the effect wears off. -1 when infinite.
          • [NBT Compound / JSON Object] hidden_effect: Lower amplifier effect of the same type, this replaces the above effect when it expires. (The duration of the effect still decreases in here too)
          • [String] id: The effect name.
          • [Boolean] show_icon: 1 or 0 (true/false) - if true, effect icon is shown; if false, no icon is shown.
          • [Boolean] show_particles: 1 or 0 (true/false) - if true, particles are shown (affected by ambient); if false, no particles are shown.
      • [NBT List / JSON Array] attributes: A list of Attributes for this mob. These are used for many purposes in internal calculations, and can be considered a mob's "statistics". Valid attributes for a given mob are listed in the main article.
        • [NBT Compound / JSON Object] An individual attribute.
          • [String] id: The name of this attribute.
          • [Double] base: The base value of this attribute.
          • [NBT List / JSON Array] modifiers: A list of Modifiers acting on this attribute. Modifiers alter the base value in internal calculations, without changing the original copy. Note that a modifier never modifies base to be higher than its maximum or lower than its minimum for a given attribute.
            • [NBT Compound / JSON Object] An individual modifier.
              • [Double] amount: The amount by which this modifier modifies the base value in calculations.
              • [String] id: A Resource location unique to this modifier. Used to identify the modifier so that the correct modifier can be added or removed.
              • [String] operation: add_value, add_multiplied_base, add_multiplied_total. Defines the operation this modifier executes on the attribute's base value.
                • add_value: Increment XbyAmount.
                • add_multiplied_base: Increment YbyX*Amount.
                • add_multiplied_total: Set Y = Y * (1 + Amount) (equivalent to Increment YbyY * Amount).
            • The specified modifiers are applied to the attribute, probably whenever the attribute is modified.​ To compute the effective value of the attribute, the game:
              1. Sets X = Base.
              2. Executes all add_value modifiers.
              3. Sets Y = X.
              4. Executes all add_multiplied_base modifiers.
              5. Executes all add_multiplied_total modifiers.
              • The value Y is the final effective value of the attribute.​
      • [NBT Compound / JSON Object] Brain: Everything this entity has to keep in mind.
        • [NBT Compound / JSON Object] memories: Used for complex behaviors.​ The only mobs that have this tag are described below.
          • Piglin memories:
            • [NBT Compound / JSON Object] minecraft:admiring_disabled: Piglins with this tag do not barter by right-clicking and are not distracted by gold items on the ground; set when converting, when attacked or when admiring an item.
              • [Boolean] value: 1 or 0 (true/false) - if true, admiring is disabled.
              • [Long] ttl: The number of game ticks before this memory is removed.
            • [NBT Compound / JSON Object] minecraft:admiring_item: If the piglin is admiring an item.
              • [Boolean] value: 1 or 0 (true/false) - if true, admiring an item.
              • [Long] ttl: The number of game ticks before this memory is removed, the piglin throws back another item when this reaches 0, if it held a gold ingot.
            • [NBT Compound / JSON Object] minecraft:angry_at: The target of this piglin. Set after a piglin or piglin brute is attacked.
              • [Int Array] value: Universally Unique IDentifier of the entity that the piglin targets, stored as four ints.
              • [Long] ttl: The number of game ticks before this memory is removed.
            • [NBT Compound / JSON Object] minecraft:hunted_recently: If the piglin just hunted, and as such, don't hunt for a while. Set after hunting or spawning in a bastion remnant.
              • [Boolean] value: 1 or 0 (true/false) - if true, the piglin just hunted and cannot hunt.
              • [Long] ttl: The number of game ticks before this memory is removed.
            • [NBT Compound / JSON Object] minecraft:universal_anger: If the piglin is being universally angered. Only set when universal anger gamerule is enabled.
              • [Boolean] value: 1 or 0 (true/false) - if true, universally angered.
              • [Long] ttl: The number of game ticks before this memory is removed.
          • Piglin Brute memories:
            • [NBT Compound / JSON Object] minecraft:angry_at: The target of this piglin brute. Set after a piglin or piglin brute is attacked.
              • [Int Array] value: Universally Unique IDentifier of the entity that the piglin targets, stored as four ints.
              • [Long] ttl: The number of game ticks before this memory is removed.
            • [NBT Compound / JSON Object] minecraft:home: Where the piglin brute's patrol point is. Set after spawning in a bastion remnant.
              • [NBT Compound / JSON Object] value: The value of this memory.
                • [String] dimension: The dimension ID of the bed or of the patrol point.
                • [Int Array] pos: The X, Y, and Z coordinates of the bed or the patrol point
          • Warden memories:
            • [NBT Compound / JSON Object] minecraft:is_emerging: Exists if the warden is emerging.
              • [NBT Compound / JSON Object] value: An empty compound tag.
            • [NBT Compound / JSON Object] minecraft:dig_cooldown: The warden doesn't dig down if this memory exists.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 1200 game ticks (60 seconds).
            • [NBT Compound / JSON Object] minecraft:is_sniffing: Exists if the warden is sniffing.
              • [NBT Compound / JSON Object] value: An empty compound tag.
            • [NBT Compound / JSON Object] minecraft:recent_projectile: Exists if the warden was stimulated by a projectile recently.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 100 game ticks (5 seconds).
            • [NBT Compound / JSON Object] minecraft:roar_sound_cooldown: The warden doesn't roar if this memory exists.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 60 game ticks (3 seconds).
            • [NBT Compound / JSON Object] minecraft:roar_sound_delay: The warden doesn't roar if this memory exists.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 25 game ticks (1.25 seconds).
            • [NBT Compound / JSON Object] minecraft:touch_cooldown: The warden doesn't increase anger at an entity by touching it if this memory exists.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 20 game ticks (1 second).
            • [NBT Compound / JSON Object] minecraft:vibration_cooldown: The warden doesn't listen for vibrations if this memory exists.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 40 game ticks (2 seconds).
          • Camel memories:
            • [NBT Compound / JSON Object] minecraft:gaze_cooldown_ticks: Optional. If the camel is in a cool down for randomly looking around.
              • [Int] value: The number of game ticks before the camel can randomly look around again and this tag is removed.
          • Axolotl memories:
            • [NBT Compound / JSON Object] minecraft:has_hunting_cooldown: If the axolotl is in a hunting cooldown .
              • [Boolean] value: 1 or 0 (true/false) - if true, the axolotl just hunted.
              • [Long] ttl: The number of game ticks before this memory is removed.
            • [NBT Compound / JSON Object] minecraft:play_dead_ticks: Optional. If the axolotl is pretending to be dead.
              • [Int] value: The number of game ticks before the axolotl stops to play dead and this tag is removed.
          • Villager memories:
            • [NBT Compound / JSON Object] minecraft:home: Where this villager's bed is.
              • [NBT Compound / JSON Object] value: The value of this memory.
                • [String] dimension: The dimension ID of the bed or of the patrol point.
                • [Int Array] pos: The X, Y, and Z coordinates of the bed or the patrol point
            • [NBT Compound / JSON Object] minecraft:job_site: Where this villager's job site block is.
              • [NBT Compound / JSON Object] value: The value of this memory.
                • [String] dimension: The dimension ID of the job site block.
                • [Int Array] pos: The X, Y, and Z coordinates of the job site block.
            • [NBT Compound / JSON Object] minecraft:last_slept: The game tick that the villager last slept in a bed.
              • [Long] value: The value of this memory.
            • [NBT Compound / JSON Object] minecraft:last_woken: The game tick that the villager last woke up from a bed.
              • [Long] value: The value of this memory.
            • [NBT Compound / JSON Object] minecraft:last_worked_at_poi: The game tick that the villager last worked at their job site.
              • [Long] value: The value of this memory.
            • [NBT Compound / JSON Object] minecraft:meeting_point: Where this villager's meeting point is.
              • [NBT Compound / JSON Object] value: The value of this memory.
                • [String] dimension: The dimension ID of the meeting point.
                • [Int Array] pos: The X, Y, and Z coordinates of the meeting point.
            • [NBT Compound / JSON Object] minecraft:potential_job_site: Where this villager's potential job site block is.
              • [NBT Compound / JSON Object] value: The value of this memory.
                • [String] dimension: The dimension ID of the potential job site block.
                • [Int Array] pos: The X, Y, and Z coordinates of the potential job site block.
            • [NBT Compound / JSON Object] minecraft:golem_detected_recently: If the villager has detected an iron golem recently.
              • [Boolean] value: 1 or 0 (true/false) - if true, the villager just saw an iron golem.
              • [Long] ttl: The number of game ticks before this memory is removed.
          • Frog memories:
            • [NBT Compound / JSON Object] minecraft:is_in_water: Only exists if the frog is in water.
              • [NBT Compound / JSON Object] value: An empty compound tag.
            • [NBT Compound / JSON Object] minecraft:is_pregnant: Only exists if the frog is pregnant.
              • [NBT Compound / JSON Object] value: An empty compound tag.
          • Allay memories:
            • [NBT Compound / JSON Object] minecraft:item_pickup_cooldown_ticks: The number of game ticks before the allay goes to pick up item again.
              • [Int] value: The value of this memory, initially set to 100 game ticks (5 seconds), decreasing by 1 every tick.
            • [NBT Compound / JSON Object] minecraft:liked_noteblock: The note block that the allay likes.
              • [NBT Compound / JSON Object] value: The value of this memory.
                • [String] dimension: The ID of the dimension where the note block is.
                • [Int Array] pos: The X, Y, and Z coordinates of the note block.
            • [NBT Compound / JSON Object] minecraft:liked_noteblock_cooldown_ticks: The number of ticks before the allay stops putting items at the liked note block.
              • [Int] value: The value of this memory, initially set to 600 game ticks (30 seconds), decreasing by 1 every tick.
            • [NBT Compound / JSON Object] minecraft:liked_player: The player that the allay likes.
              • [Int Array] value: The player's UUID, stored as four ints.
          • Goat memories:
            • [NBT Compound / JSON Object] minecraft:long_jump_cooling_down: Optional. If the goat is in a cool down after a long jump.
              • [Int] value: The number of game ticks before the goat can long jump again and this tag is removed.
            • [NBT Compound / JSON Object] minecraft:ram_cooldown_ticks: Optional. If the goat is in a cool down after ram.
              • [Int] value: The number of game ticks before the goat can ram again and this tag is removed.
          • Sniffer memories:
            • [NBT Compound / JSON Object] minecraft:sniffer_explored_positions: The last 20 positions in which the sniffer has dug, cannot dig in these positions.
              • [Int Array] value: The coordinates of a block at which the sniffer has dug. Can have up to 20 blocks stored.
          • Memories shared by multiple mobs:
            • [NBT Compound / JSON Object] minecraft:is_tempted: If the axolotl, camel, or goat is tempted by the player.
              • [Boolean] value: 1 or 0 (true/false) - if true, the mob is tempted.
            • [NBT Compound / JSON Object] minecraft:sniff_cooldown: The warden and sniffer don't sniff if this memory exists.
              • [NBT Compound / JSON Object] value: An empty compound tag.
              • [Long] ttl: The number of game ticks before this memory is removed, initially set to 100 game ticks (5 seconds).
            • [NBT Compound / JSON Object] minecraft:temptation_cooldown_ticks: Optional. If the axolotl, camel, or goat is in a cool down after being tempted.
              • [Int] value: The number of game ticks before the mob can be tempted again and this tag is removed.
      • [Boolean] CanPickUpLoot: 1 or 0 (true/false) - if true, the mob can pick up loot (wear armor it picks up, use weapons it picks up).
      • Tags common to all mobs with drops from loot tables see Template:Nbt inherit/death_lootable/template
      • [Short] DeathTime: Number of ticks the mob has been dead for. Controls death animations. 0 when alive.
      • [NBT Compound / JSON Object] drop_chances: Map between equipment slot type and chance value. If not specified or removed, chance is assumed as default (0.085f). Chance value between 0.0f and 1.0f applies a random damage value if dropped. For values higher than 1.0f the item damage is preserved. Equipment picked up by mobs is set to 2.0f.
        • [Float] head : Chance value for the head item to drop.
        • [Float] chest : Chance value for the chest item to drop.
        • [Float] legs : Chance value for the legs item to drop.
        • [Float] feet : Chance value for the feet item to drop.
        • [Float] mainhand : Chance value for the mainhand item to drop.
        • [Float] offhand : Chance value for the offhand item to drop.
        • [Float] body : Chance value for the body item to drop.
        • [Float] saddle : Chance value for the saddle item to drop.
      • [NBT Compound / JSON Object] equipment: Map between equipment slot type and item stack.
        • [NBT Compound / JSON Object] head: The item being held in mob's head slot.
        • [NBT Compound / JSON Object] chest: The item being held in the mob's chest slot.
        • [NBT Compound / JSON Object] legs: The item being held in the mob's legs slot.
        • [NBT Compound / JSON Object] feet: The item being held in the mob's feet slot.
        • [NBT Compound / JSON Object] mainhand: The item being held in the mob's main hand.
        • [NBT Compound / JSON Object] offhand: The item being held in the mob's off hand.
        • [NBT Compound / JSON Object] body: The item being held in the mob's body slot.
        • [NBT Compound / JSON Object] saddle: The item being held in the mob's saddle slot.
          • A single item stack see Template:Nbt inherit/itemnoslot/template
      • [Byte] FallFlying: Setting to 1 for non-player entities causes the entity to glide as long as they are wearing elytra in the chest slot. Can be used to detect when the player is gliding without using scoreboard statistics.
      • [Float] Health: number of health the entity has.
      • [Int Array] home_pos: Position of the "home" position. Mobs will limit their pathfinding to stay within the indicated area. Some mobs, like bats, slimes, magma cubes, phantoms and ender dragons may ignore it. Interacting with leashes or riding may change the home position of the mob.
      • [Int] home_radius: Max radius of the data home_pos.
      • [Int] HurtByTimestamp: The last time the mob was damaged, measured in the number of ticks since the mob's creation. Updates to a new value whenever the mob is damaged, then updates again 101 ticks later for reasons unknown. Can be changed with commands, but the specified value does not affect natural updates in any way, and is overwritten if the mob receives damage.
      • [Short] HurtTime: Number of ticks the mob turns red for after being hit. 0 when not recently hit.
      • [NBT Compound / JSON Object][Int Array] leash: Information about where this leash connects to. Does not exist if the entity is not leashed.
        • The int array form ([Int Array]) represents the block location of the fence post that the leash is attached to (3 integers representing the X, Y, and Z coordinates respectively), or a compound containing information about the entity the leash is attached to.
          The compound form ([NBT Compound / JSON Object]) contains the UUID of the entity that the leash is attached to.
        • [Int Array] UUID: This Universally Unique IDentifier of the entity that the leash is attached to.
      • [Boolean] LeftHanded: 1 or 0 (true/false) - if true, the mob renders the main hand as being left.
      • [NBT Compound / JSON Object] locator_bar_icon: The waypoint's icon visual data in the locator bar.
        • [Int] color: The waypoint's color stored as 32-bit signed integer using two's complement, assuming the color is fully opaque.
        • [String] style: The waypoint's style name from waypoint_style directory in a resource pack.
      • [Boolean] NoAI: 1 or 0 (true/false) - Setting to true disables the mob's AI. The mob does not and cannot move, to the extent of not falling when normally able.
      • [Boolean] PersistenceRequired: 1 or 0 (true/false) - if true, the mob must not despawn naturally.
      • [Int Array] sleeping_pos: The coordinate of where the entity is sleeping, absent if not sleeping.
      • [String] Team: This tag is actually not part of the NBT data of a mob, but instead used when spawning it, so it cannot be tested for. It makes the mob instantly join the scoreboard team with that name.

    Mob-specific data

    Many mobs additionally have individual data.

    Projectiles

    Projectiles are a subclass of Entity.

    Items and XP Orbs

    Items and XPOrbs are a subclass of Entity.

    Vehicles

    Vehicles are subclasses of Entity.

    Dynamic tiles

    Dynamic tiles are a subclass of Entity and are used to simulate realistically moving blocks.

    Display

    Display entities are subclasses of Entity.

    Other

    Other entity types that are a subclass of Entity but do not fit into any of the above categories.

    History

    Java Edition
    1.915w31aAdded tags HandItems, ArmorItems, HandDropChances, and ArmorDropChances to Living.
    The Tag Equipment (under Living) has become deprecated.
    The Tag DropChances (under Living) has become deprecated.
    1.1720w45aEntities have been extracted from main (terrain) chunks and are now stored in separate entities directory (similar to POI storage). Those new files are still region files with NBT.
    1.1922w11aThe Id tag for each effect in a mob's ActiveEffects tag is now a [Int] TAG_Integer instead of a [Byte] TAG_Byte.
    1.20.223w32aIn NBT format for entity type mooshroom, removed EffectId and EffectDuration, and added stew_effects, with the same format as effects field in suspicious_stew item format.
    In NBT format for entity type area_effect_cloud, renamed Effects to effects.
    In NBT format for entity type arrow, renamed CustomPotionEffects to custom_potion_effects.
    In NBT format for living entities (players, armor stands, and all mobs), renamed ActiveEffects to active_effects, and inside that renamed Ambient to ambient, Amplifier to amplifier, Duration to duration, HiddenEffect to hidden_effect, Id to id, ShowIcon to show_icon, ShowParticles to show_particles, and changed id from a [Int] TAG_Integer to a [String] TAG_String.
    1.20.323w42aIn NBT format for entity type tnt, added block_state, and renamed Fuse to fuse.
    23w43aIn NBT format for entity type arrow and spectral_arrow, added item.
    In NBT format for entity type trident, renamed Trident to item.
    1.20.523w51aAdded [Byte] armor tag in wolf to denote whether a wolf is wearing wolf armor.
    24w05aReplaced [NBT Compound / JSON Object] ArmorItem tag in horse with [NBT Compound / JSON Object] body_armor_item.
    Replaced [NBT Compound / JSON Object] DecorItem tag in llama with [NBT Compound / JSON Object] body_armor_item.
    Replaced [Byte] armor tag in wolf with [NBT Compound / JSON Object] body_armor_item.
    24w06aAll block positions are now stored as an array of 3 integers instead of a map of X, Y, and Z.
    Leash in all leashable entities has been renamed to leash.
    PatrolTarget in patrolling mobs has been renamed to patrol_target.
    1.21.424w44aIn NBT format for entity type tnt_minecart, added optional field explosion_speed_factor.
    The TNTFuse field of TNT Minecarts has been renamed to fuse.
    1.21.525w02aThe [NBT Compound / JSON Object] ArmorDropChances, [NBT Compound / JSON Object] HandDropChances, and [NBT Compound / JSON Object] body_armor_drop_chance fields have been merged into a [NBT Compound / JSON Object] drop_chances field.
    Drop chances with a default value will no longer be stored, and the [NBT Compound / JSON Object] drop_chances field is removed entirely if all defaults.
    Area effect clouds have a new field: [Float] potion_duration_scale.
    25w03aThe [NBT Compound / JSON Object] ArmorItems, [NBT Compound / JSON Object] HandItems, and [NBT Compound / JSON Object] body_armor_item fields have been merged into an [NBT Compound / JSON Object] equipment field.
    25w07aPos, Motion, and Rotation values without the correct number of components (3, 3, and 2 respectively) will now be fully discarded, instead of only selecting the specified components.
    The [Int] SleepingX, [Int] SleepingY, and [Int] SleepingZ fields have been collected into a single [Int Array] sleeping_pos field
    25w09aThe FallFlying field will no longer be preserved if removed.
    The Health and Air fields now default to their respective maximum value if not specified.
    25w10aCustom data (previously present only on markers) is now available on all entities.
    1.21.625w15aarea_effect_cloud: the Particle field has been renamed to custom_particle, and now always functions as an exact override for the default colored entity_effect particle.
    25w18aAdded home_pos and home_radius fields to all mobs.
    25w19atnt: The entity that primed the TNT is now stored in an optional owner field (UUID of Living entity).
    vex: The owner of a vex is now stored in an optional owner field (UUID of Mob).

    References

    Navigation