The scene does not load my coroutine a second time,Start function does not read the second time i load the scene

Hello!
I am making this TD game for a school project and everything was going smooth. But now i have this problem where the first time i am loading the game and playing it, it works fine.
But say i pause, go back to menu and start again the coroutine doesnt start spawning the enemy waves.
And i have no idea why this happens.
Help would be appriciated!
,Hello!
I am building this TD game where the waves spawn just fine the first time i start the scene. But when I pause the game to go back to the menu and start it again no enemies spawn in.
I am using a coroutine for this and my suspicion is that it doesnt start the second time for some reason.
But i am a beginner at this so i have no diea how to solve this.

Thanks

The Start Method is not called again. It get called only once for a given script.
See here.

void Start()
{

    StartCoroutine(SpawnCoroutine());
}

private IEnumerator SpawnCoroutine()
{
    yield return new WaitForSeconds(EnemyWaves[WaveTracker].TimeBeforeWaveStarts);

    for (int i = 0; i < EnemyWaves[WaveTracker].Enemies.Length; ++i)
    {
        Transform Spawn = SpawnPoints[Random.Range(0, SpawnPoints.Length)];
        GameObject spawnedGO = Instantiate(EnemyWaves[WaveTracker].Enemies*, Spawn.position, Spawn.rotation);*

Mover mover = spawnedGO.GetComponent();
if (mover.WaypointsToUse == 1)
{
spawnedGO.GetComponent().wayPoints = Waypoints1;
spawnedGO.GetComponent().Waypoints = DeathWaypoints1;
}
else if (mover.WaypointsToUse == 2)
{
spawnedGO.GetComponent().wayPoints = Waypoints2;
spawnedGO.GetComponent().Waypoints = DeathWaypoints2;
}
else if (mover.WaypointsToUse == 3)
{
spawnedGO.GetComponent().wayPoints = Waypoints3;
spawnedGO.GetComponent().Waypoints = DeathWaypoints3;
}
yield return new WaitForSeconds(EnemyWaves[WaveTracker].TimeBetweenSpawns);
}

Your Menu is other scene or inside your scene?

As I read your case I guess the “menu” you said is some UI objects inside this scene. If so the Start() function will never get call again as @adnanpk 's answer. Start function just exe once since scene loaded. And I wonder the phrase “But say i pause, go back to menu and start again” what “pause” mean? How you implemented the pause feature? Perhaps the problem is there?