Erstens würde ich niemals bei OnGameModeExit() Spieler abspeichern, da es bei einem Servercrash NICHT aufgerufen wird.
Damit es bei einem Serverrestart speichert (also ein gewollter restart), würde ich dir empfehlen bei deinem restart Befehl eine for-Schleife zu nutzen, welche durch alle Spieler geht und diese wie wenn sie disconnecten abspeichert, dann einen Timer starten welchen den Server restartet.
Beispiel:
//Dein Befehl zum restarten
{
for(new i;i<MAX_PLAYERS;i++)
{
//Spieler abspeichern
}
//Hier kann man eine Nachricht an alle schicken das der Server in 1 Sekunde restartet wird.
StartTimer("RestartTimer",1000,0);
return 1;
}
forward RestartTimer();
public RestartTimer()
{
SendRconCommand("gmx");
return 1;
}