Previously, Zombie villagers with a specific profession and biome variant that were saved to a structure jigsaw piece would retain this data upon generated in a world. However, as of 1.21.6 onward (only discovered in 1.21.7), these details are not saved, resulting in the zombie villager generating with a random profession and biome variant. This bug also seems to occur with the /place structure command but not as /place template.
Steps to Reproduce:
Download the attached datapack. It contains a structure that simply contains a zombie librarian villager that’s jungle variant and level 2.
Generate into a world with the datapack and note the many zombie villagers across the surface. Note their professions and biome variant.
Generate one with the /place structure command and observe the zombie villager produced from it. Example command: /place structure zombievillagertest:librarian
Generate one with the /place template command and observe the zombie villager produced from it. Example command: /place template zombievillagertest:librarian
Place a structure block down and load in the structure “zombievillagertest:librarian”. Observe the profession and biome variant.
Expected Result:
All the zombie villagers generated will be librarian, jungle, and level 2.
Actual Result:
The zombie villagers generated with the /place template command and via loading from a structure block are the only ones to maintain their profession and variant. Every other method resulted in random professions and biome relevant to the biome it generated in. It will however maintain the level of the villager consistently with all methods listed.
Can confirm, this is very likely caused by an imperfection in the fix for MC-295944.