Compatibility
Minecraft: Java Edition
1.21.5–1.21.8
Platforms
Creators
Details
Changelog
📦 Bookshelf - 3.0.0
🚂 The Pipeline Update!
This release overhauls the project structure with Beet, focusing on modularity and isolation of each module. It also introduces a new version loader that resolves conflicts between multiple versions.
⚠️ BREAKING CHANGES: This new version has a few breaking changes!
Bookshelf is now based on Minecraft 1.21.5. Each module of Bookshelf is now shipped as a separate datapack for people wanting to use only a single module. Introduced bundles to better group modules, replacing Bookshelf and Bookshelf Dev datapacks: Bookshelf Runtime, Bookshelf Dev, Bookshelf Prefabs, and Bookshelf Suite.
- ⚠️ #281 - Merged the bs.biomeandbs.weathermodules into a singlebs.environmentmodule.
- 📦 #323 - Introduced bundles to better group modules, replacing Bookshelf and Bookshelf Dev datapacks: Bookshelf Runtime, Bookshelf Dev, Bookshelf Prefabs, and Bookshelf Suite.
- 🎉 #272 - Added an automatically generated bs.loadmodule, removing the need for manualloadandunloadtags. Bookshelf now also uses LanternLoad.
- ⚡ #285 - Removed the need for __help__functions andhelptags. These are now generated.
- 📝 #285 - Migrated the documentation to mcbookshelf.dev and reworked the contribution guide to explain the new Beet pipeline.
- ⚙️ #285 - Created a GitHub organization and transitioned from the Jupyter Notebook to Beet. Updated the metadata format, added new issue templates, and introduced workflows for automatic deployment to Modrinth and Smithed. Modules now also require a README.mdand apack.png.
- 📥 #333 - Bookshelf now has its own download manager, allowing users to select modules along with their dependencies and create custom bundles.
- 📥 #336 - Bookshelf is now available on PyPI for use with the Beet toolchain.
🧱 bs.block
- ⚠️ #375 - Changed get_blockandget_typeto only return existing data. Empty strings for state or NBT are no longer possible; if absent, the field is omitted instead.
- ✨ #279 - Introduced play_block_sound, a function for playing block sounds.
- 🐛 #320 - Fixed functions that were previously unusable outside the Overworld.
- ⚡ #375 - Added default values to emit_block_particleand new parameters (mode,viewers).
- ⚡ #363 - Enhanced fill_block,fill_type,fill_random,set_block, andset_typeto acceptstrictas amodeparameter, allowing control over whether the operation triggers block updates.
- ⚡ #349 - Added the on_finishedargument to fill operations. If specified, the provided command runs automatically when the operation completes.
- ⚡ #287 - Updated replace_typeto return whether a type was found and replaced.



