So we found the root cause of this was a really weird bug.
It is described here:
I’m currently working on creating a 1st & 3rd person multiplayer shooter in UE 4.11. I’m running into some trouble when I try to run my code to spawn a projectile on a dedicated server. What I’m doing is getting the location of the socket I placed on the gun’s skeletal mesh, which should return the exact location of the gun’s muzzle, and passing that as the spawn location. What I’m getting, when run on a dedicated server, is the projectile spawning from the player’s feet. (Code works fine on listen servers)
I see that other people have run into similar issues as well, however the fix mentioned does not work for me:
I’ve traced the problem to the skeletal mesh we’re using for the gun. If I use the same blueprint code on another skeletal mesh it works fine, even on a dedicated server. Does anyone have any idea of why a skeletal mesh could cause the computer to not be able to retrieve the actor(rifle)/socket(muzzle) location???
Here I am telling the server to spawn the projectile @ the muzzle’s location:
What I’m doing is asking for authority then passing the server the vector of the gun’s muzzle in the form of a get socket location node. I’m then asking the server to spawn the projectile @ that socket’s location. This works perfectly fine on listen servers but does not work on dedicated servers where the projectile will spawn from the players feet.
Here’s how it looks on a listen server, this is how I want it to look (coming from the muzzle):
Here’s how it looks on a dedicated server, this is what it looks like (coming from the actor’s feet):
Here’s the mesh component update on the rifle set correctly:
The code work’s fine if it’s run on a listen server so I can only assume that when a dedicated server asks for the location of the socket it returns an erroneous vector (the player’s feet and not the gun’s muzzle). Perhaps the socket information isn’t accessible by the server and it’s just giving me an approximation of the player’s position? It seems to have something to do with the skeletal mesh of the gun we’re using, but I have no idea why.
If anyone has run into this or has a fix can they please let me know? Thanks so much for the help guys.