View difference between Paste ID: 4chrSTw8 and Wbh7ZTaG
SHOW: | | - or go back to the newest paste.
1
--[[
2
    
3
       _____      _                              _____              ___  
4
      / ____|    (_)                            / ____|            |__ \ 
5
     | |     _ __ _ _ __ ___  ___  ___  _ __   | |  __  ___ _ __      ) |
6
     | |    | '__| | '_ ` _ \/ __|/ _ \| '_ \  | | |_ |/ _ \ '_ \    / / 
7
     | |____| |  | | | | | | \__ \ (_) | | | | | |__| |  __/ | | |  / /_ 
8
      \_____|_|  |_|_| |_| |_|___/\___/|_| |_|  \_____|\___|_| |_| |____|
9
      
10
      Crimson Generation 2.0
11
      Copyright (c) 2015 ApexDevelopment.
12
      v1.0 by ApexDevelopment.
13
    
14
]]--
15
16
local Crimson;
17
Crimson = {
18
    Bet = '>';
19
    rot = .1;
20
    rot2 = 0.001;
21
    Commands = {};
22
    Tablets = {};
23
    Ranked = {
24-
        {Name = "GalacticParadox", Rank = 5, Description = "Creator of Crimson Gen 2.", Color = "Toothpaste"}; -- keep me in there
24+
        {Name = "BlueHasSwag", Rank = 5, Description = "Creator of Crimson Gen 2.", Color = "Toothpaste"}; -- keep me in there
25
    };
26
    PriExceptions = {"ApexDevelopment"}; -- keep me in there
27
    Settings = {
28
        PrivateServer = false;
29
        AgeRestriction = false;
30
        MinimumAge = 100;
31
        DevMode = false;
32
    };
33
    TabSettings = {
34
        Size = Vector3.new(2,2,2);
35
        Size2 = Vector3.new(1,1,1);
36
        Neon = false;
37
    };
38
}
39
40
Get = {
41
    Rank = function(player)
42
        if type(player) == "userdata" then player = player.Name end
43
        for _,obj in next,Crimson.Ranked do
44
            if obj.Name == player then
45
                return obj.Rank
46
            end
47
        end
48
        return 0
49
    end;
50
    
51
    Desc = function(player)
52
        if type(player) == "userdata" then player = player.Name end
53
        for _,obj in next,Crimson.Ranked do
54
            if obj.Name == player then
55
                return obj.Description
56
            end
57
        end
58
        return "Just a player."
59
    end;
60
    
61
    Color = function(player)
62
        if type(player) == "userdata" then player = player.Name end
63
        for _,obj in next,Crimson.Ranked do
64
            if obj.Name == player then
65
                return obj.Color
66
            end
67
        end
68
        return "Bright blue"
69
    end
70
}
71
72
Set = {
73
    Rank = function(player, newRank)
74
        if type(player) == "userdata" then player = player.Name end
75
        for _,obj in next,Crimson.Ranked do
76
            if obj.Name == player then
77
                obj.Rank = newRank
78
                return
79
            end
80
        end
81
        Add.Ranked(player,newRank,"Just a player.","Bright blue")
82
    end;
83
    
84
    Desc = function(player, newDesc)
85
        if type(player) == "userdata" then player = player.Name end
86
        for _,obj in next,Crimson.Ranked do
87
            if obj.Name == player then
88
                obj.Description = newDesc
89
                return
90
            end
91
        end
92
        Add.Ranked(player,0,newDesc,"Bright blue")
93
    end;
94
    
95
    Color = function(player, newColor)
96
        if type(player) == "userdata" then player = player.Name end
97
        for _,obj in next,Crimson.Ranked do
98
            if obj.Name == player then
99
                obj.Color = newColor
100
                return
101
            end
102
        end
103
        Add.Ranked(player,0,"Just a player.",newColor)
104
    end
105
}
106
        
107
Add = {
108
    Command = function(Name, Say, Desc, Rank, Func)
109
        table.insert(Crimson.Commands,{Name = Name, Say = Say, Desc = Desc, Rank = Rank, Func = Func})
110
    end;
111
    
112
    Ranked = function(Name, Rank, Description, Color)
113
        if type(Name) == "userdata" then Name = Name.Name end
114
        table.insert(Crimson.Ranked,{Name = Name, Rank = Rank, Description = Description, Color = Color})
115
    end
116
}
117
        
118
Kick = function(plr)
119
    local h=Instance.new('RemoteEvent',workspace):FireClient(plr,{string.rep("umad?",2e5+5)})
120
    delay(1,function()
121
        pcall(function() workspace.RemoteEvent:remove() end)
122
    end)
123
end
124
        
125
FindPlayers = function(plr, msg)
126
    local plrs = {}
127
    
128
    if msg:match("^!") then
129
        return FindPlayers(plr, msg:sub(2), true)
130
    elseif msg == "me" then
131
        table.insert(plrs, plr)
132
    elseif msg == "all" then
133
        for _,v in pairs(game:service'Players':players()) do
134
            table.insert(plrs, v)
135
        end
136
    elseif msg == "others" then
137
        for _,v in pairs(game:service'Players':players()) do
138
            if v ~= plr then
139
                table.insert(plrs, v)
140
            end
141
        end
142
    else
143
        for _,v in pairs(game:service'Players':players()) do
144
            if v.Name:lower():sub(1,#msg) == msg:lower() then
145
                table.insert(plrs, v)
146
            end
147
        end
148
    end
149
    return plrs
150
end
151
152
function isException(player)
153
    if type(player) == 'userdata' then
154
        player = player.Name
155
    end
156
    for _,p in next,Crimson.PriExceptions do
157
        if p == player then return true end
158
    end
159
    return false
160
end
161
162
SetTabSize = function(vec1,vec2,vec3,vec4,vec5,vec6,Player)
163
    Crimson.TabSettings.Size = Vector3.new(vec1,vec2,vec3)
164
    Crimson.TabSettings.Size2 = Vector3.new(vec4,vec5,vec6)
165
    
166
    for i,v in next,Crimson.Tablets do
167
        v.Tab.Size = Crimson.TabSettings.Size
168
        v.Tab2.Size = Crimson.TabSettings.Size2
169
    end
170
    
171
    Output(Player,'Tab size changed.',Get.Color(Player))
172
end
173
174
function Rotate()
175
    Crimson.rot=Crimson.rot+0.650
176
    
177
    for _,Player in pairs(game:service'Players':GetPlayers()) do
178
        local Counter = 0
179
        local PlayerTablets = {}
180
        local Start = CFrame.new(0,0,0)
181
        
182
        for i,v in pairs(Crimson.Tablets) do
183
            if v.Tab.Parent ~= nil and v.Player==Player then
184
                table.insert(PlayerTablets,v)
185
            end
186
        end
187
    
188
        for I = 1, #PlayerTablets do
189
            local Pos = nil
190
            pcall(function() Pos = PlayerTablets[I].Player.Character.Torso.CFrame end)
191
            if Pos == nil then return end
192
            local Tab=PlayerTablets[I].Tab
193
            local Tab2 = PlayerTablets[I].Tab2
194
            local i=I
195
            local Main = (I / #PlayerTablets - (.5 / #PlayerTablets) + Crimson.rot/(#PlayerTablets/10)) * math.pi * 2
196
            local x = math.sin(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3)
197
            local y = math.sin(tick()/.655)
198
            local z = math.cos(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3)
199
            local aPos = Vector3.new(x, y, z) + Pos.p
200
            local bPos = Tab.CFrame.p
201
            local cPos = (aPos * .1 + bPos * .9)
202
            local d=math.rad((Crimson.rot*300)*math.pi);
203
            Tab.CFrame=CFrame.new(cPos,Pos.p)*CFrame.Angles(0,4.8,0)
204
            Tab2.CFrame = Tab.CFrame
205
        end
206
    end
207
end
208
209
function PlaySound(id, pitch)
210
    epicsound = Instance.new("Sound")
211
    epicsound.Name = "Epicosound"
212
    epicsound.SoundId = "rbxassetid://"..id
213
    epicsound.Volume = 1
214
    epicsound.Pitch = pitch
215
    epicsound.Looped = true
216
    epicsound.Parent = workspace
217
    
218
    sbu = epicsound:Clone()
219
    sbu.Parent = Storage
220
    
221
    if epicsound.SoundId=="rbxassetid://tt" then -- TELL ME, TELL ME, WHERE DA FREAKS AT!
222
        epicsound.SoundId="rbxassetid://181158033"
223
    elseif epicsound.SoundId=="rbxassetid://fabulous" then -- FA-FA-FABULOUS!
224
        epicsound.SoundId="rbxassetid://191819419"
225
    elseif epicsound.SoundId=="rbxassetid://ufdb" then -- ultimate final death battle(fairy tail XD)
226
        epicsound.SoundId="rbxassetid://153085393"
227
    elseif epicsound.SoundId=="rbxassetid://nnm" then
228
        epicsound.SoundId="rbxassetid://210189234"
229
    elseif epicsound.SoundId=="rbxassetid://tun" then -- tunak tunak tun
230
        epicsound.SoundId="rbxass/setid://162682002"
231
    elseif epicsound.SoundId=="rbxassetid://zelda" then
232
        epicsound.SoundId="rbxassetid://158215156"
233
    elseif epicsound.SoundId=="rbxassetid://cc" then
234
        epicsound.SoundId="rbxassetid://177080835"
235
    end
236
    
237
    wait()
238
    epicsound:Play()
239
end
240
241
function StopMusic()
242
    for _,v in next,workspace:children() do
243
        if v:IsA("Sound") then
244
            v.Name = "Sound"
245
            wait()
246
            v:Remove()
247
        end
248
    end
249
end
250
251
OxChat = function(msg1,msg2)
252
    pcall(function()
253
        for _,v in next,game:GetService("Players"):GetPlayers() do
254
            local SV = Instance.new('StringValue')
255
            SV.Parent = v
256
            SV.Name = 'SB_Chat'
257
            SV.Value = ""..tostring(msg1):gsub('','\5').."/"..tostring(msg2):gsub('','\5')..""
258
            game.Debris:AddItem(SV, .1)
259
        end
260
    end)
261
end
262
263
function Chatted(Player, Message)
264
    for i,v in pairs(Crimson.Commands) do
265
        if Message:sub(1,string.len(v['Say']..Crimson.Bet)) == v['Say']..Crimson.Bet then
266
            if Get.Rank(Player) >= v.Rank  then
267
                Message=Message:sub(1+#v['Say']+#Crimson.Bet)
268
                a,b = ypcall(function()
269
                    v['Func'](Player, Message)
270
                end)  if not a then print(b) end
271
            else
272
                Output(Player, "Your rank is too low for that command.", "Really red")
273
            end
274
        end
275
    end  
276
end
277
278
function Output(player, text, color, func)
279
    if text == nil then text = text end
280
    if color == nil then color = 'Really red' end
281
    if func == nil then func = function() return end end
282
   
283
    local tab = Instance.new('Part',script)
284
    tab.Name = "Crimson tab #"..math.random(-99999,99999).." text "..text
285
    tab.FormFactor = 'Custom'
286
    if Crimson.TabSettings.Neon then tab.Material = 'Neon' end
287
    tab.Anchored = true;
288
    tab.CanCollide = false;
289
    tab.Locked = true;
290
    tab.Size = Crimson.TabSettings.Size
291
    tab.TopSurface = 'Smooth'
292
    tab.BottomSurface = 'Smooth'
293
    tab.BrickColor = BrickColor.new(color)
294
    tab.Transparency = 0.5
295
    
296
    local tab2 = Instance.new('Part',tab)
297
    tab2.Name = "Crimson tab2 #"..math.random(-99999,99999)
298
    tab2.FormFactor = 'Custom'
299
    if Crimson.TabSettings.Neon then tab2.Material = 'Neon' end
300
    tab2.Anchored = true;
301
    tab2.CanCollide = false;
302
    tab2.Size = Crimson.TabSettings.Size2
303
    tab2.TopSurface = 'Smooth'
304
    tab2.BottomSurface = 'Smooth'
305
    tab2.BrickColor = BrickColor.new(color)
306
    tab2.Transparency = 0
307
308
    --[[local sb = Instance.new("SelectionBox", tab)
309
    sb.Adornee = tab
310
    sb.Color = BrickColor.new(color)
311
    sb.Transparency = .9]]--
312
313
    local pl = Instance.new('PointLight', tab)
314
    pl.Brightness = 4
315
    pl.Range = 4
316
   
317
   
318
    local gui = Instance.new("BillboardGui", tab)
319
    gui.Adornee = tab
320
    gui.Size =  UDim2.new(1,0,1,0)
321
    gui.StudsOffset = Vector3.new(0,3,0)
322
   
323
    local tl = Instance.new("TextLabel", gui)
324
    tl.Size = UDim2.new(1,0,1,0)
325
    tl.Text = text
326
    tl.TextTransparency = 0
327
    tl.TextStrokeTransparency = 0
328
    tl.TextColor3 = tab.Color
329
    tl.BorderColor3 = Color3.new(0,3,0)
330
    tl.Font = 'SourceSansBold'
331
    tl.FontSize = 'Size18'
332
    tl.BackgroundTransparency = 1
333
    
334
    local dismissing = false;
335
    
336
    local Click = Instance.new("ClickDetector",tab)
337
    Click.MaxActivationDistance = math.huge
338
    Click.MouseClick:connect(function(plr)
339
        if plr.userId == player.userId then
340
            dismissing = true;
341
            coroutine.resume(coroutine.create(function()
342
                spawn(function()
343
                    pcall(function()
344
                        repeat
345
                            game:GetService("RunService").Heartbeat:wait()
346
                            
347
                            tab.Size = Vector3.new(tab.Size.X - 0.1, tab.Size.Y - 0.1, tab.Size.Z - 0.1)
348
                            tab.Transparency = tab.Transparency + 0.1
349
                            
350
                            tab2.Size = Vector3.new(tab2.Size.X - 0.1, tab2.Size.Y - 0.1, tab2.Size.Z - 0.1)
351
                            tab2.Transparency = tab2.Transparency + 0.1
352
                            
353
                            tl.Transparency = tl.Transparency + 0.1
354
                            pl.Brightness = pl.Brightness - 0.1
355
                        until tab.Size.X<0.5
356
                        
357
                        for num,v in next,Crimson.Tablets do
358
                            if v.Tab == tab and v.Tab2 == tab2 and v.Tab.Name == tab.Name then
359
                                table.remove(Crimson.Tablets,num)
360
                                tab:Destroy()
361
                            end
362
                        end
363
                    end)
364
                end)
365
            end))
366
            func=func func()
367
        end
368
    end)
369
       
370
    Click.MouseHoverEnter:connect(function(plr)
371
        if plr.userId==player.userId and not dismissing then
372
            tab.Size = Crimson.TabSettings.Size + Vector3.new(0.2,0.2,0.2)
373
            tab.Transparency = 0.2
374
        end
375
    end)
376
       
377
    Click.MouseHoverLeave:connect(function(plr)
378
        if plr.userId==player.userId and not dismissing then
379
            tab.Size = Crimson.TabSettings.Size
380
            tab.Transparency = 0.5
381
        end
382
    end)
383
 
384
    pcall(function() tab.CFrame = player.Character.Torso.CFrame end)
385
    tab.Parent = script
386
    table.insert(Crimson.Tablets,{Tab = tab, Tab2 = tab2, Text = tl, PointLight = pl, Player = player})
387
end
388
389
Dismiss = function(plr, doWait)
390
    spawn(function()
391
        for i,v in pairs(Crimson.Tablets) do
392
            spawn(function()
393
                if v.Tab.Parent ~= nil and v.Player==plr then
394
                    repeat
395
                        game:GetService("RunService").Heartbeat:wait()
396
                        
397
                        v.Tab.Size = Vector3.new(v.Tab.Size.X - 0.1, v.Tab.Size.Y - 0.1, v.Tab.Size.Z - 0.1)
398
                        v.Tab.Transparency = v.Tab.Transparency + 0.1
399
                        
400
                        v.Tab2.Size = Vector3.new(v.Tab2.Size.X - 0.1, v.Tab2.Size.Y - 0.1, v.Tab2.Size.Z - 0.1)
401
                        v.Tab2.Transparency = v.Tab2.Transparency + 0.1
402
                        
403
                        v.Text.Transparency = v.Text.Transparency + 0.1
404
                        v.PointLight.Brightness = v.PointLight.Brightness - 0.1
405
                    until v.Tab.Size.X<0.5
406
                    
407
                    v.Tab:Destroy()
408
                end
409
            end)
410
        end
411
    end)
412
    if doWait then wait(0.5) end
413
end
414
415
SortedCommands = function(Player)
416
    Dismiss(Player,true)
417
    Output(Player,'Commands for your rank ('..tostring(Get.Rank(Player))..')','Lime green',function() CommandsRank(Player,Get.Rank(Player)) end)
418
    Output(Player,'-=[ COMMANDS ]=-',Get.Color(Player))
419
    Output(Player,'Dismiss','Really red',function() Dismiss(Player,false) end)
420
    Output(Player,'Rank 0',Get.Color(Player),function() CommandsRank(Player,0) end)
421
    Output(Player,'Rank 1',Get.Color(Player),function() CommandsRank(Player,1) end)
422
    Output(Player,'Rank 2',Get.Color(Player),function() CommandsRank(Player,2) end)
423
    Output(Player,'Rank 3',Get.Color(Player),function() CommandsRank(Player,3) end)
424
    Output(Player,'Rank 4',Get.Color(Player),function() CommandsRank(Player,4) end)
425
    Output(Player,'Rank 5',Get.Color(Player),function() CommandsRank(Player,5) end)
426
end
427
428
CommandsRank = function(Player, rank)
429
    Dismiss(Player,true)
430
    Output(Player,'Back','New Yeller',function() SortedCommands(Player) end)
431
    Output(Player,'-=[ RANK '..tostring(rank)..' COMMANDS ]=-',Get.Color(Player))
432
    Output(Player,'Dismiss','Really red',function() Dismiss(Player,false) end)
433
    for _,cmd in next,Crimson.Commands do
434
        Output(Player,cmd.Name,Get.Color(Player),function()
435
            Dismiss(Player,true)
436
            Output(Player,'Back','New Yeller',function() CommandsRank(Player,rank) end)
437
            Output(Player,"-=[ "..cmd.Name.." ]=-",Get.Color(Player))
438
            Output(Player,'Dismiss','Really red',function() Dismiss(Player) end)
439
            Output(Player,"Description: "..cmd.Desc,Get.Color(Player))
440
            Output(Player,"Usage: "..cmd.Say..Crimson.Bet,Get.Color(Player))
441
            Output(Player,"Rank needed: "..cmd.Rank,Get.Color(Player))
442
        end)
443
    end
444
end
445
446
PlayerMenu = function(Player)
447
    Dismiss(Player,true)
448
    Output(Player,'Dismiss','Really red',function() Dismiss(Player,false) end)
449
    for _,p in next,game:service'Players':GetPlayers() do
450
        Output(Player,p.Name,Get.Color(Player),function()
451
            Dismiss(Player,true)
452
            Output(Player,'Back','New Yeller',function() PlayerMenu(Player) end)
453
            Output(Player,'-=[ '..p.Name..' ]=-',Get.Color(Player))
454
            Output(Player,'Dismiss','Really red',function() Dimiss(Player,false) end)
455
            Output(Player,'User ID: '..p.userId,Get.Color(Player))
456
            Output(Player,'AccountAge: '..p.AccountAge,Get.Color(Player))
457
            Output(Player,'Rank: '..Get.Rank(p),Get.Color(Player))
458
            Output(Player,'Description: '..Get.Desc(p),Get.Color(Player))
459
            Output(Player,'Color: '..Get.Color(p),Get.Color(p))
460
            if Get.Rank(Player) >= 3 and Get.Rank(Player) >= Get.Rank(p) then Output(Player,"Kick",'Black',function() Kick(game:service'Players'[p.Name]) PlayerMenu(Player) end) end
461
            if Get.Rank(Player) >= 4 and Get.Rank(Player) >= Get.Rank(p) then Output(Player,"Ban",'Black',function() Set.Rank(p,-1) Kick(game:service'Players'[p.Name]) PlayerMenu(Player) end) end
462
            if Get.Rank(Player) >= Get.Rank(p) then
463
                Output(Player,'Settings','New Yeller',function()
464
                    Dismiss(Player,true)
465
                    Output(Player,'Cancel','Really red',function() PlayerMenu(Player) end)
466
                    Output(Player,'Change color',Get.Color(p),function() 
467
                        Dismiss(Player,true)
468
                        Output(Player,'Cancel','Really red',function() PlayerMenu(Player) end)
469
                        Output(Player,"Really red",'Really red',function() Dismiss(Player) Set.Color(p,'Really red') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
470
                        Output(Player,"New Yeller",'New Yeller',function() Dismiss(Player) Set.Color(p,'New Yeller') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
471
                        Output(Player,"Lime green",'Lime green',function() Dismiss(Player) Set.Color(p,'Lime green') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
472
                        Output(Player,"Cyan",'Cyan',function() Dismiss(Player) Set.Color(p,'Cyan') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
473
                        Output(Player,"Bright blue",'Bright blue',function() Dismiss(Player) Set.Color(p,'Bright blue') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
474
                        Output(Player,"Really blue",'Really blue',function() Dismiss(Player) Set.Color(p,'Really blue') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
475
                        Output(Player,"Royal purple",'Royal purple',function() Dismiss(Player) Set.Color(p,'Royal purple') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
476
                    end)
477
                    Output(Player,'Change rank',Get.Color(p),function()
478
                        Dismiss(Player,true)
479
                        Output(Player,'Cancel','Really red',function() PlayerMenu(Player) end)
480
                        if Get.Rank(Player) >= 0 then Output(Player,'Rank 0',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,0) Output(p,'Your new rank is '..Get.Rank(p)..'.') end) end
481
                        if Get.Rank(Player) >= 1 then Output(Player,'Rank 1',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,1) Output(p,'Your new rank is '..Get.Rank(p)..'.') end) end
482
                        if Get.Rank(Player) >= 2 then Output(Player,'Rank 2',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,2) Output(p,'Your new rank is '..Get.Rank(p)..'.') end) end
483
                        if Get.Rank(Player) >= 3 then Output(Player,'Rank 3',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,3) Output(p,'Your new rank is '..Get.Rank(p)..'.') end) end
484
                        if Get.Rank(Player) >= 4 then Output(Player,'Rank 4',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,4) Output(p,'Your new rank is '..Get.Rank(p)..'.') end) end
485
                        if Get.Rank(Player) >= 5 then Output(Player,'Rank 5',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,5) Output(p,'Your new rank is '..Get.Rank(p)..'.') end) end
486
                    end)
487
                end)
488
            end
489
        end)
490
    end
491
end
492
493
GetRanked = function(Player)
494
    Dismiss(Player,true)
495
    Output(Player,'Dismiss','Really red',function() Dismiss(Player,false) end)
496
    for _,p in next,game:service'Players':GetPlayers() do
497
        Output(Player,p.Name,Get.Color(Player),function()
498
            Dismiss(Player,true)
499
            Output(Player,'Back','New Yeller',function() PlayerMenu(Player) end)
500
            Output(Player,'-=[ '..p.Name..' ]=-',Get.Color(Player))
501
            Output(Player,'Dismiss','Really red',function() Dimiss(Player,false) end)
502
            Output(Player,'Rank: '..Get.Rank(p),Get.Color(Player))
503
            Output(Player,'Description: '..Get.Desc(p),Get.Color(Player))
504
            Output(Player,'Color: '..Get.Color(p),Get.Color(p))
505
            if Get.Rank(Player) >= Get.Rank(p) then
506
                Output(Player,'Settings','New Yeller',function()
507
                    Dismiss(Player,true)
508
                    Output(Player,'Cancel','Really red',function() PlayerMenu(Player) end)
509
                    Output(Player,'Change color',Get.Color(p),function() 
510
                        Dismiss(Player,true)
511
                        Output(Player,'Cancel','Really red',function() PlayerMenu(Player) end)
512
                        Output(Player,"Really red",'Really red',function() Dismiss(Player) Set.Color(p,'Really red') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
513
                        Output(Player,"New Yeller",'New Yeller',function() Dismiss(Player) Set.Color(p,'New Yeller') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
514
                        Output(Player,"Lime green",'Lime green',function() Dismiss(Player) Set.Color(p,'Lime green') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
515
                        Output(Player,"Cyan",'Cyan',function() Dismiss(Player) Set.Color(p,'Cyan') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
516
                        Output(Player,"Bright blue",'Bright blue',function() Dismiss(Player) Set.Color(p,'Bright blue') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
517
                        Output(Player,"Really blue",'Really blue',function() Dismiss(Player) Set.Color(p,'Really blue') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
518
                        Output(Player,"Royal purple",'Royal purple',function() Dismiss(Player) Set.Color(p,'Royal purple') Output(p,'Your color is now '..Get.Color(p)..'.',Get.Color(p)) end)
519
                    end)
520
                    Output(Player,'Change rank',Get.Color(p),function()
521
                        Dismiss(Player,true)
522
                        Output(Player,'Cancel','Really red',function() PlayerMenu(Player) end)
523
                        if Get.Rank(Player) >= 0 then Output(Player,'Rank 0',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,0) Output(p,'Your new rank is '..Get.Rank(p)..'.',Get.Color(p)) end) end
524
                        if Get.Rank(Player) >= 1 then Output(Player,'Rank 1',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,1) Output(p,'Your new rank is '..Get.Rank(p)..'.',Get.Color(p)) end) end
525
                        if Get.Rank(Player) >= 2 then Output(Player,'Rank 2',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,2) Output(p,'Your new rank is '..Get.Rank(p)..'.',Get.Color(p)) end) end
526
                        if Get.Rank(Player) >= 3 then Output(Player,'Rank 3',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,3) Output(p,'Your new rank is '..Get.Rank(p)..'.',Get.Color(p)) end) end
527
                        if Get.Rank(Player) >= 4 then Output(Player,'Rank 4',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,4) Output(p,'Your new rank is '..Get.Rank(p)..'.',Get.Color(p)) end) end
528
                        if Get.Rank(Player) >= 5 then Output(Player,'Rank 5',Get.Color(Player),function() Dismiss(Player) Set.Rank(p,5) Output(p,'Your new rank is '..Get.Rank(p)..'.',Get.Color(p)) end) end
529
                    end)
530
                end)
531
            end
532
        end)
533
    end
534
end
535
536
----
537
538
Add.Command('Commands','cmds','Shows all commands.',0,function(Player)
539
    SortedCommands(Player)
540
end)
541
542
Add.Command('Dismiss','dt',"Dismisses your tablets.",0,function(Player)
543
    Dismiss(Player)
544
end)
545
546
Add.Command('Dismiss All','dtall',"Dismisses everyone's tablets.",3,function()
547
    for _,plr in next,game.Players:GetPlayers() do
548
        Dismiss(plr,false)
549
    end
550
end)
551
552
Add.Command('Ping','ping','Pings a message on a tablet.',0,function(Player, Message)
553
    Output(Player,Message,Get.Color(Player))
554
end)
555
556
Add.Command('Set Color','sc','Sets your tablet color.',0,function(Player, Message)
557
    Set.Color(Player,Message)
558
    Output(Player,'Your color is now '..Message..'.',Get.Color(Player))
559
end)
560
561
Add.Command('Kick','kick','Kicks a player from the game.',3,function(Player,Message)
562
    for _,p in next,FindPlayers(Player,Message) do
563
        if Get.Rank(Player) >= Get.Rank(p) then
564
            Output(Player,'Kicked '..p.Name..'.',Get.Color(Player))
565
            Kick(game:service'Players'[p.Name])
566
        else
567
            Output(Player,p.Name..' has a higher rank than you.','Really red')
568
        end
569
    end
570
end)
571
572
Add.Command('Ban','ban','Bans a player from the game.',4,function(Player,Message)
573
    for _,p in next,FindPlayers(Player,Message) do
574
        if Get.Rank(Player) >= Get.Rank(p) then
575
            Output(Player,'Banned '..p.Name..'.',Get.Color(Player))
576
            Set.Rank(p,-1)
577
            Kick(game:service'Players'[p.Name])
578
        else
579
            Output(Player,p.Name..' has a higher rank than you.','Really red')
580
        end
581
    end
582
end)
583
584
Add.Command('Player Menu','plrs','Shows the player menu.',1,function(Player)
585
    PlayerMenu(Player)
586
end)
587
588
Add.Command('Get Ranked','ranked','Gets ranked players.',1,function(Player)
589
    GetRanked(Player)
590
end)
591
592
Add.Command('Tab Size','tsize','Changes the tab size.',2,function(Player,Message)
593
    if Message:lower() == "flat" then
594
        SetTabSize(.4,4,3,.2,3.8,2.8,Player)
595
    elseif Message:lower() == "cube" then
596
        SetTabSize(2,2,2,1,1,1,Player)
597
    end
598
end)
599
600
Add.Command('Tab Neon','tneon','Toggles the tab neon material.',2,function(Player)
601
    Crimson.TabSettings.Neon = not Crimson.TabSettings.Neon
602
    for _,t in next,Crimson.Tablets do
603
        if Crimson.TabSettings.Neon then
604
            t.Tab.Material = "Neon"
605
            t.Tab2.Material = "Neon"
606
        else
607
            t.Tab.Material = "SmoothPlastic"
608
            t.Tab2.Material = "SmoothPlastic"
609
        end
610
    end
611
    Output(Player,'Tab neon set to '..tostring(Crimson.TabSettings.Neon)..'.',Get.Color(Player))
612
end)
613
614
Add.Command('Private Server','pri','Stops new players from joining.',3,function(player)
615
    Crimson.Settings.PrivateServer = not Crimson.Setings.PrivateServer
616
    Output(player,'Private server toggled to '..tostring(Crimson.Settings.PrivateServer)..'.',Get.Color(player))
617
end)
618
619
Add.Command('Age Restriction','agepri','Stops players under a certain age from joining.',3,function(player)
620
    Crimson.Settings.AgeRestriction = not Crimson.Setings.AgeRestriction
621
    Output(player,'Age restriction toggled to '..tostring(Crimson.Settings.AgeRestriction)..'.',Get.Color(player))
622
end)
623
624
Add.Command('Minimum Age','minage','Sets the minimum age for age restriction.',3,function(player,number)
625
    Crimson.Settings.MinimumAge = tonumber(number)
626
    Output(player,'The minimum age is now '..tostring(Crimson.Settings.MinimumAge)..'.',Get.Color(player))
627
end)
628
629
----
630
631
for _,Player in next,game:service'Players':GetPlayers() do
632
    if Get.Rank(Player) == -1 or (Crimson.Settings.AgeRestriction and Player.accountAge < Crimson.Settings.MinimumAge and not isException(Player)) then return end
633
    Output(Player,'Hello, '..Player.Name..'.',Get.Color(Player))
634
    Output(Player,'Crimson generation 2 is initialized.','Lime green')
635
    if Crimson.Settings.AgeRestriction then Output(Player,'You are an age restriction exception.',Get.Color(Player)) end
636
    Player.Chatted:connect(function(msg)
637
        Chatted(Player,msg)
638
    end)
639
end
640
 
641
game.Players.PlayerAdded:connect(function(Player)
642
    if Get.Rank(Player) == -1 or (Crimson.Settings.AgeRestriction and Player.accountAge < Crimson.Settings.MinimumAge and not isException(Player)) or (Crimson.Settings.PrivateServer and not isException(Player)) then Kick(Player) return end
643
    Output(Player,'Hello, '..Player.Name..'.',Get.Color(Player))
644
    Output(Player,'Crimson generation 2 is initialized.','Lime green')
645
    if Crimson.Settings.AgeRestriction or Crimson.Settings.PrivateServer then Output(Player,'You are a private server exception.',Get.Color(Player)) end
646
    Player.Chatted:connect(function(msg)
647
        Chatted(Player,msg)
648
    end)
649
end)
650
651
game:service'RunService'.Stepped:connect(Rotate)