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).
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 targetsRelease 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.
The guides are in site/ and on the docs site, which also has the generated reference:
- Getting started
- Writing resources
- Functions
- Lint rules
- Tutorial: a custom dimension
- How functions compile
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.