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

Advancements inherit "hidden": "true" field from their parent and cannot be overwritten

    Details

    • Confirmation Status:
      Confirmed

      Description

      The bug

      Children of hidden advancements are always hidden as well even if they explicitly set hidden to false.

      In-depth description

      For the purposes of this bug report I will be using the Minecraft 'story' advancement tree to explain, overriding the default in a custom folder within the worlds directory. This is reproducible with custom advancements, but I wanted to use the vanilla ones for the sake of making the demonstration clearer.

      Parent advancements with their "hidden" field set to "true" will pass this field value on to any and all children advancements within the tab, meaning that even if the parent advancement is completed the children icons will not display until they are also complete.
      Specifying "hidden": "false" within these children's .json file does not avoid this issue, limiting options of guiding players down branches of a story once they have discovered an initial secret within a custom map or semi-vanilla survival world.

      Expected behavior

      When the hidden advancement was unlocked, it's childrens icons would then display as part of the tree due to having no "hidden" field specified within their .json file (therefore defaulting to false in theory). A hidden advancement not achieved by a player should also not show it's children (as is the current working implementation)

      Actual behavior

      When the hidden advancement was unlocked, it's childrens icons do not show up in the advancements screen despite having no mention of "hidden": "false" within their .json file.

      How to reproduce

      1. Download the attached advancements root.json and child.json and place them in the following directory of your world folder
        data\advancements\custom
        
      2. Open the world or use /reload
      3. Grant yourself the hidden parent advancement
        /advancement grant @s only custom:root
        
      4. Open the advancement GUI
        → The child advancement is not visible
      5. Grant yourself the child advancement to make sure it was loaded
        /advancement grant @s only custom:child
        

        Attachments

        1. child.json
          0.4 kB
        2. Hidden.png
          Hidden.png
          44 kB
        3. Hidden Tool Complete.png
          Hidden Tool Complete.png
          43 kB
        4. Normal.png
          Normal.png
          45 kB
        5. root.json
          0.4 kB

          Activity

            People

            • Assignee:
              dinnerbone [Mojang] Dinnerbone (Nathan Adams)
              Reporter:
              ZombieBaby DaUltraMarine
            • Votes:
              5 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                CHK: