internal static void DeserializePlaceableItemsUsingCustomSerializationSystem(string savePath)
        {
            if (File.Exists(savePath + MODDED_PLACEABLE_ITEM_SAVE_FILE_NAME) == false)
            {
                return;
            }

            bool deserializeResult = Utilities.JsonSerialization.Deserialize(out PlaceableItemSerializationWrapper placeableItemSerializationWrapper, savePath + MODDED_PLACEABLE_ITEM_SAVE_FILE_NAME);

            if (deserializeResult == false)
            {
                DialogPopup.DialogManager.QueueMessagePanel($"A error occured while trying to deserialize modded vehicles. Please check the output log to see why.");
            }

            foreach (PlaceableItemSerializable pis in placeableItemSerializationWrapper.GetPlaceableItems())
            {
                if (ActivePlaceableItemCreators.HasCreatorFromEnum(pis.itemType) == false)
                {
                    continue;
                }

                IACMFPlaceableItemCustomSerializationSystem serializationSystem = ActivePlaceableItemCreators.GetCreatorFromEnum(pis.itemType) as IACMFPlaceableItemCustomSerializationSystem;
                bool result = serializationSystem.DeserializeItem(pis);
                if (result == false)
                {
                    Utilities.Logger.Error($"{pis} || {serializationSystem} DeserializeItem returned false.");
                    ShowErrorDialog();
                }
            }

            Utilities.Logger.Print($"Modded Placeable Items Deserialization successful.");
        }
        internal static void SerializePlaceableItemsUsingCustomSerializationSystem(string savePath, List <PlaceableItem> itemsUsingCustomSerializationSystem)
        {
            PlaceableItemSerializationWrapper placeableItemSerializationWrapper = new PlaceableItemSerializationWrapper();

            foreach (PlaceableItem item in itemsUsingCustomSerializationSystem)
            {
                if (ActivePlaceableItemCreators.HasCreatorFromEnum(item.itemType) == false)
                {
                    continue;
                }

                Utilities.Logger.Print($"Modded Placeable Item Serializing {item}...");
                IACMFPlaceableItemCustomSerializationSystem serializationSystem = ActivePlaceableItemCreators.GetCreatorFromEnum(item.itemType) as IACMFPlaceableItemCustomSerializationSystem;

                PlaceableItemSerializable placeableItemSerializable = serializationSystem.SerializeItem(item);
                if (placeableItemSerializable == null)
                {
                    Utilities.Logger.Error($"{item} SerializeItem returned null.");
                    ShowErrorDialog();
                }
                else
                {
                    placeableItemSerializationWrapper.Add(placeableItemSerializable);
                }
            }

            bool result = Utilities.JsonSerialization.Serialize(placeableItemSerializationWrapper, savePath + MODDED_PLACEABLE_ITEM_SAVE_FILE_NAME);

            if (result == false)
            {
                ShowErrorDialog();
            }

            Utilities.Logger.Print($"Modded Placeable Items Serialization successful.");
        }