[Guide] MC 1.10 Structure blocks

Discussion in 'Player Guides, Tips and Tricks' started by ShelLuser, Jul 14, 2016.

  1. Hi gang!

    Mojang does a lot of weird things when it comes to new Minecraft versions, and this is actually no different. But... I also think it's a very awesome new feature which can really help to enhance, save and complete your own Minecraft levels.

    Due to personal reasons I need a serious distraction right now so yah, lets do another small mega guide :D

    The 4 new zecret block variants

    2 new hidden blocks

    Most regular blocks in Minecraft can be easily obtained if you got access to gamemode 1 (Creative mode). All but a few hidden blocks... There's the command block (id 137 => minecraft:command_block) and its two counterparts the chain_command_block (id 211) and the repeating_command_block (id 210). We have a barrier block (id 166 => minecraft:barrier) and finally you also can't obtain a mob spawner through your creative inventory (id 52 => minecraft:mob_spawner).

    Edit: And I forgot my all time favorite: farmland (id 60 => minecraft:farmland)! :D

    And now we have 2 more hidden blocks: the Structure block (id 255 => minecraft:structure_block) and the Structure void (id 217 => minecraft:structure_void). The fun part is that unlike the command block there's only 1 structure block, even though it can show up as different counterparts (see picture above).

    Let me tell you guys: these are totally awesome.

    What can a structure block do?

    Simply put: it can save and load structures. And more, but the information regarding the 'data block' is still very obscure. And it even changed between the official MC 1.10 release and now. So I won't be talking about the data block, only the other variants: the save, load and corner structure block.

    On my redstone world I've build one large metal pyramid and placed 2 beacons on top in order to give me speed II and jump boost II. The problem is simple: when I get out of reach from the pyramid then I lose my status effects. I tried setting up some smaller pyramids but that only became annoying while switching between 2 perks, 1 perk or even 1/2 a perk (jump boost vs. jump boost II for example).

    And I'm too lazy to rebuild such a big pyramid on all corners (I play vanilla here). But a solution to that problem has now been found!

    Save your work using structure blocks!

    It's really very simple: place a structure block outside of the structure which you want to save. By default this will be a data block, but we'll need a 'save' block. So right click to open the interface, and click the mode button (lower left corner) to change it:

    Structure block interface, the 'mode button' is highlighted.

    Now we need to specify 2 coordinates: first the starting position and then the end position. So both corners of the structure which we want to save. I'm going to save a beacon pyramid, which is 10x9 blocks wide and 6 blocks high (4 blocks for the pyramid, 1 for the beacons and 1 for the yellow glass on top).

    Important: the first coordinate will be relative to the position of the structure block. Also note that the structure block cannot cope with negative size values, so the coordinates of the starting point are always lower than the end point:


    The structure (save) block is in the lower right corner of the screen (on the ground). But if you look at the crosshair you'll see that the pyramid sits within a negative X and Z range. Now look closely at the left side of the beacons: you'll see a vertical green line. This is part of the box surrounding the pyramid and it indicates where the starting point of the structure block is set. The box shows us which area is going to be saved by the structure block.

    You can probably see where this is going: the only thing I have to do is to make sure that the box covers my whole structure, and then I merely have to click 'SAVE'.

    Corner blocks!

    Now, working with coordinates has become second nature for me, but even so I still manage to make mistakes from time to time. So what to do if all those coordinates only confuse you to no end?

    Simple: then all you do is place corner blocks in 2 opposite corners of your structure and give them the same name, place the save block outside of your structure and give this the same name as well, then click detect. Now the 'save box' will be generated for you automatically:


    Look closely: there's one corner block between the chest and the structure block (on the ground), the other can be seen floating in the air (in the center of the picture).

    So how do we make sure that the box fully encloses our structure? Simple: use the hidden blocks!

    Hidden blocks & structure void blocks!

    Did you know that air blocks are blocks too? Now you do :p So if you enable the option "show invisible blocks" then this is going to happen:

    See the blue boxes? Those indicate air blocks, can you spot the error here?

    Look closely at the picture above and you'll see that I made an error. The extension is 2 blocks wide, but only 1 layer of blue boxes show (see left side). This can really help you to determine the right size of your 'save box' because all invisible air blocks are now shown.

    But there's more...

    Air blocks are real blocks even though you can't see them. So if you save a structure then those air blocks will replace any other blocks when you load the structure again. Unless you can somehow remove those air blocks... And that can be done using the structure void blocks.

    We all know the void, right? Go beyond the bedrock floor and you'll end up in the void, like this:

    Spookay! ;)

    A structure void block is exactly that: it's a block like the void: it represents nothing. And unlike an air block it also won't replace any other block when you load a structure again. I'll show you in the 3rd part of this tutorial ;)


    Loading / placing structures

    First you place a load block, you do this in the same way as shown above: place a structure block, open the interface and click the 'mode button' until it says "[L]" (for load). Then type the name of the structure you want to load, enter the starting coordinates and click "LOAD":

    I entered the name and starting coordinates, now I'm going to click LOAD

    After clicking LOAD for the first time you'll first see a box which highlights the destination

    This is basically all there is to it. The number buttons and the | labeled button allow you to rotate and mirror your structure, after you click on them the highlight box will show you exactly what's going to happen. Once you're satisfied then all which is left to do is click the LOAD button again and your new structure will be placed.

    Redstone power!

    But things can become really exciting when you hook these blocks up with some redstone ;)


    Here I set up a structure load block and made sure that the highlight box isn't shown. I placed a pressure plate which triggers both the command block below it and the structure load block. Please ignore the command block on top of the glass, I only use that to clean things up again ;)

    So, when I step onto the pressure plate then this suddenly happens:

    Tadaah!

    Can you imagine all the stuff which you can do in adventure maps?

    So yeah... A quick guide on structure blocks :)
    Patr1cV, khixan and BlinkyBinky like this.
  2. i tried to copy a giant castle that i converted into a insane dungeon it crashed mc... it took me a hour to get it back up i had to delete mc X-X

    but over all awesome guide :D u make so many of these they really help
    ShelLuser likes this.
  3. This seems to replace schematica almost.
    ShelLuser likes this.
  4. not really schematic is useable in survival unlike structure blocks with schemata u can make a design and learn how to build it when u have n access to structure blocks
    ShelLuser likes this.
  5. Oh it's creative mode only is it?
    ShelLuser likes this.
  6. yes it is unless u enable cheats
    ShelLuser and ThaKloned like this.
  7. Part II

    This is a surprise post: I didn't plan this, but today I discovered a problem I had to work around on. And because I had already posted the above I figured like sharing this one too.

    Houston, we have a problem: the maximum size of a structure is 32 x 32 x 32. In other words something like this:


    All fine and well, but what to do if your structure turns out to be larger than this margin? For example, here's a build I've been working on with a friend of mine and which I planned to copy onto my now upgraded LAN server:

    The corner block sits on the left, but the structure box ends prematurely...

    As you can see I initially used corner blocks to keep things easy on me, but the end result was what you see here: the highlight box didn't enclose my full building. Now what? :(

    Divide your structure & save the structure blocks too!

    The solution turned out to be really easy: just save your building in several parts. And here things become even more interesting: you can actually save a structure block as part of your structure! How's that going to help you? I'll show you:


    I divided the build into 2 parts using 2 structure blocks. The original (first) is on the ground before the building (next to my hand) and the second structure block is on the roof. But... It's within the area of the first part.

    So: first thing I did was save the second part, and then I saved the first part. So far, so good.

    Now, there's one thing you need to know about structure blocks, even if you use corner blocks then the end result will always be the same: the structure block actually contains the size of the area which it's going to save (or load). So basically I saved the first part of my building, including the structure block which was already primed with the dimensions of the second part.

    The end result? This:


    Here I loaded the first part of my building. As you can see around the edges I even messed up the y coordinate a bit: it's actually one block too deep. And after loading the first part we immediately get to see the second highlight box: the one which enclosed the second part of my build!

    The cool thing here is that the coordinates used inside structure blocks are all relative. Meaning: they all center around the structure block itself: all sizes and distances are measured with the structure block as a starting point.

    So now the only thing I have to do here is to change the save structure block into a load block and click load. The structure will be perfectly aligned because of those relative coordinates:


    So the only thing left for me to do now is to copy both structure files (nbt files) to my LAN server and then import the structure in the same way I did here :)
    Patr1cV likes this.
  8. Part III

    As you can see above I'm very excited about the structure block, still am. However, it doesn't happen often that I write a guide and completely forget to demonstrate one of the (important) features ;) This excitement even grew today when I discovered that Mojang themselves are also using this feature (or so I assume).

    When looking inside the game jar file you'll discover a "structures" folder which contains several sub-folders with tons of nbt (structure files) inside (see: assets\minecraft\structures):


    In 1.10 this folder only contains: endcity, fossils and igloo. 1.11 (the snapshot for now) adds one: mansion. So I think it's safe to conclude that Mojang actually uses this feature themselves to generate their structures. Why else would they add the woodland mansion like this?

    Also noteworthy: the woodland mansion is much larger than 32 blocks, which is the maximum size which the structure block can handle. As a result you'll find dozens of files in its structures folder (73 in total). I sincerely doubt that Mojang would go through all that trouble merely to provide us with a new feature...

    But... Back to the guide.

    The structure void block

    As I explained above: when you save a structure then it will save all containing blocks. However, you need to keep in mind that although airblocks maybe invisible, they still count as official blocks. So if you load a structure then those airblocks will replace any other existing block.

    I'll show you:


    Here is the EMC tribute which I made some time ago (I actually updated it, after discussing things I decided that Krysyy's and Maxarian's heads had to be replaced. In all fairness it's safe to say that Krysyy and Aikar run things right now). And as you can see it shows us tons of blue boxes, these represent air blocks.

    So.... I created a solid 25 x 25 x 25 sandstone block (/fill ~1 ~ ~1 ~25 ~25 ~25 sandstone) and then used a structure load block to place the EMC tribute inside. First I moved the start outside of the block so that you can see what is going to happen here:

    Clearly visible: the outline of the EMC tribute which I'm about to load

    After this screenshot I repositioned it inside the sandstone block, loaded it, switched to spectator mode and when I move inside you can clearly see that the tribute has created a small room. All the original sandstone blocks have been replaced by air:


    So now we're going to do the same thing with the beacon_pyramid which I set up during the start of this guide. Just as a reminder, this one here:

    My beacon_pyramid, notice all the red squares?

    All those red blocks you see represent structure void blocks. So when I load this structure inside my sandstone block you'll notice something completely different:


    The only thing visible are the two beacons and the glass blocks on top of those, but the iron pyramid is completely invisible. And there is also no 'room' or empty space. That's because the structure void blocks made sure that no existing block in my world got replaced by loading in the pyramid.

    But, uhm, didn't we already have schematic files?

    People familiar with server mods such as WorldEdit or client programs such as MCEdit will already know about schematic files: a community designed way in which we can save and load Minecraft structures. And even better: no 32block size limits either!

    Those are definitely cool developments as well, but personally I still prefer the structure blocks myself. First of all because they're a native, vanilla, feature. So even if you're using the latest snapshots then this feature will become immediately available. But also, just as important, because these are truly embedded within the Minecraft world. As I demonstrated in the first post they can even be triggered by redstone, which makes automations plain out awesome!

    And finally: the mysterious Data block

    When 1.10 first came out I've seen many Youtuber making a complete idiot out of themselves by telling us exactly what the data block was going to do according to them. Of course, only to be proven wrong. This is also exactly why I didn't bother with this block in the first part, simply because I didn't know what it was supposed to do.

    In all fairness though: even the official Minecraft wiki choked a bit on this topic. And even today several people are still having problems with it.

    To be perfectly honest I myself also have a theory on how we might be able to use this block as non-developers (but it is untested so far!).

    Data block => Only usable with non-existing areas

    If you spawn in an endship (use a structure load block, and then use this name: endcity/ship) you'll notice several data blocks attached to it. A data block basically contains the name of a script to run, and that script will then "do" something with the associated block.

    Known names are: "Sentry" (the block will be replaced with a Shulker), "chest" (sets a "loot table" for an underlying chest, so that specific items get generated. This applies to Igloo's), "Chest" (same as before, but this time for End ships), "Elytra" (creates an item frame with an Elytra in it).

    The only problem: these scripts get run during area generation. So they are really of little use to regular players (map makers for example).

    However...

    Shell's data block theory

    Since MC 1.8 we have a gamerule called spectatorsGenerateChunks which defaults to true. So basically: if you're moving around a world in spectator mode then the map gets generated (and loaded) as you go. The only exception are loot chests which contents doesn't always get generated.

    So what would happen if you'd turn this off, move onto a non-existing chunk and then add a data block yourself?

    Sounds impossible? It isn't! => /setblock ~ ~ ~ minecraft:structure_block 0 replace {mode:"DATA",metadata:"Sentry"}

    This will replace the block at your current position with a Structure block. More specific: a structure data block which should activate the Sentry script the very moment this chunk gets loaded and/or generated.

    No, I haven't gotten this to work yet. But I can't help wonder that it should :)
  9. Part IV - Some tips & Tricks

    I suppose you can tell by now that I'm seriously excited about these structure blocks. And when I'm excited about something I often try to take things to extremes: trying to figure out just how much you can do with it. This took a little turn on its own when I discovered a few bugs with 'm, reported them, discussed them and then started wondering...

    Next I also learned that there are plenty of players who try to figure out the problem of overcoming the 32x32x32 size limitations. What to do if your structure is larger?

    I already shared an example above, but now I decided to take things to extremes...

    Saving huge structures with structure blocks


    As mentioned above: Structure blocks can only save an area with a maximum size of 32 blocks. So if you need larger areas then you should divide your build into sections, and save each section individually. However, the trick is to make sure that all the structure blocks which you're using to save those additional sections are also being included in the main saving 'sequence'.

    For example the picture above... As you can see there are several additional sections here, 4 in total. The main saveblock (seen in front, outside the building) includes all the other sections (the blocks which saved them). So the moment I load the main part of my structure it will also include all the extra blocks which I'll need.

    Tip 1: Don't start the main area below ground, divide it!

    Keep in mind that when you're using structure blocks then you'll be relying on relative coordinates. In other words: instead of 12,64,93 the structure block will start counting blocks from its own position. But this also means that if you load such a structure again you need to keep these same positions in mind. A little bit anyway.

    This isn't really much of a problem for X and Z, but it can become really tricky for Y. If you save a structure where your starting point is 6 blocks below ground then you need to use that same Y coordinate with loading to ensure that your structure once again starts 6 blocks below ground. Because if you don't....

    When loading this I forgot that Y should have been set to -8, not 0 or -1 :D

    Now, remembering -8 is easy if all you're working with is one single structure. But what is going to happen once you start a whole collection?

    So instead of using one block, you should be using at least 2: one for the area above ground, which will include the block set to load the area below ground. And because structure blocks use relative coordinates this second block will help you to ensure that the underground area will always fit with your base.

    When loading your starting area all you have to do is remember using 0 as a starting point: you literally start on the ground, and the rest will be filled out later.

    I loaded the main structure, you can see the 2nd block which will load the underground area (including the floor).

    Tip 2: Switch from save to load before saving additional structure blocks!

    This tip should be easy, right? If you switch to load mode before saving a block it will save you plenty of time when you're loading your structure again. For the simple reason that you won't have to change the mode, click load and then mess around. Instead you can use the load block right away.

    One thing though: be sure to turn all the bounding boxes off. Why?

    In the first picture you can see several outlines from the structure save blocks. This can really help you to ensure that you got your whole building covered. But if you're working with a complex structure then these boxes will only become massively confusing when you're going to load your base again. Especially if you need be able to determine which is which.

    The area on the right is loaded by the structure block on.. wait, they're all in one line? :confused:

    It will be much easier on me to simply open up a structure block, turn on the bounding box and then check if everything is going correctly for that one specific area. Checking before loading can be a really important step, because as you can see in the picture above there's another problem to keep in mind as well...

    Tip 3: Careful when rotating (or mirroring) structures!

    As I told you before structure blocks use relative coordinates. Which seems very easy: the starting coordinate of the load box should be 5 blocks to the South (Z: +5) and 3 to the West (X: -3). So what would happen if you weren't facing East (like in my example) but South and to make sure that the structure is facing in the right way (from your standing position) you decided to rotate it?

    This will have 2 consequences: first you will need to ensure that all additional load blocks will also be set to the same rotation, otherwise things won't fit properly. Makes sense, right? But there's more... Because you're facing a different direction there is a serious possibility that the X and Z coordinates need to be changed as well. Either they need to be swapped, changed from positive to negative or sometimes even both.

    Sounds confusing?


    This is the original building on my LAN server. Note that I'm facing south and the initial starting position of the loading box (not shown) sits in the lower right corner. In other words: the start has a negative X value (notice the red line in the crosshair pointing to the left?) and a positive Z value (the blue line pointing 'behind'). All from my own position of course.


    And this is what I'm working with in my single player world. As you can see I'm now facing east, and so I also decided to rotate the building by 270 degrees. So that same starting position has changed as well. It now has a positive X value and a positive Z value. So basically: in the original image the "left / right line" sat on the X axis, this is now Z. And the depth (the front and behind area) used to be Z but that's now X.

    This is also why those load boxes shown in tip 2 ended up in the wrong places. But once I set my structure load box to use the same rotation then all I have to do is change X and Z accordingly. In this example I had to exchange the X and Z values and 'flip' Z (change from positive to negative).

    As such: Tip 3b: If you're loading an unfamiliar multi-part structure for the first time then don't rotate it because you won't know (yet) where the additional areas need to go!

    Tip 4: Use your own folder!

    I 'borrowed' this idea from Mojang ;)

    If you're going to be saving a large structure then it could get really tricky to keep everything apart. Especially if you already have several saved structures. For example, my "piston arena" consists of 11 parts (where one is part of the structure itself: the magma wall gets reset using a structure block).

    So to make sure that I won't be mixing things up I used the pa2 folder. If I want to load my piston arena all I have to do is place a load block and use: 'pa2/piston_arena' as the name (and turn on entities!). All the other blocks are already primed, so there are no further issues here.

    Tip 5: Try to use logical places for your additional load blocks, also give them normal names!

    Is that a structure block down there?

    This is a difficult one because if others are going to be loading your structure then they'll probably won't know all the different places just yet. Even so, try to come up with something which is easy to access.

    For example: my structure has a top side and large underground area. The starting point of loading the underground area can be found in the pit, shown above. After using that block it will immediately open up a new section right next to you. And if you walk in you'll find the next block which loads most of the main underground area.

    After that is loaded you'll need to get to spectator mode (F3-n), after which you'll soon notice the last 2 required blocks in a very obvious room. After using those two the whole structure is completely loaded.

    If you care to try this for yourself, you can download this whole complex here.

    Please get the updated version from the post below.

    Note: unfortunately I also discovered a bug with the structure blocks: sometimes pistons don't get loaded properly (missing the actual extension). So to compensate for that there are 2 more structure blocks right next to the piston switches (load box is automatically visible for easier detection), and you may need to use them when one (or both) pistons look odd (missing their extension block).

    And there you have it :)

    (EDIT): Almost forgot, one last thing... Why I prefer structure blocks above schematic?


    Although structure blocks will be harder to set up they also provide you with much more control. With schematica I'd probably have saved one huge square area. But because I cut up my building into separate sections it blends decently into different areas, as can be seen above.
  10. Part V (short) => Automatic loading :eek:

    Apparently my structure block posts attracted some 'outside' attention as well :D

    Aaanyway, first some things I forgot to mention above: the structure files which I'm sharing above are best used with the (latest) snapshot. 1.10.2 should work as well (it also supports structure blocks) but doesn't have the observer block nor the shulker boxes, which are a (small) part of the build.

    Some people also mentioned that the teleport commands don't work too well: you get zapped into the middle of nowhere :D Which is correct: the command blocks use(d) fixed coordinates, also because I never intended for this structure to get shared like this (this whole thing was no more but an exercise for me to get more familiar with structure blocks). But because I like working things I fixed all that.

    And more...

    I noticed that the fireworks go off (triggered by an observer block) every time the main structure gets loaded. And that got me thinking: if observer blocks can trigger pistons during load, then they should be able to cope with structure blocks as well. So I set up an automated version: you only load the main area and all the other sections get loaded automatically.

    One thing to keep in mind: you cannot rotate the structure, because then everything will go haywire ;)

    But this created a new "problem": although the structure blocks get automatically triggered you'd still have to clean them up. Surely I could do better? And yes I could ;)


    It's hard to see but there's an observer block behind every structure block, its output faces the structure block. So the moment this section gets loaded then these two structure blocks get automatically triggered and they'll load 2 additional areas. Next the redstone dust on top will get charged which in its turn will activate the command block.

    And that CB does something very interesting: /fill ~ ~ ~ ~ ~-1 ~-1 air.

    In other words: as soon as the structure block has loaded the additional area then the command block will remove everything: the observer block, the structure block, the redstone dust and itself. Leaving you with a fully automatically loaded area without having to do any cleanup yourself ;)

    You can download the new updated version here, it includes both the automated (paa) and non-automated (pa2) structure files.

    So, to get this into your own world asap:
    • Extract (or copy) the contents of the archive to your world save folder (or simply copy the pa2 and paa folders to your structures folder).
    • Give yourself a structure block: /give @p structure_block.
    • Place it, switch it to load mode, enter this name: "paa/piston_arena" (without the "") and make sure to set Y to 0.
      • Careful: there's a rather large underground area included, be sure that you're at least on Y64 before using this. If you're lower then you risk sections to end up in the void.
      • If you want the non-automated version then use: "pa2/piston_arena".
    • Click "LOAD", check the box and and optionally change the X and Z coordinates to move the structure to your desired location, but do not click the rotate buttons.
      • Obviously you can rotate if you're using 'pa2', just make sure to rotate all the other structure blocks as well.
    • Click 'LOAD' again and the whole structure should get automatically loaded.
    • Enjoy ;)
    I also added a (small) manual so that it'll be easier to figure out how to use the piston lane.