I'm making a part that will teleport a player to a game within my place's Universe. When a person touches the part, instead of teleporting, their game freezes, and they are forced to close ROBLOX. Here's the teleport script, which is inside a part in the Workspace:
Allowed_Players = {"Minifig77", "bramblepath2"} --Whitelist db = false script.Parent.Touched:connect(function(part) if db == false then db = true local plr = game.Players:GetPlayerFromCharacter(part.Parent) if plr then for i,v in pairs(Allowed_Players) do --Iterate over whitelist if v == plr.Name then --Check for permission game:GetService("TeleportService"):Teleport(431505384, plr) --Teleport wait(2) db = false return end end else wait(1) db = false end end end)
The same thing happens in a portal I scripted:
Whitelist = {16754553, 8184187, 26275462} --User IDs of allowed players db2 = false mode = 1 --The code below was cut out of a larger function. con = script.Parent.Touched:connect(function(part) local plr = game:GetService("Players"):GetPlayerFromCharacter(part.Parent) if plr and db2 == false then --Teleport db2 = true if mode == 1 then --Mode 1 means to teleport to a certain place... game:GetService("TeleportService"):Teleport(Places[mode], plr) --Teleport elseif mode == 2 then --While mode 2 takes the player to another place. for i,v in pairs(Whitelist) do --Iterate over Whitelist if plr.UserId == v then --Check for permissions game:GetService("TeleportService"):Teleport(Places[mode], plr) --Teleport end end end wait(.1) db2 = false end end)
However, when I made a simpler version of the script for a place that demonstrated the problem, the teleport worked seamlessly.
This script also worked fine in the same place as my previous two scripts:
game.Players.PlayerAdded:connect(function(plr) wait(10) game:GetService("TeleportService"):Teleport(431505384, plr) end)
Why do the first two scripts crash the player, while the third works fine? Is there any way I can make them work?
Thank you for your time.