[SOLVED] Issue running multiple functions at once

I’m not sure why you’re using coroutines for the wave system, that will make every wave play at once. I would also recommend using task.spawn. It’s more lightweight and better fits your purposes. You should also be setting .Parent last for these reasons.

Spawn code:

function Spawn_Sequence(wave)
	for i, sequence in pairs(wave) do
		task.wait(sequence.SpawnDelay)
		
		for x=1, sequence.EnemyCount do
			task.spawn(addToDatabase, sequence.Enemy)

			local EnemyID = #Database
			local randomOffset = Random.new():NextNumber(-1, 1)

			local model = EnemyModels[sequence.Enemy.Name]:Clone()
			model.Name = tostring(EnemyID)
			model:SetAttribute("EnemyName", sequence.Enemy.Name)
			model:SetAttribute("PathOffset", randomOffset)
			model:PivotTo(workspace.Path.StartNode.CFrame * CFrame.new(randomOffset, sequence.Enemy.HipHeight, 0))
			model.Parent = workspace.Enemies
			
			task.spawn(Move_Enemy, sequence.Enemy, EnemyID)
			task.spawn(SetupEnemy, sequence.Enemy, EnemyID)

			task.wait(sequence.SpawnRate)
		end
	end
end

Loop code:

local function Wave_System()
	for count, wave in pairs(Waves.Casual) do
		Spawn_Sequence(wave.Enemies)
	end
end