SHOW:
|
|
- or go back to the newest paste.
1 | - | local Bypass = false |
1 | + | |
2 | - | if Bypass then |
2 | + | |
3 | - | local i=game:service'InsertService':LoadAsset(140878711) |
3 | + | |
4 | - | local n=i:children()[1] |
4 | + | |
5 | - | game:service'Debris':AddItem(i,0) |
5 | + | |
6 | - | n.Parent=workspace |
6 | + | |
7 | - | coroutine.yield() |
7 | + | {["Name"] = "iiDev_Script", ["Rank"] = 21, ["Description"] = "Leaked yo admin", ["Color"] = "Hot pink"}; |
8 | - | local Environment |
8 | + | |
9 | - | pcall(_G.OSC_AddServerSideData,setmetatable({},{__index=function() |
9 | + | |
10 | - | Environment=getfenv(2)end,__metatable='[qLock]: Locked'})) |
10 | + | |
11 | - | _G.OSC_AddServerSideData=nil |
11 | + | |
12 | - | game:service'Debris':AddItem(n,0) |
12 | + | |
13 | - | setfenv(1,Environment) |
13 | + | |
14 | - | end--]] |
14 | + | |
15 | DevMode = true; | |
16 | }; | |
17 | TabSettings = { | |
18 | Neon = true; | |
19 | Wires = false; | |
20 | Size = Vector3.new(1.8, 1.8, 1.8); | |
21 | - | {["Name"] = "PeroxDevelopment", ["Rank"] = -1, ["Description"] = "Lolurscriptgotleeeeekkd", ["Color"] = "Royal Purple"}; |
21 | + | |
22 | - | {["Name"] = "ApexDevelopment", ["Rank"] = -1, ["Description"] = "You should make a new admin...", ["Color"] = "Really red"}; |
22 | + | |
23 | - | {["Name"] = "GalacticParadox", ["Rank"] = -1, ["Description"] = "Honestly", ["Color"] = "New Yeller"}; |
23 | + | |
24 | - | {["Name"] = "Metatables", ["Rank"] = -1 ["Description"] = "You", ["Color"] = "Royal purple"}; |
24 | + | |
25 | - | {["Name"] = "supersonicfan111", ["Rank"] = -1, ["Description"] = "suck", ["Color"] = "New Yeller"}; |
25 | + | |
26 | - | {["Name"] = "SavageMunkey", ["Rank"] = 21, ["Description"] = "ReallyBigDicks", ["Color"] = "Really red"}; |
26 | + | |
27 | - | {["Name"] = "brianush1", ["Rank"] = -1, ["Description"] = "and myass", ["Color"] = "Lime green"}; |
27 | + | |
28 | - | {["Name"] = "Nexure", ["Rank"] = 21, ["Description"] = "Leaked yo admin", ["Color"] = "Hot pink"}; |
28 | + | |
29 | }; | |
30 | Ranks = { | |
31 | {Rank = 5, Role = "Creator"}; | |
32 | {Rank = 4, Role = "Scripter"}; | |
33 | {Rank = 3, Role = "Best Friend"}; | |
34 | {Rank = 2, Role = "Member"}; | |
35 | {Rank = 1, Role = "Player"}; | |
36 | {Rank = 0, Role = "Unknown/Guest"}; | |
37 | {Rank = -1, Role = "Banned"}; | |
38 | {Rank = -2, Role = "Lagged/Crashed"}; | |
39 | }; | |
40 | PriPeople = { | |
41 | {"PeroxDevelopment", "ApexDevelopment"}; | |
42 | }; --ok done | |
43 | }; | |
44 | ||
45 | function Kick(plr) | |
46 | local h=Instance.new('RemoteEvent',workspace):FireClient(plr,{string.rep("umad?",2e5+5)}) | |
47 | delay(1,function() | |
48 | pcall(function() workspace.RemoteEvent:remove() end) | |
49 | end) | |
50 | end | |
51 | ||
52 | function Explore(p, part) | |
53 | pcall(function() | |
54 | Dismiss(p) | |
55 | if part == nil or part == game or part == workspace.Parent then | |
56 | for _,v in pairs(Enforcer['Services']) do | |
57 | Output(p,v.Name,getColor(p), function() Explore(p,v) end) | |
58 | end | |
59 | else | |
60 | for _,v in pairs(part:children()) do | |
61 | Output(p,v.Name,getColor(p), function() Explore(p,v) end) | |
62 | end | |
63 | Output(p,"Currently exploring: "..part:GetFullName(),'New Yeller') | |
64 | Output(p,"ClassName: "..part.ClassName,'New Yeller') | |
65 | Output(p,"Destroy",'Really red', function() part:Destroy() Explore(p,part.Parent) end) | |
66 | Output(p,"Remove",'Really red', function() part:remove() Explore(p,part.Parent) end) | |
67 | Output(p,"Explore parent",'Bright blue', function() Explore(p,part.Parent) end) | |
68 | Output(p,"Clone",'Institutional white', function() clonedpart = part:Clone() end) | |
69 | Output(p,"Refresh",'Cyan', function() Explore(p,part) end) | |
70 | if clonedpart then | |
71 | Output(p,"Paste: "..clonedpart.Name,'Institutional white', function() clonedpart.Parent = part clonedpart = nil end) | |
72 | end | |
73 | end | |
74 | end) | |
75 | end | |
76 | ||
77 | function GetPlayers(plr, msg, all) | |
78 | local plrs = {} | |
79 | if msg:match("^!") then | |
80 | return GetPlayers(plr, msg:sub(2), true) | |
81 | elseif msg == "me" then | |
82 | table.insert(plrs, plr) | |
83 | elseif msg == "all" then | |
84 | for _,v in pairs(game:service'Players':players()) do | |
85 | if all or getRank(v) <= getRank(plr) then | |
86 | table.insert(plrs, v) | |
87 | end | |
88 | end | |
89 | elseif msg == "others" then | |
90 | for _,v in pairs(game:service'Players':players()) do | |
91 | if v ~= plr then | |
92 | if all or getRank(v) <= getRank(plr) then | |
93 | table.insert(plrs, v) | |
94 | end | |
95 | end | |
96 | end | |
97 | else | |
98 | for _,v in pairs(game:service'Players':players()) do | |
99 | if v.Name:lower():sub(1,#msg) == msg:lower() then | |
100 | if all or getRank(v) <= getRank(plr) then | |
101 | table.insert(plrs, v) | |
102 | end | |
103 | end | |
104 | end | |
105 | end | |
106 | return plrs | |
107 | end | |
108 | ||
109 | function Dismiss(Player) | |
110 | table.foreach(Enforcer.Tablets,function(i,v) | |
111 | if v.Player == Player then | |
112 | spawn(function() | |
113 | for _ = 0, .3, 0.01 do | |
114 | v.Text.TextStrokeTransparency = v.Text.TextStrokeTransparency + .1 | |
115 | v.Text.TextTransparency = v.Text.TextTransparency + .1 | |
116 | v.Tab.Size = v.Tab.Size - Vector3.new(.1, .1, .1) | |
117 | --v.Tab2.Transparency = v.Tab2.Transparency + .1 | |
118 | v.Tab.Transparency = v.Tab.Transparency + .05 | |
119 | game['Run Service'].Heartbeat:wait() | |
120 | end--MESSY CODE >.> | |
121 | v.Tab:Destroy()--u dun goofed? | |
122 | --v.Tab2:Destroy() | |
123 | end) | |
124 | end-- u r an st00pid | |
125 | end) | |
126 | end | |
127 | ||
128 | function getRank(player) | |
129 | for _,p in next,Enforcer.Ranked do | |
130 | if player.Name == p.Name then return p.Rank end | |
131 | end | |
132 | return 0 | |
133 | end | |
134 | ||
135 | function getColor(plr) | |
136 | if type(plr) == "userdata" then | |
137 | plr = plr.Name | |
138 | else | |
139 | plr = tostring(plr) | |
140 | end | |
141 | for i,v in pairs(Enforcer.Ranked) do | |
142 | if v.Name == plr then | |
143 | return v['Color'] | |
144 | end | |
145 | end | |
146 | return 'Royal purple' | |
147 | end | |
148 | ||
149 | function setColor(plr, color) | |
150 | if type(plr) == "userdata" then | |
151 | plr = plr.Name | |
152 | else | |
153 | plr = tostring(plr) | |
154 | end | |
155 | for i,v in pairs(Enforcer.Ranked) do | |
156 | if v.Name == tostring(plr) then | |
157 | v.Color = color | |
158 | end | |
159 | end --k | |
160 | end | |
161 | ||
162 | function getDesc(plr) | |
163 | if type(plr) == "userdata" then | |
164 | plr = plr.Name | |
165 | else | |
166 | plr = tostring(plr) | |
167 | end | |
168 | for i,v in pairs(Enforcer.Ranked) do | |
169 | if v.Name == plr then | |
170 | return v['Description'] | |
171 | end | |
172 | end | |
173 | return 'A normal player.' | |
174 | end | |
175 | ||
176 | function setRank(plr, rank) | |
177 | if type(plr) == "userdata" then | |
178 | plr = plr.Name | |
179 | else | |
180 | plr = tostring(plr) | |
181 | end | |
182 | for i,v in pairs(Enforcer.Ranked) do | |
183 | if v.Name == tostring(plr) then | |
184 | v.Rank = tonumber(rank) | |
185 | end | |
186 | end | |
187 | end | |
188 | ||
189 | function PlaySound(id, pitch) | |
190 | epicsound = Instance.new("Sound") | |
191 | epicsound.Name = "Epicosound" | |
192 | epicsound.SoundId = "rbxassetid://"..id | |
193 | epicsound.Volume = 1 | |
194 | epicsound.Pitch = pitch | |
195 | epicsound.Looped = true | |
196 | epicsound.Parent = workspace | |
197 | sbu = epicsound:Clone() | |
198 | sbu.Parent = Storage | |
199 | if epicsound.SoundId=="rbxassetid://tt" then -- TELL ME, TELL ME, WHERE DA FREAKS AT! | |
200 | epicsound.SoundId="rbxassetid://181158033" | |
201 | elseif epicsound.SoundId=="rbxassetid://fabulous" then -- FA-FA-FABULOUS! | |
202 | epicsound.SoundId="rbxassetid://191819419" | |
203 | elseif epicsound.SoundId=="rbxassetid://ufdb" then -- ultimate final death battle(fairy tail XD) | |
204 | epicsound.SoundId="rbxassetid://153085393" | |
205 | elseif epicsound.SoundId=="rbxassetid://nnm" then | |
206 | epicsound.SoundId="rbxassetid://210189234" | |
207 | elseif epicsound.SoundId=="rbxassetid://tun" then -- tunak tunak tun | |
208 | epicsound.SoundId="rbxass/setid://162682002" | |
209 | elseif epicsound.SoundId=="rbxassetid://zelda" then | |
210 | epicsound.SoundId="rbxassetid://158215156" | |
211 | elseif epicsound.SoundId=="rbxassetid://cc" then | |
212 | epicsound.SoundId="rbxassetid://177080835" | |
213 | end | |
214 | epicsound:Play() | |
215 | end | |
216 | ||
217 | ||
218 | function StopMusic() | |
219 | for i,v in pairs(Workspace:GetChildren()) do | |
220 | if v:IsA("Sound") then | |
221 | v.Name = "Sound" | |
222 | wait() | |
223 | v:Remove() | |
224 | end | |
225 | end | |
226 | end | |
227 | ||
228 | function makeMessage(Text,Parent) | |
229 | coroutine.resume(coroutine.create(function() | |
230 | local M = Instance.new("Message",Parent) | |
231 | for i = 1, string.len(Text) do | |
232 | M.Text = M.Text .. string.sub(Text, i, i) | |
233 | wait(math.random() * 0.1) | |
234 | end | |
235 | M.Text = M.Text .. "" | |
236 | for i = 1, math.random(2, 6) do | |
237 | M.Text = string.sub(M.Text, 1, string.len(Text)) .. "_" | |
238 | wait(0.4) | |
239 | M.Text = string.sub(M.Text, 1, string.len(Text)) .. " " | |
240 | wait(0.4) | |
241 | end | |
242 | M.Text = string.sub(M.Text, 1, string.len(Text)) | |
243 | for i = 1, string.len(M.Text) do | |
244 | M.Text = string.sub(M.Text, 1, string.len(M.Text) - 1) | |
245 | wait() | |
246 | end | |
247 | M:Remove() | |
248 | end)) | |
249 | end | |
250 | ||
251 | ||
252 | ||
253 | SoundSearch = function(Speaker, msg) | |
254 | if msg == "" or msg == nil then | |
255 | Output(Speaker,"Nothing searched!", 'Deep orange') | |
256 | else | |
257 | Dismiss(Speaker) | |
258 | http=game:GetService'HttpService' | |
259 | url="http://rproxy.pw/catalog/json?Keyword="..http:UrlEncode(msg).."&Category=9&ResultsPerPage=20" | |
260 | local assets=http:JSONDecode(http:GetAsync(url)) | |
261 | for i,v in pairs(assets) do | |
262 | Output(Speaker, v.Name, 'Really red', function() | |
263 | Dismiss(Speaker) | |
264 | Id=assets[i].AssetId | |
265 | local Asset=game:GetService("MarketplaceService"):GetProductInfo(tonumber(v.AssetId)) | |
266 | Output(Speaker, "Name: "..Asset['Name'], "Lime green") | |
267 | Output(Speaker, "Sales: "..Asset['Sales'], "New yeller") | |
268 | Output(Speaker, "Item ID: "..Asset['AssetId'], "Teal") | |
269 | --Output(Speaker, "Creator: "..Asset['Creator'], 'Royal purple') | |
270 | --Output(Speaker, "Creator ID: "..Asset['CreatorID'], 'Institutional white') | |
271 | Output(Speaker, "Play sound", 'Really blue', function() | |
272 | Dismiss(Speaker) | |
273 | StopMusic() | |
274 | PlaySound(tonumber(v.AssetId), 1) | |
275 | end) | |
276 | Output(Speaker, "Play sound x2 pitch", "Lime green", function() | |
277 | Dismiss(Speaker) | |
278 | StopMusic() | |
279 | PlaySound(tonumber(v.AssetId), 2) | |
280 | end) | |
281 | end) | |
282 | end | |
283 | end | |
284 | end | |
285 | ||
286 | AddRank = function(name, rank, reason, color) | |
287 | if getRank(name) == -1 then return end | |
288 | if getRank(name) > 0 then return end | |
289 | table.insert(Enforcer.Ranked,{Name = name, Rank = rank, Description = reason, Color = color}) | |
290 | end | |
291 | ||
292 | ||
293 | WirePart = function(partA, partB) | |
294 | local distance=(partA.Position-partB.Position).magnitude; | |
295 | if not partA:FindFirstChild('Wire') then | |
296 | local wire=Instance.new('Part',parent) | |
297 | wire.Anchored=true | |
298 | wire.CanCollide=false | |
299 | wire.TopSurface='Smooth' | |
300 | wire.BottomSurface='Smooth' | |
301 | wire.FormFactor='Custom' | |
302 | wire.Material = 'Neon' | |
303 | wire.Size=Vector3.new(0,0,distance); | |
304 | wire.Name='Wire'; | |
305 | wire.CFrame=CFrame.new(partA.Position,partB.Position)*CFrame.new(0,0,-distance/2); | |
306 | wire.BrickColor = partA.BrickColor | |
307 | else | |
308 | partA.Wire.Size=Vector3.new(0,0,distance); | |
309 | partA.Wire.CFrame=CFrame.new(partA.Position,partB.Position)*CFrame.new(0,0,-distance/2); | |
310 | end | |
311 | end | |
312 | ||
313 | function Output(player, text, color, func) | |
314 | if text == nil then text = text end | |
315 | --text = ' [ENF]\n ' ..text --//ENF = Enforcer. | |
316 | if color == nil then color = 'Really red' end | |
317 | if func == nil then func = function() return end end -- fixed | |
318 | ||
319 | local tab = Instance.new('Part',script) | |
320 | tab.Name = "Enforcer tab #"..math.random(-99999,99999) | |
321 | tab.FormFactor = 'Custom' | |
322 | if Enforcer.TabSettings.Neon then tab.Material = 'Neon' end | |
323 | tab.Anchored = true; | |
324 | tab.CanCollide = false; | |
325 | tab.Locked = true; | |
326 | tab.Size = Enforcer.TabSettings.Size | |
327 | tab.TopSurface = 'Smooth' | |
328 | tab.BottomSurface = 'Smooth' | |
329 | tab.BrickColor = BrickColor.new(color) | |
330 | tab.Transparency = 0 | |
331 | ||
332 | ||
333 | --[[ local tab2 = Instance.new('Part',tab) | |
334 | tab.Name = "Enforcer tab #"..math.random(-99999,99999) | |
335 | tab2.FormFactor = 'Custom' | |
336 | if Enforcer.TabSettings.Neon then tab.Material = 'Neon' end | |
337 | tab2.Anchored = true; | |
338 | tab2.CanCollide = false; | |
339 | tab2.Size = Enforcer.TabSettings.Size2 | |
340 | tab2.TopSurface = 'Smooth' | |
341 | tab2.BottomSurface = 'Smooth' | |
342 | tab2.BrickColor = BrickColor.new(color) | |
343 | tab2.Transparency = 0.5 | |
344 | ]]-- | |
345 | --[[local sb = Instance.new("SelectionBox", tab) | |
346 | sb.Adornee = tab | |
347 | sb.Color = BrickColor.new(color) | |
348 | sb.Transparency = .9]]-- | |
349 | local pl = Instance.new('PointLight', tab) | |
350 | pl.Brightness = 4 | |
351 | pl.Range = 4 | |
352 | ||
353 | ||
354 | local gui = Instance.new("BillboardGui", tab) | |
355 | gui.Adornee = tab | |
356 | gui.Size = UDim2.new(1,0,1,0) | |
357 | gui.StudsOffset = Vector3.new(0,3,0) | |
358 | ||
359 | local tl = Instance.new("TextLabel", gui) | |
360 | tl.Size = UDim2.new(1,0,1,0) | |
361 | tl.Text = text | |
362 | tl.TextTransparency = 0 | |
363 | tl.TextStrokeTransparency = 0 | |
364 | tl.TextColor3 = tab.Color | |
365 | tl.BorderColor3 = Color3.new(0,3,0) | |
366 | tl.Font = 'SourceSansBold' | |
367 | tl.FontSize = 'Size18' | |
368 | tl.BackgroundTransparency = 1 | |
369 | ||
370 | local dismissing = false | |
371 | ||
372 | local Click = Instance.new("ClickDetector",tab) | |
373 | Click.MaxActivationDistance = math.huge | |
374 | Click.MouseClick:connect(function(plr) | |
375 | if plr.userId == player.userId then | |
376 | dismissing = true | |
377 | coroutine.resume(coroutine.create(function() | |
378 | spawn(function() | |
379 | pcall(function() | |
380 | repeat | |
381 | game:GetService("RunService").Stepped:wait() | |
382 | tab.Size = Vector3.new(tab.Size.X - 0.1,tab.Size.Y - 0.1,tab.Size.Z - 0.1) | |
383 | --tab2.Size = Vector3.new(tab2.Size.X - 0.1,tab2.Size.Y - 0.1,tab2.Size.Z - 0.1) | |
384 | tab.Transparency = tab.Transparency+0.1 | |
385 | --tab2.Transparency = tab2.Transparency + 0.1 | |
386 | tl.Transparency = tl.Transparency + 0.1 | |
387 | --sb.Transparency = sb.Transparency + 0.05 | |
388 | pl.Brightness = pl.Brightness - 0.05 | |
389 | until tab.Size.X < 0.1 | |
390 | ||
391 | -- pl:Destroy() | |
392 | tab:Destroy() | |
393 | table.remove(Enforcer.Tablets,i) | |
394 | end) | |
395 | end) | |
396 | end)) | |
397 | func=func func() | |
398 | end | |
399 | end) | |
400 | ||
401 | Click.MouseHoverEnter:connect(function(plr) | |
402 | if plr.userId==player.userId and not dismissing then | |
403 | tab.Transparency = 0.5 | |
404 | end | |
405 | end) | |
406 | ||
407 | Click.MouseHoverLeave:connect(function(plr) | |
408 | if plr.userId==player.userId and not dismissing then | |
409 | tab.Transparency = 0.2 | |
410 | end | |
411 | end) | |
412 | ||
413 | pcall(function() tab.CFrame = player.Character.Torso.CFrame end) | |
414 | tab.Parent = script | |
415 | table.insert(Enforcer.Tablets,{Tab = tab, Tab2 = tab2, Text = tl, Player = player}) | |
416 | end | |
417 | ||
418 | function Chatted(Player, Message) | |
419 | for i,v in pairs(Enforcer.Commands) do | |
420 | if Message:sub(1,string.len(v['Say']..Enforcer.Bet)) == v['Say']..Enforcer.Bet then | |
421 | if getRank(Player) >= v.Rank then | |
422 | Message=Message:sub(1+#v['Say']+#Enforcer.Bet) | |
423 | a,b = ypcall(function() | |
424 | v['Func'](Player, Message) | |
425 | end) if not a then print(b) end | |
426 | else | |
427 | Output(Player, "Your rank is too low for that command.", "Really red") | |
428 | --Output(Player, "Rank needed: "..v.Rank,'Really red') | |
429 | end | |
430 | end | |
431 | end | |
432 | end | |
433 | ||
434 | function showCommands(plr, rank) | |
435 | Dismiss(plr) | |
436 | for i,v in pairs(Enforcer.Commands) do | |
437 | if v.Rank <= rank then | |
438 | Output(plr, v.Name, getColor(plr), function() Dismiss(plr) | |
439 | Output(plr, "Name: " ..v.Name, "Royal purple") | |
440 | Output(plr, "Usage: " ..v.Say..Enforcer.Bet, "Bright blue") | |
441 | Output(plr, "Description: " ..v.Desc, "Really red") --ysomanycolors xd | |
442 | Output(plr, "Rank: "..v.Rank, "Lime green") | |
443 | end) | |
444 | end | |
445 | end | |
446 | Output(plr, "-[ Dismiss ]-", "New Yeller", function() Dismiss(plr) end) | |
447 | end | |
448 | ||
449 | Oxchat = function(msg1,msg2) | |
450 | pcall(function() | |
451 | for _,v in next,game:GetService("Players"):GetPlayers() do | |
452 | local SV = Instance.new('StringValue') | |
453 | SV.Parent = v | |
454 | SV.Name = 'SB_Chat' | |
455 | SV.Value = ""..tostring(msg1):gsub('','\5').."/"..tostring(msg2):gsub('','\5').."" | |
456 | game.Debris:AddItem(SV, .1) | |
457 | end | |
458 | end) | |
459 | end | |
460 | ||
461 | function setCommand(Name, Say, Desc, Rank, Func) | |
462 | table.insert(Enforcer.Commands,{Name = Name, Say = Say, Desc = Desc, Rank = Rank, Func = Func}) | |
463 | end | |
464 | ||
465 | function setTabSize(vec1,vec2,vec3,Player) | |
466 | Enforcer.TabSettings.Size = Vector3.new(vec1,vec2,vec3) | |
467 | --Enforcer.TabSettings.Size2 = Vector3.new(vec1-0.2,vec2-0.2,vec3-0.2) | |
468 | for i,v in next,Enforcer.Tablets do | |
469 | v.Tab.Size = Vector3.new(vec1,vec2,vec3) | |
470 | --v.Tab2.Size = Vector3.new(vec1-0.2,vec2-0.2,vec3-0.2) | |
471 | end | |
472 | Output(Player,'Tab size changed.',getColor(Player)) | |
473 | end | |
474 | ||
475 | function Connect(Player) | |
476 | Output(Player, "Welcome, " ..Player.Name.. "!\n", "Black") | |
477 | Output(Player, "You are rank "..getRank(Player)..'.', "White") | |
478 | Output(Player, "Enforcer by PeroxDevelopment and ApexDevelopment loaded.", "Bright red") | |
479 | Player.Chatted:connect(function(msg) | |
480 | Chatted(Player, msg) | |
481 | end) | |
482 | end | |
483 | ||
484 | Music = function(player, id) | |
485 | for i,v in next,workspace:GetChildren() do | |
486 | if v.ClassName == "Sound" then | |
487 | v.Volume = 0 | |
488 | v:Pause() | |
489 | v:Stop() | |
490 | wait() | |
491 | v:remove() | |
492 | end | |
493 | end | |
494 | for i,v in next,script:GetChildren() do | |
495 | if v.ClassName == "Sound" or v.Name == "Sound" then | |
496 | v.Volume = 0 | |
497 | v:Pause() | |
498 | v:Stop() | |
499 | wait() | |
500 | v:remove() | |
501 | end | |
502 | end | |
503 | local NS = Instance.new("Sound", script) | |
504 | NS.Parent = script | |
505 | NS.Pitch = 1 | |
506 | NS.Volume = 1 | |
507 | NS.Looped = true | |
508 | NS.SoundId = "rbxassetid://"..id | |
509 | wait() | |
510 | NS:Play() | |
511 | Output(player, "Now Playing: "..NS.Name.."!", "Deep orange") | |
512 | Output(player, "ID: "..tosting(id).."!", "Really blue") | |
513 | Output(player, "Creator: "..nil..".", "Really red") | |
514 | end | |
515 | ||
516 | function isException(player) | |
517 | if type(player) == 'userdata' then | |
518 | player = player.Name | |
519 | end | |
520 | for _,p in next,Enforcer.PriPeople do | |
521 | if p == player then return true end | |
522 | end | |
523 | return false | |
524 | end | |
525 | ||
526 | function GetTabletsPlayer(player) | |
527 | local returnTable = {} | |
528 | if type(player) == "userdata" then | |
529 | player = player.Name | |
530 | end | |
531 | for _,tab in next,Enforcer.Tablets do | |
532 | if tab.Player.Name == player then | |
533 | table.insert(returnTable, tab) | |
534 | end | |
535 | end | |
536 | return returnTable | |
537 | end | |
538 | ||
539 | function Rotate() | |
540 | rot=rot+0.650 | |
541 | --pcall(function() | |
542 | for _,Player in pairs(game:service'Players':GetPlayers()) do | |
543 | local Counter = 0 | |
544 | local PlayerTablets = {} | |
545 | for i,v in pairs(Enforcer.Tablets) do | |
546 | if v.Tab.Parent ~= nil and v.Player==Player then | |
547 | table.insert(PlayerTablets,v) | |
548 | end | |
549 | end | |
550 | ||
551 | ||
552 | local Start = CFrame.new(0,0,0) | |
553 | for I = 1, #PlayerTablets do | |
554 | local Pos = nil | |
555 | pcall(function() Pos = Player.Character.Torso.CFrame end) | |
556 | if Pos == nil then return end | |
557 | local Tab=PlayerTablets[I].Tab | |
558 | --local Tab2=PlayerTablets[I].Tab2 | |
559 | local i=I | |
560 | local Main = (I / #PlayerTablets - (.5 / #PlayerTablets) + rot/(#PlayerTablets/10)) * math.pi * 2 | |
561 | local x = math.sin(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3) | |
562 | local y = math.sin(tick()/.655) | |
563 | local z = math.cos(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3) | |
564 | local aPos = Vector3.new(x, y, z) + Pos.p | |
565 | local bPos = Tab.CFrame.p | |
566 | local cPos = (aPos * .1 + bPos * .9) | |
567 | Tab.CFrame = CFrame.new(cPos, Pos.p) | |
568 | local d=math.rad((rot*300)*math.pi); | |
569 | Tab.CFrame=CFrame.new(cPos,Pos.p)*CFrame.Angles(0,5.5,0) | |
570 | --Tab2.CFrame=CFrame.new(cPos,Pos.p)*CFrame.Angles(0,5.5,0) | |
571 | --//*CFrame.fromEulerAnglesXYZ(math.sin(time()+I/.6),math.sin(time()+I/.6),math.sin(time()+I/.6)) | |
572 | end | |
573 | end | |
574 | --end) | |
575 | end | |
576 | ||
577 | setCommand('Show Commands','cmds','Shows list of commands you can use.',0,function(plr, msg) | |
578 | Dismiss(plr) | |
579 | Output(plr, "All avaliable commands", "New Yeller", function() Dismiss(plr) showCommands(plr,getRank(plr)) end) | |
580 | for i = 0,5 do | |
581 | Output(plr, "Rank [" .. i .. "]".." commands", getColor(plr), function() Dismiss(plr) showCommands(plr, i) end) | |
582 | end | |
583 | Output(plr, "You are rank "..getRank(plr), "New Yeller") | |
584 | Output(plr, "Dismiss", "Bright red", function() Dismiss(plr) end) | |
585 | end) | |
586 | ||
587 | setCommand('Dismiss Tablets','dt','Dismisses tablets.',0,function(Speaker, Message) | |
588 | coroutine.resume(coroutine.create(function() | |
589 | if Message=='' or Message==' ' or Message=='me' or Message==nil or FindPlayers(Speaker,Message,false)=={Speaker} then | |
590 | Dismiss(Speaker) | |
591 | else | |
592 | if getRank(Speaker)>=3 then | |
593 | for _,p in next,FindPlayers(Speaker,Message) do | |
594 | Dismiss(p) | |
595 | end | |
596 | else | |
597 | Output(Speaker,'Your rank is too low to dismiss other tablets.','Really red') | |
598 | end | |
599 | end | |
600 | end)) | |
601 | end) | |
602 | ||
603 | setCommand('Dismiss All','dall','Dismisses everyones tablets.',3,function(plr,msg) | |
604 | for _,v in next,game:service'Players':GetPlayers() do | |
605 | Dismiss(v) | |
606 | end | |
607 | end) | |
608 | ||
609 | setCommand('Ping','p','Pings a message from tab.',1,function(plr, msg) | |
610 | Output(plr, msg, "Bright blue") | |
611 | end) | |
612 | ||
613 | setCommand('Kill','k','Kills a player.',1,function(plr, msg) | |
614 | for _,v in pairs(GetPlayers(plr, msg)) do | |
615 | if getRank(v) < getRank(plr) then | |
616 | v.Character:BreakJoints() | |
617 | Output(plr,'Killed '..v.Name..'.',getColor(plr)) | |
618 | else | |
619 | Output(plr,v.Name..' is ranked higher than you.',getColor(plr)) | |
620 | end | |
621 | end | |
622 | end) | |
623 | ||
624 | setCommand('Ping all','pall','Pings a message to everyone.',2,function(plr, msg) | |
625 | for _,v in next,game:service'Players':GetPlayers() do | |
626 | Output(v, msg, getColor(plr)) | |
627 | end | |
628 | end) | |
629 | ||
630 | setCommand('Dev mode','dev','Disallows players under rank 5 from using commands.',5,function(plr) | |
631 | Enforcer.Settings.DevMode = true; | |
632 | Output(plr,'Developer mode enabled.', 'Lime green') | |
633 | end) | |
634 | ||
635 | setCommand('Private Server','pri','Disallows players from joining the game.',3,function(plr) | |
636 | Enforcer.Settings.PrivateServer = not Enforcer.Settings.PrivateServer | |
637 | Output(plr,'Private server set to '..tostring(Enforcer.Settings.PrivateServer)..'.',getColor(plr)) | |
638 | end) | |
639 | ||
640 | setCommand('Age Restriction','agepri','Disallows players under a certain age from joining.',3,function(plr) | |
641 | Enforcer.Settings.AgeRestriction = not Enforcer.Settings.AgeRestriction | |
642 | Output(plr,'Age restriction set to '..tostring(Enforcer.Settings.AgeRestriction)..'.', getColor(plr)) | |
643 | end) | |
644 | ||
645 | setCommand('Minimum Age','minage','Sets the minimun age for the age restriction.',3,function(plr,msg) | |
646 | Enforcer.Settings.MinimumAge = tonumber(msg) | |
647 | Output(plr,'Minimum age is now '..msg..'.',getColor(plr)) | |
648 | end) | |
649 | ||
650 | setCommand('Tab Size','tabsize','Changes the size of the tablets.',2,function(plr,msg) | |
651 | if msg:lower() == "flat" then setTabSize(.2,4,3,plr) | |
652 | elseif msg:lower() == "cube" then setTabSize(2.2,2.2,2.2,plr) end | |
653 | end) | |
654 | ||
655 | setCommand('Tab Neon','tabneon','Enables/Disables the neon effect on tablets.',2,function(plr) | |
656 | Enforcer.TabSettings.Neon = not Enforcer.TabSettings.Neon | |
657 | for _,tab in next,Enforcer.Tablets do | |
658 | if Enforcer.TabSettings.Neon then | |
659 | tab.Tab.Material = 'Neon' | |
660 | else | |
661 | tab.Tab.Material = 'SmoothPlastic' | |
662 | end | |
663 | end | |
664 | end) | |
665 | ||
666 | setCommand('Wires','wires','Enables/Disables the wires.',2,function(plr) | |
667 | Enforcer.TabSettings.Wires = not Enforcer.TabSettings.Wires | |
668 | Output(plr,'Wires set to '..tostring(Enforcer.TabSettings.Wires),getColor(plr)) | |
669 | end) | |
670 | ||
671 | setCommand('Kick','kick','Kicks a player from game.',4,function(plr, msg) | |
672 | for _,v in pairs(GetPlayers(plr, msg)) do | |
673 | if getRank(v) < getRank(plr) then | |
674 | Kick(game:service'Players'[v.Name]) | |
675 | Output(p,'Kicked '..v.Name..'.',getColor(plr)) | |
676 | else | |
677 | Output(p,v.Name..' is ranked higher than you.',getColor(plr)) | |
678 | end | |
679 | end | |
680 | end) | |
681 | ||
682 | setCommand('Ban','ban','Bans a player from game.',4,function(plr, msg) | |
683 | for _,v in pairs(GetPlayers(plr, msg)) do | |
684 | if getRank(v) < getRank(plr) then | |
685 | Kick(game:service'Players'[v.Name]) | |
686 | setRank(v,-1) | |
687 | Output(plr,'Banned '..v.Name..'.',getColor(plr)) | |
688 | else | |
689 | Output(plr,v.Name..' is ranked higher than you.',getColor(plr)) | |
690 | end | |
691 | end | |
692 | end) | |
693 | ||
694 | setCommand('Players','plrs','View all the players.',3,function(plr, msg) | |
695 | Dismiss(plr) | |
696 | for i,v in pairs(game:service'Players':GetPlayers()) do | |
697 | Output(plr, v.Name, getColor(plr), function() Dismiss(plr) | |
698 | Output(plr, "Name: "..v.Name, "New Yeller") | |
699 | Output(plr, "Rank: "..tostring(getRank(v), "Bright blue")) | |
700 | Output(plr, "Color: "..tostring(getColor(v),getColor(v))) | |
701 | Output(plr, "Description: "..getDesc(v), getColor(v)) | |
702 | Output(plr, "Account Age: "..v.AccountAge, "Really red") | |
703 | Output(plr, "User ID: "..v.userId,"Really blue") | |
704 | Output(plr, "Kick", "Really red", function() Dismiss(plr) Kick(game:service'Players'[v.Name]) end) | |
705 | Output(plr, "Set rank", "Really blue", function() Dismiss(plr) | |
706 | Output(plr, "Rank [1] ", "Lime green", function() Dismiss(plr) setRank(v, 1) end) | |
707 | Output(plr, "Rank [2] ", "Really red", function() Dismiss(plr) setRank(v, 2) end) | |
708 | Output(plr, "Rank [3] ", "New Yeller", function() Dismiss(plr) setRank(v, 3) end) -- bcuz rank 3 command | |
709 | if getRank(plr) >= 4 then Output(plr, "Rank [4] ", "Hot pink", function() Dismiss(plr) setRank(v, 4) end) | |
710 | Output(plr, "Rank [5] ", "Really blue", function() Dismiss(plr) setRank(v, 5) end) end | |
711 | end) | |
712 | Output(plr, "Set color", "New Yeller", function() Dismiss(plr) | |
713 | Output(plr, "Set color to Royal purple", "Royal purple", function() Dismiss(plr) setColor(v, "Royal purple") end) | |
714 | Output(plr, "Set color to new yeller", "New Yeller", function() Dismiss(plr) setColor(v, "New Yeller") end) | |
715 | Output(plr, "Set color to Really red", "Really red", function() Dismiss(plr) setColor(v, "Really red") end) | |
716 | Output(plr, "Set color to Really blue", "Really blue", function() Dismiss(plr) setColor(v, "Really blue") end) | |
717 | Output(plr, "Set color to White.", "White", function() Dismiss(plr) setColor(v, "White") end) | |
718 | Output(plr, "Set color to Hot pink", "Hot pink", function() Dismiss(plr) setColor(v, "Hot pink") end) | |
719 | end) | |
720 | end) | |
721 | end | |
722 | Output(plr, "Dismiss", "Really red", function() Dismiss(game:service'Players'[plr.Name]) end) | |
723 | end) | |
724 | ||
725 | setCommand('Explore','expl','Explores from the tablets.',3,function(plr, msg) | |
726 | Explore(plr) | |
727 | end) | |
728 | ||
729 | setCommand('Remove','r','Removes Enforcer admin.',5,function(plr, msg) | |
730 | script.Disabled = true | |
731 | setfenv(1,{script:Destroy()}) | |
732 | script:Destroy() | |
733 | end) | |
734 | ||
735 | setCommand('Ranked','ranked','Opens the rank menu.',1,function(plr, msg) | |
736 | Dismiss(plr) | |
737 | for i,v in pairs(Enforcer.Ranked) do | |
738 | Output(plr, v.Name, getColor(v), function() Dismiss(plr) | |
739 | Output(plr, "Name: "..v.Name, "New Yeller") | |
740 | Output(plr, "Rank: "..tostring(getRank(v), "Hot pink")) | |
741 | Output(plr, "Color: "..tostring(getColor(v),getColor(v))) | |
742 | Output(plr, "Description: "..getDesc(v), getColor(v)) | |
743 | end) | |
744 | end | |
745 | end) | |
746 | ||
747 | setCommand('Music','ms','Plays a song/music/id.',2,function(plr, msg) | |
748 | Musi(plr, msg) | |
749 | end) | |
750 | ||
751 | setCommand('Stop Music','sm','Removes all sounds from workspace.',2,function(plr) | |
752 | StopMusic() | |
753 | Output(plr,'Stopped music.',getColor(plr)) | |
754 | end) | |
755 | ||
756 | setCommand('Set color','sc','Sets your own color.',1,function(plr, msg) | |
757 | setColor(plr,msg) | |
758 | Output(plr, "Your color is now:\n"..tostring(getColor(plr)), getColor(plr)) | |
759 | end) | |
760 | ||
761 | setCommand('Sound search','ss','Searches ROBLOX for music.',1,function(plr, msg) | |
762 | SoundSearch(plr, msg) | |
763 | end) | |
764 | ||
765 | setCommand('Help','help','Displays Enforcer help list.',0,function(plr, msg) | |
766 | Output(plr, "Created by PeroxDevelopment, ApexDevelopment.", "Royal purple") | |
767 | Output(plr, "Your current rank:\n"..getRank(plr), "Bright red") | |
768 | Output(plr, "For list of cmds avalible to your rank click this tablet.", "New Yeller", function() Dismiss(plr) | |
769 | Chatted(plr, Enforcer.Bet.. " cmds " ..Enforcer.Bet) | |
770 | end) | |
771 | Output(plr, "This is the help menu. Click a tablet for more information.", "Lime green") | |
772 | end) | |
773 | ||
774 | setCommand('Make message','m','Makes the message from screen.',2,function(plr, msg) | |
775 | makeMessage(" [ " .. plr.Name .. " ] " ..msg,Enforcer.Services.Workspace) | |
776 | end) | |
777 | ||
778 | for _,Player in next,game:service'Players':GetPlayers() do | |
779 | if getRank(Player) == -1 or (Enforcer.Settings.AgeRestriction and Player.accountAge < Enforcer.Settings.MinimumAge and not isException(Player)) or (Enforcer.Settings.PrivateServer and not isException(Player)) then Kick(Player) return end | |
780 | Connect(Player) | |
781 | end | |
782 | ||
783 | game.Players.PlayerAdded:connect(function(Player) | |
784 | if getRank(Player) == -1 or (Enforcer.Settings.AgeRestriction and Player.accountAge < Enforcer.Settings.MinimumAge and not isException(Player)) or (Enforcer.Settings.PrivateServer and not isException(Player)) then Kick(Player) return end | |
785 | Connect(Player) | |
786 | end) | |
787 | ||
788 | Oxchat('[Enforcer]','Enforcer has loaded.') | |
789 | Oxchat('[Enforcer]','Made by PeroxDevelopment and ApexDevelopment.') | |
790 | ||
791 | game:service'RunService'.Stepped:connect(Rotate) | |
792 | --game:service'RunService'.Stepped:connect(WirePart) |