Saving objects in an array to player prefs

I’m not sure how complex this is going to be but I need to find a way to save each part of a crater prefab to player prefs. Singletons is probably better but for now I’m just using player prefas as it does not need to be very secure. But essentially what I’ve got is a scenario where enemy bots get destroyed and when they do they instantiate a crater, each crater has parts inside of it to represent the destroyed bot and these parts just like the crater are given a tag called “Trash.”
What I want to do is save the game at any point and be able to save the positions of each crater and it’s bot parts. So far I can print them out but some of them have the same name so I’m wondering if there is some way to make sure I can distinguish between which crater is which and save their respective positions.

// Are There Any Craters?
        // If So What Type?
        GameObject[] Craters;
        Craters = GameObject.FindGameObjectsWithTag("Trash");
        if (Craters != null)
        {
            for (int i = 0; i < Craters.Length; i++)
            {
                print(Craters[i].name);
            }
        }
        else
        {
            Debug.Log("No Craters Were Found");
        }

There are TONS of youtube tutorial on loading/saving. It is very well traveled territory.

Here is my own take on the minimum approach to Load/Save steps:

You would need to save it in Json file, the right video for it may be:

It’s not about the topic you’re making but saving Json files in PlayerPrefs is in there.

also I would suggest that if you are saving different prefab types, you would need to make list with number of each type of crater for example

public List<Craters> craters_List = new List<Craters>();

    public class Craters
    {
        public int numberOf_Crater1;
        public int numberOf_Crater2;
        public int numberOf_Crater3;
        public int numberOf_Crater4;
        public int numberOf_Crater5;
        //maybe add to each crater its location using float arrays
    }

Save the list using the video, and on the start method, load the list and instantiate each prefab by using the list information.