I keep having this problem, I think I'm using the for i, v in pairs() loop wrong for some reason. But every time the second Player has to wait to for the first player to close his Gui so it could appear for the second player. the script so far.
function SelectMap()
if RoundStart.Value == false then
for i,v in pairs(game.Players:GetChildren()) do
v.PlayerGui.GameGui.MapVote.Visible = true
for i = 15,0,-1 do
Status.Value = i
wait(1)
end
v.PlayerGui.GameGui.MapVote.Visible = false
MapSelected = true
end
end
end

2 comments
This isn't the whole script, MapSelected Detects the function was called, if MapSelected isn't true then it will call the function again. It's also a loop,
Yeah but it's setting the value of MapSelected the same amount of times as there are players lol