It have 2 type is Instant and Projectile.
Instant it super simple, 1st shoot it checking start point it 1st gun point and shoot a ray to check for the impact point, then it will send to server for confirmation, server then send for all client end point of the bullet, then 3rd just take their gun point as start and end point from server and make a trail effect when shooting, So you will see this will be pretty accurate for both side.
The Projectile is individual actor, it will be created on server and replicated for all client.
So 1st shoot it will call server to spawn a bullet with start point it 1st gun’s point and direction it where you aim, and from 3rd person it just spawn the effect when shoot, this one will be less accurate if the gun point of 1st and 3rd are different, you will see bullet not coming from 3rd gun point some time, but it still ensure you gonna hit the same spot for all client and server.