Huge Blueprint Problem I've Been stuck for 2 days.

From an OOD perspective, having the CurrentAmmoInMag and MaxAmmoInMag variable in the weapons seems like good practice because you want the object to be responsible for its own properties. It makes the design more scalable, because if you plan to add different types of weapons in the future you could design each one to hold different amounts of ammo easily and they could check their own state if they’re “full.” If you put that logic outside of the weapon then you’d have to check the type of weapon to figure out the amount of ammo it can hold before assigning a value to it, so if you have hundreds of different weapons then it would get messy really quick if you need to check how much ammo it can hold, unlike if it just “knows” how much it can hold.

Anyway, I’m trying to make sense of the screenshots of the blueprints you’ve posted and it seems like you’re giving ammo to BP_WeaponPistol everytime your pickup begins to overlap. It doesn’t check what object overlaps with the pickup though so I guess if anything overlaps with it then your weapon will reload?

At the moment I’m not entirely sure I understand how your system is working yet, but from what I understand the problem you are trying to solve is to retain the same amount of ammo on each weapon even when you switch between them?