How do i edit a constructor array in the inspector?

Im kinda new to coding and I like making things myself. But I dont know how to edit the properties from a constructor in an array in the inspector. I can drag and drop a class object but not edit the properties. For example: In my NPC constructor is a id of type int. I basically want to edit the id property in the inspector for one of the NPC constuctors in the array. I can only drag and drop a NPC class which i dont want to do.

My Spawner:

public class LoadNPCAndObstacles : MonoBehaviour
{
    public Transform[] ObstacleSpawns;
    public Transform[] NPCSpawns;
    
    [SerializeField]
    public NPC[] Npcs;
    
    void Start()
    {
        Npcs  = new NPC[NPCSpawns.Length];
    }

    
    void Update()
    {
        
    }
}

My Constructor:

public class NPC : Obstacle
{
    public bool HasPath { get; set; }
    public GameObject Path { get; set; }
    

    public NPC(float hp, int id, Vector3 position, Quaternion rotation,GameObject prefab, bool hasPath, GameObject path) : base(hp, id, position, rotation, prefab)
    {
        HP = hp;
        ID = id;
        Position = position;
        Rotation = rotation;
        HasPath = hasPath;
        Path = path;
        Prefab = prefab;
    }

    public void CreateNPC()
    {
        Instantiate(this.Prefab, this.Position, this.Rotation);
    }
}

Have you added the attribute System.Serializable at the top of your script? It should look like this:

[System.Serializable] 
public class NPC : Obstacle
 {
     public bool HasPath { get; set; }
     public GameObject Path { get; set; }
     
 
     public NPC(float hp, int id, Vector3 position, Quaternion rotation,GameObject prefab, bool hasPath, GameObject path) : base(hp, id, position, rotation, prefab)
     {
         HP = hp;
         ID = id;
         Position = position;
         Rotation = rotation;
         HasPath = hasPath;
         Path = path;
         Prefab = prefab;
     }
 
     public void CreateNPC()
     {
         Instantiate(this.Prefab, this.Position, this.Rotation);
     }
 }