Respawn clone issue

In my 2D unity platform game for some reason my respawn script is spawning clones of my player when he dies, also the amount of clones doubles for some reason.
This is the script in the scene that respawns the player.

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

public class GameMaster : MonoBehaviour
{
    public static GameMaster gm;

    // Start is called before the first frame update
    void Start()
    {
        if (gm == null)
        {
            gm = GameObject.FindGameObjectWithTag("GM").GetComponent<GameMaster>();
        }
    }

    public Transform playerPrefab;
    public Transform spawnPoint;

    public void RespawnPlayer()
    {
        Debug.Log("Player Respawn");
        Instantiate(playerPrefab, spawnPoint.position, spawnPoint.rotation);

    }
This is the script attached to objects which kill the player
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Dead : MonoBehaviour
{
    public GameMaster gameMaster;
    public GameObject player;

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "Player")
        {
            Debug.Log("Died");
            gameMaster.RespawnPlayer();
           
        }
       
    }
}

It’s a clone beacuse Instantiate is making clones :wink:

And probably its doubles because Trigger detect collision more than once. You need to make sure that it’s doing it only once.