Enemy Hp not increasing properly

when the ghost dies it should increment it’s health based on how many times it died but it just stays at 2, im using another script(the 2nd one) to track deaths and change the value
thnx in advancce

using UnityEngine;
using System.Collections;

public class moveV2 : MonoBehaviour
{

    [SerializeField]

    UnityEngine.AI.NavMeshAgent __navMeshAgent;
    private float Distance_;
    public bool IsAlive = true;
    public float killtimer = 30f;
    public int hp;
    public float debufftimer = 50f;
    public bool flashed = false;


    Animator anim;

    private Rigidbody rb;
    // Use this for initialization
    void Start()
    {

        hp = GameObject.Find("deathcounter").GetComponent<count>().deathcount2; //set the HP to deathcount


        anim = GetComponent<Animator>(); //get animator
        rb = GetComponent<Rigidbody>();  // get rigidbody
        __navMeshAgent = this.GetComponent<UnityEngine.AI.NavMeshAgent>();  //get navmeshagent

    }






    void debuff() //debuff function
    {
        if (hp > 0 && flashed == true)
        {

            __navMeshAgent.speed = 4f; //lower speed
            debufftimer--; //countdown buff


        }

        if (debufftimer <= 0) //debuff end
        {
            debufftimer = 100f;

            rb.angularDrag = 0.05f; //prevent rotating
            __navMeshAgent.speed = 8f; //reset speed;
            flashed = false;
        }

    }







    void deathtimer() //death timer function delays death
    {
        if (killtimer < 1)
        {
            Destroy(this.gameObject); //ghost dies
        }

    }


    // Update is called once per frame
    void Update()
    {
        
        if (hp < 1) //triggers kill timer to destroy object
        {
            killtimer--;
        }


        deathtimer();

        debuff();


        if (hp == 0)
        {
            rb.angularDrag = 0.9f;//prevent rotating while dying
            flashed = true;
            this.GetComponent<Collider>().isTrigger = true; //prevent hurting player whilst dying
            __navMeshAgent.isStopped = true; //stop ghost
            this.anim.Play("deadass");//play death animation
            GameObject Spawner = GameObject.Find("MiscCont/Spawner");
            var spawnerScript = Spawner.GetComponent<ItemSpawner>();
            spawnerScript.ghostAlive = false; //trigger spawn mechanic
            spawnerScript.spawnTime = spawnerScript.spawnDelay + Time.time;
           

        }




        if (rb.velocity.magnitude > 2)
        {
            rb.velocity = Vector3.ClampMagnitude(rb.velocity, 2.0f);
        }


        GameObject player = GameObject.Find("PlayerPrefabV3/player1");
        Vector3 targetVector = player.transform.position;
        Distance_ = Vector3.Distance(targetVector, this.transform.position);






        if (Distance_ < 7 && flashed == false) //play animation when close to player 
        {
            anim.Play("ghost-reaching");
        }
        {

        }
        __navMeshAgent.SetDestination(player.transform.position); //go to player 
    }


    void OnDestroy()
    {
        GameObject.Find("deathcounter").GetComponent<count>().deathcount++;
        print("i died");
    }


}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class count : MonoBehaviour
{
    public int deathcount;
    public int deathcount2;
    // Use this for initialization
    void Start()
    {
        deathcount = 0;
        deathcount2 = 1;
        if (deathcount == 0)
        {
            deathcount2 = 2;
        }
        if (deathcount == 1)
        {
            deathcount2 = 3;
        }
        if (deathcount > 4)
        {
            deathcount2 = 3;
        }
    }


    // Update is called once per frame
    void Update()
    {
        print(deathcount);

    }

}

Every time start is called, it’s deathcount variable is reset to 0. you should instead set both variables’ default value directly after the declaration, outside of the Start method. Or you can do it in the inspector of course, but it’s a good idea to do it in the script itself because then every instance is automatically affected.