
CraftEngine 0.0.57
Modding your server without client mods
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
Fixed Bugs:
- Fixed error handling ClientboundSetPlayerInventoryPacket
- Fixed FAWE issues on incompatible FAWE versions
- Fixed DropBox not working in some cases
- Fixed
right_click
event lackingposition
argument - Fixed 1.21.5 ignite mod
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](https://github.com/Xiao-MoMi/craft-engine/commit/3128fe355122e2856fb5727fcccc4b68f35cf14d).
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.
Overview
- 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
API Changes
- A lot of changes have been applied to class related to context
- 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
- Improved chunk system performance by introducing a cache system
- Added Skript support
- Added legacy AdvancedSlimePaper support of 1.20-1.21.3
- Some small bug fixs and improvements
- Refactored item sytem for the thrid time to make item operations faster.
- Fixed some known bugs. See github commits for more.