Skip to content
MinecraftMetascriptPublic

About

A Programming Language for Minecraft Datapacks

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

MMS Metascript

Minecraft Metascript (MMS)

MMS is a small language that compiles to Minecraft data packs. One MMS file can stand in for the many JSON files a feature needs (noise, density functions, surface rules, loot tables, recipes, functions and more). It also gives functions helpers for globals, variables and scoreboards.

This branch is a full rewrite. The plan is in docs/plan.md, progress is in docs/tasks.md. Judgement calls are explained in pull request descriptions and commit messages. The older decision log (D1 to D94) is frozen and kept for reference.

Folder Contents
engine/ Go module: spec pack, parser, analysis engine, compiler, language server, CLI and WASM entry
web/ Browser editor (SvelteKit, CodeMirror 6, Deepslate previews), deployed to GitHub Pages
docs/ Guides, plan, task list, frozen decision log
editors/vscode/ VS Code extension (a client for mms lsp)
branding/ Logo, mark and favicon (SVG sources and the script that builds them)
examples/ Example projects, built by the tests and listed in the web editor

Target: Minecraft Java Edition 26.3 (data pack format 121).

Command line

cd engine && go install ./cmd/mms
mms init my_pack          # mms.json and a starter file
mms build my_pack         # check and write the data pack to my_pack/build
mms fmt my_pack           # format every .mms file
mms import pack.zip proj  # turn an existing data pack (folder or zip) into MMS
mms lsp                   # language server over stdio, for editors
mms reference             # every kind and helper, as JSON
mms version               # the version and the Minecraft version it targets

Release builds of mms for Linux, macOS and Windows, and the VS Code extension (editors/vscode), are attached to each GitHub release. Each platform's build of the extension includes mms, so editor users install only the extension.

Documentation

The guides are in site/ and on the docs site, which also has the generated reference:

Credits

MMS stands on other people's work:

  • Deepslate by Misode (MIT) renders every worldgen preview in the web editor and the VS Code panel.
  • mcmeta by Misode provides the vanilla worldgen, assets and command tree that previews and checks read.
  • vanilla-mcdoc by SpyglassMC (MIT) is the source of the data pack schemas the engine checks against.

License notices for what each build bundles: engine/THIRD_PARTY_NOTICES.txt (copied into every CLI release), third-party-licenses.txt on the web editor (generated by npm run build), and out/third-party-licenses.txt in the VS Code extension.

About

A Programming Language for Minecraft Datapacks

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages