Skip to main content

structura-core

Read and convert Minecraft structures.

Validated structure data, native format I/O and explicit conversion-loss reporting. Native formats need no Amulet Core translation engine.

The optional [world] extra reads bounded Java world regions and supports explicit block/entity patches with backups in Java 1.18+ saves.

Quick start

pip install structura-core
structura-convert house.litematic house.nbt
structura-convert house.nbt house.schem
structura-convert house.nbt house.snbt --strict

Formats

Format Read Write Installation
Java Structure .nbt gzip/raw NBT; multiple palettes gzip NBT base
Java Structure .snbt UTF-8 text UTF-8 text, preserving NBT value types base
Litematic .litematic v5–v7; named regions new v5/v7; native copies retain their version base
Sponge .schem v1–v3 new v2; native copies retain their version base
Bedrock .mcstructure v1 native document v1 native document / copy base; [bedrock] for conversion to/from Java
Legacy .schematic load_structure, structura-convert, structura-convert-legacy no legacy writer [legacy]

structura-convert reads all six formats and writes the first five. Java/Bedrock translation needs [bedrock] and can be lossy. Sponge v1 without a DataVersion requires --source-data-version when converting to another format; supply the source game's version, not the desired target.

The base package uses amulet-nbt for NBT parsing, NumPy for block data and portalocker for verified backup restore. The separate amulet-core translation dependency is installed only by [world], [legacy] or [bedrock].

Python

from structura_core import convert_structure, load_structure

structure = load_structure("house.litematic", region="Main")
print(structure.size, len(structure.present))
output = convert_structure(structure, "house.schem")
convert_structure("house.nbt", "house.snbt", strict=True)

convert_structure returns an absolute Path. Use Litematic, Schematic or Mcstructure document objects when native regions, metadata and unknown fields must survive a document copy.

Conversion rules

  • Native Java conversion retains DataVersion; it does not upgrade game data.
  • Omitted data produces ConversionWarning. --strict / strict=True rejects reported loss before writing; failed writes preserve an existing destination.
  • Same-format native document copies retain their fields. Cross-format conversion cannot preserve metadata that the destination cannot represent.
  • Java/Bedrock translation supports known vanilla blocks and waterlogging, omits ordinary entities and warns about block-entity fidelity. Its default target is 1.21.0.
pip install 'structura-core[bedrock]'
structura-convert house.nbt house.mcstructure --target-version 1.21.0

For old .schematic files, install [legacy] and use structura-convert-legacy old.schematic house.nbt --all-entities. The shared load_structure and structura-convert entry points also accept .schematic, retain all source entities, enforce their normal allocation limits and report normalization losses; strict mode rejects the conversion before writing. The legacy converter defaults to Java 1.21.1 and preserves selection bounds, air, materials and connections. --all-entities retains every source entity; otherwise only paintings and item frames are carried. Placement preparation belongs to structura-geo.

Documentation

  • Release verification: installed packages, dependency upgrade and downstream checks.

  • Migration to 0.6.1: changed analysis imports, legacy defaults and compatible package versions.

  • Architecture: module responsibilities, data ownership and conversion stages.

  • structura-geo: geometry, room and material metrics, morphology and placement preparation. Core has no dependency on geo or SciPy.

  • Conversion guide: preservation rules, Litematic regions, Sponge metadata, limits and existing helpers.

  • Format recipes: SNBT round trips, Sponge v1 source versions and the full Bedrock translation contract.

  • structura-render: image, vector and 3D output from the same structures.

CLI commands support --help. Public entry points include type information for IDE completion. Interactive editing belongs to the separate structura-edit.

Metadata

Release files for structura-core 0.6.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for structura-core 0.6.3
File Size Uploaded Provenance Actions
structura_core-0.6.3.tar.gz 98.8 kB With provenance Details for structura_core-0.6.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for structura-core 0.6.3
File Interpreter ABI Platform Actions
structura_core-0.6.3-py3-none-any.whl Python 3 none any Details for structura_core-0.6.3-py3-none-any.whl

Total release size: 163.7 kB

Release files / structura_core-0.6.3.tar.gz

Download URL structura_core-0.6.3.tar.gz
Size 98.8 kB
Tags Source
SHA-256 checksum
How to use checksums
640897713eee2211402ca53862313026319aa70c9f113107a53322f6b3ef490b
BLAKE2b-256 checksum
How to use checksums
c230e2dce95215e224a61c2a5759a526b00360cc0f427291fb772f7f3516f2c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release files / structura_core-0.6.3-py3-none-any.whl

Download URL structura_core-0.6.3-py3-none-any.whl
Size 64.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18fa48260c51be071a1359b146e8f0a72cc9ce5fcc0efd8f67837f7760161aa2
BLAKE2b-256 checksum
How to use checksums
7e4df00433d8ed6d125790759d003b8570957e8c101a758c4304397f5481dd14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Security for structura-core 0.6.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for structura_core-0.6.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page