SHOW:
|
|
- or go back to the newest paste.
| 1 | PerPlex={}
| |
| 2 | local Perplex=PerPlex | |
| 3 | Perplex.Core = {
| |
| 4 | Rotation=0, | |
| 5 | Betkey='>', | |
| 6 | RotIncrease=0.01, | |
| 7 | AccountAgeKick=175 | |
| 8 | ['Reasons']={
| |
| 9 | ['Ranked']={},
| |
| 10 | ['Bans']={
| |
| 11 | 'Banned the creator'; | |
| 12 | 'Banned the creator\'s friend'; | |
| 13 | 'Fm\'ing'; | |
| 14 | 'Pri\ng'; | |
| 15 | 'Annoying'; | |
| 16 | 'BanHappy'; | |
| 17 | 'UNDEFINED'; | |
| 18 | }, | |
| 19 | }; | |
| 20 | ['Ranked'] = {
| |
| 21 | - | ['Control22'] = {Rank = 7, Desc = 'Creator', Color='New Yeller'};
|
| 21 | + | ['iispecialeffects'] = {Rank = 7, Desc = 'Creator', Color='New Yeller'};
|
| 22 | ['FallingVortex'] = {Rank = 7, Desc = 'Permission to use, but not copy m8s.', Color='White'};
| |
| 23 | ||
| 24 | }; | |
| 25 | ['Ranks'] = {
| |
| 26 | [0] = {Role='A regular player'};
| |
| 27 | [1] = {Role = 'Just a PerPlex Viewer'};
| |
| 28 | [2] = {Role = 'A little better than the rest'};
| |
| 29 | [3] = {Role = 'You are somewhat important'};
| |
| 30 | [4] = {Role = 'Your here if your a good friend of supersonicfan111'};
| |
| 31 | [5] = {Role = 'You must be pretty important :]'};
| |
| 32 | [6] = {Role = 'You\'re a VERY important person!'};
| |
| 33 | [7] = {Role = 'The creator ;O'};
| |
| 34 | }; | |
| 35 | ['Tablets'] = {};
| |
| 36 | ['Commands'] = {};
| |
| 37 | ['Music']={};
| |
| 38 | ['Bans'] = {
| |
| 39 | ['ItsAjm'] = {Reason4Ban = 'Abusing, Fming, Private Server'},
| |
| 40 | ['AshBluBoi'] = {Reason4Ban = 'Fming'},
| |
| 41 | ['iiEssence']={Reason4Ban='Pri\'ing'},
| |
| 42 | ['BabyGoats']={Reason4Ban='FMing'},
| |
| 43 | }; | |
| 44 | ['Services']={
| |
| 45 | ['Http']=game:service'HttpService', | |
| 46 | ['Workspace']=game:service'Workspace', | |
| 47 | ['Lighting']=game:service'Lighting', | |
| 48 | ['ServerStorage']=game:service'ServerStorage', | |
| 49 | ['Players']=game:service'Players', | |
| 50 | ['MarketPlace']=game:service'MarketplaceService' | |
| 51 | }, | |
| 52 | ['Functions']={
| |
| 53 | Create = function(ClassName, Properties) -- A function to create instances. | |
| 54 | local Instance = Instance.new(ClassName) | |
| 55 | local Properties = Properties or {}
| |
| 56 | local ConnectionIndexes = {"MouseClick","MouseHoverEnter","MouseHoverLeave","MouseButton1Down","MouseButton2Down"}
| |
| 57 | local CheckConnection = function(Index) | |
| 58 | local Index = tostring(Index) | |
| 59 | for _, Connect in next,(ConnectionIndexes) do | |
| 60 | if Index:lower() == Connect:lower() then | |
| 61 | return true | |
| 62 | end | |
| 63 | end | |
| 64 | return false | |
| 65 | end | |
| 66 | for Index, Value in next,(Properties) do | |
| 67 | if not CheckConnection(Index) then | |
| 68 | Instance[Index] = Value | |
| 69 | else | |
| 70 | Instance[Index]:connect(Value) | |
| 71 | end | |
| 72 | end | |
| 73 | return Instance | |
| 74 | end, | |
| 75 | EditSound=function(plr, sound) | |
| 76 | if sound and sound:IsA('Sound') then
| |
| 77 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 78 | Perplex.Core['Functions']['Main'].Output(plr, 'Restart song', 'New Yeller', function() | |
| 79 | sound:Stop() | |
| 80 | wait() | |
| 81 | sound:Play() | |
| 82 | end) | |
| 83 | Perplex.Core['Functions']['Main'].Output(plr, 'Destroy sound', 'Sand red', function() | |
| 84 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 85 | sound:Stop() | |
| 86 | wait() | |
| 87 | sound:Destroy() | |
| 88 | end) | |
| 89 | if sound.isPaused then | |
| 90 | Perplex.Core['Functions']['Main'].Output(plr, 'Play song', 'Lime green', function() | |
| 91 | sound:Play() | |
| 92 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 93 | end) | |
| 94 | else | |
| 95 | Perplex.Core['Functions']['Main'].Output(plr, 'Pause song', 'Bright green', function() | |
| 96 | sound:Pause() | |
| 97 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 98 | end) | |
| 99 | Perplex.Core['Functions']['Main'].Output(plr, 'Stop song', 'Really red', function() | |
| 100 | sound:Stop() | |
| 101 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 102 | end) | |
| 103 | end | |
| 104 | Perplex.Core['Functions']['Main'].Output(plr, 'Nightcore Song', 'Teal', function() | |
| 105 | sound.Pitch=1.25 | |
| 106 | end) | |
| 107 | Perplex.Core['Functions']['Main'].Output(plr, 'Toggle loop', 'Neon orange', function() | |
| 108 | sound.Looped=not sound.Looped | |
| 109 | end) | |
| 110 | Perplex.Core['Functions']['Main'].Output(plr, 'Change volume', 'Bright red', function() | |
| 111 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 112 | for i = 0, 1, .1 do | |
| 113 | Perplex.Core['Functions']['Main'].Output(plr, i, 'Bright red', function() | |
| 114 | sound.Volume=i | |
| 115 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 116 | end) | |
| 117 | end | |
| 118 | end) | |
| 119 | Perplex.Core['Functions']['Main'].Output(plr, 'Change pitch', 'Deep orange', function() | |
| 120 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 121 | for i = 0, 2.1, .1 do | |
| 122 | Perplex.Core['Functions']['Main'].Output(plr, i, 'Deep orange', function() | |
| 123 | sound.Pitch=i | |
| 124 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 125 | end) | |
| 126 | end | |
| 127 | end) | |
| 128 | end | |
| 129 | end, | |
| 130 | PlayAudio=function(plr, id) | |
| 131 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 132 | for _,v in next, script:children() do if v:IsA('Sound') then v:Stop() wait() v:destroy() end end
| |
| 133 | local MarketPlace=Perplex.Core['Services']['MarketPlace'] | |
| 134 | local productInfo=MarketPlace:GetProductInfo(id) | |
| 135 | local Sound=Perplex.Core['Functions'].Create('Sound', {Parent=script, SoundId='rbxassetid://'..id, Volume=1, Pitch=1})
| |
| 136 | Sound:Play() | |
| 137 | Sound.Name=productInfo.Name | |
| 138 | Perplex.Core['Functions']['Main'].Output(plr, 'Now playing: \n'..Sound.Name, 'New Yeller') | |
| 139 | Perplex.Core['Functions']['Main'].Output(plr, 'Description: \n'..productInfo.Description, 'Bright green') | |
| 140 | Perplex.Core['Functions']['Main'].Output(plr, 'Creator: \n'..productInfo.Creator.Name, 'Lime green') | |
| 141 | Perplex.Core['Functions']['Main'].Output(plr, 'Edit Audio', 'Deep orange', function() Perplex.Core['Functions'].EditSound(plr, Sound) end) | |
| 142 | end, | |
| 143 | Kick=function(plr) | |
| 144 | local h=Instance.new('RemoteEvent', game:service'Lighting'):FireClient(plr,{string.rep("Rekt pls?",2e5+5)})
| |
| 145 | delay(1,function() | |
| 146 | pcall(function() | |
| 147 | h:destroy() | |
| 148 | end) | |
| 149 | end) | |
| 150 | end, | |
| 151 | Crash = function(plr) | |
| 152 | coroutine.resume(coroutine.create(function() | |
| 153 | while wait() do | |
| 154 | local chr=workspace:FindFirstChild(plr.Name) | |
| 155 | if chr then | |
| 156 | pcall(function() | |
| 157 | Instance.new('Message', plr:FindFirstChild('PlayerGui')).Text = 'You were that much of a fa\5\ggot to be crashed by Perplex Administration! <3'
| |
| 158 | Instance.new('Hint', plr:FindFirstChild('PlayerGui')).Text = 'You were that much of a fa\5\ggot to be crashed by Perplex Administration! <3'
| |
| 159 | chr:FindFirstChild('Torso').CFrame=CFrame.new(2500,2500,2500)
| |
| 160 | chr:FindFirstChild('Torso').Anchored=true
| |
| 161 | local ff=Instance.new('ForceField', chr)
| |
| 162 | local spark=Instance.new('Sparkles', chr:FindFirstChild('Torso'))
| |
| 163 | local smoke=Instance.new('Smoke', chr:FindFirstChild('Torso'))
| |
| 164 | chr:FindFirstChild('Torso'):Explode()
| |
| 165 | plr.CameraMode='LockFirstPerson' | |
| 166 | if not chr then | |
| 167 | plr:LoadCharacter() | |
| 168 | end | |
| 169 | end) | |
| 170 | end | |
| 171 | end | |
| 172 | end)) | |
| 173 | end, | |
| 174 | ['Main']={
| |
| 175 | Output=function(plr, text, color, f, image) | |
| 176 | if plr==nil or type(plr) ~= 'userdata' then return end | |
| 177 | if text==nil then text='Text Error' end | |
| 178 | if color==nil then color=Perplex.Core['Ranked'][plr.Name].Color end | |
| 179 | local p=Instance.new('Part', workspace)
| |
| 180 | p.Name='PERPLEX_OUTPUT' | |
| 181 | p.FormFactor = 3 | |
| 182 | p.Anchored=true | |
| 183 | p.formFactor='Custom' | |
| 184 | pcall(function() | |
| 185 | if plr and plr.Character and plr.Character.Torso then | |
| 186 | p.CFrame=plr.Character.Torso.CFrame | |
| 187 | end | |
| 188 | end) | |
| 189 | p.Size=Vector3.new(2,2,2) | |
| 190 | p.CanCollide=false | |
| 191 | p.Transparency=0 | |
| 192 | p.BrickColor=BrickColor.new(color) | |
| 193 | p.TopSurface, p.BottomSurface = 'SmoothNoOutlines', 'SmoothNoOutlines'; | |
| 194 | bg = Instance.new('BillboardGui',p)
| |
| 195 | bg.Adornee = p | |
| 196 | bg.Size = UDim2.new(1,0,.5,0) | |
| 197 | bg.AlwaysOnTop = true | |
| 198 | bg.StudsOffset = Vector3.new(0,4,0) | |
| 199 | tl = Instance.new('TextLabel',bg)
| |
| 200 | local props={Parent=BBG, Font='ArialBold', TextColor=p.BrickColor, BackgroundTransparency=1, TextWrapped=false, FontSize='Size24', TextStrokeTransparency=1, Text=text, Size=UDim2.new(1,0,.5,0), Position=UDim2.new(0,0,.2,0)}
| |
| 201 | for i,v in next, props do | |
| 202 | tl[i]=v | |
| 203 | end | |
| 204 | local imagelabel | |
| 205 | if image then | |
| 206 | local props2={Parent=bg, BackgroundTransparency=1, Image=image, Size=UDim2.new(.3,0,.37,0), Position=UDim2.new(.35,0,0,0)}
| |
| 207 | imagelabel=Instance.new('ImageLabel', bg)
| |
| 208 | for i,v in next, props2 do | |
| 209 | imagelabel[i]=v | |
| 210 | end | |
| 211 | end | |
| 212 | local AntiRemove | |
| 213 | ||
| 214 | AntiRemove=p.Changed:connect(function() | |
| 215 | if p.Parent ~= workspace then | |
| 216 | local removeTab=p:findFirstChild('removeTheTablet')
| |
| 217 | if removeTab and removeTab:IsA('BoolValue') and removeTab.Value==true then
| |
| 218 | AntiRemove:disconnect() | |
| 219 | else | |
| 220 | Perplex.Core['Functions']['Main'].Output(plr, text, color, f) | |
| 221 | end | |
| 222 | end | |
| 223 | end) | |
| 224 | ||
| 225 | local cd=Instance.new('ClickDetector', p)
| |
| 226 | cd.MaxActivationDistance=math.huge | |
| 227 | cd.MouseClick:connect(function(playr) | |
| 228 | if playr == plr then | |
| 229 | if f then | |
| 230 | f() | |
| 231 | else | |
| 232 | for i = 0, 1, .1 do | |
| 233 | p.Transparency=i | |
| 234 | p.Size=p.Size-Vector3.new(.05,.05,.05) | |
| 235 | game:service'RunService'.Stepped:wait() | |
| 236 | end | |
| 237 | local removeTab=Instance.new('BoolValue', p)
| |
| 238 | removeTab.Name='removeTheTablet' | |
| 239 | removeTab.Value=true | |
| 240 | p:destroy() | |
| 241 | end | |
| 242 | end | |
| 243 | ||
| 244 | end) | |
| 245 | ||
| 246 | table.insert(Perplex.Core['Tablets'], {Player=plr, Tablet=p})
| |
| 247 | end, | |
| 248 | Dismiss=function(Plr) | |
| 249 | for _,Tab in pairs(Perplex.Core['Tablets']) do | |
| 250 | if Tab.Player==Plr then | |
| 251 | coroutine.resume(coroutine.create(function() | |
| 252 | for i = 0, 1, .1 do | |
| 253 | Tab.Tablet.Transparency=i | |
| 254 | Tab.Tablet.Size=Tab.Tablet.Size-Vector3.new(.05,.05,.05) | |
| 255 | game:service'RunService'.Stepped:wait() | |
| 256 | end | |
| 257 | local removeTab=Instance.new('BoolValue', Tab.Tablet)
| |
| 258 | removeTab.Name='removeTheTablet' | |
| 259 | removeTab.Value=true | |
| 260 | Tab.Tablet:destroy() | |
| 261 | end)) | |
| 262 | end | |
| 263 | end | |
| 264 | end, | |
| 265 | doCommand = function(Speaker,Msg) | |
| 266 | if Msg:sub(1,2) == '/e' and #Msg > 3 then | |
| 267 | Msg=Msg:sub(3) | |
| 268 | end | |
| 269 | for _,v in next, Perplex.Core['Commands'] do | |
| 270 | if Msg:sub(1, #v['Chat']+#Perplex.Core.Betkey)==v['Chat']..Perplex.Core.Betkey then | |
| 271 | if Perplex.Core['Ranked'][Speaker.Name] and Perplex.Core['Ranked'][Speaker.Name].Rank and Perplex.Core['Ranked'][Speaker.Name].Rank >= v['Rank'] then | |
| 272 | local Added = Msg:sub(#v['Chat']+#Perplex.Core.Betkey+1) | |
| 273 | a,b=ypcall(function() | |
| 274 | print(Added) | |
| 275 | v['Func'](Speaker, Added) | |
| 276 | end)if not a then Perplex.Core['Functions']['Main'].Output(plr, b, 'Really red') end | |
| 277 | else | |
| 278 | Perplex.Core['Functions']['Main'].Output(plr, 'You\'re not the correct rank, to execute this command ['..v['Rank']..']', 'Really red') | |
| 279 | end | |
| 280 | end | |
| 281 | end | |
| 282 | end; | |
| 283 | ConnectPlayer=function(plr) | |
| 284 | if Perplex.Core['Bans'][plr.Name] then | |
| 285 | Perplex.Core['Functions'].Kick(plr) | |
| 286 | end | |
| 287 | if Perplex.Core['Ranked'][plr.Name] and Perplex.Core['Ranked'][plr.Name].Rank >= 1 then | |
| 288 | Perplex.Core['Functions']['Main'].Output(plr, 'Welcome to Perplex Admin!', 'Deep orange') | |
| 289 | Perplex.Core['Functions']['Main'].Output(plr, 'This was created by supersonicfan111!', 'White', nil) | |
| 290 | Perplex.Core['Functions']['Main'].Output(plr, 'Bet key : [ '..Perplex.Core.Betkey..' ]', 'White', nil) | |
| 291 | Perplex.Core['Functions']['Main'].Output(plr, 'You\'re rank : '..Perplex.Core['Ranked'][plr.Name].Rank, 'New Yeller') | |
| 292 | Perplex.Core['Functions']['Main'].Output(plr, 'Dismiss', 'Really red', function() | |
| 293 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 294 | end) | |
| 295 | else | |
| 296 | Perplex.Core['Ranked'][plr.Name]={Rank=0, Desc='A player', Color='White'}
| |
| 297 | print'Rank added!' | |
| 298 | end | |
| 299 | plr.Chatted:connect(function(chat) Perplex.Core['Functions']['Main'].doCommand(plr, chat) end) | |
| 300 | end, | |
| 301 | }, | |
| 302 | ['Set']={};
| |
| 303 | ['Get']={
| |
| 304 | BannedPlayer=function(plr) | |
| 305 | if type(plr)=='string' then | |
| 306 | plr=plr | |
| 307 | elseif type(plr)=='userdata' then | |
| 308 | plr=tostring(plr) | |
| 309 | end | |
| 310 | if PerPlex.Core['Bans'][plr] then | |
| 311 | return true | |
| 312 | end | |
| 313 | end, | |
| 314 | Color=function(plr) | |
| 315 | if type(plr)=='string' then | |
| 316 | plr=plr | |
| 317 | elseif type(plr)=='userdata' then | |
| 318 | plr=tostring(plr) | |
| 319 | else | |
| 320 | plr=plr.Name | |
| 321 | end | |
| 322 | if Perplex.Core['Ranked'][plr] then | |
| 323 | return Perplex.Core['Ranked'][plr].Color | |
| 324 | end | |
| 325 | return 'White' | |
| 326 | end, | |
| 327 | Rank=function(plr) | |
| 328 | if type(plr)=='string' then | |
| 329 | plr=plr | |
| 330 | elseif type(plr)=='userdata' then | |
| 331 | plr=tostring(plr) | |
| 332 | else | |
| 333 | plr=plr.Name | |
| 334 | end | |
| 335 | if Perplex.Core['Ranked'][plr] then | |
| 336 | return Perplex.Core['Ranked'][plr].Rank | |
| 337 | end | |
| 338 | return 0 | |
| 339 | end, | |
| 340 | Players=function(speaker, plr) | |
| 341 | local returned={}
| |
| 342 | if plr=='all' then | |
| 343 | for _,v in next, game:service'Players':players() do if Perplex.Core['Functions']['Get'].Rank(v) <= Perplex.Core['Functions']['Get'].Rank(speaker) then table.insert(returned, v) end end | |
| 344 | elseif plr=='others' then | |
| 345 | for _,v in next, game:service'Players':players() do if v ~= speaker then if Perplex.Core['Functions']['Get'].Rank(v) <= Perplex.Core['Functions']['Get'].Rank(speaker) then table.insert(returned, v) end end end | |
| 346 | elseif plr=='me' then | |
| 347 | table.insert(returned, speaker) | |
| 348 | else | |
| 349 | for _,v in next, game:service'Players':players() do | |
| 350 | if tostring(v):find(plr) then | |
| 351 | if Perplex.Core['Functions']['Get'].Rank(v) <= Perplex.Core['Functions']['Get'].Rank(speaker) then | |
| 352 | table.insert(returned, v) | |
| 353 | end | |
| 354 | end | |
| 355 | end | |
| 356 | end | |
| 357 | return returned | |
| 358 | end, | |
| 359 | }; | |
| 360 | UpdateTabs=function() | |
| 361 | Perplex.Core.Rotation=Perplex.Core.Rotation+Perplex.Core.RotIncrease | |
| 362 | --pcall(function() | |
| 363 | for _,Player in pairs(game:service'Players':GetPlayers()) do | |
| 364 | local Counter = 0 | |
| 365 | local PlayerTablets = {}
| |
| 366 | for i,v in pairs(Perplex.Core['Tablets']) do | |
| 367 | if v.Tablet.Parent ~= nil and v.Player==Player then | |
| 368 | table.insert(PlayerTablets,v) | |
| 369 | end | |
| 370 | end | |
| 371 | ||
| 372 | ||
| 373 | local Start = CFrame.new(0,0,0) | |
| 374 | for I = 1, #PlayerTablets do | |
| 375 | local Pos = nil | |
| 376 | pcall(function() Pos = Player.Character.Torso.CFrame end) | |
| 377 | if Pos == nil then return end | |
| 378 | local Tab=PlayerTablets[I].Tablet | |
| 379 | local i=I | |
| 380 | local Main = (I / #PlayerTablets - (0.1 / #PlayerTablets) + Perplex.Core.Rotation/(#PlayerTablets/3)) * math.pi * 2.2 | |
| 381 | local x = math.sin(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3) | |
| 382 | local y = math.sin(math.sin(time()+I*1)) | |
| 383 | local z = math.cos(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3) | |
| 384 | local aPos = Vector3.new(x, y, z) + Pos.p | |
| 385 | local bPos = Tab.CFrame.p | |
| 386 | local cPos = (aPos * .1 + bPos * .9) | |
| 387 | Tab.CFrame = CFrame.new(cPos, Pos.p) | |
| 388 | local d=math.rad((Perplex.Core.Rotation*300)*math.pi); | |
| 389 | Tab.CFrame=CFrame.new(cPos,Pos.p)*CFrame.Angles(0,0,0) | |
| 390 | * CFrame.fromEulerAnglesXYZ(math.sin(time()/math.pi),math.sin(time()/math.pi),math.sin(time()/math.pi)) | |
| 391 | end | |
| 392 | end | |
| 393 | --end) | |
| 394 | end; | |
| 395 | ShowCommandsForRank=function(rank, plr) | |
| 396 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 397 | for _, CMDS in next, Perplex.Core['Commands'] do | |
| 398 | if CMDS['Rank'] <= rank then | |
| 399 | Perplex.Core['Functions']['Main'].Output(plr, CMDS['Name'], 'White', function() | |
| 400 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 401 | Perplex.Core['Functions']['Main'].Output(plr, 'Name : '..CMDS['Name'], 'White') | |
| 402 | Perplex.Core['Functions']['Main'].Output(plr, 'Details : '..CMDS['Details'], 'Royal purple') | |
| 403 | Perplex.Core['Functions']['Main'].Output(plr, 'Rank required : '..CMDS['Rank'], 'New Yeller') | |
| 404 | Perplex.Core['Functions']['Main'].Output(plr, 'F'..tostring(CMDS['Func']):sub(2), 'Really blue') | |
| 405 | Perplex.Core['Functions']['Main'].Output(plr, 'Say : '..CMDS['Chat']..Perplex.Core.Betkey, 'Really blue') | |
| 406 | Perplex.Core['Functions']['Main'].Output(plr, 'Back', 'Lime green', function() Perplex.Core['Functions'].ShowCommandsForRank(rank, plr) end) | |
| 407 | Perplex.Core['Functions']['Main'].Output(plr, 'Dismiss', 'Really red', function() Perplex.Core['Functions']['Main'].Dismiss(plr) end) | |
| 408 | end) | |
| 409 | end | |
| 410 | end | |
| 411 | end; | |
| 412 | ||
| 413 | NewCmd = function(name,chat,rank,desc,f) | |
| 414 | table.insert(Perplex.Core['Commands'], {Name=name, Chat=chat, Rank = rank, Details=desc, Func = f})
| |
| 415 | end; | |
| 416 | }; | |
| 417 | }; | |
| 418 | ||
| 419 | local main=Perplex.Core['Functions']['Main'] | |
| 420 | ||
| 421 | for _,v in next, game:service'Players':players() do | |
| 422 | main.ConnectPlayer(v) | |
| 423 | end | |
| 424 | Perplex.Core['Functions'].NewCmd('Dismiss', 'dt', 0, 'Dismisses the tablets', function(Speaker, Msg)
| |
| 425 | main.Dismiss(Speaker) | |
| 426 | end) | |
| 427 | Perplex.Core['Functions'].NewCmd('Commands','cmds', 0,'Shows the commands menu',function(Speaker, Msg)
| |
| 428 | main.Dismiss(Speaker) | |
| 429 | for i = 0, 7 do | |
| 430 | main.Output(Speaker, 'Rank '..i..' commands', 'Really blue',function() | |
| 431 | Perplex.Core['Functions'].ShowCommandsForRank(i, Speaker) | |
| 432 | end) | |
| 433 | end | |
| 434 | main.Output(Speaker, 'Show commands for your rank ('..Perplex.Core['Functions']['Get'].Rank(Speaker)..')', 'Lime green', function()
| |
| 435 | Perplex.Core['Functions'].ShowCommandsForRank(Perplex.Core['Functions']['Get'].Rank(Speaker), Speaker) | |
| 436 | end) | |
| 437 | main.Output(Speaker, 'Show all commands', 'Deep orange',function() | |
| 438 | Perplex.Core['Functions'].ShowCommandsForRank(math.huge, Speaker) | |
| 439 | end) | |
| 440 | end) | |
| 441 | ||
| 442 | Perplex.Core['Functions'].NewCmd('Kick','kick',2,'Kick a player', function(Speaker, Msg)
| |
| 443 | for _,Plr in next, Perplex.Core['Functions']['Get'].Players(Speaker, Msg) do | |
| 444 | if Plr then | |
| 445 | Perplex.Core['Functions'].Kick(Plr) | |
| 446 | end | |
| 447 | end | |
| 448 | end) | |
| 449 | ||
| 450 | Perplex.Core['Functions'].NewCmd('Ban','ban',5,'Bans a player',function(Speaker, Msg)
| |
| 451 | for _,Plr in next,Perplex.Core['Functions']['Get'].Players(Speaker, Msg) do | |
| 452 | if Plr then | |
| 453 | print'ban' | |
| 454 | Perplex.Core['Functions'].Kick(Plr) | |
| 455 | Perplex.Core['Bans'][Plr.Name]={Reason4Ban='Banned by an admin', BanType='Crash'}
| |
| 456 | print'k' | |
| 457 | main.Output(Speaker, 'Would you like to add a reason for the ban?', 'Deep orange') | |
| 458 | main.Output(Speaker, 'Yes', 'Lime green', function() | |
| 459 | main.Dismiss(Speaker) | |
| 460 | for _,v in next, Perplex.Core['Reasons']['Bans'] do | |
| 461 | main.Output(Speaker, v, 'Deep orange', function() | |
| 462 | main.Dismiss(Speaker) | |
| 463 | Perplex.Core['Bans'][Plr.Name].Reason4Ban=v | |
| 464 | end) | |
| 465 | end | |
| 466 | end) | |
| 467 | main.Output(Speaker, 'No', 'Really red', function() | |
| 468 | main.Dismiss(Speaker) | |
| 469 | end) | |
| 470 | end | |
| 471 | end | |
| 472 | end) | |
| 473 | ||
| 474 | Perplex.Core['Functions'].NewCmd('Music','msc',4,'Plays a sound',function(Speaker, Msg)
| |
| 475 | pcall(function() | |
| 476 | Perplex.Core['Functions'].PlayAudio(Speaker,Msg) | |
| 477 | end) | |
| 478 | end) | |
| 479 | ||
| 480 | Perplex.Core['Functions'].NewCmd('All Music','music',4,'Displays all sounds running from the admin',function(plr)
| |
| 481 | main.Dismiss(plr) | |
| 482 | for _, v in next, script:children() do | |
| 483 | if v:IsA('Sound') then
| |
| 484 | main.Output(plr, v.Name, 'Teal', function() | |
| 485 | Perplex.Core['Functions'].EditSound(plr, v) | |
| 486 | end) | |
| 487 | end | |
| 488 | end | |
| 489 | end) | |
| 490 | ||
| 491 | --Perplex.Core['Functions']['Main'].Output=function(plr, text, color, f, image) | |
| 492 | --Perplex.Core['Functions'].NewCmd(Name, say, rank, description, function) | |
| 493 | ||
| 494 | ||
| 495 | game:service'RunService'.Stepped:connect(Perplex.Core['Functions'].UpdateTabs) | |
| 496 | ||
| 497 | ||
| 498 | game:service'Players'.PlayerAdded:connect(function(p) | |
| 499 | main.ConnectPlayer(p) | |
| 500 | end) | |
| 501 | ||
| 502 | game:service'Players'.PlayerRemoving:connect(function(p) | |
| 503 | main.Dismiss(p) | |
| 504 | end) |