How to make a loadout system

hello
i want to make a loadout system like there’s in battlefield games where i can chose the weapon before i spawn in or customize it.
ive tried doing this using an enum based system where theres a “weapon main” which is an actor consisting of the enum and a structure holding its config such as fire rate, damage, the skeletal mesh to use and the bullet actor to use as projectile. however i was able to do a little bit of implementation the most i could get out of it was whenever i use a widget i change the mesh but the config such as fire rate and etc etc remained 0 Also trying this on different clients changed the weapon for everyone , and if i were to approach the same by creating multiple child blueprints of a weapon base all i import is the mesh and the config of this “child actor”(i dragged the main base into my fps character hierarchy) always has the same config??can someone tell me how to make a simple weapon change system. (I am not too experienced with stuff like interfaces and ive heard of people using them so if you can please drop some tutorials id highly appreciate it<3))