Skip to content

Latest commit

 

History

History
111 lines (92 loc) · 17.8 KB

File metadata and controls

111 lines (92 loc) · 17.8 KB

YouTube GitHub Documentation Lint Powered by StewBeet PMC Discord PyPI - Downloads

Tests 3.14 Tests 3.14t Tests 3.15 Tests 3.15t

❓ What is StewBeet

StewBeet is a Beet framework and library 📦 aiming to provide huge automation for creating Minecraft datapacks.
It is designed to be very simple to use and very convenient for developers.

Example of the in-game manual generated by StewBeet:
In-game Manual Example

Here is a list of features that the package provides (the template is using all of them with clear comments):

  • 🔄 Automatic resource pack files generation (models, textures, sounds, music discs) with the ability to override them with help of the assets folder.
  • ⏳ Versioned load, and clock functions such as tick, second, minute.
  • 🗃️ Loot tables for every item in the definitions along with a proper _give_all function that gives named chests.
  • 📖 Automatic generation of a really advanced and interactive items manual.
  • 📝 Automatic generation of a en-us.json lang file in the resource pack if configuration is set.
  • 🖼️ Automatic headers for every function in function folders.
  • 🔢 Automatic scoreboard constants generation: detects #{integer} namespace.data patterns across functions and generates initialization commands.
  • 🍳 Multiple recipe types support: Vanilla, Smithed Crafter, Furnace, Pulverizer, and Awakened Forge recipes.
  • 🖼️ Custom paintings support with author, title, and texture metadata.
  • 🖼️ render key on any text component: {"render":"steel_ingot"} in an item lore, a tellraw or the source_lore becomes an image of that item, drawn with a font generated for you (vanilla items and items from other packs included). Pictures too big for a single glyph are cut into a grid of them and put back together with negative spacing.
  • 🏗️ Item and Block Python classes for defining custom items and blocks with recipes, components, model overrides, manual categories, and more: registered automatically in Mem.definitions on instantiation. Block extends Item with vanilla block mapping, silk-touch drops, and growing seed support. Variants BlockAlternative (item frame) and BlockHead (player head) are also available.
  • ScoreboardEquation and StorageEquation Python builder classes for generating chained scoreboard arithmetic commands with method chaining (set, add, subtract, multiply, divide, modulo) and standard Python operators (+, -, *, /, %). Handles int constants, macro arguments ($(foo)), and nested equations, outputting self-documenting commands with an auto-generated header comment.
  • 📚 Official libraries integrations:
    • 🧪 Automatic support for NBT Recipes with Smithed Crafter and Furnace NBT Recipes
    • 🛠️ Placement and destruction for every custom block in the definitions with support for blockstates, ore drops (fortune, silk touch), with Smithed Custom Blocks.
    • 📚 Each module from Bookshelf is automatically added if you are using it, ex: function #bs.math:... will add the bs.math module to the datapack.
    • ⛏️ Custom ore generation with Smart Ore Generation.
    • 📦 Item transportation / container declaration with ItemIO when making custom containers.
    • 🔔 Events such as new items detection with Common Signals.
  • 🌐 External datapack libraries support, see configuration for more information.
  • 🔗 Merging datapacks and resource packs with libraries using Smithed Weld.
  • 🧩 Automatic recognition of custom blocks patterns depending on the texture names in the assets/textures folder. For instance, if you have a top, side, and bottom texture, the block will be automatically recognized as a cube with the top, side, and bottom textures.
  • 📏 Follow the datapack conventions such as LanternLoad, CustomModelData prefix, tag specification, and namespacing.
  • 🧰 Ability to merge a model with the autogenerated one or override it.
  • 🔀 merge folder providing a way to merge custom files with the autogenerated ones or add custom files to the datapack.
  • ⚙️ Automatic special compatibilities with datapacks such as SimpleDrawer's compacted drawer, SimplEnergy's pulverizer, and NeoEnchant's veinminer for custom ores.
  • 🔌 Automatic generation of an unload function to cleanly remove scoreboards, storages, entities, and libraries.
  • 🔢 Efficient sorting functions generation (Quick Sort, Selection Sort) for NBT storage lists.
  • 📂 Automatic copy of generated zip files to configured folders.

📦 Getting Started & Documentation

For complete installation instructions, tutorials, and comprehensive documentation, visit the official website:

Quick links:

🤝 Contribute

Want to help improve StewBeet? 🔍
Here's how you can contribute:

  • 🐛 Report Bugs: Found a bug? Open an issue on GitHub describing what happened and how to reproduce it.
  • Suggest Features: Have an idea for a new feature? Share it in the issues section!
  • 🔧 Submit Pull Requests: Feel free to fix bugs or add new features by submitting pull requests.
  • 📚 Improve Documentation: Help make our docs better by fixing errors or adding examples.
  • 💬 Help Others: Join our Discord server and help other users with their questions.

Every contribution matters, no matter how small! 🙌

📜 What projects use StewBeet?

To search for projects that use the framework, I search like this.
Here is a list of projects that use it: