In general I think it's better to use an array for an inventory. I've had this issue before, I started off by using a physical style inventory where you compare animations and if slot is full by instance variables and the events begin to snowball. It is much easier to use an array and relate it to co-ords in an inventory. That way you can check what value is in the array 1,0 2,0 3,0 etc and match with the item you want. It also cuts down on events. If you want to use your current method I'll have a read of your essay in a bit