Всегда доводим интерполяционно торможение персонажа на клиенте, используя координаты сервера.
1. Вправо отпустили
2. На сервер отправили и получили координаты остановки
3. Клиента медленно, в течение 10-15мс (если он двигается в этот момент) и 250-300мс (если замер на месте и не поворачивается) ставим на эту позицию.
Если Вы держите полностью игровой мир на сервере, значит сервер всегда главный.
UPD: Добавлю, что можно также позже проверить на сервере через расчёт координат с клиента и сделать реверс-тесты по контрольным точкам событий на сервере, чтобы дать заключение о корректности события, рассчитанного клиентом.
Например, чтобы попадание было распознано как засчитанное с именно этих координат и именно из этого оружия, нужно проверить в обратную сторону (по временной линии событий) точку выстрела и возможность выстрела, путь перемещения и время между предыдущей проверкой и текущей.
Т.е., восстановить на основе ряда факторов предыдущее состояние игрока, которое не было отправлено (или не успело ещё доставиться) на сервер между пакетами из-за длительности пинга.