New Features
- Added support for Minecraft 1.21.6
- Implemented happy_ghast collision type
- Added Redstone API for custom signal sources
- Introduced spectral arrow-based custom arrows
- Added new block behaviors:
trapdoor_block
,door_block
,fence_gate_block
slab_block
,stairs_block
,pressure_plate_block
sturdy_base_block
,stackable_block
- New item settings:
compost-probability
(composting chance)oversized-in-gui
(1.21.6+)hand-animation-on-swap
(hand animation when swapping)color-when-undyed
(default color for undyed items)
- Added YAML version conditional syntax (e.g.,
"$$>=1.20"
) - Resource pack enhancements:
resource-pack.exclude-core-shaders
option- Improved handling of hidden directories (ignores
.prefix
folders)
- Added configurations for:
- Palm wood based doors, trapdoors, stairs, slabs, fence_gate, pressure_plate
- Cap
- Pebble blocks
- Custom tridents (1.20-1.21.3)
Improvements
- Enhanced
waterlogged
block behavior:- Now works properly with dispensers
- Fixed visual glitches
- Optimized
migrate-templates
command - Sound options now support value ranges (e.g.,
volume: 0.9~1.0
) - Template system upgrades:
- Unspecified parameters now return
null
instead of parameter names - Fixed
map
type parameter shortcuts
- Unspecified parameters now return
- FAWE compatibility:
- Fixed
mask
application issues
- Fixed
- Linux support:
- Added symbolic link resolution
Bug Fixes
- Fixed projectile-related issues from previous optimizations:
- Custom arrows not functioning
- Loyalty tridents missing return animation
- Eliminated console warnings for vanilla loyalty tridents
- Fixed block lighting issues (1.20-1.21.1)
- Corrected barrier item ID display issues in /ce GUI (1.20.1-1.20.4)
- Fixed
strippable_block
behavior in 1.21.5+:- Now properly recognizes offhand items with
block_attack
component
- Now properly recognizes offhand items with
- Resolved Folia chunk loading issues:
- Furniture collision volumes now initialize correctly
- Addressed
client-bound-data
problems in 1.21.5+:- Fixed client-side cursor item desync
- Corrected enchantment table option synchronization
- Fixed template parameter parsing edge cases
- Resolved JSON formatting causing resource pack validation failures
Bug Fixes
- Fixed flint and steel making no sound when igniting custom blocks.
- Fixed interaction priority issue with decorated_pot when used by items with block_item behavior.
- Fixed plugin compatibility issues caused by Paper's plugin classloader isolation.
- Fixed hard collision not affecting other entities in 1.20.1-1.20.6.
- Fixed right_click events not triggering when interacting with entities.
- Fixed furnace failing to use correct recipes when conflicting with vanilla recipes.
- Fixed NPE in Skript expressions when referencing non-existent IDs.
- Fixed block break state sync conflicts with some NPC plugins.
New Features
- Added new item settings types:
invulnerable
,craft-remaining-item
,consume-replacement
,food
((for 1.20.1-1.20.4)). - Added
client-bound-material
option for items. - Added new item data types:
dyed-color
- Experimental Resource Pack Validator (checks for missing textures/models).
- YAML parser now detects and reports duplicate keys with their line numbers (helps debug config errors).
- Optimized network performance by reducing packet count for custom projectiles.
- Optimized packet handling for custom block lighting.
- Added MythicMobs drops/items support
Improvements
- Improved item construction speed by fully bypassing Bukkit API.
- Refactored the template system to make it more powerful
- Ensured thread-safe for furnace recipe handling
- Optimized config reload system - now completes
/ce reload
in 5ms (tested on i9-13900K)
⚠️ Breaking Changes You Must Know
New Template Syntax: Changed parameter format to ${param:-default}
(adds $ prefix and supports :-default_value)
Migration is Required: Run /ce debug migrate-templates
to convert existing template configs
Note: Migration isn't perfect - minor errors may occur with "{}" formatted config sections (should be easy to fix manually)
We apologize for the config format change caused by previous design limitations
Bug Fixes
- Resolved null pointer exception when interacting with custom cactus-based blocks using empty hand
- Corrected improper relocation path for imaging libraries
- Added template and example configuration files for custom elytra implementation
New Features
- Removed dependency on Ignite mod - CraftEngine now functions as a standalone solution
Changes
- Fabric mod module will be migrated to a dedicated repository to ensure comprehensive version support
Breaking API Changes:
- CustomBlock and CustomFurniture classes have been converted to interfaces.
- LoadedFurniture in the craft-engine-bukkit module has been renamed to BukkitFurniture and now implements the Furniture interface.
Breaking Configuration Changes:
- Due to the new support for combined block behaviors, default configurations will be affected by this update. sugar_cane_block has been replaced with vertical_crop_block. For detailed default configuration changes, please refer to this commit: 3128fe3.
Fixed Bugs:
- Fixed client-side light remaining after breaking certain custom blocks.
- Fixed collision shapes not syncing with the client for some block types (e.g., cactus).
- Reimplemented self-host using Netty for improved stability.
- Fixed custom projectiles in always-loaded chunks not applying models correctly after restart.
- Fixed custom block tags causing water blocks to lose gravity and lava to appear as water in 1.20.5-1.21.1.
- Fixed torches and similar blocks placed on furniture breaking immediately (furniture was not designed to have support shape).
- Fixed container opening issues in early Paper 1.21.4 builds.
- Fixed replaceable blocks being able to replace themselves.
- Fixed debug stick not functioning properly.
New Features:
- Added support for combined block behaviors, allowing creation of new block types through customization.
- client-bound-data no longer requires server-side mods and now supports <arg> and <papi>.
- Enhanced <global> variable functionality, now supporting parameter passing within tags.
- <image> can now be used with other items and won't cause irreversible item corruption in creative mode (not guaranteed to work with ViaVersion).
- Added support-shape block setting.
- Added lamp_block behavior and redstone-related APIs.
- Added more condition and function types.
- Shift-clicking in the CE menu now directly gives items.
- Any item can now be used as a totem animation (requires 1.21.2+).
- Added legacy-model configuration for resource pack models compatible with 1.21.3 and below.
- Added support for merging external ZIP resource packs.
- Added blacklist for file extensions during resource pack merging.
- Refactored dependency downloads to further reduce plugin size.
- Added default configuration for copper_coil.
- Added blacklist configurations for bush_block and hanging_block.
- Introduced a memory-based resource pack generation system instead of a real file system, achieving approximately 300% faster pack generation speed.
- Implemented configuration file caching, improving configuration loading speed by approximately 20% compared to before.
- Added custom projectile item setting
- Improved item model generation for 1.21.2
- Added an option to allow dye recipes for some items
- Added original item storage for furniture
- Implemented custom data API for furniture
- Added client bound block tags for vanilla blocks
- Fixed item components not loaded on 1.20.5-1.20.6
- Refactored context system again
- Added full FAWE (FastAsyncWorldEdit) compatibility.
- Removed the deprecated delayed-serialization option, now replaced by the new cache-system.
- Added configurable injection method—choose between LevelChunkSection or Palette.
- Improved dependency management—dependencies are now downloaded only when required.
- Added full 1.21.5 component support
- Fixed team packet handling on 1.21.5
- Fixed using bone meal with dispenser on 1.21.5
- Fixed middle clicks on 1.21.5
- Fixed chunk data desync
- Refactored context system
- Block entity system implementation
- Optimized chunk system again by implementing fast injection and dirty flags.
- Added warning logs for potential errors in most configuration files to improve debugging.
- Resolved CraftBukkit compatibility issue caused by block-entity-based custom blocks.
- Fixed sound mappings generation by handling duplicate sound keys properly.
- Added grass_block behavior
New Features
- Better adventure mode experience
- Client bound item data Format Changes https://mo-mi.gitbook.io/xiaomomi-plugins/craftengine/plugin-wiki/craftengine/misc/config-format-changelog#id-0.0.48