##What is the problem
The problem is pretty much stated above. The script does not teleport the players to the lobby.
##Weird Results
Before I even go inside the part, ExitRegion, it prints "MAX_TIME reached even though it hasn't reached max time.
Any print inside of the final loop isn't printing
##Code
NOTE: This is part of a bigger script.
--\\ Services
local players = game:GetService("Players")
local repStorage = game:GetService("ReplicatedStorage")
--\\ Exit Player
local exitRegion = game.Workspace.Map:WaitForChild("ExitRegion")
local db = false
local lobbySpawn = game.Workspace:WaitForChild("Spawn")
local exitRemote = repStorage:WaitForChild("ExitRemoteEvent")
local teleportRemote = repStorage:WaitForChild("TeleportPlayersRemoteEvent")
local MAX_TIME = 120
players.PlayerAdded:Wait()
while wait() do
local inRound = {}
local finished = {}
local currentTime = 0
for i = 1,#players:GetPlayers() do
inRound[#inRound + 1] = players:GetChildren()[i]
end
exitRegion.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") and not db then
db = true
local player = players:GetPlayerFromCharacter(hit.Parent)
--\\ Finish Player
if player then
print(player.Name .. " isn't nil")
for index,finisher in pairs(inRound) do
if finisher.Name == player.Name and not finished[index] then
print(finisher.Name.. " has been inserted in the finish array")
finished[#finished + 1] = finisher
print(player.Name)
exitRemote:FireClient(player,exitRegion)
finisher = nil
break
else
print(finisher.Name .. " is not " .. player.Name)
end
end
end
wait(1)
db = false
end
end)
coroutine.wrap(function()
while currentTime < MAX_TIME and not #inRound == 0 do
wait(1)
currentTime = currentTime + 1
print(currentTime)
end
print("MAX_TIME has reached")
inRound = {}
end)()
coroutine.wrap(function()
repeat wait() until #inRound == 0
end)()
--\\ Teleport player back
for _,winner in pairs(finished) do
print("Looping finished players")
local char = winner.Character
if char then
print("Character's HumanoidRootPart is not nil!")
local torso = char:WaitForChild("HumanoidRootPart")
torso.CFrame = CFrame.new(lobbySpawn.Position)
print(winner .. " has been inserted in the finished array")
else
print("The Character's HumanoidRootPart is nil!")
end
end
end
