Minecraft Datapack Language
mcmdl.com
What it is
Minecraft Datapack Language (MDL) compiles a JavaScript-style language into Minecraft datapacks. It supports if/else statements, while loops, number variables, arithmetic expressions and variable scopes. Projects can span multiple files, with variables from all files merged automatically, and can reference external JSON for registry types such as recipes, loot tables and advancements. Its command-line tool can create projects, check code and build datapacks or directories containing multiple files. A VS Code extension adds syntax highlighting, real-time error checking, build commands, workspace validation and raw text blocks. Python bindings support programmatic datapack creation with variables, control flow, nested functions and MDL scopes. Documentation includes Makefile, npm scripts and GitHub Actions build and checking examples. MDL is open source under the MIT License and costs nothing. Listed platforms include API, extension, Linux, macOS and Windows; system requirements include Python 3.8 or higher and Minecraft 1.20+ or 1.19+. Support pointers include documentation, examples, GitHub Issues and GitHub Discussions.
Spec sheet
- What it does
- MDL is a JavaScript-style language and compiler that converts source code into Minecraft datapack .mcfunction files.Read 14 Oct 2026 · mcmdl.com
- Purpose
- MDL compiles a JavaScript-style language into Minecraft datapacks.Read 4 Oct 2026 · mcmdl.com
- Security
- The maker pages reviewed do not state security or compliance certifications.Read 4 Oct 2026 · mcmdl.com
- Support
- The maker points users to documentation, examples, GitHub Issues, and GitHub Discussions for support.Read 4 Oct 2026 · mcmdl.com
- License
- MDL is open source software licensed under the MIT License.Read 4 Oct 2026 · mcmdl.com
- Build integrations
- Official examples show Makefile targets, npm scripts and GitHub Actions workflows running mdl check and mdl build.Read 14 Oct 2026 · mcmdl.com
- CLI
- The command-line tool can build datapacks, check code, create projects, and build directories containing multiple files.Read 4 Oct 2026 · mcmdl.com
- CLI build
- The mdl build command compiles a file or directory and creates a datapack directory plus a ZIP archive by default.Read 14 Oct 2026 · mcmdl.com
- CLI project creation
- The mdl new command creates a starter project containing source, README, documentation and local documentation-serving scripts.Read 14 Oct 2026 · mcmdl.com
- CLI validation
- The mdl check command scans MDL files for syntax and semantic errors and reports locations, context and suggestions.Read 14 Oct 2026 · mcmdl.com
- Control flow
- The language implements if, else-if, else and while constructs that compile into Minecraft conditional logic.Read 14 Oct 2026 · mcmdl.com
- Documentation depth
- The documentation set includes getting started, language reference, CLI reference, multi-file projects, Python bindings, examples and extension guidance.Read 14 Oct 2026 · mcmdl.com
- Editor integration
- The VS Code extension supports syntax highlighting, real-time error checking, build commands, workspace validation, and raw text blocks.Read 4 Oct 2026 · mcmdl.com
- GitHub repository activity
- The public repository page shows one star, one fork, one open issue, no pull requests and 1,436 commits.Read 14 Oct 2026 · github.com
- Independent description
- A Reddit announcement describes MDL as a language intended to simplify datapack creation with functions, tags, conditionals, a Python API, VS Code support and multi-file projects.Read 14 Oct 2026 · reddit.com
- Installation
- The recommended installation is pipx install minecraft-datapack-language, with pip and editable source installation also documented.Read 14 Oct 2026 · mcmdl.com
- Latest PyPI release
- PyPI shows version 18.0.3 released on September 11, 2025.Read 14 Oct 2026 · pypi.org
- License in contributing guide
- The contributing guide states that MDL is licensed under GPL-3.0, creating a license inconsistency across official pages.Read 14 Oct 2026 · mcmdl.com
- License on homepage
- The homepage identifies MDL as open source under the MIT License.Read 14 Oct 2026 · mcmdl.com
- Lifecycle hooks
- on_load and on_tick declarations generate Minecraft load and tick function tags.Read 14 Oct 2026 · mcmdl.com
- Limit: ecosystem duplication
- A Reddit commenter questioned the need for another datapack language because Beet and Bolt already provide Python-like datapack workflows.Read 14 Oct 2026 · reddit.com
- Limit: generated-code workflow
- A Reddit commenter said generated datapacks can become large and complex, making in-game modification of datapacks or scoreboards difficult.Read 14 Oct 2026 · reddit.com
- Limit: production adoption
- A Reddit commenter said they had not used datapack languages in production and found basic text-replacement tooling faster for their work.Read 14 Oct 2026 · reddit.com
- Maker identity
- The repository and site identify the maintainer as aaron777collins, whose GitHub profile names him Aaron Collins.Read 14 Oct 2026 · github.com
- Multi-file projects
- Only the main file needs a pack declaration; additional files are merged automatically during builds.Read 14 Oct 2026 · mcmdl.com
- Namespaces
- Namespaces organize functions and variables and are supported across multi-file projects.Read 14 Oct 2026 · mcmdl.com
- PyPI maintainer
- PyPI lists aaron777collins as the verified project maintainer.Read 14 Oct 2026 · pypi.org
- PyPI metadata
- PyPI records MIT License metadata, Python version requirement of 3.9 or newer and an OS-independent classifier.Read 14 Oct 2026 · pypi.org
- Python API
- The project documents Python bindings and demonstrates creating packs programmatically with the Pack class.Read 14 Oct 2026 · mcmdl.com
- Raw commands
- Raw blocks allow direct Minecraft command injection inside MDL functions.Read 14 Oct 2026 · mcmdl.com
- Registry support
- MDL can reference external JSON files for Minecraft registry types such as recipes, loot tables, and advancements.Read 4 Oct 2026 · mcmdl.com
- Release news
- GitHub lists automated releases v18.0.0 through v18.0.3 on September 11, 2025, with Python packages and VSIX extension assets.Read 14 Oct 2026 · github.com
- Requirements
- The downloads page lists Python 3.8 or higher, Minecraft 1.20+ or 1.19+, and Windows, macOS, or Linux as system requirements.Read 4 Oct 2026 · mcmdl.com
- Resource tags
- Tag declarations can reference recipes, loot tables, advancements, item modifiers, predicates and structures.Read 14 Oct 2026 · mcmdl.com
- Scoping
- Variables can use explicit entity selectors such as <@s> or <@a[team=red]>, with omitted scope defaulting to @s.Read 14 Oct 2026 · mcmdl.com
- Shell support
- CLI completion supports Bash, Zsh, Fish and PowerShell.Read 14 Oct 2026 · mcmdl.com
- Support channels
- Support is directed to documentation, examples, GitHub Issues and GitHub Discussions.Read 14 Oct 2026 · mcmdl.com
- System requirements
- The downloads page lists Python 3.8 or newer, Minecraft 1.20+ or 1.19+, Windows/macOS/Linux and VS Code 1.60+ for the extension.Read 14 Oct 2026 · mcmdl.com
- Variables
- Numeric variables support arithmetic, scoreboard storage and substitution using $variable$ syntax.Read 14 Oct 2026 · mcmdl.com
- VS Code tooling
- The extension provides syntax highlighting, live error checking, IntelliSense, snippets, workspace validation and build commands.Read 14 Oct 2026 · mcmdl.com
Plans and prices
Strong points and limits
Strong points
- Supports conditional logic, loops, variables and arithmetic.
- Multi-file projects merge variables automatically.
- CLI can check code and build datapacks.
- VS Code extension provides real-time error checking.
Limits
- Requires Python 3.8 or higher.
- Requires Minecraft 1.20+ or 1.19+.
- Maker pages reviewed do not state security or compliance certifications.
Who it suits
MDL suits Minecraft datapack creators who want to use a JavaScript-style language, command-line builds, VS Code or Python bindings. It is also suited to multi-file projects and workflows using Makefiles, npm scripts or GitHub Actions.
Verdict
MDL offers several ways to create and validate datapacks, from the CLI to VS Code and Python bindings. Check the stated Python and Minecraft requirements before using it.
Where Specifiction places it
- Minecraft Datapack Generators#2 of 228.6