Scriptable Object Class arrays' length returning 0.

I have a Scriptable Object with an array of a class that has other arrays. When I try to get the length of the classes’ array, it just returns 0 even though I had set it to 4 in the inspector.

public class Weapon_Overview : ScriptableObject
{
[SerializeField] public GunStats[] stats;
}

[System.Serializable]
public class GunStats
{
    [SerializeField] public int[] HD;
    [SerializeField] public int[] AD;
    [SerializeField] public float[] ACC;
    [SerializeField] public int[] Mag;
    [SerializeField] public bool[] Sup; //Suppressed
    [SerializeField] public float[] RT; //Reload Time
    [SerializeField] public float[] CT; //Clock Time
    [SerializeField] public bool[] DA; //Double Action
    [SerializeField] public float[] CR; //Crit rate
    [SerializeField] public FireType[] fireType; //automatic, semi-automatic, delayed-automatic
    [SerializeField] public DamageType[] damageType; //single shot or multi shot
    [SerializeField] public bool[] AR; //Auto Reload
}

The above code is the code that’s supposed to have the information templates for the inspector.(All in the same script)

public class LocalStoreManagerScript : MonoBehaviour
{
public Weapon_Overview WeaponOverview;

private void Update(){
WeaponOverview.stats.Length; //This is the part returning 0.
}
}

How does the variable WeaponOverview receive its value? Are you sure it’s pointed to the correct instance?

Yes, I have a script that set’s the WeaponOverview. I have a debug.log that shows it as the correct one.

How, specifically, are you testing that it is “the correct one”?

Basically, the only options are that you’ve got the wrong object, or that the object’s data has changed. If you think you’ve already ruled those out, the smart money is that you made some sort of mistake in the process of ruling them out, so you should check again. (This is how computer programming works: The error is (very nearly) always the programmer’s fault, even when it seems like it can’t possibly be.)

Yep, figured it out. I forgot that there was a test Scriptable Object that I had used for placeholder values. That was the one inside the array I was checking instead of the correct one.