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