// Use pattern for entire file
#include <mc-schematic/axiom-blueprint-v1.hexpat>
// Use pattern for part of your file
#include <mc-schematic/axiom-blueprint-v1/incl.hexpat>
mc_schematic::axiom_blueprint_v1::main file @ 0x00;
u8[4] = {0x0A, 0xE5, 0xBB, 0x36}
: Magic number. Is it being used to identify blueprint version?- Metadata
be u32 metadataLength
: Length for metadata section.u8[metadataLength] => minecraft::nbt metadata
: Metadata content in Minecraft NBT format.
- Preview Image
be u32 previewImgLength
: Length for preview image section.u8[previewImgLength] => image::png previewImg
: Blueprint preview PNG image.
- Structure Data
be u32 structureLength
: Length for structure data section.u8[structureLength] => compress::gzip => minecraft::nbt structure
: Structure data. The data itself is gzipped.
compound
long Version
: Version of the blueprint. Currently0
.string Author
: Author of this blueprint.int BlockCount
: Number of blocks in this blueprint. (used for indexing?).byte LockedThumbnail
string Name
: Name of blueprint.string[] Tags
: List of tags for this blueprint.float ThumbnailPitch
: Thumbnail pitch angle. Can be used to reconstruct thumbnail.float ThumbnailYaw
: Thumbnail yaw angle. Can be used to reconstruct thumbnail.
compound
compound[] BlockRegion
compound BlockStates
long[] data
: (list length appears to be always 256).- Under 16 block types: Each entry is a sequence of 16 blocks (
long
integers are 8 bytes in size), where each block is a 4-bit integer that points to a block state in palette. That means this could hold 4096 blocks, or an entire cubic chunk (16x16x16 blocks). - More than 16 block types: I'm sorry but guessing the structure is too much work to do. If you are interested, consider looking at test_struct.nbt.gz in your NBT viewer + ImHex.
- Under 16 block types: Each entry is a sequence of 16 blocks (
compound[] palette
: A list of block states in a form of palette.string Name
: Namespaced IDs (eg:minecraft:diamond_block
ormy_mod:tiny_potato
).//
: It is likely that each entry inpalette
is a block state, so there could be something else other thanName
, likeRotation
for example.
int X
: Cubic chunk position. Multiply this by 16 and you'll get position in blueprint.int Y
: Cubic chunk position.int Z
: Cubic chunk position.