ShadowMC provides a structure system for loading structures from JSON and generating them in the world.

The root JSON element contains a child for blocks which is a nested array 3 levels deep (one for each dimension, Y, X, and Z) which contains the information for the blocks. The first array is the Y plane, the second nested array is the x plane, and the third nested array is the z plane.

Each element in the third nested array is a block, the x-y-z coordinates for which are index of the second array for the X coordinate, the index of the first array for the Y coordinate, and the index of the third array for the Z coordinate.

Each block has 2 required properties, id, and properties. The id is the ID of the block in the form of modid:name. properties is an object which contains key-value pairs of property names to property values in the block state.

There are two additional optional properites, lootId and inventory.

If lootId is present, the inventory of the block will be populated using the loot table specified by the lootId property. A list of vanilla loot tables can be found here.

If inventory is present, the inventory of the block will be populated using the entries in the inventory array. Each entry in the inventory array has three required properties, item, amount, and slot. item is the item to use in the form of modid:name:meta where meta is optional. amount is the number of that item to use (the stack size). slot is the slot in the inventory to place the stack in.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
    "blocks": [
        [
            [
                {
                    "id": "minecraft:chest",
                    "properties": {
                        "facing": "south"
                    },
                    "lootId": "minecraft:chests/simple_dungeon"
                },
                {
                    "id": "minecraft:furnace",
                    "properties": {
                        "facing": "south"
                    },
                    "inventory": [
                        {
                            "item": "minecraft:iron_ore",
                            "amount": 7,
                            "slot": 0
                        }
                    ]
                },
                {
                    "id": "minecraft:diamond_block",
                    "properties": {}
                }
            ]
        ]
    ]
}

This structure represents a west-east line of three blocks. When looking at them from the south, the leftmost one is a chest which is facing south and has been populated from the minecraft:chests/simple_dungeon loot table. The middle one is a furnace that is also facing south that contains 7 Iron Ores in its input slot. The rightmost one is a diamond block.