This is just an idea I want to share.
What if a crafting system was made by using dialogue with an NPC or a static object to craft items?
The player goes up to an anvil, activates the anvil, dialogue pops up, topics are displayed and the game checks if you have the correct items.
If you have the correct items you get something if you don't you get a message.
This should minimize the need for so much scripting and should be easier.