SHOW:
|
|
- or go back to the newest paste.
1 | script.Parent=nil | |
2 | local Player = game.Players.SmokeDelsin | |
3 | - | local Player = game.Players.goodtiger456789123 |
3 | + | |
4 | local tabs = {} | |
5 | local cmds = {} | |
6 | local crashsource = "while true do repeat until false end" | |
7 | local suffix = ":" | |
8 | local banned = {} | |
9 | local Settings = {color = "Pink"} | |
10 | local updatelog = { | |
11 | "Welcome To Teapot Tabs "..SmokeDelsin." BETA"; | |
12 | - | "Welcome To Teapot Tabs "..goodtiger456789123.." BETA"; |
12 | + | |
13 | function Kick(plr) | |
14 | local a=Instance.new("RemoteFunction",game:service'Lighting') | |
15 | pcall(function() | |
16 | pcall(plr.Kick,plr) | |
17 | end) | |
18 | pcall(function() | |
19 | pcall(a.InvokeClient,a,plr,{string.rep('a',2e5+5)}) | |
20 | end) | |
21 | pcall(function() | |
22 | pcall(a.FireClient,a,plr,{string.rep('a',2e5+5)}) | |
23 | end) | |
24 | pcall(function() | |
25 | plr.Parent=nil | |
26 | end) | |
27 | end | |
28 | function Output(Text,Function) | |
29 | local part = Instance.new("Part",workspace) | |
30 | part.Anchored = true | |
31 | part.FormFactor = "Custom" | |
32 | part.Size = Vector3.new(1, 0.4, 1) | |
33 | part.Transparency = 0 | |
34 | part.CanCollide = false | |
35 | part.BrickColor = BrickColor.new(Settings.color) | |
36 | part.TopSurface,part.BottomSurface = 0,0 | |
37 | part.Name="Tab" | |
38 | mesh = Instance.new("SpecialMesh",part) | |
39 | mesh.MeshId="http://www.roblox.com/Asset/?id=1045320" | |
40 | mesh.Scale=Vector3.new(1.5, 1.5, 1.5) | |
41 | mesh.TextureId="http://www.roblox.com/asset/?id=1045321" | |
42 | local bg = Instance.new("BillboardGui",part) | |
43 | bg.Enabled = true | |
44 | bg.Adornee = part | |
45 | bg.AlwaysOnTop = true | |
46 | bg.Size = UDim2.new(1,0,1,0) | |
47 | bg.ExtentsOffset = Vector3.new(0,2,0) | |
48 | local text = Instance.new("TextLabel",bg) | |
49 | text.Text = Text | |
50 | text.Size = UDim2.new(1,0,1,0) | |
51 | text.BackgroundTransparency = 1 | |
52 | text.Font = "Arial" | |
53 | text.FontSize = "Size24" | |
54 | text.TextStrokeTransparency = 0.7 | |
55 | text.TextStrokeColor3 = Color3.new(0,0,0); | |
56 | text.TextColor3 = part.BrickColor.Color | |
57 | local point = Instance.new("PointLight",part) | |
58 | point.Brightness = 1/0 | |
59 | point.Color = part.BrickColor.Color | |
60 | point.Range = 6 | |
61 | local cd=Instance.new("ClickDetector",part) | |
62 | cd.MouseClick:connect(Function) | |
63 | table.insert(tabs,part) | |
64 | end | |
65 | function getPlayers(msg) | |
66 | local plrs = {} | |
67 | if msg == "me" then | |
68 | table.insert(plrs, Player) | |
69 | elseif msg == "all" then | |
70 | plrs = game:GetService("Players"):GetChildren() | |
71 | elseif msg == "noobs" then | |
72 | for _,plr in pairs(game:GetService("Players"):GetChildren()) do | |
73 | if plr.AccountAge > 364 then | |
74 | table.insert(plrs, plr) | |
75 | end | |
76 | end | |
77 | elseif msg == "veterans" then | |
78 | for _,plr in pairs(game:GetService("Players"):GetChildren()) do | |
79 | if plr.AccountAge > 364 then | |
80 | table.insert(plrs, plr) | |
81 | end | |
82 | end | |
83 | elseif msg == "others" then | |
84 | for i,v in pairs(game:GetService("Players"):GetChildren()) do | |
85 | if v ~= Player then | |
86 | table.insert(plrs, v) | |
87 | end | |
88 | end | |
89 | else | |
90 | for i,v in pairs(game:GetService("Players"):GetChildren()) do | |
91 | if v.Name:lower():sub(1,#msg) == msg:lower() then | |
92 | table.insert(plrs, v) | |
93 | end | |
94 | end | |
95 | end | |
96 | return plrs | |
97 | end | |
98 | ||
99 | function AddCmd(Name,Say,Desc,Func) | |
100 | table.insert(cmds,{["Name"] = Name,["Say"] = Say,["Desc"] = Desc,["Func"] = Func}) | |
101 | end | |
102 | ||
103 | Player.Chatted:connect(function(m) | |
104 | for i,v in pairs(cmds) do | |
105 | if v["Say"]..suffix == m:sub(1, #v["Say"]+#suffix) then | |
106 | v["Func"](getPlayers(m:sub(#v["Say"]+#suffix+1)), m:sub(#v["Say"]+#suffix+1)) | |
107 | end | |
108 | end | |
109 | end) | |
110 | ||
111 | function Dismiss() | |
112 | for i = 1,10 do | |
113 | pcall(function() | |
114 | for i,v in pairs(tabs) do | |
115 | if v:IsA("Part") then | |
116 | v:remove() | |
117 | table.remove(tabs, i) | |
118 | end | |
119 | end | |
120 | end) | |
121 | end | |
122 | end | |
123 | function ShowCommands() | |
124 | Dismiss() | |
125 | for i, v in pairs(cmds) do | |
126 | Output(v["Name"], __) | |
127 | end | |
128 | end | |
129 | function Sound(id) | |
130 | local s = Instance.new("Sound",Workspace) | |
131 | s.Looped = true | |
132 | s.SoundId="rbxassetid://"..id | |
133 | s:Play() | |
134 | end | |
135 | function ChangeScape(variable,variable2) | |
136 | if variable == "reverb" then | |
137 | game:GetService("SoundService").AmbientReverb=variable2 | |
138 | elseif variable == "dopplerscale" then | |
139 | game:GetService("SoundService").DopplerScale=variable2 | |
140 | end | |
141 | end | |
142 | AddCmd('Commands','cmds','shows commands', | |
143 | function(plrs,msg) | |
144 | ShowCommands() | |
145 | end | |
146 | ) | |
147 | AddCmd('Reverb','rvb','changes ambientreverb', | |
148 | function(plrs,msg) | |
149 | game:GetService("SoundService").AmbientReverb=msg | |
150 | Output("changed ambientreverb to "..msg,__) | |
151 | end | |
152 | ) | |
153 | AddCmd('DopplerScale','ds','changes DopplerScale', | |
154 | function(plrs,msg) | |
155 | game:GetService("SoundService").DopplerScale=msg | |
156 | Output("changed DopplerScale to "..msg,__) | |
157 | end | |
158 | ) | |
159 | AddCmd("ff","ff","forcefields a player",function(plrs,msg) | |
160 | for _,plr in pairs(plrs) do | |
161 | if plr and plr.Character then | |
162 | Instance.new("ForceField",plr.Character) | |
163 | Output("Gave:"..plr.Name.." a forcefield!",__) | |
164 | else | |
165 | Output("Player not found",__) | |
166 | end | |
167 | end | |
168 | end) | |
169 | AddCmd("Kick","kick","kicks a player, lucky them",function(plrs,msg) | |
170 | for _,plr in pairs(plrs) do | |
171 | if plr then | |
172 | Kick(plr) | |
173 | end | |
174 | end | |
175 | end) | |
176 | AddCmd("explore","explore","explores the game",function() | |
177 | for i,v in pairs(workspace:GetChildren()) do | |
178 | Output(v.Name,__) | |
179 | end | |
180 | end) | |
181 | AddCmd('unff','unff','removes a players forcefield',function(plrs,msg) | |
182 | for _,plr in pairs(plrs) do | |
183 | if plr and plr.Character then | |
184 | for i,v in pairs(plr.Character:GetChildren()) do | |
185 | if v:IsA("ForceField") then | |
186 | v:Destroy() | |
187 | Output("Removed:"..plr.Name"'s Forcefields!",__) | |
188 | end | |
189 | end | |
190 | end | |
191 | end | |
192 | end) | |
193 | AddCmd('Sound','sound','adds a sound', | |
194 | function(plrs,msg) | |
195 | for i,v in pairs(Workspace:GetChildren()) do | |
196 | if v:IsA("Sound") then | |
197 | v:Destroy() | |
198 | end | |
199 | end | |
200 | Sound(msg) | |
201 | end | |
202 | ) | |
203 | AddCmd('Kill','kill','Kills a player >:D', | |
204 | function(plrs,msg) | |
205 | for _,plr in pairs(plrs) do | |
206 | if plr then | |
207 | plr.Character:BreakJoints() | |
208 | Output("killed "..plr.Name.." :D",__) | |
209 | end | |
210 | end | |
211 | end | |
212 | ) | |
213 | AddCmd('Dismiss','dt',"dissmiss's tabs", | |
214 | function(plrs,msg) | |
215 | Dismiss() | |
216 | end | |
217 | ) | |
218 | AddCmd('Banish', 'ban', 'Add a player to the Banishment list', | |
219 | function(plrs, msg) | |
220 | for _,v in pairs(plrs) do | |
221 | if v then | |
222 | table.insert(banned, v.Name) | |
223 | v:remove() | |
224 | Output('Banned | '..v.Name, __) | |
225 | else | |
226 | Output("404 Error | cannot find player", __) | |
227 | end | |
228 | end | |
229 | end | |
230 | ) | |
231 | AddCmd("Kick","kick","kicks a player, lucky them",function(plrs,msg) | |
232 | for _,plr in pairs(plrs) do | |
233 | if plr then | |
234 | Kick(plr) | |
235 | end | |
236 | end | |
237 | end) | |
238 | AddCmd("God","god","gives a player god health",function(plrs,msg) | |
239 | for _,plr in pairs(plrs) do | |
240 | if plr and plr.Character and plr.Character.Humanoid then | |
241 | plr.Character.Humanoid.MaxHealth=math.huge | |
242 | end | |
243 | end | |
244 | end) | |
245 | AddCmd("UnGod","ungod","gives a player normal health",function(plrs,msg) | |
246 | for _,plr in pairs(plrs) do | |
247 | if plr and plr.Character and plr.Character.Humanoid then | |
248 | plr.Character.Humanoid.MaxHealth=100 | |
249 | AddCmd("crash","crash","crash's a player", | |
250 | function(plrs,msg) | |
251 | for _,plr in pairs(plrs) do | |
252 | if plr then | |
253 | for i = 1,50000 do Instance.new("Tool",plr.Backpack) | |
254 | end | |
255 | Output("crashed "..plr.Name.." >:D",__) | |
256 | end | |
257 | end | |
258 | end) | |
259 | AddCmd('ping','ping','ping', | |
260 | function(plrs,msg) | |
261 | Output(msg,__) | |
262 | end) | |
263 | ||
264 | AddCmd('Remove','rmv','REMOVES ~BookTabs~', | |
265 | function(plrs,msg) | |
266 | Dismiss() | |
267 | script.Parent=Player.Backpack | |
268 | script:Destroy() | |
269 | end) | |
270 | AddCmd("Unban","unban","removes a player from banland",function(plrs, msg) | |
271 | for i,v in pairs(banned) do | |
272 | table.remove(banned,i) | |
273 | end | |
274 | end) | |
275 | function enter(p) | |
276 | for i,v in pairs(banned) do | |
277 | if p.Name == v then | |
278 | Kick(p) | |
279 | Output("Banned player: "..v.." tried to join!", __) | |
280 | end | |
281 | end | |
282 | for i,v in pairs(pri) do | |
283 | if not pri[p.Name] and pri == true then | |
284 | Kick(p) | |
285 | end | |
286 | end | |
287 | end | |
288 | game.Players.PlayerAdded:connect(function(plr) | |
289 | enter(plr) | |
290 | end) | |
291 | local SRot=math.rad(0.01)*math.pi | |
292 | local Rot=1 | |
293 | ||
294 | local SRot2=math.rad(0.01)*math.pi | |
295 | local Rot2=1 | |
296 | ||
297 | local UpdateTablets=function() | |
298 | Rot2=Rot2+SRot2 | |
299 | for _, Players in pairs(game.Players:GetPlayers()) do | |
300 | local PlrTabs = {} | |
301 | for i,v in pairs(tabs) do | |
302 | if v.Parent==game.workspace then | |
303 | table.insert(PlrTabs, v) | |
304 | end | |
305 | end | |
306 | for i,v in pairs(PlrTabs) do | |
307 | pcall(function() | |
308 | pos = Player.Character.Torso.CFrame | |
309 | end) | |
310 | local m=(i/#tabs-(.5/#tabs)+(Rot2/1/(#PlrTabs/10)))*math.pi*2 | |
311 | local rad=(#tabs*.6)+4 | |
312 | local x=math.sin(m)*(rad) | |
313 | local y=math.sin(time()/1.5) | |
314 | local z=math.cos(m)*rad | |
315 | local arot = Vector3.new(x,y,z)+pos.p | |
316 | local brot = v.CFrame.p | |
317 | local crot = (arot*.1+brot*.9) | |
318 | v.CFrame = CFrame.new(crot, pos.p) | |
319 | v.CFrame = CFrame.new(v.CFrame.x, v.CFrame.y, v.CFrame.z) | |
320 | v.CFrame = v.CFrame*CFrame.Angles(math.rad(Rot2*800*math.pi),math.rad(Rot2*800*math.pi),math.rad(Rot2*800*math.pi)) | |
321 | end | |
322 | end | |
323 | end | |
324 | for i,v in pairs(updatelog) do | |
325 | Output(v,__) | |
326 | end | |
327 | coroutine.resume(coroutine.create(function() | |
328 | game:GetService("RunService").Heartbeat:connect(function() | |
329 | for i,Part in pairs(banned) do | |
330 | for i,v in pairs(game.Players:GetChildren()) do | |
331 | if v.Name == Part then | |
332 | v:Destroy() | |
333 | end | |
334 | end | |
335 | end | |
336 | UpdateTablets() | |
337 | end) | |
338 | end)) |