[Networking] Socket Transform on Server isn't the same as Client

Hi Everyone !

I hope everyone is doing well, We’ve been dealing with a little problem lately with our skeleton updates in the server lately.

Basically, as the title says we’re getting problems with the socket transform being different in server than in the client (After printing values using AddOnScreenDebugMessage but also print string (from the kismet library)).

It’s also very visible which is why it’s blocking us from starting work on our public release. (50 to 100 units away from the muzzle, the location we want the projectile to spawn at). [Most likely from the initial T-Pose location].

We’re using a skeletal mesh that’s replicated and which has :

  • Its actor always relevant and with “replicate movement : true”.
  • Tick Pose and Refresh Bones enabled.
  • (If you need any more details please let me know).

In editor, while the server and client are simulated (not standalone, in-editor), the server location synced with the client location. This problem is exclusive to packaged builds.

We’re using the AWS gamelift SDK and the gameplay ability system plugin.

We tried many things like :

  • Higher tick for server.
  • Disabling URO.
  • Checking packet loss and ping (very good ping 20ms~ and 0% packet loss following stat net).

Where are you setting the location of the socket?
It sounds like a case of client not being in sync with the server

Hi, thanks for you answer !

The only way the socket’s location is set is by animation sequences and montages.
We’re getting the socket location by using “Get Socket Location”, the one which is part of the basic kismet blueprint library given by Epic.

Are you using any RPCs to forward the Socket’s world location from server to client?
If yes, are the locations matching between server and client?

No we aren’t, yet the problem is that the location on the server is the one that’s offseted away from the socket’s position.

Can you try disabling Replication on the skeletal mesh and calling an rpc from Server to client.
Does that fix the problem for you?

We’ll try it and let you know if it works as soon as we test it ! Thanks for your answers :slight_smile:

Hi again !
So we tested it your solution and it ended up being the same result, the server location is off :(.

Once thing we’re suspicious about is the fact that the animations might not running on the dedicated server. Because the muzzle socket’s location on server is that of the T-pose.

Try to set update tick pose and refresh bones under mesh optimization settings.

4 Likes

Did anyone ever find the solution to this problem? :frowning:

can you change the location of the T-pose, and the socket location, plus the location of the projectile from (50- 100) to the 0 point of the muzzle?