Index: source/simulation2/system/TurnManager.cpp =================================================================== --- source/simulation2/system/TurnManager.cpp +++ source/simulation2/system/TurnManager.cpp @@ -214,10 +214,16 @@ if (m_CurrentTurn >= turn) { // The most likely explanation is that an observer that's lagging behind is sending commands, - // which is possible when cheats are enabled. Report & ignore. - // It seems a bad idea to error out too badly here: + // which is possible when cheats are enabled (this allows coop-play). + // It seems like it could be desirable in the future for observers to message other observers, + // so it will be ignored then. If the target is a real player, warn about it. + // @see CNetServer::OnSimulationCommand for additional details. + if (player == -1) + return; + + // Report & ignore. It seems a bad idea to error out too badly here: // nefarious clients could try and send broken commands to DOS. - LOGWARNING("Received command for invalid turn %i (current turn is %i)", turn, m_CurrentTurn); + LOGWARNING("Received command for player %i on invalid turn %i (current turn is %i)", player, turn, m_CurrentTurn); return; }