Hi there,
I believe to have uncovered a bug in Minecraft Forge. Either that or I've misunderstood how to create shapeless ore recipes - apologies in advanced if I have. Below I've tried to describe the issue in as much detail as I could I hope the information included contains all the necessary information.
Java 1.8.0_131 (64 bit)
Minecraft 1.12.2
Minecraft Forge 14.23.1.2554
In my setup, I'm using the example mod which is packaged with the Minecraft Forge MDK (version information stated above). I've added a singular shapeless ore recipe at the path specified in figure 1 (Recipe filename is figure 2). Within the JSON file I've created (figure 3) what I know to be the correct syntax for a Forge shapeless ore recipe . My recipe example is 3 gravel to 1 flint.
Now that I've created my recipe I've loaded up the game, created a single player world, and attempted to craft the recipe (both crafting table and in inventory). The recipe, as expected, works perfectly fine. However, if I should substitute any of the ingredients of the recipe with any other item I'm presented with my recipe in the output slot once more.
Note: For the substitution to work I still must have the correct quantity of the item required normally for the recipe when crafting with substitutes otherwise the recipe will not work. This can be seen visually in figure 7.
So, why does this happen? I have two hypothesis as to why this occurs, they are:
When parsing the recipe, it fails to check that all the ingredients are the correct item.
The recipe file doesn't correctly pick up the ore dict reference (e.g. gravel, ingotIron, stickWood, etc.)
The recipe is parsed as "correct" because the correct amount of the singular ingredient required for the recipe appears in a single item stack
I could be completely wrong. Probably am. All I know for sure is this is weird behaviour that you wouldn't expect.
Figure 1 - The file path to the recipe JSON.
src/main/resources/assets/examplemod/recipes/
Figure 2 - The filename of the recipe JSON.
flint.json
Figure 3 - The JSON itself.
https://gist.github.com/anonymous/563e066652a2d3c321d0155ae2739f82
Figure 4 - Crafting the recipe with the correct ingredients in a crafting table.
https://ss.blamesnow.co.uk/2017/11/1511721182-adfbcb58.gif
Figure 5 - Crafting the recipe with the correct ingredients in the player crafting window.
https://ss.blamesnow.co.uk/2017/11/1511721281-45573e89.gif
Figure 6 - Crafting the recipe with the incorrect ingredients in a crafting table.
https://ss.blamesnow.co.uk/2017/11/1511721364-593bdcc2.gif
Figure 7 - Crafting the recipe with the incorrect ingredients in the player crafting window.
https://ss.blamesnow.co.uk/2017/11/1511721487-cfee540b.gif