Troubleshooting
Recipe does not trigger / result slot stays empty
Symptom: You place the correct ingredients but nothing appears in the output slot.
Checklist:
- Run
/ec reloadafter saving any recipe file. Changes are not picked up automatically. - Check the recipe type. A
CRAFTINGrecipe only works in the crafting table (or 2×2 inventory grid). AFURNACErecipe only works in a furnace, etc. - Check the shape. If
typeOfCraftingTableRecipe: MATCH_SHAPE, the slots must match exactly as you defined them. A diamond in slot 1 (top-left) is not the same as a diamond in slot 5 (center). - Enable debug mode to see what the plugin checks for you:
Then try to craft. The server console will print a line for each slot comparison. Look for
/ec debugMismatch detectedto find the problematic slot. - Check
itemCheckers. IfcheckMaterial: falseandcheckDisplayName: falseand all other checks arefalse, the plugin treats every item as matching and your recipe may match unintended inputs (or match nothing because the check-all-false state can be unexpected). At minimum, enablecheckMaterial: true.
Ingredients not recognised (wrong item)
Symptom: You are placing the right material but the recipe still doesn't fire.
Likely causes:
The item has custom data (name, lore, NBT) but itemCheckerType is set to ITEM_MUST_BE_EXACTLY_THE_SAME
When itemCheckerType: ITEM_MUST_BE_EXACTLY_THE_SAME, the plugin compares the full
item stack including display name, lore, NBT, and enchantments. A plain diamond and a
diamond renamed "Power Gem" are not the same.
Fix: Switch to CUSTOM_CHECKS and enable only the checks you actually care about:
itemCheckers:
itemCheckerType: CUSTOM_CHECKS
checkAmount: false
checkDisplayName: false # ignore custom names
checkMaterial: true # only match the material
checkCustomModelData: false
checkLore: false
checkDurability: false
checkExecutableItemID: false
checkExecutableItemUsage: false
checkExecutableItemVariables: false
You want to require a specific ExecutableItems item
If your recipe requires an EI item, enable checkExecutableItemID: true and make sure
the ingredient in the recipe file is the correct EI item (set via the in-game editor —
the item string contains the EI ID in its NBT).
Players receive duplicate output / multiple items at once
Symptom: Crafting once produces 2, 4, or more output items.
Cause: The setting castResultAsMaxAmount is enabled in config.yml.
When castResultAsMaxAmount: true, the result quantity is multiplied by however many
times the recipe could be crafted from the items in the grid. For example, if you
have 4 diamonds in the grid and the recipe requires 2, the result is multiplied by 2.
Fix: If you don't want this behaviour, open plugins/ExecutableCrafting/config.yml
and set:
recipeConfig:
craftingTable:
castResultAsMaxAmount: false
Then /ec reload.
Recipe conflicts with vanilla recipes
Symptom: A vanilla recipe overrides your custom one, or vice versa.
Details: ExecutableCrafting's listener runs at the priority set by eventsPriority
in config.yml. The default is NORMAL.
Fix: If another plugin registers recipes at HIGH or HIGHEST priority that
conflict with yours, raise ExecutableCrafting's priority:
recipeConfig:
global:
eventsPriority: HIGH
Options: NORMAL, HIGH, HIGHEST. Reload after changing.
Recipe conflict between two custom recipes
Symptom: Two of your EC recipes share overlapping ingredients and only one fires.
Explanation: ExecutableCrafting iterates all loaded recipes and returns the first match. The order is determined by the file system load order (alphabetical by default).
Fix: Make one recipe more specific (add extra ingredient checks or use MATCH_SHAPE
instead of SHAPELESS) so it doesn't overlap the other.
playerCommands are not executing
Symptom: The recipe works but the commands listed under playerCommands never run.
Checklist:
-
Confirm the recipe is actually triggering (the result appears in the output slot).
-
Commands under
playerCommandsrun when the player takes the crafted item from the output slot — not when the recipe is displayed. Make sure you actually pick up the result. -
Check command syntax. ExecutableCrafting uses SCore command syntax, not plain server commands. To run a vanilla command, prefix it with
[CONSOLE]or useEXECUTE_PLAYER_COMMAND:playerCommands:
- SEND_MESSAGE &aYou crafted something!
- EXECUTE_PLAYER_COMMAND say Hello from %player%See Custom Commands for the full list.
Recipe group conditions are not applied
Symptom: A recipe group in recipeGroups.yml doesn't seem to apply its conditions.
Checklist:
- Run
/ec reloadafter editingrecipeGroups.yml. - Check the
recipesListpattern. The globbloody_*matches IDs that start withbloody_. Make sure your recipe IDs match the pattern exactly (case-sensitive). - Verify the file is valid YAML (no tab characters — use spaces only).
Errors in logs on startup
If you see errors in logs/latest.log when the plugin loads:
Could not load 'ExecutableCrafting.jar'— likely a missing SCore or version mismatch. Download the latest SCore and restart.Recipe XYZ failed to load— the YAML for that recipe has a syntax error. Open the file, check indentation (2 spaces, no tabs), and ensure all required fields are present.config_update: truewill add missing fields automatically on next load.- Class errors /
NoClassDefFoundError— usually means SCore is outdated relative to EC. Update both at the same time.
Still stuck?
Join the Discord and post in the
#support-ec channel. Include:
- Your Minecraft version
- Your EC and SCore versions (visible in
/pluginsorlogs/latest.log) - The relevant recipe YAML
- The
logs/latest.logsection around the error (or the debug output from/ec debug)