Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-88967

Most NBT tags are not kept when a mob converts to another mob

    XMLWordPrintable

Details

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • Minecraft 15w38b, Minecraft 15w44b, Minecraft 1.9 Pre-Release 2, Minecraft 16w42a, Minecraft 1.12, Minecraft 1.12.2, Minecraft 18w02a, Minecraft 18w11a, Minecraft 1.13-pre4, Minecraft 1.13-pre5, Minecraft 1.13-pre6, Minecraft 1.13, Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 19w02a, Minecraft 19w12b, Minecraft 19w13b, 1.14.4, 19w34a, 19w35a, 19w39a, 1.15.1, 1.15.2, 20w08a, 20w09a, 20w10a, 20w11a, 20w12a, 20w15a, 20w17a, 20w18a, 20w19a, 1.16 Pre-release 2, 1.16 Pre-release 3, 1.16 Pre-release 5, 1.16.1, 20w27a, 20w30a, 1.16.2, 1.16.3, 1.16.4, 20w46a, 20w51a, 21w03a, 1.16.5, 21w05b, 21w06a, 21w07a, 21w13a, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19 Pre-release 1, 1.19, 1.19.1 Release Candidate 2, 1.19.2, 1.19.3, 1.20.1, 1.20.2, 23w42a, 23w43b, 1.20.3 Pre-Release 1
    • Confirmed
    • Entities
    • Low
    • Gameplay

    Description

      The bug

      When a mob transforms into another mob (ex. zombie villager → villager, mooshroom → cow), it loses most of its NBT tags. This also affects conversions to the same mob, like slimes and magma cubes splitting.
      It is worth noting CustomName and NoAI are preserved (MC-6773 & MC-67437), so other tags are expected to be saved as well.

      Examples

      The following is a list of tags that aren't transferred between entities.

      From Husk Zombie Skeleton Zombie Villager Villager Villager Pig Piglin Piglin Brute Hoglin Slime Magma Cube Tadpole Mooshroom
      To Zombie Drowned Stray Villager Zombie Villager Witch Zombified Piglin Zombified Piglin Zombified Piglin Zoglin Smaller Slime Smaller Magame Cube Frog Cow
      AbsorptionAmount
      active_effects
      Age, IsBaby N/A 7 N/A N/A N/A N/A N/A
      AngrTime, Brain.memories.minecraft:angry_at.ttl N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      AngryAt, Brain.memories.minecraft:angry_at.value N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      ArmorItems 8 8 8 8 N/A19 N/A19 8 8
      ArmorDropChances
      Attributes
      CanBreakDoors N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      CanPickUpLoot 9
      CustomName 20 20
      CustomNameVisible
      DeathLootTable
      DeathLootTableSeed
      FallFlying 8 8 8 8 N/A19 N/A19 8 8
      Fire N/A5 N/A15 N/A15 N/A15 N/A15 N/A23
      ForcedAge N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      Gossips N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      HandItems 8 8 8 8 N/A19 N/A19 8 8
      HandDropChances
      Health N/A10 N/A21 N/A21
      HurtByTimestamp
      HurtTime
      Invulnerable N/A10
      Leash
      LeftHanded
      Motion
      NoAI N/A4 N/A4 N/A6 11 13 13 N/A17 N/A17 N/A18
      NoGravity
      Offers N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      Passengers1
      PersistenceRequired 14 16 16
      PortalCooldown
      RootVehicle2 12
      Rotation3 22 22
      SleepingX, SleepingY, SleepingZ
      Silent
      Tags
      UUID 23 23
      VillagerData N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      Xp N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
      wasOnGround N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

      1 See MC-193083.
      2 Not an actual tag saved on mobs, but it's the corresponding tag name on player data: the vehicle this entity rides, see also MC-193083.
      3 Desynced, see MC-248587.
      4 Cannot be converted (even when setting DrownedConversionTime with commands), see MC-148935, consider to only not trigger/count down the timer if NoAI is present, and allow value 0 to convert.
      5 Skeletons MUST be in powdered snow to convert, even via commands. Powdered snow extinguishes burning mobs.
      6 Cannot be converted (even when setting StrayConversionTime with commands), consider to only not trigger/count down the timer if NoAI is present, and allow value 0 to convert.
      7 Since zombie villagers use IsBaby instead of Age, the time until growing up/being able to breed again is lost.
      8 The equipment is not dropped, nor brought over to the new form.
      9 Always 1b, MC-73178.
      10 Mob needs to die to convert, cannot be converted by creative players.
      11 MC-183860, fixed.
      12 MC-163767,fixed
      13 MC-67437, fixed.
      14 Always 1b, MC-239883, this could be resolved by making all villagers that spawned naturally be persistent instead and copying the value over.
      15 Converted-to mob cannot burn, if this behavior will ever be toggle-able (for example via entity type tag), this should be synchronized though.
      16 Always 1b.
      17 Cannot be converted (even when setting TimeInOverworld with commands), see MC-172077, consider to only not trigger/count down the timer if NoAI is present, and allow value 0 to convert.
      18 Cannot be converted (even when setting TimeInOverworld with commands), consider to only not trigger/count down the timer if NoAI is present, and allow value 0 to convert.
      19 Loot is dropped due to mob death.
      20 MC-6773, fixed.
      21 Mob needs to die to convert, can be converted by creative players.
      22 Desynced, and randomized, see MC-248587.
      23 Mob splits into multiple mobs, so UUID cannot be preserved for all. However, 1 of the mob should be capable to get it.
      24 Magma cubes can't burn, if this behavior will ever be toggle-able (for example via entity type tag), this should be synchronized though.

      Since zombie villagers can be converted to villagers and vise versa, the following data is problematic due to not being stored on one of the 2 parties, causing loss of data upon converting and converting back to the original form. This should probably be it's own report, but until the rest of this is fixed, it's just another "tags lost on conversion" entry.

      • Zombie villagers don't have ForcedAge, InLove, Inventory, LastGossipDecay, LastRestock, LoveCause, RestocksToday and Willing.
      • Zombie villagers don't use Brain.memories.minecraft:home, Brain.memories.minecraft:job_site, Brain.memories.minecraft:last_woken, Brain.memories.minecraft:last_worked_at_poi, Brain.memories.minecraft:meeting_point and Brain.memories.minecraft:potential_job_site.
      • Villagers don't have CanBreakDoors.

      How to reproduce

      1. Summon a mob with any of the above tags, and convert it.
        /summon minecraft:zombie_villager ~ ~ ~ {Health:10.0f,Invulnerable:1b,Fire:100s,Tags:["foo","bar"],ConversionTime:1}
        
      1. Once the mob converted, look at its NBT data
        /data get entity @e[type=villager,limit=1,sort=nearest]
        

        Note that the tags marked with do not persist

      Attachments

        1. MC-88967.mp4
          3.73 MB
        2. 2019-01-10_17.47.25.png
          2019-01-10_17.47.25.png
          647 kB
        3. 2019-01-10_17.46.57.png
          2019-01-10_17.46.57.png
          1.04 MB
        4. 2019-01-10_17.45.35.png
          2019-01-10_17.45.35.png
          1.60 MB
        5. 2019-01-10_17.44.13.png
          2019-01-10_17.44.13.png
          1.54 MB
        6. 2019-01-10_17.43.39.png
          2019-01-10_17.43.39.png
          1.29 MB
        7. 2019-01-10_17.42.27.png
          2019-01-10_17.42.27.png
          1.44 MB
        8. 2019-01-10_17.41.48.png
          2019-01-10_17.41.48.png
          1.50 MB

        Activity

          People

            Unassigned Unassigned
            FVbico Dhranios
            Votes:
            107 Vote for this issue
            Watchers:
            44 Start watching this issue

            Dates

              Created:
              Updated:
              CHK: