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

Loot tables' explorer_map function requires structure tag without # destination input, rather than all structure IDs


    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • 1.18.2, 1.19, 1.20.2, 23w42a, 23w43b
    • None
    • Community Consensus
    • Data Packs, Loot tables
    • Low
    • Platform

      The bug

      In 1.18/1.19 structure generation was rewritten changing around IDs and more. The explorer_map function in loot tables doesn't seem to be updated with these changes, causing any structure ID input to not function. It instead only takes structure tags, but no # to signal it's a tag. (eg "village" is valid because of "#village".) This is inconsistent with every other place that references tags, as they either use the field key "tag" or precede the value with #.

      This loot table should locate a desert village, and put it on a map, but just ends up providing an empty map instead, as there's no structure tag called "minecraft:village_desert".

        "pools": [
            "rolls": 1,
            "entries": [
                "type": "minecraft:item",
                "name": "minecraft:map",
                "functions": [
                    "function": "minecraft:exploration_map",
                    "destination": "minecraft:village_desert",
                    "decoration": "mansion",
                    "zoom": 1,
                    "skip_existing_chunks": false

      Expected is that either a # is required (like dimension types' infiniburn field), or the "destination" field follows the format used in other placed

       "destination": "structure_id", 
      "destination": ["list", "of", "ids"], 
      "destination": "#structure_tag"

      Original description

      Custom structure support, added in 1.18.2, didnt update the function "explorer_map" "destination" field for loot tables. It relies on the old /locate system it seems because like that system it first of all, doesnt need a namespace, and second of all if you for example input "village" it will just select the nearest village, exactly like the old system. "/locate village" is outdated with the /locate command since it has been split up, into one command for each biome specific village.

      If you input a structure that wasnt part of the old /locate system, the loot table will just give an unfilled, normal map.

            Unassigned Unassigned
            jirauser71590 user-f2760 (Inactive)
            14 Vote for this issue
            12 Start watching this issue