The Issue
If a player saves a structure that contains a vault block using structure blocks in a world with a high playtime, then loads that structure into a different world, the vault blocks will be uninteractive. This is caused by the server_data.state_updating_resumes_at property of the new vault block being the same as the original. This property prevents the vault block from being interacted with until the world timer exceeds the given value. Because the structure has been loaded into a new world, the value of this property is far higher than the new world's world timer, rendering the vault uninteractable.
Fixing the Issue
To fix this issue, one of two things should happen;
Make structure blocks not save the server_data.state_updating_resumes_at property of vault blocks when saving to a file.
Set the value of server_data.state_updating_resumes_at to zero (or delete the property) when loading the structure into the world.
Β
Linked issues
is duplicated by 1
Attachments
Comments 9
Just ran into the same issue; the bug is alive and well. I've attached a datapack of my custom structure:
[media]You'll notice that, for any new world generated with the datapack, the vaults from the structure "players-versus:trial_tower" will all be disabled because their server_data.state_updating_resumes_at is set to my other world's gametime, which was 1M+.
[media]Can confirm this happens in 1.21 as well.
1 - Generate a new 1.21 world with this
[media]datapack
2 - run either
/locate structure trickiertrials:arthropit
/place structure trickiertrials:arthropit
and go into the structure
3 - go to the deepest floors of the structure where the vaults are located and you'll notice that they're completly unresponsive
both
/loot give @p loot trickiertrials:arthropit/items/key
/loot give @p loot trickiertrials:arthropit/items/ominous_key
can be used to obtain the keys needed to unlock the vaults but they will not be useable because of the issue mentioned in this report
Hey chief, I found the source of the issue and a work arund.
Basically the vault has a state_updating_resumes_at value, which in your building world is probably when you palced it, but in the newly generated world it starts at 0 so it is less than the spawners time and thus it cant activate.
You can use /time set 99999999 in the new world and it will βfix itβ
I did not investigate it, but maby you can set a jigsaw that generates air and turns into a spawner?
Ok so yeah i did more investigating and I found a solution.
Core of the issue:
state_updating_resumes_at is updated every tick to current game time
structure blocks will save this value and include it in the NBT file
in your building world the game time will be significantly higher than in newly generated world
Workaround:
use /tick freeze
place the vault and save the structure
since ticks were frozen, the vault never could set the value
Technically speaking everything is working as intended, but would be nice if mojang did something about it, as this is really dumb and the solution is rather unintuitive.
Thank you for your report!
However, this issue has been temporarily closed as Awaiting Response.
Could you please attach an example structure and/or world showcasing the issue?
This ticket will automatically reopen when you reply.
Quick Links:
π Issue Guidelines β π¬ Mojang Support β π Project Summary β π§ Suggestions β π Minecraft Wiki