Advertisement
Donorbijl

Untitled

Jan 16th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local quickPlaceID = 343078108 -- Change this if you want to have your placeID ready in the textbox so you don't have to copy/paste and waste time.
  2. local justGo = false -- Change this if you want to teleport people immediately when the GUI is inserted. Make sure you have a placeID set in quickPlaceID.
  3.  
  4. local whitelistPlayers = {} -- People who you don't want to teleport.
  5.  
  6.  
  7. local GUI = game:GetObjects("rbxassetid://281287169")[1]:Clone()
  8. GUI.Parent = game.Players.LocalPlayer.PlayerGui
  9. script.Parent = GUI
  10.  
  11. local mainWindow = GUI:WaitForChild("Window")
  12. local mainWindowContent = mainWindow:WaitForChild("Main")
  13. local outputBase = mainWindowContent:WaitForChild("OutputText")
  14. local outputBox = mainWindowContent:WaitForChild("Output")
  15. local Settings = mainWindowContent:WaitForChild("Settings")
  16. local ToId = mainWindowContent:WaitForChild("PlaceID")
  17. local GoButton = mainWindowContent:WaitForChild("GOButton")
  18. local AutoButton = Settings:WaitForChild("AutoSetting")
  19.  
  20. local PID = ""
  21. local LocatedTeleporter = ""
  22. local located = false
  23. local foundTele = ""
  24. local speedrun = false
  25.  
  26. ToId.Text = tostring(quickPlaceID)
  27.  
  28. function RecursiveSearch(obj, objname) -- Old ALX Function
  29.     local foundObj = false
  30.     for i,v in pairs(obj:GetChildren()) do
  31.         if v.Name == objname then
  32.             foundObj = v
  33.         end
  34.     end
  35.     return foundObj
  36. end
  37.  
  38. function FindTeleporter(root)
  39.     for i,v in pairs(root:GetChildren()) do
  40.         if RecursiveSearch(v,"TouchScript") and RecursiveSearch(v,"teleBeam1") then
  41.             foundTele = v
  42.             return
  43.         end
  44.         FindTeleporter(v)
  45.     end
  46.     if game.PlaceId == 183364845 then
  47.         foundTele = workspace.TpToNextWorld
  48.         speedrun = true
  49.         return
  50.     end
  51. end
  52.  
  53. function printOutput(str)
  54.     for i,v in pairs(outputBox:GetChildren()) do
  55.         if v.Position.Y.Offset < 10 then
  56.             v:Destroy()
  57.         end
  58.         v.Position = UDim2.new(0,0,0,v.Position.Y.Offset-20)
  59.     end
  60.     local newOutput = outputBase:Clone()
  61.     newOutput.Position = UDim2.new(0,0,0,285)
  62.     newOutput.Parent = outputBox
  63.     newOutput.Text = str
  64.     newOutput.Visible = true
  65. end
  66.  
  67. function locateTeleporter()
  68.     FindTeleporter(workspace)
  69.     if foundTele == false then
  70.         printOutput("Teleporter not found. Cannot continue.")
  71.     else
  72.         if RecursiveSearch(foundTele,"PlaceId") then
  73.             printOutput("Teleporter found... Masking...")
  74.             for i,v2 in pairs(foundTele:GetChildren()) do -- Masks your teleporter
  75.                 if v2:isA("BasePart") then
  76.                     if RecursiveSearch(v2,"Decal") then
  77.                         v2.Decal:Destroy()
  78.                     end
  79.                     v2.Transparency = 1
  80.                     v2.Anchored = true
  81.                     v2.CanCollide = false
  82.                 end
  83.             end
  84.             PID = foundTele.PlaceId
  85.             print(PID)
  86.             LocatedTeleporter = foundTele
  87.             located = true
  88.         elseif RecursiveSearch(foundTele.TouchScript.TeleportScript, "PlaceId") then
  89.             printOutput("Teleporter found... Masking...")
  90.             for i,v2 in pairs(foundTele:GetChildren()) do -- Masks your teleporter
  91.                 if v2:isA("BasePart") then
  92.                     if RecursiveSearch(v2,"Decal") then
  93.                         v2.Decal:Destroy()
  94.                     end
  95.                     v2.Transparency = 1
  96.                     v2.Anchored = true
  97.                     v2.CanCollide = false
  98.                 end
  99.             end
  100.             PID = foundTele.TouchScript.TeleportScript.PlaceId
  101.             LocatedTeleporter = foundTele
  102.             located = true
  103.         else
  104.             printOutput("Incompatible teleporter.")
  105.         end
  106.     end
  107. end
  108.  
  109. function checkWhitelist(name)
  110.     for i,v in pairs(whitelistPlayers) do
  111.         if v == name then
  112.             return false
  113.         end
  114.     end
  115.     return true
  116. end
  117.  
  118. function Place()
  119.     local placeID = ToId.Text
  120.     if #game.Players:GetChildren() - 1 - #whitelistPlayers == 0 then
  121.         printOutput("No players to teleport.")
  122.         return
  123.     elseif placeID == "" or string.find(placeID,"%a") or string.len(placeID) > 9 then
  124.         printOutput("Invalid ID")
  125.         return
  126.     end
  127.     print("Teleportation process to "..placeID.." has started on "..#game.Players:GetChildren() - 1 - #whitelistPlayers)
  128.     if located then
  129.         print("--=Teleporter Found, starting teleport=--")
  130.         PID.Value = placeID
  131.         if speedrun then
  132.             LocatedTeleporter.swagtp.Disabled = true
  133.             wait()
  134.             LocatedTeleporter.swagtp.Disabled = false
  135.         end
  136.         for i,v in pairs(game.Players:GetPlayers()) do
  137.             if v.Name ~= game.Players.LocalPlayer.Name and checkWhitelist(v.Name) then
  138.                 if RecursiveSearch(game.Players,v.Name) and RecursiveSearch(game.Workspace,v.Name) then
  139.                     printOutput("Attempting to teleport "..v.Name.." to "..placeID.."...")
  140.                     local playerBase = game.Workspace:FindFirstChild(v.Name)
  141.                     for i,v2 in pairs(playerBase:GetChildren()) do -- Masks the player
  142.                         if v2:isA("BasePart") then
  143.                             if RecursiveSearch(v2,"face") then
  144.                                 v2.face:Destroy()
  145.                             end
  146.                             v2.Transparency = 1
  147.                         elseif v:isA("Hat") then
  148.                             v2:Destroy()
  149.                         end
  150.                     end
  151.                     spawn(function()
  152.                         while wait() do
  153.                             if not game.Players:FindFirstChild(v.Name) then return end
  154.                             if game.Workspace:FindFirstChild(v.Name) then
  155.                                 playerBase = game.Workspace:FindFirstChild(v.Name)
  156.                                 if playerBase:FindFirstChild("Torso") and not speedrun then
  157.                                     playerBase.HumanoidRootPart.CFrame = LocatedTeleporter.teleBeam1.CFrame
  158.                                 else
  159.                                     playerBase.HumanoidRootPart.CFrame = LocatedTeleporter.CFrame
  160.                                 end
  161.                             end
  162.                         end
  163.                         printOutput("Teleported "..v.Name.." to "..placeID.." successfully.")
  164.                     end)
  165.                 end
  166.             end
  167.         end
  168.     else
  169.         printOutput("Teleporter Not Found")
  170.     end
  171. end
  172.  
  173. wait()
  174. printOutput("-==== Limited Placing Gui by Raspberry Pi loaded ===-")
  175. printOutput("Locating teleporter...")
  176. wait(0.5)
  177. locateTeleporter()
  178. if located then
  179.     printOutput('Ready. Paste in a PlaceId and click "GO" to start placing.')
  180.     if justGo then
  181.         Place()
  182.     end
  183.     GoButton.Active = true
  184.     GoButton.TextColor3 = Color3.new(1,1,1)
  185.     GoButton.MouseButton1Down:connect(function()
  186.         if AutoButton.enabled.Visible then return end
  187.         Place()
  188.     end)
  189.     AutoButton.MouseButton1Down:connect(function()
  190.         if AutoButton.enabled.Visible == false then
  191.             AutoButton.enabled.Visible = true
  192.             printOutput("Auto On.")
  193.         else
  194.             AutoButton.enabled.Visible = false
  195.             printOutput("Auto Off.")
  196.         end
  197.     end)
  198.     spawn(function()
  199.         while wait(1) do
  200.             if AutoButton.enabled.Visible == true then
  201.                 GoButton.Active = false
  202.                 GoButton.TextColor3 = Color3.new(160/255, 160/255, 160/255)
  203.                 Place()
  204.             else
  205.                 GoButton.Active = true
  206.                 GoButton.TextColor3 = Color3.new(1,1,1)
  207.             end
  208.         end
  209.     end)
  210. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement