SoundRegion help

I’m trying to create a sound region where if the player goes into it disables the normal game’s ambient system and enables the ambient when the player comes out. The main problem with the script is that once you go into the sound region, it plays the designated sound but the ambient sound system enables after a second, I’m not sure of a way to make this work and any help would be greatly appreciated.

Directory LocalPlayer>PlayerGui>Main (LocalScript)

local player = game.Players.LocalPlayer
local soundRegions = workspace:WaitForChild("SoundRegions")

local SoundService = game:GetService("SoundService")

local Found = false

while wait(1) do
	
	for i, v in pairs(soundRegions:GetChildren()) do
		
		Found = false
		local region = Region3.new(v.Position - (v.Size/2),v.Position + (v.Size/2))
		
		local parts = game.Workspace:FindPartsInRegion3WithWhiteList(region, player.Character:GetDescendants())
		
		
		for _, parts in pairs(parts) do
			if parts:FindFirstAncestor(player.Name) then
				Found = true
				break
			else
				Found = false
			end
		end
		--main issue is below
		if Found == true then
			if script.Parent.SoundRegions[v.Name].IsPlaying == false then
				script.Parent.SoundRegions[v.Name]:Play()
				SoundService.AmbientSounds.Birds:Stop()
				SoundService.AmbientSounds.Crickets:Stop()
				break
			end
		else
			script.Parent.SoundRegions[v.Name]:Stop()
			if script.Parent.SoundRegions[v.Name].IsPlaying == false then
				if SoundService.AmbientSounds.Birds.IsPlaying == false then
					SoundService.AmbientSounds.Birds:Play()
					SoundService.AmbientSounds.Crickets:Play()
					break
				end
			end
		end
	end
end

Here are the sounds I’d like to play, they can play at the same time due to another script handling volume:
sounds
Thanks again for any help.

  1. Don’t use wait() utilize task.wait() instead.
  2. Are you positive that your region in general is functional?
  3. Have you tried parenting the audios in workspace instead?

I’ve tried task.wait() here and it was the same result as before. Also to respond to part 2, error1 - YouTube the soundregion works although the ambient still plays inside of it.

No, I mean just use task.wait() regardless, and try printing the names of players who enter the region.

Okay, I think I’ve found the problem. Each time the script is making it switch through true and false for the Found value, I’d like it stay only as true in the soundregion so the ambient doesn’t play. How do I do this?
output2