I think one of my problems might be
that you seem to be using the same
widget as the basis for every slot in
your inventory but each of my slots
are their own blueprints because they
have entirely different setups.
Pretty much, yes. One slot for everything because slots are identical, the items the slots hold are not, though.
Can you roughly clarify what is different about each slot? Perhaps I’m misunderstanding something and your vision is more complex than I think.
Generally speaking, you’d want to make slots the same class - the same widget blueprint and duplicate it (either manually like you do, or automatically like I did).
That is because all slots should share certain common functionality like highlights, sounds, animations, ability to display tooltips about the held item, having the empty / full state and so on; and you definitely do not want to manually repeat the script that does all that for each slot.
A slot can have a variable (enumerators work well here) that dictates what item it can hold, and reference an Item the player carries.
This allows you to tell this generic slot to DropItem, ShowHighlight or play ‘Beep’ sound when the mouse enters, no matter what item it holds. It’s a layer of abstraction.
The same goes for the actual items. They should share a base Item class because player can Use, Drop and Place them in the inventory and Equip them. Primary and Sidearm inherit from Item class and create Firearms subclass (that can fire bullets), Grenades inherit from Items but are so different from Firearm subclass that they deserve their own subclass, and so on.