static void Prefix(ObjectMovementController __instance) { byte[] payload = new byte[] { }; payload.AddToArray((byte)OpCode.ObjectDeleted); var spawnable = __instance.HighlightedObject.GetSpawnableFromSpawned(); var objectSaveData = new GameObjectSaveData { Id = spawnable.Prefab.name, bundleName = spawnable.BundleName, position = new SerializableVector3(__instance.SelectedObject.transform.position), rotation = new SerializableQuaternion(__instance.SelectedObject.transform.rotation), localScale = new SerializableVector3(__instance.SelectedObject.transform.localScale) }; foreach (var settings in spawnable.Settings) { var settingsSaveData = settings.ConvertToSaveSettings(); if (settingsSaveData != null) { objectSaveData.settings.Add(settingsSaveData); } } payload.AddRangeToArray(objectSaveData.SerializeToBytes()); Main.pluginInfo.SendMessage(Main.pluginInfo, payload, true); }