(Ignore this)
Where in GC are you setting GC.inventory to something other than null?
Does “inventory” get serialized in the inspector? You don’t have System.Serializable set on the Inventory class, so I would expect GC.inventory to be null since you aren’t initializing that variable.
Just try changing that line to:
public static Inventory inventory = new Inventory();
Also in the inventory class you aren’t initializing Intentory.items, but you’d get a null reference in Inventory.AddItem if that was a problem.
Sorry, I was actually initializing both inventory and inventory.items in Start() (I deleted all of Start() in GC when posting on accident), that wasn’t the issue. I figured it out though (I’m an idiot) I had another instance of ItemBehavior in the scene that was set to null. Excuse the dumb mistake. Thanks anyway!