"After all the setup, every time I put an item into the crafting grid I call the crafting function. I check each x element to "array2" but nothing ever happens.
So I don't know what I've done wrong, I can see "array2" update every time I put an item in the crafting grid. Looking at the code it looks right but obviously I messed up somewhere."
This doesn't give any information about what you are trying to do or where it's broken. What is the Animation global variable for? Also the crafting amount you set to an X instead of an X,Y I'm not sure if that's going to be a problem.
Looking at this function all it does it set an instance variable on the slot to another instance variable on the slot.