So, I have achieved in which on touch it would add a player to a folder in which they would be a stringValue with their name in which I would know who to teleport to the main game.
For some reason, it's able to add but after removing the player once they have exited the platform, the script breaks.
13:25:28.816 - Workspace.GameZone.GameZoneScript:47: attempt to index a nil value
and I get this. I know that means it can't find the player but how do I fix this?!
EDIT: fixed most problems, now it just won't loop.
local EnterBrick = script.parent.EnterZone local PlayersToTeleport = {} local tablesman = script.Parent.Lobby local ExitBrick = script.Parent.ExitZone EnterBrick.Touched:Connect(function(TouchedPart) numberOfElements = 0 for key, value in pairs(PlayersToTeleport) do numberOfElements = numberOfElements + 1 script.Parent.Screen.SurfaceGui.Frame.Players.Text = numberOfElements.."/6" end if TouchedPart.Parent:FindFirstChild("Humanoid") then local Character = TouchedPart.Parent local Player = game.Players:GetPlayerFromCharacter(Character) local AlreadyInTable = false for _,OtherPlayer in next,PlayersToTeleport do if OtherPlayer == Player then AlreadyInTable = true end end if not AlreadyInTable then print(Player) code = Instance.new("StringValue", tablesman) code.Name = Player.Name table.insert(PlayersToTeleport,Player) end end end) --[[ExitBrick.Touched:Connect(function(TouchedPart) if TouchedPart.Parent:FindFirstChild("Humanoid") then local Character = TouchedPart.Parent local Player = game.Players:GetPlayerFromCharacter(Character) tablesman:FindFirstChild(Player.Name):Destroy() table.remove(PlayersToTeleport,Player) end end)]] ExitBrick.TouchEnded:Connect(function(TouchedPart) if TouchedPart.Parent:FindFirstChild("Humanoid") then local Character = TouchedPart.Parent local Player = game.Players:GetPlayerFromCharacter(Character) local AlreadyInTable = true for _,OtherPlayer in next,PlayersToTeleport do if OtherPlayer == Player then AlreadyInTable = false end end if not AlreadyInTable then local remove = tablesman:FindFirstChild(Player.Name) if remove then print(Player.Name.."Removed") for i, name in ipairs(PlayersToTeleport) do if name == Player.Name then table.remove(PlayersToTeleport, i) break end end remove:Destroy() return remove else return false end end end end) --script.Parent.Screen.SurfaceGui.Frame.Players.Text = numberOfElements.."/6"