FixedQuote:
var bytesToSend = Encoding.UTF8.GetBytes("0|1|" + user.Id + "|" + user.GetMapCoordX() + "|" + user.GetMapCoordY() + "|500" + (char)0x00);
This is wrong, you should calculate fly time and send instead of 500 otherwise ship will fly too fast for long distances and even though ship speeds are different, all ships will fly same speed
Code:
var bytesToSend = Encoding.UTF8.GetBytes("0|1|" + user.Id + "|" + user.GetMapCoordX() + "|" + user.GetMapCoordY() + "|" + user.Speed + (char)0x00);