v3.0.0 Stable Release

Automate your
Minecraft Datapacks

StewBeet is a Beet framework providing powerful automation for Minecraft datapacks. Adaptable to any workflowβ€”use only the features you need, or leverage the full suite for complete project generation.

View Documentation
Type-safe definitions
Auto-generated assets

What is StewBeet?

A Beet framework that revolutionizes Minecraft datapack creation by automating everything repetitive and time-consuming.

The Problem

Creating a datapack requires manually writing hundreds of JSON files, models, textures, functions...

The Solution

StewBeet automates EVERYTHING: resource pack generation, models, custom blocks, recipes, and much more!

The Result

Focus on creation, not files. Define your items and let StewBeet generate the rest.

setup_definitions.py
# Simply define your items...
Block(
    id="super_stone",
    vanilla_block=VanillaBlock(id="minecraft:cobblestone"),
    recipes=[
        # Examples of crafting recipes (shaped and shapeless), no need to specify result -> will default to the Item id
        CraftingShapedRecipe(category="blocks", shape=["XXX","XXX","XXX"], ingredients={"X": Ingr("minecraft:stone")}),
        CraftingShapelessRecipe(category="blocks", ingredients=9*[Ingr("minecraft:deepslate")]),

        # Example of recipe with vanilla result (not custom item)
        SmeltingRecipe(experience=0.1, cookingtime=200, category="blocks", ingredient=Ingr("super_stone"), result=Ingr("minecraft:diamond")),
        BlastingRecipe(experience=0.1, cookingtime=100, category="blocks", ingredient=Ingr("super_stone"), result=Ingr("minecraft:diamond")),
    ],
)

# StewBeet automatically generates:
# βœ… Models JSON
# βœ… Textures management
# βœ… Loot tables
# βœ… Custom item data
# βœ… In-game manual entries
# βœ… Lang files
# ...and much more!

Powerful Automation

StewBeet handles the repetitive parts of datapack creation so you can focus on the mechanics.

preview.json
{
  "parent": "block/orientable",
  "textures": {
    "front": "simplenergy:item/electric_furnace_front_on",
    "side": "simplenergy:item/electric_furnace_side",
    "top": "simplenergy:item/electric_furnace_top"
  }
}

Get Started in Seconds

terminal β€” bash
user@stewbeet:~$

Available Templates

Choose the template that best fits your needs. The Basic template is recommended for most users.

πŸ’‘

Getting Started Tip

I strongly recommend the Basic Template as it includes all plugins with clear and commented configuration, without overwhelming you with code examples. You can start from a clean base and add only what you need!

StewBeet Individual Plugins

Over 20 plugins to automate every aspect of your datapack.
Legend: πŸ”΄ Fully dependent 🟑 Partly dependent 🟒 Independent

CategoryPluginDescriptionImageDependency
Core
initializeInitializes the framework and sets up project metadata
πŸ”΄Fully dependent
Resource Pack
resource_pack.soundsProcesses sound files and generates sounds.json automatically
🟑Partly dependent
Resource Pack
resource_pack.item_modelsAutomatically generates item and block models
🟑Partly dependent
Resource Pack
resource_pack.check_power_of_2Validates that textures use power-of-2 resolutions
🟒Independent
Recipes
custom_recipesGenerates vanilla, smithed, furnace, and pulverizer recipes
πŸ”΄Fully dependent
Custom Content
custom_paintingsCreates custom painting variants
πŸ”΄Fully dependent
Documentation
ingame_manualGenerates an interactive in-game manual with documentation
πŸ”΄Fully dependent
Datapack
datapack.loadingSets up the loading system with versioning
🟑Partly dependent
Datapack
datapack.custom_blocksImplements placement, destruction, and interaction for custom blocks
πŸ”΄Fully dependent
Datapack
datapack.loot_tablesGenerates loot tables and give-all functionality
πŸ”΄Fully dependent
Datapack
datapack.sortersGenerates sorting functions for NBT lists
🟒Independent
Compatibility
compatibilities.simpledrawerAdds SimpleDrawer material compatibility for compacted drawers
πŸ”΄Fully dependent
Compatibility
compatibilities.neo_enchantProvides NeoEnchant veinminer compatibility for custom ores
πŸ”΄Fully dependent
Finalization
finalyze.custom_blocks_tickingConfigures the ticking system for custom blocks
πŸ”΄Fully dependent
Finalization
finalyze.basic_datapack_structureCreates the timing structure (tick, second, minute)
🟑Partly dependent
Finalization
finalyze.dependenciesManages external library dependencies
πŸ”΄Fully dependent
Finalization
finalyze.check_unused_texturesIdentifies unused textures in the resource pack
🟒Independent
Automation
auto.lang_fileAutomatically generates language files
🟒Independent
Automation
auto.headersAdds automatic headers to mcfunction files
🟒Independent
Automation
auto.scoreboard_constantsDetects scoreboard constant usages and generates initialization commands
🟒Independent
Build
archiveCreates zip archives of datapacks and resource packs
🟒Independent
Build
merge_smithed_weldMerges datapacks and resource packs with libraries
🟒Independent
Build
copy_to_destinationCopies generated packs to destination folders
🟒Independent
Build
compute_sha1Computes SHA1 hashes for all zip files
🟒Independent