Deckt sich mit meiner Analyse, aber ich würde die Struktur nicht so stark abwandeln wollen sondern nur bei der Popup-Erzeugung
Code:
if not gc.isPitbossHost():
popupInfo.addPopup(iUnitOwner)
davor schreiben. Der Code wird auf dem Client und dem Server ausgeführt. Manchmal verschluckt sich das Spiel aber (Erkennung, dass es das gleiche Popup ist?!) und speichert intern das Popup was dann beim Übertragen des nächsten Saves an den Spieler zum tragen kommt.
Wenn ich das heute mit dem Update nicht verbockt hätte würdet ihr das mit der kleinen Änderung auch schon testen. Nun gut, muss es noch ein paar Tage warten
Edit: Da man keine Strings (direkt) übertragen kann sondern nur die ModNetMessages finde ich die stufenweise Konstruktion des ScriptData-Dicts ok.