What are some good coding practices/setup for characters with multiple weapon movesets or abilities that can be swapped out

Here is a basic version of what I’m trying to figure out an optimal way of building this system.

  • I want it to be modular and have a lot of room for expansion and modification without much interference.
  • Have a way to reference them easily and make it not a complete ■■■■■■■■■■■.
  • Not have to hardcode every single weapons basic functionality separately.

How should I set up a weapon class or ability set to change based off of the equiped weapon? What generally should I program in each blueprint?

I have seen people create classes like a “Master Character” or “Master Enemy” BP, and I’m looking for something along those lines, and also for weapons. I’m pretty experienced with a lot of normally used UE4 systems, but most of what I make it usually just thrown into the same BP.

Just looking for a good tutorial or video that an experienced UE4 user would recommend, thank you.