Define a block in Python.
Get the whole datapack.
StewBeet is a Beet framework for Minecraft datapacks. Describe your content once. Models, recipes, loot tables, translations and an in-game manual are all built from it on every compile.
MIT licensed ยท Python 3.14+ ยท no account needed
v3.5.8
released 9 days ago
1.4k
PyPI downloads / month
23
public projects built with it
44
GitHub stars
Why this exists
One custom block, written by hand, is at least eight files across two packs in four formats. Miss one and nothing errors. The block just quietly never drops.
By hand
- function/place.mcfunctionplacement
- function/destroy.mcfunctiondestruction
- loot_table/block.jsondrops
- recipe/block.jsonvanilla recipe
- function/calls/crafter.mcfunctionNBT recipe
- items/block.jsonitem definition
- models/item/block.jsonmodel
- lang/en_us.jsontranslation key
With StewBeet
- definitions/blocks.py
The other eight are derived from it on every build, so they cannot drift apart.
A definition is a name, some values and a list of recipes. If you can read datapack JSON, you can read one.
Your datapack documents itself
Every item you define gets a manual page: its recipe drawn from the ingredients you declared, its description, and clickable navigation between categories. Players craft the book in-game and it is already up to date.
- Recipes rendered from your definitions, not screenshotted by hand
- New item today, new manual page on the next build
- Custom pages, hooks and button layouts when you need them
What you stop writing
Six things StewBeet generates from definitions you already wrote.
23 public projects are built with StewBeet
Two of them at scale, with the source you can read.

A large progression pack: custom ore tiers, blocks, paintings and a full in-game manual.
774
.mcfunction
1,331
.json
971
textures
Works with the libraries you already use
Detected from your code and merged into the build automatically.
From nothing to a built pack in four commands
Start from a template
Three starting points. The Basic template is the one to pick if you are unsure.
Which one?
Take the Basic template. It wires up every plugin with commented configuration and no example content, so you add only what your project needs.
Define a block. Build the pack.
The Basic template wires up every plugin with commented configuration and no example content to delete.
MIT licensed ยท Python 3.14+ ยท no account needed

