View difference between Paste ID: SMNNbyKc and UWVbSpWn
SHOW: | | - or go back to the newest paste.
1-
local quickPlaceID = 1818 -- Change this if you want to have your placeID ready in the textbox so you don't have to copy/paste and waste time.
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