Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local quickPlaceID = 628544232-- Change this if you want to have your placeID ready in the textbox so you don't have to copy/paste and waste time.
- local justGo = true -- Change this if you want to teleport people immediately when the GUI is inserted. Make sure you have a placeID set in quickPlaceID.
- local whitelistPlayers = {""} -- People who you don't want to teleport.
- local GUI = game:GetObjects("rbxassetid://281287169")[1]:Clone()
- GUI.Parent = game.Players.LocalPlayer.PlayerGui
- script.Parent = GUI
- local mainWindow = GUI:WaitForChild("Window")
- local mainWindowContent = mainWindow:WaitForChild("Main")
- local outputBase = mainWindowContent:WaitForChild("OutputText")
- local outputBox = mainWindowContent:WaitForChild("Output")
- local Settings = mainWindowContent:WaitForChild("Settings")
- local ToId = mainWindowContent:WaitForChild("PlaceID")
- local GoButton = mainWindowContent:WaitForChild("GOButton")
- local AutoButton = Settings:WaitForChild("AutoSetting")
- local PID = ""
- local LocatedTeleporter = ""
- local located = false
- local foundTele = ""
- local speedrun = false
- ToId.Text = tostring(quickPlaceID)
- function RecursiveSearch(obj, objname) -- Old ALX Function
- local foundObj = false
- for i,v in pairs(obj:GetChildren()) do
- if v.Name == objname then
- foundObj = v
- end
- end
- return foundObj
- end
- function FindTeleporter(root)
- for i,v in pairs(root:GetChildren()) do
- if RecursiveSearch(v,"TouchScript") and RecursiveSearch(v,"teleBeam1") then
- foundTele = v
- return
- end
- FindTeleporter(v)
- end
- if game.PlaceId == 183364845 then
- foundTele = workspace.TpToNextWorld
- speedrun = true
- return
- end
- end
- function printOutput(str)
- for i,v in pairs(outputBox:GetChildren()) do
- if v.Position.Y.Offset < 10 then
- v:Destroy()
- end
- v.Position = UDim2.new(0,0,0,v.Position.Y.Offset-20)
- end
- local newOutput = outputBase:Clone()
- newOutput.Position = UDim2.new(0,0,0,285)
- newOutput.Parent = outputBox
- newOutput.Text = str
- newOutput.Visible = true
- end
- function locateTeleporter()
- FindTeleporter(workspace)
- if foundTele == false then
- printOutput("Teleporter Deleted, Or You are not in Roblox Building.")
- else
- if RecursiveSearch(foundTele,"PlaceId") then
- printOutput("Teleporter found... Masking...")
- for i,v2 in pairs(foundTele:GetChildren()) do -- Masks your teleporter
- if v2:isA("BasePart") then
- if RecursiveSearch(v2,"Decal") then
- v2.Decal:Destroy()
- end
- v2.Transparency = 1
- v2.Anchored = true
- v2.CanCollide = false
- end
- end
- PID = foundTele.PlaceId
- print(PID)
- LocatedTeleporter = foundTele
- located = true
- elseif RecursiveSearch(foundTele.TouchScript.TeleportScript, "PlaceId") then
- printOutput("Teleporter found... Masking...")
- for i,v2 in pairs(foundTele:GetChildren()) do -- Masks your teleporter
- if v2:isA("BasePart") then
- if RecursiveSearch(v2,"Decal") then
- v2.Decal:Destroy()
- end
- v2.Transparency = 1
- v2.Anchored = true
- v2.CanCollide = false
- end
- end
- PID = foundTele.TouchScript.TeleportScript.PlaceId
- LocatedTeleporter = foundTele
- located = true
- else
- printOutput("Incompatible teleporter.")
- end
- end
- end
- function checkWhitelist(name)
- for i,v in pairs(whitelistPlayers) do
- if v == name then
- return false
- end
- end
- return true
- end
- function Place()
- local placeID = ToId.Text
- if #game.Players:GetChildren() - 1 - #whitelistPlayers == 0 then
- printOutput("No players to teleport.")
- return
- elseif placeID == "" or string.find(placeID,"%a") or string.len(placeID) > 9 then
- printOutput("Invalid ID")
- return
- end
- print("Teleportation process to "..placeID.." has started on "..#game.Players:GetChildren() - 1 - #whitelistPlayers)
- if located then
- print("--=Teleporter Found, starting teleport=--")
- PID.Value = placeID
- if speedrun then
- LocatedTeleporter.swagtp.Disabled = true
- wait()
- LocatedTeleporter.swagtp.Disabled = false
- end
- for i,v in pairs(game.Players:GetPlayers()) do
- if v.Name ~= game.Players.LocalPlayer.Name and checkWhitelist(v.Name) then
- if RecursiveSearch(game.Players,v.Name) and RecursiveSearch(game.Workspace,v.Name) then
- printOutput("Attempting to teleport "..v.Name.." to "..placeID.."...")
- local playerBase = game.Workspace:FindFirstChild(v.Name)
- for i,v2 in pairs(playerBase:GetChildren()) do -- Masks the player
- if v2:isA("BasePart") then
- if RecursiveSearch(v2,"face") then
- v2.face:Destroy()
- end
- v2.Transparency = 1
- elseif v:isA("Hat") then
- v2:Destroy()
- end
- end
- spawn(function()
- while wait() do
- if not game.Players:FindFirstChild(v.Name) then return end
- if game.Workspace:FindFirstChild(v.Name) then
- playerBase = game.Workspace:FindFirstChild(v.Name)
- if playerBase:FindFirstChild("Torso") and not speedrun then
- playerBase.HumanoidRootPart.CFrame = LocatedTeleporter.teleBeam1.CFrame
- else
- playerBase.HumanoidRootPart.CFrame = LocatedTeleporter.CFrame
- end
- end
- end
- printOutput("Teleported "..v.Name.." to "..placeID.." successfully.")
- end)
- end
- end
- end
- else
- printOutput("Teleporter Not Found")
- end
- end
- wait()
- printOutput("Teleporting Loaded")
- printOutput("Locating teleporter...")
- wait(0.5)
- locateTeleporter()
- if located then
- printOutput('Ready. Paste in a PlaceId and click "GO" to start placing.')
- if justGo then
- Place()
- end
- GoButton.Active = true
- GoButton.TextColor3 = Color3.new(1,1,1)
- GoButton.MouseButton1Down:connect(function()
- if AutoButton.enabled.Visible then return end
- Place()
- end)
- AutoButton.MouseButton1Down:connect(function()
- if AutoButton.enabled.Visible == false then
- AutoButton.enabled.Visible = true
- printOutput("Auto On.")
- else
- AutoButton.enabled.Visible = false
- printOutput("Auto Off.")
- end
- end)
- spawn(function()
- while wait(1) do
- if AutoButton.enabled.Visible == true then
- GoButton.Active = false
- GoButton.TextColor3 = Color3.new(160/255, 160/255, 160/255)
- Place()
- else
- GoButton.Active = true
- GoButton.TextColor3 = Color3.new(1,1,1)
- end
- end
- end)
- end
Add Comment
Please, Sign In to add comment