public void UniverseUpdateBefore(Universe universe, Timestep step) { Universe = universe; if (universe.Server) { if (ServerMainLoop == null) { ServerMainLoop = ServerContext.VillageDirector?.UniverseFacade? .GetPrivateFieldValue <ServerMainLoop>("_serverMainLoop"); } if (SettingsManager.UpdateList.Count > 0) { var blob = BlobAllocator.Blob(true); var settings = blob.FetchBlob("settings"); foreach (var item in SettingsManager.UpdateList) { settings.FetchBlob(item).MergeFrom(SettingsManager.ModsSettings[item]); } using (var ms = new MemoryStream()) { blob.Write(ms); ms.Seek(0, SeekOrigin.Begin); FxCore.MessageAllPlayers(blob.ToString()); } Blob.Deallocate(ref blob); SettingsManager.UpdateList.Clear(); } } }