Help with A Sprinting conditions

I want to have a weapon system where there is a base weapon and all the weapons are just variations off that, so when you select your weapon or pick it up, you have a new weapon that is blueprint wise different, but still cast the model to the player when equipped. My problem is I don’t really know how to do most of that. I know how to attach to a socket, but my weapon is in the character BP and I can’t seem to get a functioning weapon outside of my Character BP.
In a nutshell- I’m having trouble casting actions to trigger and function from a weapon BP cast to a character BP.