Hi! I’m looking for some help with a vehicle pawn movement issue that only occurs when playing on a standalone dedicated server.
Playing in PIE mode with a dedicated server and two pawns works as expected. However, after building a dedicated server and connecting to it, the vehicle pawns cannot move correctly. They stutter, which I believe is just a result of the client doing some movement prediction and then the server refusing and reversing the movement.
I encountered this with my project and then reproduced it with the vehicle template project. Since the issue arises with the vanilla vehicle template, I suspect that it is due to how I’m building the standalone dedicated server.
In case anyone comes across this, I think I’ve narrowed it down to something unexpected: physics simulations don’t seem to be running on my standalone dedicated server (or aren’t authorized to run, at least). I just realized this tonight after placing a physics cube in the scene, watching it replicate correctly in a PIE dedicated server with multiple clients, then watching it fail to drop to the floor in a standalone dedicated server session. I also tried with substepping off, but this just results in my vehicle gradually falling through the floor and the cube remaining fixed in midair.
HateDread mentioned to me in IRC that I should check the bEnablePhysicsOnDedicatedServer property. This a SkeletalMeshComponent property and it does indeed need to be set to true in order for physics-simulating actors to replicate properly in a standalone dedicated server environment.
All of the details are on the answer hub post:
I created a pull request to expose this property to blueprints so content-only vehicle games (and other physics actors) can replicate on standalone dedicated servers without having to subclass a C++ superclass that sets this property.