A Minecraft datapack generator written in go.
Go 86.7%
Nix 13.3%
12 4 0

Clone this repository

https://tangled.org/cosmeak.dev/weave https://tangled.org/did:plc:7kmeyu6jyyczz7v2au2wt3hz/weave
git@tangled.org:cosmeak.dev/weave git@tangled.org:did:plc:7kmeyu6jyyczz7v2au2wt3hz/weave

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Weave – where datapacks come together.#

NOTE

Weave is under active development.

The API is evolving, but the core architecture is stable.

What is weave?#

Weave is a Go library that lets you build Minecraft datapacks in code, instead of writing JSON and .mcfunction files by hand.

You describe what you want (functions, advancements, loot tables, etc.), and weave takes care of generating the correct file structure and JSON output for Minecraft.

Weave is designed to be:

  • Modular: each feature lives in its own package
  • Composable: datapacks can be built across multiple files
  • Immutable: all operations return new values, no hidden mutation
  • Simple: no registries, no global state, no magic
  • Extensible: adding a feature does not require modifying core code

Core idea#

At its core, weave is a transformation pipeline:

User code
   ↓
Weaver (collects features)
   ↓
Emitters (one per feature type)
   ↓
File Data (paths + content)
   ↓
Disk (Minecraft datapack)

The user only interacts with DataPack and feature constructors.

Using Weave#

todo

Licensing#

Weave is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

Each files is using this license if not said otherwise at the top of the file.