Reproduction:
- Sit Player in a VehicleSeat
- Give Player Ownership of the Vechicle Seat (doesn’t change the issue even if you ignore this step)
- Set ReplicationLag to something like 1 second in StudioSettings/Network
- Have the Player use inputs (WASD/Gamepad/MobileTouch) to change the Control parameters (Trottle/Steer)
- Control parameters (Throttle/Steer) will replicate from the Client to the Server and back to the Client, giving ghost inputs
Expected behavior
The Server does not replicate these values back to the same client that has network ownership of the vehicle seat.
As a Developer, I want the client to have full control of these values in reading/writing them, having it arbitrarily overwritten by the server when the Client has network ownership of the VechicleSeat creates unintended inputs that totally remove its intended usability.
In the current state, players with any lag will never be able to set the values to their intended state.
There doesn’t seem to be any way to prevent this, the best solution I can find is to have the client read the MoveVector from the ControlModule instead of the VehicleSeat Control parameters.
Repro of the VehicleSeat issue:
(you’ll need to set ReplicationLag yourself, then try moving left/right, stop all inputs, then you’ll see a bit later that the value changes by itself)
VehicleSeatBugLatencyRepro.rbxl (44.1 KB)