PSA: Minecraft 1.7 update; possibly losing structures

Discussion in 'Community News and Announcements' started by EvilSeph, Oct 23, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    EvilSeph

    Minecraft 1.7 introduces changes to the world generation code that could very likely result in structures (like strongholds and nether fortresses) generated in 1.6 no longer being recognised as valid. As this would mean that special behaviour for structures would stop working as expected (like wither skeletons spawning in nether fortresses, for example), we felt that it was important to give our Server Admins a heads up.

    Minecraft 1.6.4 introduces a new structure saving feature that should ensure that structures generated before 1.7 continue to be recognised as valid structures after updating. If you don't want to lose your structures from 1.6, you need to update to 1.6.4 first and make sure the structures are saved.

    What needs to be done
    If you're planning to continue running your 1.6 world come 1.7 and want to ensure that structures retain their special behaviour as expected, there is an extra step you need to take as part of the update process. Unfortunately, we've received reports that taking this extra step results in a noticeable performance hit so you'll have to decide for yourself what the best action is to take on your server. We've provided some extra useful information to help you make this decision in the "Things to note" section below.

    Before updating your server from 1.6 to 1.7, you should ensure you update to 1.6.4-R2.0 first and then visit all the structures in the worlds you wish to save. You can do this manually, but it is recommended you use our utility plugin StructureSaver (see below) to streamline this process and make things easier.

    Manually saving:
    Recommended - automated saving:
    • Download and update to CraftBukkit 1.6.4-R2.0
    • Download and install our StructureSaver utility plugin
    • Run the /save-structures [world] command (see below for detailed information)
    • Remove StructureSaver and restart your server
    First you'll need to download and update to CraftBukkit 1.6.4-R2.0

    Then you'll need to download and install StructureSaver from our GitHub here:
    https://github.com/Bukkit/StructureSaver/releases/download/v1.2/structuresaver-1.2.jar

    Once it is enabled, it supports the following commands:
    /save-structures <worldname> - saves structures in a specific world only
    /save-structures <worldname> force - saves structures in a specific world only, after removing existing structure data
    /save-structures - saves all structures in every world
    /save-structures force - saves all structures in every world after removing existing structure data

    And has the following permission:
    structuresaver.save

    Neglecting to address this ahead of time will result in structures from old worlds no longer being recognised as valid structures come 1.7.

    Things to note:
    Performance issues
    Since releasing the first version of StructureSaver, we've been receiving consistent reports that there is a noticeable decrease in server performance after StructureSaver has saved the structures on the server. To the best of our knowledge, we're certain that this issue isn't caused by StructureSaver itself as the issue continues after the plugin has been removed.

    Note that this decrease in performance is different from the immediate hit you see right after running StructureSaver (which is why we recommend you remove StructureSaver after you're done using it and restart your server).

    Run it once, keep a backup
    The nice thing about StructureSaver is that as long as you have a back up of your world, you're able to run a 1.6.4-R2.0 server with StructureSaver on it and save the structures whenever you want.

    You also have the option of running it now and backing up the resulting structure files in the 'data' folder inside your world's folder instead. Should you then decide later that you need the structures you saved from 1.6.4-R2.0, you can simply replace the already existing structure data as you please.

    Pick and choose
    Once you've run StructureSaver, it is completely up to you what you do with the saved structures. If you feel like saving Mineshafts is not necessary for your server, you can choose to delete the Mineshaft.dat file. Note, however, that it will be recreated by Minecraft whenever a Mineshaft is rediscovered (this applies to all structure types).

    Here's a list of the files created and what they provide:
    Mineshaft.dat - Stores the data for Mineshafts, not sure what the special feature is for Mineshaft.dat
    Fortress.dat - Stores the data for Nether Fortresses, determines where Wither Skeletons and Blazes can spawn
    Stronghold.dat - Stores the data for Strongholds, determines the location of Strongholds for Ender Eye tracking
    Temple.dat - Stores the data for Jungle Temples, Desert Temples and Witch Huts, determines where Witches can spawn
    Village.dat - Stores the data for Villages, not sure what the special feature is for Village.dat

    FAQs
    What is the actual problem with structures?
    As new features are added to Minecraft, sometimes the world generation logic needs to change along with it. Since Minecraft contains several 'structure specific' features, when the world generation logic changes, it could result in older structures no longer being valid.

    Minecraft 1.7 is one of those updates where the world generation logic has changed, meaning that worlds generated in 1.6 might have structures that are no longer recognised after updating to 1.7. In order to address this problem, Minecraft 1.6.4 introduced the ability to save structures to disk so that Minecraft is able to check for stored structures before trying to dynamically determine where they are.

    What do you mean by structures?
    When we say structures we mean areas in the world that Minecraft recognises as being a part of a special structure. This includes nether fortresses, strongholds, mineshafts, temples, witch huts and villages.

    Does this affect player built buildings?
    No, this only affects special structures generated and recognised by Minecraft.

    What does StructureSaver actually do?
    Simply put:
    StructureSaver is a utility we've provided that makes saving structures easier by providing a streamlined process to trigger the built in structure saving in Minecraft 1.6.4 and above.

    In detail:
    StructureSaver goes through every region file in your world and runs the appropriate structure generation code (without loading any chunks). Once all structures have been generated in your world, the plugin fires off a save to prompt Minecraft to write all the structures to disk.

    Where are structures saved?
    Structures saved by Minecraft 1.6.4 and above are stored in the 'data' folder within your world's folder. The possible names for these new files are:
    Mineshaft.dat
    Fortress.dat
    Stronghold.dat
    Temple.dat
    Village.dat

    Why is my server using a lot of resources after running StructureSaver?
    We believe this might be caused by how structures are handled in Minecraft 1.6.4 and higher. Essentially, once a structure has been saved, it needs to be loaded into memory at all times in order to be accessible and saveable.

    How do I revert the changes StructureSaver made?
    As StructureSaver merely triggers the structure saving feature built into Minecraft 1.6.4 and above, you simply need to remove the following files from the 'data' folder within your world's folder:
    Mineshaft.dat
    Fortress.dat
    Stronghold.dat
    Temple.dat
    Village.dat

    Why is this plugin not on BukkitDev?
    StructureSaver is a utility that is meant to only need to be used once in the transition from Minecraft 1.6.4 to Minecraft 1.7. As such, we felt that it didn't really belong on BukkitDev since it is purely built for one purpose and a specific Minecraft version.

    Delay in getting 1.6.4-R1.0 out
    Lastly, I'd like to apologise for how long it took us to release a 1.6.4 Recommended Build. We were really hoping to promote a Recommended Build immediately after we released our 1.6.4 update in order to address this, but we've been experiencing technical difficulties as our infrastructure broke down.

    Thankfully, as you're all now aware, we've managed to get everything back up and running and everything is now back to normal.
     
    EDWIN808, AJR200, mg180c and 20 others like this.
  2. Offline

    evilmidget38

    Bubbbaaa It sounds like everyone is timing out because structure saver can take a bit to run(potentially hours, depending upon your map size). It isn't meant to be run while you have players online.
     
  3. Offline

    Bubbbaaa

    No it's not a time out thang. The server crashes n goes offline. the world_nether only took seconds to run
     
  4. Offline

    evilmidget38

    The main world typically is much larger and contains more structures(Mineshafts, in particular) compared to the nether, so it will usually run much longer. Is there any indication of a crash other than the server not responding?
     
    lukegb likes this.
  5. Offline

    Bubbbaaa

    sometimes it shows many lines of errors, other times nothing or just a couple lines after restarting.
    it stops but seems not entirely. I've let it go to see what happens before, nothing other than my server auto "say" commands will run like it's offline but it crashed and stopped. like her:

    Bubbbaaa issued server command: /save-structures world
    2013-10-31 21:52:24 [INFO] [StructureSaver] Generating structures for 'world'...
    2013-10-31 21:53:21 [INFO] Read timed out
    2013-10-31 21:53:27 [INFO] [StructureSaver] Done generating structures for 'world'. Took 62 seconds.
    2013-10-31 21:53:27 [INFO] [StructureSaver] Saving structures for 'world'
    2013-10-31 21:53:47 [INFO] [StructureSaver] Done saving structures for 'world'. Took 20 seconds.
    2013-10-31 21:53:47 [INFO] Bubbbaaa lost connection: disconnect.endOfStream
    2013-10-31 21:53:47 [INFO] CONSOLE: Forcing save..
    2013-10-31 21:53:47 [INFO] CONSOLE: Save complete.
    2013-10-31 21:53:47 [INFO] CONSOLE: Stopping the server..
    2013-10-31 21:53:47 [INFO] Stopping server

    The when I restart it, I've seen this before:

    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:107)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagCompound.load(SourceFile:38)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagList.load(SourceFile:41)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagCompound.load(SourceFile:38)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagCompound.load(SourceFile:38)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagCompound.load(SourceFile:38)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagCompound.load(SourceFile:38)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.a(SourceFile:89)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTCompressedStreamTools.a(SourceFile:75)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTCompressedStreamTools.a(SourceFile:11)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.WorldMapCollection.get(SourceFile:46)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.World.a(World.java:2702)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.StructureGenerator.a(SourceFile:240)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.StructureGenerator.a(SourceFile:25)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.WorldGenBase.a(SourceFile:29)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.ChunkProviderGenerate.recreateStructures(SourceFile:527)
    2013-10-31 20:55:40 [SEVERE] at org.bukkit.craftbukkit.v1_6_R3.generator.NormalChunkGenerator.recreateStructures(NormalChunkGenerator.java:73)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.ChunkProviderServer.loadChunk(ChunkProviderServer.java:181)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:105)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:84)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.MinecraftServer.f(MinecraftServer.java:287)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.MinecraftServer.a(MinecraftServer.java:252)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.DedicatedServer.init(DedicatedServer.java:152)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:393)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    2013-10-31 20:55:40 [SEVERE] Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
    2013-10-31 20:55:40 [SEVERE] at java.util.zip.InflaterInputStream.fill(Unknown Source)
    2013-10-31 20:55:40 [SEVERE] at java.util.zip.InflaterInputStream.read(Unknown Source)
    2013-10-31 20:55:40 [SEVERE] at java.util.zip.GZIPInputStream.read(Unknown Source)
    2013-10-31 20:55:40 [SEVERE] at java.io.BufferedInputStream.fill(Unknown Source)
    2013-10-31 20:55:40 [SEVERE] at java.io.BufferedInputStream.read(Unknown Source)
    2013-10-31 20:55:40 [SEVERE] at java.io.DataInputStream.readInt(Unknown Source)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagIntArray.load(SourceFile:31)
    2013-10-31 20:55:40 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101)
    2013-10-31 20:55:40 [SEVERE] ... 29 more
    2013-10-31 20:55:40 [INFO] Preparing spawn area: 0%
    2013-10-31 20:55:41 [INFO] Preparing start region for level 1 (Seed: -6441305836559447887)
     
  6. Offline

    GabrielGamer

    Good job bukkit team! tks to information! (sory to my bad english)
     
  7. Offline

    evilmidget38

    Bubbbaaa That error you posted is caused by ending StructureSaver while it's running. You end up with invalid structure data because it was part way done with saving the file.

    The first log looks normal, I'm not sure what your issue is there. You got disconnected because it takes a long time for StructureSaver to run.
     
    lukegb likes this.
  8. Offline

    rnoa

    Can I use the latest dev build #2919 to run StructureSaver or does it have to be the previuos recommended?
    Appreciate a quick answer as I aim to run it asap.
    Another concern: my world is 4,32 Gb and the server is on 4 Gb RAM - will it run out of memory while running this utility? If it does, what should I do then? I have read all the comments and I know what to do to reverse the effects of StructureSaver after the procedure, but what should I do if it stops running because of out of memory error? Any answer will be greatly appreciated!
     
  9. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı

    The difference between #2919 and the Recommended Build is the version number.
     
  10. Offline

    Niverive

    I have a huge problem when I convert all my maps I had 7/8 maps convert correctly, however our main map, the one where all normal users preside refuses to load when I restart the server, multiverse gets caught at start region for that map as shown below, I need help getting this to work please.

    2013-11-04 15:46:34 [INFO] [Multiverse-Core] Enabling Multiverse-Core v2.5-b675
    2013-11-04 15:46:34 [INFO] [Multiverse-Core] [AllPay] - Version 13.0 - hooked into iConomy 6 for Multiverse-Core v2.5-b675
    2013-11-04 15:46:35 [INFO] Preparing start region for level 3 (Seed: -585500039888501327)
    2013-11-04 15:46:35 [INFO] Preparing start region for level 4 (Seed: -7497564628257033198)
    2013-11-04 15:46:36 [INFO] Preparing start region for level 5 (Seed: -9059160575356467162)
    2013-11-04 15:46:36 [INFO] Preparing start region for level 6 (Seed: -7157034793247946161)
    2013-11-04 15:46:37 [INFO] Preparing start region for level 7 (Seed: -231096219)

    Until I remove the .dat files from the data folder I cannot load that map.
     
  11. Offline

    Neilnet

    Any estimation how how bad the performance drops will be?
     
  12. Offline

    justcool393

    First, I'd update to the second recommended build if you haven't done so.
    Next, I would isolate your main world from all of the other worlds (on a seperate server, etc).
    Finally, if that doesn't work, I'd delete the Mineshaft.dat file as someone on the first page suggested.
     
  13. Offline

    TnT

    Offtopic posts removed.
     
  14. Offline

    stnlylee

    why is my server took 7 minutes to start up after using structure saver?
     
  15. Offline

    OMEGA48

    After running Structure Saver, stop the server then take the plugin out before starting it again.
     
  16. Is the 1.7 terrain generator working fine in build #2929 ?

    I want to generate a large map for my users and have been holding off for support for MC's 1.7.2 generator
     
  17. Offline

    DaDeraNeTiVe

    What do you think about new update ?
     
  18. Offline

    brutuscat2

    Its absolutely horrible, Mojang basically screwed over everyone.
     
  19. Offline

    kelson8--

    Is this a problem.. im using 1.7 for my craftbukkit server and something happened to the plotworld at like a certain part of it it is just regular land there is no plots after that. is there a way i could save my plotworld structures and delete the world, then put them back on? If anyone can help me Please Help!!
     
  20. kelson8 try it with worldedit
    yes! only non-user-generated structures are affacted(and only their function, not the "structure-building"!

    we are running 1.5.2 - are those structures not affected? So can i just switch to 1.7.2 and all will be good: performance + structures?

    I don´t wan´t to risk the performance, because in a few years i will annoyed because of the bad performance, but i can miss some working structures.
     
  21. Delete the player data files and just reset invs for the server

    NOTE if you run lunix your server will go to the disk making it slower
     
  22. You would need to run the map with the latest 1.6.4 build first and and choose safe way for the buildings, then run it with 1.7. You can't save the structures in any other way, sadly.

    I do wonder however if the performance hit is a permanent one since after switching to 1.7 and running the map this way for a while you should only need to run it all normally. The greatest performance hit should be when you have to run it in 1.6.4 i think. Don't really know thought. :p

    Oh, and it's about time to change avatar, don't you think ^^
     
  23. yes, but i don´t want to risk the performance for the next 20 years+... than i prefer to loose the function of the mojang-buildings. If there are created new ones, they will work again. Do villages loose their function, too?

    And if you save the structures manually(by visiting all kwown of them), does it cause performanceproblems, too?
     
  24. I have no clue on that. All I know is that there is a setting in the config for using before switching to 1.7 from 1.6.
    It can be turned off so I just thought I'd use it for the move to 1.7 and after playing 1.7 with the map a while I'll just turn of that option since it isn't needed anymore. :p

    About the fear of lag. If you're willing to start over with a new world you might as well try to move the old one first. If it doesn't lag it's great and if it does lag, well, then you can start over.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 5, 2016
  25. but i perhaps will not regognize the lag, but after 20 years i will regognize it and then i can´t make it undone.
    i don´t get what you mean - sorry. We are still running 1.5.2 & want to switch to 1.7.2
     
  26. After 20 years? :O Nah, I get what you mean. Well. If you want to be 100% sure not to be dragging some lag with you then I guess you should reset the map.

    If you're going from 1.5.2 to 1.7 you'll get extra biomes and colored clay and more from the 1.6x update so a reset might be good. ^^

    About the setting in the config. I kinda forgot I run spigot which give you more control over the server settings.
    When you update from 1.5.x to 1.7.x you first need to update to 1.6.4 to make sure all buildings and all are left the way they are, so much we both know. When you're using spigot you get the "save structures" choice in the config. That is the saving of structures that 1.6.4 does which is needed before 1.7.x and all I meant was that since you have that option in the config to set to true (save structures) or false (don't ...) then you could set it to false after you've had it set for true a while and updated to 1.7.x since then the update would have been done.

    But. Besides being foggy in my head from spending my first part of the day at work and the rest of the day with my daughter and her friend (kids are exhausting :p) I guess that is a setting you don't have in bukkit so it doesn't really matter. :p

    Tired, so sorry for the messy respons. I'm not sure I even know what I'm doing at this point :p
     
  27. then i will loose all user-buildings.. so that we don´t want.
    but i will get extra biomes and colored clay, too, if i update from 1.5.2 to 1.7 without resetting the world. Colored Clay - just after updating to 1.7 & new biomes in new undicovered regions.

    you mean the non-user-buildings.. the user-buildings will be saved, too if i update from 1.5 to 1.7.

    ..and if i update from 1.5.2 to 1.6.4.. & visit the non-user-buildings then i will perhaps loos performance.. or will i (perhaps)loose it only if i do it with the save-plugin?

    thaaaanks

    Julia :)
     
  28. I don't really know what "save-plugin" you mean. To have the world work in 1.7.x you first need to run the map in 1.6.4 because 1.7.x have problems running older maps. That's the main reason. 1.6.4 saves the map differently so that it works with 1.7.x.

    About the structures, it's mainly witches huts, fortresses in the nether and things like that and if I was you, I'd make a backup of the server/map and try to run it on 1.6.4 and then 1.7.x to see how it turns out before trying anything else. Better try the solution that's already there before search for other solutions, right?

    When it come to the structures and how they work you might also consider if it's important. Witches structures is something I myself never really cared for (although I'm deep into modded servers now anyway) and do you have many important structures in the nether anyway?
    Perhaps moving the main world is ok and you can start over with a new nethermap? The functions of the fortresses in the nether is the only thing that I consider really important anyway. ^^


    If you ignore all these problems you will however have a change on your map with all the new biomes. Since there is a bunch of extra biomes added there is a great risk that the biomes on your map will be messed up. The generated land will stay unchanged but the biomes might not be the same as before. This mean that you could have it snow or raining in your desert as an example because the desert biome got changed.


    The biggest problem you're facing is really about deciding. People say the map "can" lag. Not everyone experience this and noone can really for sure say if your server will experience extra lag because of the update. Minecraft is sadly a very exciting game in more ways than pure gameplay. Each change to the game brings the exciting feeling of "will it work" :p
     
  29. Offline

    caelum19

    That's pretty damn optimistic. :p
     
  30. Offline

    Bobcat00

    Julia, what I did was install Multiverse and create a new map and spawn with 1.7. I set the default spawn to be the new map. I left the old map, so players could move their stuff as they wished. Players were given a second /sethome so they could have one in each world to facilitate moving.

    They're not required to move their stuff, but I really don't support the old map anymore.
     
    caelum19 likes this.
  31. Well, it's better than "Oh well, there it broke again" :p
     
Thread Status:
Not open for further replies.

Share This Page