Weapon Actor visibility/replication question

So I followed your advice today, messing around with a bunch of print strings and trying to figure out what all was going on.

All the logic is taking place inside the character BP that is owned and possessed by player controllers. Previously I was setting the owner of the weapon to the respective player controllers. Instead, I set the weapon BP owner to be the character BP, and moved the logic setting “Only Owner See” into an OnRepNotify for the EquippedWeapon variable. A combination of these has got me to a point where the visibility is correct for the server and client. Server sees his weapon, client does not.

However, the client’s weapon is still not spawning at all. I checked this with a Get All Actors of Class, looking for BP_WeaponMaster; it is returning only one entry, for the server’s weapon. Still can’t figure out why that’s the case.

I also, after reaching this point, added logic to spawn the third person weapon actor, and setting it to Owner No See in the same way I set up the first person weapon. This also works as intended; client can see the third person weapon only, and server sees only his first person weapon. But again, this is only true for the server’s weapon actors, while the client is spawning nothing at all.

Still, it’s progress and I very much appreciate the assistance. I’ll continue to play around with it. I can’t understand why nothing is being spawned for the client, as far as I can see the server should be running this logic for both character BP’s present in the world, but a Print String right at the beginning of the “Init Weapons” function confirms that it is running only once. I added a big delay as you suggested just to make sure that everything has time to load in and exist, but it hasn’t helped (at least with that issue, I do think it was necessary in getting the other stuff thats now working, to work).

One other strange thing; setting Only Owner See seems to be working only for skeletal mesh components. The weapon magazine is currently a static mesh, while the main body is skeletal. I’m setting the boolean by getting all primitive components, but even getting the magazine mesh directly and setting it’s Only Owner See appears to have no effect. Is this normal behavior? I suppose I can make every weapon-related mesh, attachments, optics and all into skeletal meshes and “solve” that problem, but it seems a bit odd that static meshes behave differently.