Anvil Documentation
Introduction to Anvil
Anvil is a comprehensive development toolkit designed for creating Minecraft Bedrock Edition content with ease and flexibility. Anvil aims to simplify the creation of custom Minecraft entities, blocks, commands, and more by leveraging Python and embracing a modular, component-based design philosophy.
Whether you're a seasoned Minecraft modder or just starting your journey in content development, Anvil provides you with the tools to make your creations come to life. Its features are designed to streamline workflows, enforce consistency, and offer a robust framework for handling the complexities of Minecraft content.
Community Contributions
Anvil is intended to grow as a community-driven project. Contributions are very much encouraged, whether that's fixing bugs, improving documentation, or adding support for new Minecraft Bedrock features. If you have ideas or want to help build the toolkit, we want you involved.
Key Features
- Modular Development: Design blocks, entities, and features in a reusable manner to make your content scalable and easy to manage.
- Schema Management: Automate JSON schema creation and validation for Minecraft packs to eliminate manual errors.
- Report Generation: Generate detailed reports about the contents of your project, including entities, blocks, and other assets, for easy tracking and management.
- Project Validation: Validate your project before submission to the Minecraft Marketplace, raising any errors or warnings that need to be addressed to meet Marketplace standards.
- Multi-Format Packaging: Package your project into multiple formats, worlds, addons, templates and more.
Getting Started with Anvil
Prerequisites
To use Anvil, ensure you have the following installed:
- Python 3.13 or higher.
- Operating System: Windows, Linux, or macOS.
Installation
To install Anvil, you can use pip:
pip install mcanvil
This will install the latest version of Anvil along with its dependencies.
Creating Your First Project
To create a new Minecraft development project with Anvil, open your terminal and run the following command:
anvil init <namespace> <project_name> [options]
(You can also use the alias anvil create <namespace> <project_name> [options])
- namespace: A unique identifier for your project. The namespace
minecraftis reserved and cannot be used. - project_name: The name of your project.
Optional flags include:
--preview: Set up the project for Minecraft Preview.--scriptapi: Adds support for Script API dependencies.--addon: Marks the package as an addon, enforcing relevant constraints.--vscode: Adds support for Visual Studio Code (generates workspace and launch configuration).
Example
anvil init my_ns awesome_project --scriptapi --vscode
This command will:
- Create a folder named
awesome_projectin your working directory. - Set up the initial project structure, including JSON and Python files.
- Generate
.github/workflows/release.ymlso version bumps inanvilconfig.jsoncan build archives and publish a GitHub release.
Project Structure
Once you create your project, the structure will look like this:
awesome_project/
├── .github/
│ └── workflows/
│ └── release.yml
├── assets/
│ ├── bbmodels/
│ ├── particles/
│ ├── textures/
│ ├── sounds/
│ └── structures/
├── marketing/
├── output/
├── scripts/
│ ├── javascript/
│ └── python/
├── world/
├── .gitignore
├── CHANGELOG.md
├── anvilconfig.json
├── esbuild.js
├── package.json
└── tsconfig.json
Running Your Project
To test your project in Minecraft, navigate to your project folder and use the following command:
anvil run
This command will run your python script and generates the necessary files for your project.
Links & Resources
- Documentation - Official docs for anvil.
- Bedrock Learn Portal - Official Minecraft Bedrock Documentation.
Projects made with Anvil
|
|
|
|
|
Release files for mcanvil 0.9.95
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcanvil-0.9.95.tar.gz | 452.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcanvil-0.9.95-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 926.0 kB
Release files / mcanvil-0.9.95.tar.gz
| Download URL | mcanvil-0.9.95.tar.gz |
|---|---|
| Size | 452.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad0672d4554fd6218654277d621501d020d3e466c3b09083bdef0be221f1f295
|
|
BLAKE2b-256 checksum How to use checksums |
418e4aa80a12431585ce26ebc4ed8e7303f320272d4a287cde6006a9d0a3b713
|
| 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 24, 2026.
Transparency logRelease files / mcanvil-0.9.95-py3-none-any.whl
| Download URL | mcanvil-0.9.95-py3-none-any.whl |
|---|---|
| Size | 473.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ee9bcf7e9ee5ac2cd2c3baf6cbd611f7266f3ddcb84026e2b334b9b89cf2045f
|
|
BLAKE2b-256 checksum How to use checksums |
209ede183202c58860b3a72332f8c44c0eac07c44c50fceb410b93e8f40afb58
|
| 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 24, 2026.
Transparency log