Hello everyone, I'm currently trying to think of the best way to create an item system for my game. My current method is to create a base class "Item.gd", and I add all my base functionality in there and inherit this script with specific items like "Milk.gd" and override the name variable and other functionality. For each new inherited class, I also create a new scene like "Milk.tscn" and I add my "Milk.gd" script to this scene. I do this because I need an actual 3D rigidbody with a mesh and collision of this new milk item in the world.
So for each item I create, I also need to create a new scene to attach the script too. This works great for what I need, however I want to store all of my items in a database. Currently if I was to store all of the item scenes, then it stores it in my database as PackedScenes, which does not work for me because I want to be able to search through my item database array and the only way to get the contents of this item is by creating an instance of it, which seems highly inefficient to me (I guess I could just delete this packedscene instance once I'm done using it?)
TLDR: I don't want to create an instance of every item in my game every time I loop through my item database, how exactly do I create an item system with all of these ideas in mind?