How to spawn projectiles from different start locations depending on whether viewed in first or third person (multiplayer)?

Currently working on a multiplayer FPS. When firing weapons I am spawning projectiles from a ‘muzzle’ socket on the gun. This works fine when viewed from first person, but if you see another player firing the projectile it is not originating from their weapon. This is due to both first / third person using different skeletons / animations.

How would I blueprint it up so that the projectile originates from the appropriate weapons socket depending on how it is viewed by the player?

I already have the sockets for both, this is not the problem. The problem is, during a multiplayer game when you fire from the first person weapon socket, other players see it coming from that socket and not the third person weapon socket. Somehow I need to spawn a projectile that only players see when in first person and another that players only see from other players third person models. I just have no idea how to make this work over network.

Place a socket on the Skeleton Asset for each of them, using the same name so you can access it’s location from BP without worrying about different names. Also, make the socket’s parent be the same bone that controls the gun movement, so it’ll move correctly with the gun. Then, in BP, the spawn location will be SkeletalMesh->GetSocketLocation using your socket’s name.

Ah I see. I haven’t messed with multiplayer yet, but there’s an option I’m always stumbling upon in the Actors. It’s called Only Owner See/Owner no See or something like that.

So you’d spawn two projectiles every time: one from the 3rd person socket and one from the 1st. Then, you’d set the 1st person one for only the owner player controller to see. And the 3rd person one for only the owner not to see.

Here’s one of the nodes and here’s another related question that might help.