So basically i understand one way to do it, but that's "performance" heavy, Im using filtering enabled so that can be another problem, so i was thinking if there was another way, and if not, would mine work?
My idea was to do so:
Insert a global table (_G.Guns = {}), Use that table to announce the current gun each player is using, by using the player name, then gun in the table, Then making a script * have to request to server, then to client* so SERVER > CLIENT* saying: Weld this gun to this players head, then put in the local players camera. Which could actually cause problems but would this work? or is there a easy'er way.
Best way I see is to make all guns local to each player. So all enemy guns would be made locally and attached to characters and local player's gun would be local as well. You do not have to place the guns in player's camera to make them local, with filtering enabled they already will be, no matter where you place them.
So you'd probably want server to anounce all players that one player decided to switch guns.