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)) |