Amethyst
June 29, 2026 ยท View on GitHub
Amethyst
Yet another programming language targetting Minecraft datapacks? We have enough already.
-- Someone (probably)
There's been many different attempts at making a high-level programming language for Minecraft Data packs over the years, but one flaw I've seen in all of them is that they let the limitations of commands dictate what's possible. All of that changed when Minecraft added macro functions, greatly increasing the flexibility of data packs. The goal of Amethyst is to leverage macro functions and other features to allow users to make data packs as easily as they would write any other program.
Supports data pack versions 88.0 (1.21.9) through 107.1 (26.2), theoretically works on Minecraft 1.20.5+ with some tweaks to the pack.mcmeta file. No, it will not be ported to earlier versions without macro functions.
Usage
The latest releases are found here. Documentation is on the website.
Nightly builds can be accessed through Github Actions or here:
| OS | Builds |
|---|---|
| Windows | x86-64 (installer) Arm (installer) |
| Linux | x86-64 (.deb, .pkg.tar.zst) |
| Mac | Apple Silicon |
Packages for the apt and pacman package managers are built and tested for each commit.
The latest VS Code extension build can be found here or through the official VS Code Marketplace.
Examples:
amethyst compile examples/test.ame -o datapack.zip
amethyst compile tests/*.ame -o tests.zip
Simple program:
namespace example;
#load
void main() {
print("Hello World");
int x = 7;
print("Value: ", x * 9);
@/say $(x == 7)
int array = [x];
array.add(-9);
print(array);
if (@s[type="player"]) {
print("Called by a player");
}
}
Planned Features
See the 1.0 release project for more details.
Support the Project
Like what you see? Support me on Ko-fi.