Grouping different classes inherited from the same base class

As the title suggests, I am uncertain of the proper way to group inherited classes derived from the same baseclass.

Currently, I have a base script titled BaseItem, which dictates the base variables universal to all items (name, ID and such). From this base script, I then derive BasePotion, BaseWeapon, BaseArmor, which have their own unique variables and methods.

For the purposes of Inventory and Item Usage, I’ve grouped these items together using a Dictionary that takes in BaseItem. This worked fine for Inventory, but is now backfiring with Item Use, as I cannot reference specific variables only present in BasePotion, BaseWeapon, etc, directly from the BaseItem class. From research it also seems people generally don’t suggest doing this either.

So my question is, is there a way to group these different classes into one Dictionary other than by referencing the BaseItem class, or is there something that could work with my current implementation that would allow me to access inherited member variables? Or should I just be splitting the inventory into three different classes?

Thanks in advance!

You can always check the runtime type with ‘is’.