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