Who is this plugin intended for?
- Native Minecraft Version:
- Tested Minecraft Versions:
Have you invested a lot of time in creating farms that can produce large numbers of resources only to find that now you spend all of your time manually crafting the raw resources into items you can use? If this sucks the joy out of the game for you, this plugin can help. It provides the mechanisms to automate the crafting of items.
What does this plugin do?
This plugin implements an automatic crafting system. First you must configure a dropper as a "crafting block". To do this, place an item frame on a dropper and place a crafting table in the item frame. At that point, the item frame should become invisible and the "crafting block" can be configured to craft items automatically.
Now place an "output" container (chest, barrel, shulkerbox, hopper, etc) in front of the crafting block/dropper (that is, adjacent to the dropper's face). This is where the crafting block will place items after it crafts them. Finally, on the side of the dropper opposite that of the "output" container place an "input"/"ingredients" container. This is where the crafting block will look for suitable crafting ingredients each crafting tick.
How do you configure the crafting recipe?
Once configured the dropper as a crafting block with suitable input and output containers, open the crafting block's inventory. The title of the inventory should appear as "craftmatic" to indicate that it is recognized as a crafting block without a recipe. Fill the crafting block's inventory with the ingredients of the recipe you wish to craft exactly as you would if you were using a recipe on a crafting table. Close the crafting block's inventory and re-open it. If it still shows "craftmatic", the plugin did not recognize the recipe. However, if it recognized the recipe, the inventory will show the name of the recipe. At this point, you have an "automatic crafting block". Every crafting tick (20 game ticks by default), the crafting block will try to pull ingredients from the ingredients container to satisfy the requirements of the recipe and if successful, convert the ingredients into the crafted item, placing it in the output container. If there is not enough room in the output container, no items will be crafted.
Every time a new item is crafted, the crafting table in the item frame will rotate once clockwise to provide feedback that the crafting block is working.
If the ingredients container is a trapped chest, the crafting block will never pull the last item from an inventory slot. This behavior allows you to reserve slots in the trapped chest for particular ingredients and is very useful when recipes require a mix of ingredients and you do not want one hopper overwhelming the trapped chest with just one ingredient leaving no room for the other ingredients required by the recipe.Which recipes are supported?
Most recipes are supported, even those added using data packs. However, not all recipes are currently supported. The Minecraft server implements some recipes as special cases that are not crafted using the normal crafting system. These recipes are described at https://minecraft.fandom.com/wiki/Recipe#crafting_special_.2A.
To make these work, they must be emulated in the plugin. Currently, firework rockets, suspicious stew, tipped arrows, dyeing shulker boxes and applying banners to shields are emulated. Other special recipes will be added as time and interest permit.
NOTE: In order for the plugin to emulate special recipes, it requires the presence of the NBT API plugin. If it is loaded, special recipes are enabled automatically. If it is not present they are disabled. You can find the NBT API plugin at https://www.spigotmc.org/resources/nbt-api.7939/
When honey blocks are crafted the empty glass bottles are placed in the output container along with the honey block.
How much load does it place on the server?
Much time has been spent to reduce the overhead of this plugin, both as direct processing time and memory pressure that leads to larger garbage collection overhead. The server load will depend on how busy the crafting blocks are. Even so, on my test server, with a number of farms continuously producing blocks, the load remains below 1% of the server tick. When the crafting blocks are idle, the plugin often does not show up in /timings unless you show all activity in the report.KNOWN ISSUES
- It may still happen that changing the containers on either side of the crafting block, may cause the crafting block to stop crafting in some edge-case scenarios. However, if you then open and close the dropper's inventory, it will start crafting again.
- Minecraft accepts shaped recipes that are mirrored left to right. The plugin does not currently support this. The layout of items in the craft block must match the recipe exactly for shaped recipes.
Automatic crafting system