mojira.dev
MC-184740

Structures generated in previous versions are not recognised as valid structures, causing mobs not to spawn

Structures generated prior to 20w21a (e.g. 1.15.2, 20w20b, etc.) are not considered valid structures within this version.

As such, mob spawns specific to certain structures (e.g. Guardians for Water Temples, Wither Skeletons for Nether Fortresses, etc.) no longer occur if the structure was generated from a previous version.

This is likely caused by the changing of structure names to full lowercase.

Related issues

Attachments

Comments

migrated
[media][media][media][media][media][media][media][media][media][media][media][media]
migrated

Yep. My guardian farm no longer works.

migrated

oh the pain of having completed my new and only witch farm yesterday in 20w20b. Oh well hopefully they fix it soon.

migrated

When loading for the first time on 20w21a snapshot I could still hear the Guardians for a second or two. But not a single one to be found. 3 days of creating a farm wasted.  😞

migrated

Can confirm. My wither skeleton farm in the soul-sand valley isn't spawning any mobs. I would recommend not updating until this gets resolved. 

migrated

My witch farm no longer works either. It becomes a general mob farm since mobs such as zombies, skeletons and creepers spawn inside witch hut. 

migrated

Ok so while this seems to be a good explanation, I created a world in 20w20b and updated to 20w21a, and the Temple spawning still worked.

galaxy_2alex

As always, please keep the comment section free from "Me too" posts, only comment if you have potentially useful information.

@Joshua von Damm: You likely generated the temple in 20w21a, and not in a previous version. You may also refer to the entire structure spawning, this just refers to the area being designated as such in code.

migrated

Will this be possible to be fixed? I don't have a backup of my world as when I tried to create one my game just crashed. Is there anything I can do on my end to fix it or help?

migrated

it appears this can be fixed by simply loading the world in the previous snapshot (20w20b) and monuments and other structures will spawn mobs as usual

migrated

Unfortunately the new Minecraft launcher no longer shows the previous snapshots,, only the latest, or i would have also gone back to 20w20b, where my witch farm worked and pillager outposts were working properly

galaxy_2alex

@Gavin Pitt: That is incorrect - you need to just have a separate installation, that lets you change the version, and you can use previous snapshots as well.

migrated

Should we assume that our farms will all work again in the next snapshot?

supeika

I have posted some similar, but this is a separate report. If you see MC-184311 , you will notice that this is a serious bug. But the nether ones are a weird case, because sometimes they still spawn mobs, but don't count as structures for /locate.

supeika

I will also see if my report continues or if it is worse than before. Extra: I noticed that wither skeletons, magma cubes and more structure mobs spawn on fortresses, but for bastions piglins don't do that.

supeika

Also, MC-184308 probably is a consequence of this bug and my bug. Extra: on one of my friend's world, guardians still spawn. So, we are on one of the most complex bug for normal people ever.

migrated

When I reverted my world to 20w20b the problem was resolved for a short amount of time, but after about 10 minutes the biome switched from nether fortress to nether wastes again.

migrated

Don't update to this snapshot if you have the option, and if you have updated, I would recommend just living with it until its fixed, unless you want to deal with the chunk errors of moving back an update.

galaxy_2alex

As always as well: Downgrading is not, was never and will never be supported - please only go back to the previous version if you have a backup.

migrated

I am assuming this will hopefully be fixed in the next snapshot?

 

migrated

I am afraid that this is a "datafixer issue" - causing the place to be corrupted. (Please correct me if I am wrong)

migrated

One thing that might help is that I think that the structures are still specified by their capitalized name in the files. I haven't checked to be sure but this might give some insight on the issue. The new name for all structures are in lowercase and so are the bounding boxes of the structures. Minecraft makes things like guardians spawn in 'monument' and not 'Monument'. I dont know if this is entirely true but it might be helpful.

 

migrated

Ya I think I am right. I loaded up a world in 20w21a and located a monument. I loaded all the monument chunks and then exited the world. I then loaded that same world in 20w20b where any monument would be known as 'Monument' and killed all the guardians. Not surprisingly no guardians started spawning at all. The monument loaded in 20w21a should be known as 'monument' and the game doesn't spawn guardians in 'monument' and only 'Monument'.

migrated

I found that any new monuments I went to would still have the elder guardians present, it's just that no regular guardians will spawn. 

BotPokey

Andy Huang, Elder Guardians dont "spawn" like guardians, they are created with the Ocean monument, like witches or shulkers, that has nothing to do with this.

BlueDemonTR

Looked inside the region files for the issue, as you can see all of the old data for the structures still remain, while just copying the data from "Monument" to "monument" didn't seem to work, this means this bug will most probably not cause any old generated structures to be lost. (Pardon me for my bad english)

[media]
migrated

@Poyraz Sivrikaya Your English is perfect 🙂

migrated

@Poyraz Sivrikaya, How do you get into the region files like that? I have never found out how. Also does this mean you could just change the name of the old structures to the new structures and they should work?

Leovec_CZ

I generated two worlds, one in 20w20b and one in 20w21a. Both had same seed and were exactly the same. All structures worked as intended. I looken into the region files of both worlds and the only difference was the capitalization of structure names. When I openned the world made in 20w20b in 20w21a, no structure specific mobs were spawning. In region files, the old data remained unchanged, but it created another set of structures, but with names all lowercase and no data that specified, that at the location is a structure. (I hope you get what i mean, my English is not the best)

 

@Rikhil Tadiparthi, He's using NBT explorer.

migrated

So, it sounds like no, changing the name of the folders will not work. Minecraft will just creat new folders again.

migrated

Managed to fix a pre-21a monument with the following steps:

  1. Looked up the chunk coordinates (not block coordinates) of the structure, and checked which region file it exists inside. Then double checked that that chunk had a Monument tag in structures>references. Example: In my world, there was a monument which covered many chunks, including 209 279.

  2. I had to run the reference tag through a hex converter to figure out which chunk was the monument's origin.  In the references>Monument tag of chunk 209 279 was the decimal string 1202590843090, which means it was looking for information about the monument in chunk 210 280. (1202590843090 translates to 0x118000000D2. D2 is hex for 210 and 118 is hex for 280)

  3. I went to chunk 210 280 and found the information for the monument in structures>starts>Monument. This is how ALL structures work. The information about the bounding boxes, their layout, and shape is always found in the [starts] folder of chunk that is the origin of the structure during generation. All other chunks in which the structure exists have a tag in [references] that says "yeeaaaa. check the starts folder of the origin chunk found at #### for information about a structure that exists in my chunk"

  4. I renamed the structure>starts folder from Monument to monument. 

  5. I then looked up the block coordinates of the bounding box to find the opposite corners of the structure, looked up what chunks those correspond to, and painstakingly renamed all the [references] tags from Monument to monument, making sure that they still pointed to chunk 210 280. I had to do this for every single chunk in which the monument exists, including the chunk with the origin. Note, I had to delete the existing lowercase monument tags that had nothing in them, since the game complains if there are duplicate tags:

  6. And that's it. I got my guardian temple back and both its capacity to spawn guardians and its capacity to not spawn any other hostile mob.

Basically, this proves that it is possible to restore structure functionality for structures that already exist. But it's a method that requires you to tinker with game files which is dangerous for anyone who doesn't know what they are doing. Plus it is tedious. Even for something as small as a guardian temple. Imagine fixing a nether fortress.

If mojang is insisting on making all structure names lowercase, then the game needs to automatically convert existing structure data without modifying it; maybe in the "Optimize World" menu. 

Leovec_CZ

@Hristo Netchev, could you please explain the second step about finding the origin? I was working on a huge project with the nether fortress, but it was all for nothing with this update. So I'd like to try to fix it for myself and I can't figure out what you mean in the second step. Thanks for now.

migrated

Say I know a chunk that is somewhere in my structure. I'll use my world as the example. I know that chunk 209 279 is in the bounding box...somewhere. I open up the chunk with NBTExplorer and find the references. In my case, I find 2 interesting tags: "monument", with nothing in it, and "Monument", the old one with the intact integer tag.

So we open the tag in "Hex View". We see 00000000 D2 00 00 00 18 01 00 00

These are the co-ords of the origin chunk, but they are both listed in pairs from least to most significant, AND they are in "signed twos complement" form. In this first example, both coords are positive, so it's just a straight conversion. We just have to re-arrange them.

x is 000000D2, or 210

z is 00000118, or 280

[media]

And if I check that chunk, I find the data including the bounding boxes.

[media]

Every single chunk that has the structure should have that "References>Monument" tag, so I have to delete the existing "monument" tag that has "0 long integers" and rename the one named "Monument" to "monument". Again, this must be done for all chunks that contain the bounding box. This is going to take a long time for a nether fortress. It has a lot of chunks in it

And for that origin chunk, I just have to rename the parent folder in Starts>Monument to "monument". ALL of the information for ALL the corridors and crossroads and rooms in a nether fortress is contained in that one chunk, so at least this part is easy.

My monument was an easy example because the coords were both positive. Now for a negative example. I have a pillager outpost that is in the chunk -268 -52. When I check the reference tag, I get.... 00000000 F4 FE FF FF CD FF FF FF.

I ain't the greatest at working with negatives in signed twos complements, so I just looked up a calculator real quick. https://www.rapidtables.com/convert/number/hex-to-decimal.html

reading right to left again, x coord is FFFFFEF4 which the calculator tells me is -268 in decimal. Ok

y coord is FFFFFFCD, which calculator tells me is -51. Ok. 

So it turns out that the origin for this outpost was in the chunk next to it, -268, -51.

For a third example is a reference that shows 00000000 8A FF FF FF 0C 01 00 00. 

Bunch of F's means that the x is negative and the z has 0s so it's positive. Read the two coords in twos complement hex as FFFFFFA8 and 0000010C, plug em into calculator and get -118 268.

Honestly, I'd wait for mojang to fix this bug before upgrading to a later snapshot, but I've left these examples here in case they are helpful. This work-around is complex and tedious, and should be done on a backup of a backup in case something goes wrong.

migrated

Whenever I try to use NBT explorer and find a chunk, it always takes me to a nether chunk. When I search that same chunk info in the overworld region file, it crashes. Also wouldn't it be easier for Mojang to make minecraft have Monument and monument both valid spawning structures.

supeika

I don't even understand anything here, but my report (MC-184311) was older, and probably this report is a consequence of my report. Well, this is a technical problem, so we probably won't understand at all. I hope that on next snapshots will be fixed.

BlueDemonTR

@Joaquin the problem is that the structure names in the files changed to lowercase versions (Monument -> monument) this means that new generated monuments do work but older ones don't because game spawns Guardians on "monuments" but not "Monuments"

supeika

I'm talking about a bug that hapened before this bug and has a different behavior. My bug happened on 20w20b, another version. And I simply updated the report.

migrated

Just updated to 20w22a and this is still an issue for Ocean Monuments (no guardians).  Appears fixed for Nether Fortresses.

migrated

Yup, updated to 20w22a, still the same bug for ocean monument. Haven't checked other structures.

migrated

Does not fix witch huts, as they still spawn all other mobs, and no witches.

migrated

Witch farm still broken in 20w22a
Pillager outpost spawning ok, but not Witch huts, they are still spawning skeletons, spiders, creepers, zombies

migrated

Can confirm, my witch farms and slime farms are still broken. So i've had to go back to 20b again. Rates for Guardian farm nerfed.

migrated

Confirmed witch hut still spawns all mobs after --forceUpgrade and --eraseCache (from 20w21a to 20w22a)

galaxy_2alex

The new ticket is MC-186096.

migrated

Guardian farm and an untouched monument in the same world are both still not spawning guardians as of 20w22a

migrated

My guardian farm still isn't spawning guardians in 20w22a. Created a backup to test this.

galaxy_2alex

Please note that experiencing this issue after upgrading from any 1.16 snapshot to experience this issue is not a valid reproduction method. At this moment, this issue only seems to occur if the world was opened in 20w21a or earlier

If you can reproduce this issue when upgrading a world from a stable version (like 1.15.2), please put the reproduction steps in MC-186096.

BotPokey

I tested this yesterday with my world (1.15.2, its was a backup) and everything worked fine (guardians, pillagers, nether fortress and witch huts), i have images of that, should i upload it?

migrated

Sorry, I don't understand - where do you put --forceUpgrade --erase Cache? I don't understand.

migrated

Created my world during snapshot 20W09A. The Outposts and Guardian Temples have stopped spawning their respective mobs as of 20w21a. However, newly generated structures spawn the correct mobs. As of Prerelease 5, Outposts are spawning Pillagers again but Guardian Temples are not fixed. I have tried starting my world as a server like "java -jar server.jar --forceUpgrade --eraseCache" but to no avail. I've been following this thread hoping for an update so I decided to contribute.

migrated

My world was converted directly from 20w15a to 20b, and then pre4 and 7 (Meaning that I skipped the problematic 21a). My structures are all fine.  

For you to fix your world, there are a few options:

  1. Upgrade your world from 1.15.2 or any snapshot prior to 21a. DO NOT use 17a. That one was also buggy as heck. 

  2. If the structures have never been built on by you, and you just want them to work, delete the chunks which contain the structure and it will regenerate normally. World generation will put the same structure in the same place in the overworld. I don't recommend this in the nether. Nether generation has changed several times. This can be tricky because some structures (like outposts) are much bigger than they look like in the game files. 

  3. If you built some kind of farm, you can save the structures with structure blocks, delete the chunks, regenerate the area, and then paste the structures back in using structure blocks. Alternately, you could use a mod like litematica.

  4. You could manually edit the files themselves. 

Note that mojang likely did not intend to fix every possible way that this issue occurs, because their main focus is to make sure that a transition works between stable versions, meaning 1.15.2 -> 1.16. Snapshots, on the other hand, are unsupported; hence warnings by the devs about only playing snapshots on backups of your main world, warnings about them being buggy, warnings about potential to damage world, and warnings about the inability to downgrade.

migrated

How is this marked as resolved.   I'm in 20b and every upgrade beyond that as a test breaks the guardian spawns.  If anyone can shed light on that please let me know.  Whole world is going to either be stuck in 20b or going to have to start again.

BotPokey

Because is resolved. If you upgraded your world to a snapshot without a backup, then is your responsibility. Just clarifying, is resolved because if you upgrade a 1.15.2 world to the snapshot fix or newer, everything works as normal.

migrated

No i didnt upgrade to a snapshot.  I started minecraft world again after about 6 years of not playing and the UI defaulted to using snapshots which i didnt realise.   What makes me laugh is that until the latest 2** snapshots everything was 100% then every bug imaginable came out.

I think you should be able to upgrade from 20b (prior to the structure problem) to the latest revision and it be functioning as if it was 15.2.   Unless you have anything constructive to add then please refrain from wasting everyones time.   

galaxy_2alex

@unknown:

Snapshots can corrupt your world, so please backup and/or run them in a different folder from your main worlds.

This is posted on every snapshot post from Mojang - using early development build can of course cause issues like this, and it's not always guaranteed that it will be fixed. To avoid issues like this in the future, do not use snapshots at all for your regular survival world.

Please also watch your tone when making comments on the bug tracker.

migrated

Alex I believe my comment at the end to botpokey was professional.  He did not add anything other than to tell me what i already really knew.  I commented simply asking about the resolution and was basically told i shouldnt have upgraded my world.  I didnt i had been running snapshots by mistake.

No where either have i been making assumptions on the guarantee it will be fixed only that i'm confused as to how it cant be fixed for those on a snapshot.  This is a pretty major bug thats really a bit game breaky.

migrated

To whomever that included a way to reset and save structures via structure blocks and commands in chunks to help fix the bug problem with guardian temples, thank you! It feels really great to have a decent supply of sea lanterns again 🙂

migrated

why is this listed as fixed when it is not?

galaxy_2alex

It was fixed as much as possible, any further issues were tracked in MC-186096, which was closed as Invalid, please read the moderator note there.

migrated

There's still a fix though. I understand if mojang is too busy to create something but it is probsbly possible. My brother who understands this more than me might help attempt to create something to help people convert the files or at least remove as much of the tediousness in doing so as possible. 

in the future I might post an actual semi solution in the comments if this isn't closed. Something that allows you to relabel chunks to whatever.

migrated

I could really use some help here. I had drained out an ocean monument while on 1.15 and then built a guardian farm in it on snapshot 20w21a and my momument no longer spawns guardians. Structure blocks aren't big enough and i have had no luck getting NBTexplorer to even run without crashing. 

migrated

Alex, recreate the world and find the structure data in the recreated world and port it to the current world. If you didn't make a backup while using test snapshots that's on you.

migrated

@Alex I have fixed the issue by dragging in an ocean monument from an older backup (the region file of it) into the new world file. That fixed it for me. I dont know if there's an option for it, but you could always look into MCEdit to see if there's a fix in there that could make it spawnable space for Guardians once again.

migrated

I have never navigated 'region' files. I don't know how to do this. Have a good link that explains this process?

migrated

Use the following tool to find the correct region file. 

Use the coords from your monument.

https://dinnerbone.com/minecraft/tools/coordinates/

migrated

I used my world seed to regenerate the world fresh and plugged in the coordinates and the place it points me to errors out every time. 

[media]

It opens other chunks just fine. This is in a freshly generated world with a monument in the same spot so i know the seed is correct. This new world has also failed to generate the Monuments.dat file within the data directory. Not sure if that is related or not.

migrated

(Unassigned)

Community Consensus

Very Important

Datafixer, Mob spawning, Structures

mojang_internal_1

20w21a

20w22a

Retrieved