It works perfectly for one player but when another player touches it, it pauses the first player's gui timer.
ready_players = {} local timer = script.Timer local debounce = false local rs = game:GetService("ReplicatedStorage") local Countdown:BoolValue = script.Bool rs.TeleportTouched.OnServerEvent:Connect(function(Player,hit,char,gui,playergui) timergui = gui:WaitForChild("Timer") if hit.Parent:FindFirstChild("Humanoid") and debounce == false then if not table.find(ready_players,Player.Name) then table.insert(ready_players,Player) print("in") debounce = true task.wait(1) hit.Parent:FindFirstChild("HumanoidRootPart").CFrame = game.Workspace.waitingRoom.CFrame print(ready_players) if Countdown.Value == false then Countdown.Value = true print("counting down") end end end end) function startGame() print("starting") end Countdown:GetPropertyChangedSignal("Value"):Connect(function() wait(4) while true do task.wait(1) print(timer) timer.Value = timer.Value - 1 timergui.Text = tostring(timer.Value) if timer.Value == 0 then startGame() ---restart timer (w.i.p) task.wait(0.1) timer.Value = 26 end end end)
screenshot example: i.imgur.com/yJ3JbN1.png the local script is just an ontouch with localplayer with some effects timer is just an IntValue.
thanks :)