Compatibility
Minecraft: Java Edition
1.21–1.21.8
1.20.5–1.20.6
1.19.x
1.18.x
1.17.x
1.16.x
1.14.x
1.13.x
Platforms
Creators
Details
Changelog
📦 Bookshelf - 2.2.0
🪐 The dimensional update!
This release features new modules for random distribution and terrain generation, refinements to existing modules, performance enhancements, and minor bug resolutions. Additionally, this update aims to ensure all functions work seamlessly across all dimensions.
Bookshelf is now based on Minecraft 1.21.3.
🎉 Added modules
- #1 / #220 Added the
bs.randommodule, which includes:- Random distributions: uniform, binomial, geometric, and Poisson.
- Noise generation functions: white, simplex, and fractal.
- Random selection of an element from a list.
- #6 Added the
bs.generatemodule for terrain generation. Currently supports 2D shape algorithms, enabling texture and heightmap-based terrain generation. - #193 Added the
bs.interactionmodule, which proposes interactions to listen to different players' events: left click, right click, hover (enter, leave and continuous).
✨ Added features
- #222 Added
#bs.block:fill_randomfor filling regions with randomly selected blocks. - #258 Added
#bs.block:emit_block_particleto emit block particles in specific locations. - #245 Added
piercingand callback options to#bs.raycast:run. - #203 Added
#bs.hitbox:is_entity_in_blockand#bs.hitbox:is_entity_in_blocksto verify if an entity is within a block. - #233 Introduced new link management functions:
#bs.link:remove_linkto remove specific links.#bs.link:as_children,#bs.link:as_parent,#bs.link:at_children, and#bs.link:at_parentto handle parent-child link relationships.
- #171 Added logging functions
#bs.log:historyand#bs.log:clear_historyfor viewing and clearing log history.
🔁 Tweaks
- #251 Enhanced
bs.blockfill functions to acceptfromandtoinputs as either[x, y, z]lists or as stringified coordinates (e.g.,~ ~5 25). - #247 Improved the default
bs.logformat for clarity. - #252 Optimized
bs.hitboxmodule for improved performance. - #265 Optimized
bs.schedulemodule for improved performance. - #265 Enabled
bs.movemodule to function effectively at higher coordinate ranges. Collision detection has also been improved and should be more robust. - #265 Load tags do not load modules in isolation anymore. This can now be done using the
exclusive_loadtag. - #276 Add new hitboxes (new babies and salmon variants).
🐛 Fixes
- #254 Resolved execution loop interruptions caused by
#bs.schedule:schedulecallbacks. - #243 Fixed unload functions for
bs.healthandbs.move. - #264 Resolved compatibility issues with the schedule module outside the overworld.
- #255 Fixed
bs.movelocal velocity collisions. - #262 Resolved collision issues with paintings for
bs.raycastandbs.move. - #256 Fixed XP progress boundary issues at 0% and 100%.
- #265 Corrected hitbox for player in spectator mode.
- #270 Enabled all modules to function across any dimension.



