Here’s the default movement for CMC.
CMC uses client-side prediction. You input movement, client applies it, then stores the moves. At next client → server update the buffered moves are sent to the server and the clients results for each. Server applies the same moves and compares results. If there’s a precision error it corrects, otherwise sends an Ack.
Somewhere you are applying a move, or velocity change that server isn’t being notified about, hence it not matching up and correcting.
My bet is movement speed is different. Do a print string of the CMC -> Max Walk Speed for both client and server.
Docs has a detailed overview of CMC.
