Compatibility
Minecraft: Java Edition
1.21–1.21.3
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
Data Pack
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+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.random
module, 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.generate
module for terrain generation. Currently supports 2D shape algorithms, enabling texture and heightmap-based terrain generation. - #193 Added the
bs.interaction
module, 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_random
for filling regions with randomly selected blocks. - #258 Added
#bs.block:emit_block_particle
to emit block particles in specific locations. - #245 Added
piercing
and callback options to#bs.raycast:run
. - #203 Added
#bs.hitbox:is_entity_in_block
and#bs.hitbox:is_entity_in_blocks
to verify if an entity is within a block. - #233 Introduced new link management functions:
#bs.link:remove_link
to remove specific links.#bs.link:as_children
,#bs.link:as_parent
,#bs.link:at_children
, and#bs.link:at_parent
to handle parent-child link relationships.
- #171 Added logging functions
#bs.log:history
and#bs.log:clear_history
for viewing and clearing log history.
🔁 Tweaks
- #251 Enhanced
bs.block
fill functions to acceptfrom
andto
inputs as either[x, y, z]
lists or as stringified coordinates (e.g.,~ ~5 25
). - #247 Improved the default
bs.log
format for clarity. - #252 Optimized
bs.hitbox
module for improved performance. - #265 Optimized
bs.schedule
module for improved performance. - #265 Enabled
bs.move
module 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_load
tag. - #276 Add new hitboxes (new babies and salmon variants).
🐛 Fixes
- #254 Resolved execution loop interruptions caused by
#bs.schedule:schedule
callbacks. - #243 Fixed unload functions for
bs.health
andbs.move
. - #264 Resolved compatibility issues with the schedule module outside the overworld.
- #255 Fixed
bs.move
local velocity collisions. - #262 Resolved collision issues with paintings for
bs.raycast
andbs.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.