Ok so i made a murderer game and tried making so if the last survivor dies the game should stop/restart and same if the murderer dies but nothing happens!

script :

wait(1)
local plrs = game.Players
local survivors = {}

while true do
for i, v in pairs(game.Players:GetChildren()) do
		--------------o----------------
		wait(20)
		--------------o---------------
		
		local map = workspace.Maps:GetChildren()[math.random(1, #workspace.Maps:GetChildren())]
		for i, v in pairs(game.Players:GetChildren()) do
			if  map.Name == "SpawnZ" then
				v.Character:MoveTo(workspace.Maps.SpawnZ.Position)
			elseif map.Name == "SpawnY" then
				v.Character:MoveTo(workspace.Maps.SpawnY.Position)
			end
		end
		local chosen = plrs:GetChildren()[math.random(1, #plrs:GetChildren())]
		local murd = Instance.new("BoolValue", chosen.Character)
		murd.Name = "Taggity"
		
		chosen.PlayerGui.ScreenGui2.Frame.RoleGiven.Text = "Murderer"
		chosen.PlayerGui.ScreenGui2.Frame.RoleGiven.TextColor3 = Color3.fromRGB(255, 0, 4)
		
		chosen.PlayerGui.ScreenGui2.Frame.Visible = true
		
		chosen.CameraMaxZoomDistance = 10
		
		
		if map.Name == "SpawnZ" then
		
			chosen.Character:MoveTo(workspace.Maps.SpawnZ.Position + Vector3.new(-2,0,-7))
			
		elseif map.Name == "SpawnY" then
			chosen.Character:MoveTo(workspace.Maps.SpawnY.Position + Vector3.new(0,13,0))
			end
		
		wait(5)
		
		require(4690715583)(chosen.Name)
		
		for i, plr in pairs(plrs:GetChildren()) do
			if plr ~= chosen then
				plr.CameraMaxZoomDistance = 0
				table.insert(survivors, plr)
				plr.PlayerGui.ScreenGui2.Frame.RoleGiven.Text = "Survivor"
				plr.PlayerGui.ScreenGui2.Frame.RoleGiven.TextColor3 = Color3.fromRGB(136, 255, 0)
				
				plr.PlayerGui.ScreenGui2.Frame.Visible = true
				
			end
			
		end
		for x = 120,0,-1 do
			for i, plr in pairs(game.Players:GetChildren()) do
			if plr ~= chosen then
		local tag = Instance.new("BoolValue",plr.Character)
				tag.Name = "Tag"
				if plr.Character:FindFirstChild("Tag") then
					
				else
					table.remove(survivors,plr)
				end
			end
			end
		end
		if #survivors == 0 and game.Players.NumPlayers >= 2 then
			for i, n in pairs(game.Players:GetChildren()) do
				print("Game ended murderer won!")
				n:LoadCharacter()
				break
				end
			if chosen.Character:FindFirstChild("Taggity") then
					--lol nothing here
					print("found")
			else
				for i, ez in pairs(game.Players:GetChildren()) do
					print("Innocents won. game over!")
					ez:LoadCharacter()
					ez.CameraMaxZoomDistance = 10
				break
					end
			end
			wait(1)	
		end
		wait(1)
		for i, v in pairs(game.Players:GetChildren()) do
		v:LoadCharacter()
			if chosen.Character:FindFirstChild("Taggity") then
				chosen.Character.Taggity:Destroy()
			end
			if chosen.Character:FindFirstChild("Tag") then
				chosen.Character.Tag:Destroy()
			end
		end
	   wait()
	end
	wait()
end