I've started work on a mod and was trying to get a custom crafting bench up and working. In the GUI I have each of the input tiles set to run a procedure that checks the recipes and places the appropriate item in the output slot whenever their contents are changed.
For some reason I cannot seem to work out, if you complete the crafting recipe and take the item it will instantly disappear from your hand. It will show in the output slot, but if you click on it it just vanishes. If you shift+click it into your inventory, it will sit in your backpack until you try to click on it to move it, then it vanishes.
The weirdest part of this is, it will not do this if you run the procedure TWICE. I've tried actually running the procedure twice in the procedure itself, but that doesn't seem to work. You can only take the item successfully if you actually input a duplicate item onto the grid, thus running the procedure that checks the recipe again, or use a debug button I added that literally just calls the same procedure.
I've tried iterating every way I can think of. I've run the line that places the output twice, I've set a master procedure that just runs the crafting procedure twice, I've put all of the functions into one main procedure instead of breaking them up, nothing works.
Attached is the workspace I had at time of writing.