Looking for a seamless way to add custom blocks, items, furniture, and recipes to your Minecraft server—without forcing clients to install mods? CraftEngine is a powerful, server-side framework that lets you design, deploy, and manage unique in-game content while keeping full vanilla compatibility.
What Can CraftEngine Do?
-
🛠️ Custom Items & Equipment\ Design as many custom items as you want, with full support for NBT data and components. You can customize names, lore, enchantments, attributes, and food properties. For armor, choose between component-based systems (for 1.21.2+) or trim-based setups (1.20+), and make use of dyeable layers, multiple textures, and even 3D helmet models.
-
🧱 Real Block Registration\ CraftEngine registers actual new blocks—unlike other plugins that simply replace vanilla ones. This means full compatibility with datapacks, custom logs that don’t cause connected leaves to decay, and true directional block behavior. You can also configure block properties and choose from 30+ built-in behaviors like crop blocks, strippable logs, and seats players can sit on.
-
🪑 Furniture System\ Build rotatable, entity-based furniture that doesn’t snap to the grid. The system supports item displays, text displays, and works seamlessly with popular modeling plugins like BetterModel and ModelEngine.
-
🍳 Recipe System\ CraftEngine supports all standard recipe formats—shaped, shapeless, smelting, smithing, and brewing—and integrates with items from other famous item libraries. You also get access to result post-processors, visual crafting results and conditional crafting logic.
Why Choose CraftEngine?
-
Zero Client Modifications – Leverages smart packet interception to deliver custom assets directly to vanilla clients, ensuring a hassle-free player experience.
-
Automated Resource Pack Generation – Dynamically builds and distributes models and textures —with support for S3, Dropbox, Lobfile, or custom API hosting.
-
Advanced Custom Blocks – Utilizes ByteBuddy runtime class generation for dynamic block states, enabling deep customization without breaking vanilla mechanics.
-
Configuration-Driven Workflow – Define content through structured YAML with template processing, version conditional logic, and multilingual support—no coding expertise needed.
-
Optimized for Performance – Features chunk caching, compression, and efficient injection methods to minimize server overhead.
-
Broad Plugin Compatibility – Integrates smoothly with WorldEdit, PlaceholderAPI, and external item/model systems for extended functionality.
Difference Between Versions
The plugin has no restrictions on player count. The paid version provides dedicated support and includes exclusive features, but is otherwise identical.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
|
B
26.9.2
|
1d ago | 1 | |||
|
B
26.9.2
|
1d ago | 1 | |||
|
B
26.9.1
|
1d ago | 1 | |||
|
B
26.9.1
|
1d ago | 1 | |||
|
B
26.9
|
1d ago | 1 | |||
|
B
26.9
|
1d ago | 1 | |||
|
B
26.8.2
|
1d ago | 1 | |||
|
B
26.8.2
|
1d ago | 1 | |||
|
B
26.8.1
|
1d ago | 1 | |||
|
B
26.8.1
|
1d ago | 1 | |||
|
B
26.8
|
1d ago | 1 | |||
|
B
26.8
|
1d ago | 1 | |||
|
B
26.7.4
|
1d ago | 1 | |||
|
B
26.7.4
|
1d ago | 1 | |||
|
B
26.7.3
|
1d ago | 1 | |||
|
B
26.7.3
|
1d ago | 1 | |||
|
B
26.7.2
|
1d ago | 1 | |||
|
B
26.7.2
|
1d ago | 1 | |||
|
B
26.7.1
|
1d ago | 1 | |||
|
B
26.7.1
|
1d ago | 1 | |||
|
B
26.7
|
1d ago | 1 | |||
|
B
26.6.3
|
1d ago | 1 | |||
|
B
26.6.2
|
1d ago | 1 | |||
|
B
26.6.1
|
1d ago | 1 | |||
|
B
26.6
|
1d ago | 1 | |||
|
B
26.5.3
|
1d ago | 1 | |||
|
B
26.5.2
|
1d ago | 1 | |||
|
B
26.5.1
|
1d ago | 1 | |||
|
B
26.5
|
1d ago | 1 | |||
|
A
0.0.67
|
1d ago | 1 | |||
|
A
0.0.66.2
|
1d ago | 1 | |||
|
A
0.0.66
|
1d ago | 1 | |||
|
A
0.0.65
|
1d ago | 1 | |||
| 1d ago | 1 | ||||
|
A
0.0.63
|
1d ago | 1 | |||
|
A
0.0.62
|
1d ago | 1 | |||
|
A
0.0.61
|
1d ago | 1 | |||
|
A
0.0.60
|
1d ago | 1 | |||
|
A
0.0.59
|
1d ago | 1 | |||
|
A
0.0.58
|
1d ago | 1 | |||
|
A
0.0.57
|
1d ago | 1 | |||
|
A
0.0.56
|
1d ago | 1 | |||
|
A
0.0.55.1
|
1d ago | 1 | |||
|
A
0.0.55
|
1d ago | 1 | |||
|
A
0.0.54
|
1d ago | 1 | |||
|
A
0.0.53
|
1d ago | 1 | |||
|
A
0.0.52
|
1d ago | 1 | |||
|
A
0.0.51
|
1d ago | 1 | |||
|
A
0.0.50
|
1d ago | 1 | |||
|
A
0.0.49
|
1d ago | 1 | |||
|
A
0.0.48
|
1d ago | 1 |
- 26.3 support
- Improved chunk loading logics for paper 1.21.4+
- Improved resource pack optimization speed
- Fixed mcmeta not generated when using bbmodels
- 26.3 support
- Improved chunk loading logics for paper 1.21.4+
- Improved resource pack optimization speed
- Fixed mcmeta not generated when using bbmodels
- Further optimized CraftEngine's handling logic for item packet. Now some client-bound-data will not be applied in certain scenarios, reducing Netty thread pressure without affecting any gameplay content. This is very effective for scenarios where hundreds of players are engaged in PvP simultaneously.
- Fixed client bound data not applied to items in shelves on chunk packet sent
- Further optimized CraftEngine's handling logic for item packet. Now some client-bound-data will not be applied in certain scenarios, reducing Netty thread pressure without affecting any gameplay content. This is very effective for scenarios where hundreds of players are engaged in PvP simultaneously.
- Fixed client bound data not applied to items in shelves on chunk packet sent
- Important**
This version officially introduces the resource pack workflow design. Please be sure to update your resource pack hosting configuration. Workflows let you control when and how resource packs are generated, packaged, uploaded, and sent. They make it easier to test changes before publishing, integrate tools like PackSquash and BlueMap, and run only the steps you need, while keeping the default setup simple.
- Introduced the multi-resource-pack system, resource pack preferences, and resource pack presets.
- Introduced the resource pack workflow and added packsquash support.
- Connected hitboxes will be automatically optimized on the server into merged larger hitboxes, achieving exactly the same effect without affecting any mechanics. Memory usage will be lower.
- Optimized CraftEngine's memory allocation on Netty in various aspects. Rewrote the chunk packet processing system; it is now 10–50% faster and uses 95% fewer temporary memory allocations.
- Added 3d armor system
- Added some useful options for entity culling in config.yml
- Important**
This version officially introduces the resource pack workflow design. Please be sure to update your resource pack hosting configuration. Workflows let you control when and how resource packs are generated, packaged, uploaded, and sent. They make it easier to test changes before publishing, integrate tools like PackSquash and BlueMap, and run only the steps you need, while keeping the default setup simple.
- Introduced the multi-resource-pack system, resource pack preferences, and resource pack presets.
- Introduced the resource pack workflow and added packsquash support.
- Connected hitboxes will be automatically optimized on the server into merged larger hitboxes, achieving exactly the same effect without affecting any mechanics. Memory usage will be lower.
- Optimized CraftEngine's memory allocation on Netty in various aspects. Rewrote the chunk packet processing system; it is now 10–50% faster and uses 95% fewer temporary memory allocations.
- Added 3d armor system
- Added some useful options for entity culling in config.yml
- Fixed an issue where players in adventure mode could accidentally right‑click a note block and inadvertently trigger the mining compensation mechanic.
- Added tints and player profile support for BetterModel
- Fixed some bugs with attributes on folia
- Added regex support for item category
- Added https://xiao-momi.github.io/craft-e.../attribute/damage-formula#post-damage-effects
- https://xiao-momi.github.io/craft-engine-wiki/reference/functions#cast_mythic_skill now supports variables & parameters
- Added override_data for vanilla items. You can use it to modify certain attributes of the vanilla items. For example, you may remove the attribute modifiers from vanilla armor pieces to prevent them from interfering with your custom attribute system.
- Fixed Paper Adventure Component not got replaced in item name/lore
- Added /ce debug item-sources/item-id
- Fixed a bug in AsyncResourcePackCacheEvent
- Fixed a bug in LuckPermsHook that plugin tried to submit async tasks when closing the server
- Fixed an issue where players in adventure mode could accidentally right‑click a note block and inadvertently trigger the mining compensation mechanic.
- Added tints and player profile support for BetterModel
- Fixed some bugs with attributes on folia
- Added regex support for item category
- Added https://xiao-momi.github.io/craft-e.../attribute/damage-formula#post-damage-effects
- https://xiao-momi.github.io/craft-engine-wiki/reference/functions#cast_mythic_skill now supports variables & parameters
- Added override_data for vanilla items. You can use it to modify certain attributes of the vanilla items. For example, you may remove the attribute modifiers from vanilla armor pieces to prevent them from interfering with your custom attribute system.
- Fixed Paper Adventure Component not got replaced in item name/lore
- Added /ce debug item-sources/item-id
- Fixed a bug in AsyncResourcePackCacheEvent
- Fixed a bug in LuckPermsHook that plugin tried to submit async tasks when closing the server
- Added https://xiao-momi.github.io/craft-engine-wiki/reference/commands/#debug-item-component
- Improved how falling block works on Folia
- Added entity culling support for dynamic block entity elements (Registered through API)
- Fixed empty loot entry
- Fixed NetworkProtocol issues caused by block tags
- Fixed item name not applied on 1.20.5-1.21.4
- Fixed custom items can be traded with villagers
- Added https://xiao-momi.github.io/craft-engine-wiki/reference/commands/#debug-item-component
- Improved how falling block works on Folia
- Added entity culling support for dynamic block entity elements (Registered through API)
- Fixed empty loot entry
- Fixed NetworkProtocol issues caused by block tags
- Fixed item name not applied on 1.20.5-1.21.4
- Fixed custom items can be traded with villagers
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#prevent_break
- Added JavaScript engine for functions and conditions
- Fixed interaction removed by mistake
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/loot_source
- Added structure support for sapling block behavior
- Added bbmodel support for block/item models
- Optimized memory allocation for the plugin on Netty, reducing memory consumption during operations such as lore/name replacement.
- Fixed <tags> not replaced in translatable components
- Improved seat logics
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#drag_repair_item
- Added https://xiao-momi.github.io/craft-engine-wiki/compatibility/denizen
- Improved https://xiao-momi.github.io/craft-engine-wiki/compatibility/skript
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#break_power and https://xiao-momi.github.io/craft-engine-wiki/configuration/block/settings#required_break_power
- The CEWorld is now injected into the CraftWorld instance, eliminating the need to look it up via a UUID map when accessing it from a Bukkit world. This can improve the world lookup performance by roughly 0.1%.
- Improved FAWE compatibility with entity-renderer support
- Added grindstone_repair https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#repairable
- Added https://xiao-momi.github.io/craft-engine-wiki/reference/conditions#equipment
- Added https://xiao-momi.github.io/craft-engine-wiki/reference/events#transfer
- Added compatibility with UniverseSpigot 26.2 under palette injection mode
- Fixed a bug that some items might be eaten by the server when interacting with custom blocks based on noteblocks on 1.21.2+
- Implemented async chunk loader and saver
- Improved chunk cache storage performance ~70% faster than before
- Fixed custom block destruction overlays not cleared for nearby players
- Fixed methods that get eye position not correct since an update on 2026/2/10
- Added blacklist worlds for chunk storage
- Fixed custom blocks in spawn chunks sometimes not loading
- Added linear region format and it will be used as the default format in future versions
- Fixed custom block not getting waterlogged when placed in water
- Fixed client bound data not applied to toasts on 26.1+
- Added humanoid_baby equipment layer for 26.1+
- Added command to clear outdated world storage
- Added /ce resource search command to search the resource path
- Added tag expanding support for block tags
- Fixed head component doesn't have layer
- Rewrote MiniMessage with my own custom implementation. The parsing speed is now 0.8× to 11× faster than the original, depending on the use case. In all the CraftEngine test cases I designed, it consistently achieves a 1.2× to 2.1× performance improvement.
- Added equipment potion effect
- Added experimental custom attribute system
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#prevent_break
- Added JavaScript engine for functions and conditions
- Fixed interaction removed by mistake
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/loot_source
- Added structure support for sapling block behavior
- Added bbmodel support for block/item models
- Optimized memory allocation for the plugin on Netty, reducing memory consumption during operations such as lore/name replacement.
- Fixed <tags> not replaced in translatable components
- Improved seat logics
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#drag_repair_item
- Added https://xiao-momi.github.io/craft-engine-wiki/compatibility/denizen
- Improved https://xiao-momi.github.io/craft-engine-wiki/compatibility/skript
- Added https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#break_power and https://xiao-momi.github.io/craft-engine-wiki/configuration/block/settings#required_break_power
- The CEWorld is now injected into the CraftWorld instance, eliminating the need to look it up via a UUID map when accessing it from a Bukkit world. This can improve the world lookup performance by roughly 0.1%.
- Improved FAWE compatibility with entity-renderer support
- Added grindstone_repair https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings#repairable
- Added https://xiao-momi.github.io/craft-engine-wiki/reference/conditions#equipment
- Added https://xiao-momi.github.io/craft-engine-wiki/reference/events#transfer
- Added compatibility with UniverseSpigot 26.2 under palette injection mode
- Fixed a bug that some items might be eaten by the server when interacting with custom blocks based on noteblocks on 1.21.2+
- Implemented async chunk loader and saver
- Improved chunk cache storage performance ~70% faster than before
- Fixed custom block destruction overlays not cleared for nearby players
- Fixed methods that get eye position not correct since an update on 2026/2/10
- Added blacklist worlds for chunk storage
- Fixed custom blocks in spawn chunks sometimes not loading
- Added linear region format and it will be used as the default format in future versions
- Fixed custom block not getting waterlogged when placed in water
- Fixed client bound data not applied to toasts on 26.1+
- Added humanoid_baby equipment layer for 26.1+
- Added command to clear outdated world storage
- Added /ce resource search command to search the resource path
- Added tag expanding support for block tags
- Fixed head component doesn't have layer
- Rewrote MiniMessage with my own custom implementation. The parsing speed is now 0.8× to 11× faster than the original, depending on the use case. In all the CraftEngine test cases I designed, it consistently achieves a 1.2× to 2.1× performance improvement.
- Added equipment potion effect
- Added experimental custom attribute system
- When generating JSON for resource packs, a more ordered scheme is now adopted to reduce the compressed JSON file size.
- Now
slotis optional inequipmentsettings - Fixed trim type armor on 1.21.2+
- Added new template syntax
${arg^}and${arg^^} - Added [Shapeless Transform Recipe](https://xiao-momi.github.io/craft-engine-wiki/configuration/recipe/#shapeless-transform-recipe)
- Added [Ingredient Predicate](https://xiao-momi.github.io/craft-engine-wiki/configuration/recipe/#predicate)
- When generating JSON for resource packs, a more ordered scheme is now adopted to reduce the compressed JSON file size.
- Now
slotis optional inequipmentsettings - Fixed trim type armor on 1.21.2+
- Added new template syntax
${arg^}and${arg^^} - Added [Shapeless Transform Recipe](https://xiao-momi.github.io/craft-engine-wiki/configuration/recipe/#shapeless-transform-recipe)
- Added [Ingredient Predicate](https://xiao-momi.github.io/craft-engine-wiki/configuration/recipe/#predicate)
- Fixed optimize-item-codec bugs in some cases
- Fixed optimize-item-codec bugs in some cases
- Fixed folia compatibility broken since last update
- Fixed folia compatibility broken since last update
- Allows you to register your own custom protection implementation
- Added /ce feature toast
- Added totem_animation function
- Fixed issues with loading super large pack versions
- Improved s3 host with more optional parameters
- Compatibility with servers have Lithium mod patches
- Allows you to register your own custom protection implementation
- Added /ce feature toast
- Added totem_animation function
- Fixed issues with loading super large pack versions
- Improved s3 host with more optional parameters
- Compatibility with servers have Lithium mod patches
- Added 26.2 support, requires paper 26.2#build40+
- Added custom break stages system
- Added Axiom custom display item support
- Now you are allowed to create block models with a texture list
- Fixed plugin not enabling in some special classloaders
- Fixed data version not saved in some furniture/block behaviors
- Fixed an issue where the vanilla_loots syntax was not taking effect.
- Fixed the default spear configuration recipe loading on versions below 1.21.11.
- Added spawn_light_requirement for crop_block
- Improved the compatibility of custom block hardness with other plugins
- All colors now support hex format
- All numbers now support expressions
- Added spear and mace model generation
- Added
shaped_transformrecipe type - Introduced config factory
- Default pack has been divided into three packs default_templates default_assets and default_feature_populator
- Improved how furniture transformation works. Now it won't flicker when variant changes
- Bug fixes
- Getting ready for the upcoming release of the CraftEngine proxy.
- Added
test_flagcondition - Added conditions option for
range_mining_item
- Added a command to individually configure certain world settings
- Added automatic IP retrieval for self-host
- Fixed some bugs
- This version fixes numerous bugs present in the initial release of 26.5.
- Additionally, we have introduced a brand-new projectile system—please check the [wiki](https://xiao-momi.github.io/craft-engine-wiki/configuration/item/settings/#projectile) for details.
This is a major update for CraftEngine. From now on, versions will follow a
year.month.revision format.We’ve made over 80,000 lines of code changes and more than 600 commits, so instead of a long changelog, please check the wiki to see what’s new.
## A few important things to know:
stem_blocknow has a filter for the block below it. Check the [wiki](https://xiao-momi.github.io/craft-engine-wiki/configuration/block/behaviors/stem_block) to update your settings, or use the new default config to fix melon stem issues.- The feature placer changed a lot back in version 26.1. If you want to keep using the default feature config, please extract the updated default config file.
- There are many API changes in this update – and they’re stable enough to support updates for the next whole year.
## Need help updating?
If you have an open-source project that needs to work with the latest CraftEngine, or a plugin that works with the old version but not the new one – we’re happy to help for free. Just reach out on GitHub Issues or Discord.
- Added support for Minecraft version 1.21.11.
- Introduced the Feature Placer, enabling the generation of trees, ores, features, and more in the world.
- Added a wide range of external item sources.
- New block behaviors:
multi_high_block,item_frame_block, andspreading_block. - New item behavior:
range_mining_item. - Added numerous new number types.
- New condition:
is_bedrock_player. - Added furniture setting:
hit-times. - Added image of type
reference. - Added
profileitem data type. - Added debug command:
/ce debug auto-state
Optimizations & Improvements:
- Allowed folder format usage in the
excludeoption for optimizing resource packs. - The glow color feature is now fully packet-based.
- Completely revamped and standardized the language file format.
- Network text formats now fully support parameter passing.
- The image tag now supports custom format parameters.
- Optimized potential block mining interruption issues under high latency.
- Furniture display elements now support the
conditions. - Enhanced how
client-bound-modelswork on armor. - Optimized Atlas merging logic.
- Added legacy color code support to certain configuration areas.
- When using simple model generation, default values are now set for tintable items.
- Component-based armor now supports custom paths.
Bug Fixes:
- Fixed compatibility issues with ASP on certain versions.
- Fixed potential thread safety issues with ClientCustomBlockPacket in version 1.20.1.
- Fixed various issues caused by NPC-triggered events.
- Fixed issues with object text component processing.
- Fixed NullPointerException caused by other plugins modifying the system proxy.
- Fixed various issues on Folia servers.
- Fixed an issue in versions 1.20 to 1.20.2 where returning multiple resource packs would result in only the last one being applied.
- Fixed concurrent modification exceptions during lighting updates.
- Fixed issue where HashedStack unexpectedly broke container components.
- Fixed errors caused by other plugins sending packets at incorrect times.
- Fixed issue where block entity changes did not mark the chunk as dirty.
- Fixed incorrect collision box positioning for furniture of
customtype.
API Changes:
- Most factory classes now require a generic parameter. Reduced visibility for most factory classes.
ItemDataModifierhas been renamed toItemProcessor.- Added the
craft-engine-adventureAPI module for easier use of the relocated Adventure library. - Merged the loot condition system with the event condition system.
- Added EntityCullingAPI.
- Custom item settings now support configuring ItemProcessor.