Need help with Amulet-Core?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

146 Stars 22 Forks 1.8K Commits 9 Opened issues


A Python library for reading and writing the Minecraft save formats. See Amulet for the actual editor.

Services available


Need anything else?

Contributors list

Amulet Core

Build Unittests Stylecheck Documentation

A Python 3 library to read and write data from Minecraft's various save formats.

This library provides the main world editing functionality for Amulet Map Editor

If you are looking for the actual editor it can be found at Amulet Map Editor


Our online documentation can be found here:


1) Install Python 3.7 2) We recommend setting up a python virtual environment so you don't run into issues with dependency conflicts. 3) run

pip install amulet-core
to install the library and all its dependencies.


This library uses a number of other libraries. These will be automatically installed when running the command above. - Numpy - Amulet_NBT - PyMCTranslate


For Development


pip install -r requirements-dev.txt
This command will install the following libraries which will be required if you plan to contribute code to the project. - Black (Required for formatting) - Must be run before pushing a Pull Request - Sphinx - sphinx-autodoc-typehints - sphinxrtdtheme

For information about contributing to this project, please see the contribution section below

Code Formatting

For code formatting, we use the formatting utility black. To run it, run the following command from your favorite terminal after installing:

black amulet tests

In order for your pull request to be accepted, this command must be run to format every file.

Building the Documentation

To build the documentation locally, run the following command:

make html
and then navigate to the generated directory
in your favorite web browser

Branch Naming

Branches should be created when a certain bug or feature may take multiple attempts to fix. Naming them should follow the following convention (even for forked repositories when a pull request is being made):

  • For features, use:
  • For bug fixes, use:
  • For improvements/rewrites, use:
  • For prototyping, use:

Pull Requests

We ask that submitted Pull Requests give moderately detailed notes about the changes and explain any changes that were made to the program outside of those directly related to the feature/bug-fix. Make sure to run all tests and formatting otherwise we cannot accept your pull request.

Note: We will also re-run all tests before reviewing, this is to mitigate additional changes/commits needed to pass all tests.

Once a Pull Request is submitted, we will mark the request for review, once that is done, we will review the changes and provide any notes/things to change. Once all additional changes have been made, we will merge the request.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.