Serialized values in a Array[]

(Different Arraylist from previous question that was sent really recently)

I have 5 different int and I have an Array and I want this Array to contain different possible actions (and I can add more or remove actions) all which will change the values. I want this Array to start with 0 values in it, and in the editor I can use [SerializedField] to add more “options”. In these Options of the Array I want to be able to modify in the [SerializeField] way all 5 ints (basically acting like a function where I type int = whatever, and then I use some RNG code to activate one of the functions). At the end of this I want to randomly choose one of the options with some RNG code and then make all the values be what that Option had them modified as.

Another way I could say this is

I want to make an “[SerializeField] public ArrayList” and make it so I can inside the editor add something to it at will (when I just type [SerializeField] public ArrayList for some reason I cant even see it in the editor) and every single added thing I want to have the same manipulatable variables but I want to be able to change them manually to different things (similar to how if you have 3 functions you can change the variable to what you want depending on which function you call), so lets say I am using 5 variables. In 1 of them I might want 1,0,0,1,1 but in another I might want 0,0,1,0,0 so what I could do is I would use a random number generator that chooses between numbers the length of the ArrayList (so if I have 3 different areas where I made all the variables different it chooses randomly between the 3) and then I use that to choose that set of variables for that current moment. I believe I could make the random selector on activator on my own, but I do not know why I cant see the ArrayList inside the editor since it does have [SerializeField] in front and I also cannot figure out how to make it so every single thing in a array has some variables and upon choosing that specific one in the ArrayList the variables become the values shown in the Array I chose

Yet another edit because I thought of another way to say it

I want to have a list that starts with zero values be increasable manually in editor, and every time I click + it makes a list (inside the other list) of (currently) 5 variables, and later I want to have a piece of code choose a random list of 5 variables.

I believe I understand what you are asking.

There are two solvable problems here. First, Unity cannot serialize nested collections. Since both and ArrayList are collections types, ArrayList cannot be automatically serialized. It is however simple to overcome this limitation by defining a custom struct or class that wraps the ArrayList. Second, Unity also cannot serialize heterogeneous collections, so instead of using ArrayList, you can instead use a List.

[System.Serializable]
public class MyList
{
    public List<int> value;
}

And then you can use it like so:

public class Test : MonoBehaviour
{
    public MyList[] myList;
}

This will allow you to fully modify the values in the inspector.

@kruskal21 (Doing it like this cause it wasnt letting me put images in reply)
May I know what I am doing wrong? (With class that has list in list I have both because List in List does not show up)