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