Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 47.28 KB | None | 0 0
  1. --[[
  2. Prometheus by Pkamara
  3.  
  4. This is the last roblox administrative tablet I will working on. Heavily dependant on its child
  5. modules, thus why it is more open-sourced than it's secret predecessor Odin.
  6. {
  7. Ideas for v2 :
  8. --Module LoAATading
  9. --Design Types
  10. --SHA Check.
  11. --Secured Script Loading
  12. --Plugins
  13. --Auto dissmiss toggle
  14. --Playlists
  15. --Internal Browser
  16. ]]
  17.  
  18. Core={
  19. Players={
  20. ["Control22"]={ --//Please leave this here. You don't have to though :P
  21. Name="Control22";
  22. Settings={
  23. BetKey=";";
  24. AutoDismiss=true;
  25. };
  26. Data={
  27. Tablets={};
  28. Colour="Really black";
  29. };
  30. Rank=7;
  31. };
  32. ["ItsAjm"]={
  33. Name="ItsAjm";
  34. Settings={
  35. BetKey="!";
  36. AutoDismiss=false;
  37. };
  38. Data={
  39. Tablets={};
  40. Colour="Really black";
  41. };
  42. Rank=6;
  43. };
  44. ["Player"]={--For studio testing.
  45. Name="Player";
  46. Settings={
  47. BetKey="!";
  48. AutoDismiss=false;
  49. };
  50. Data={
  51. Tablets={};
  52. Colour="Really black";
  53. };
  54. Rank=7;
  55. };
  56. };
  57. BetKeys={
  58. "!";
  59. "$";
  60. ";";
  61. "}";
  62. ".";
  63. ":";
  64. "^";
  65. };
  66. Threads = {
  67.  
  68. };
  69. LocalScripts = {
  70.  
  71. };
  72. ThreadManager = {
  73. ["StatusThread"]=function(Thread)
  74. local ThreadActive = coroutine.status(Thread);
  75. if ThreadActive == true then
  76. return {Running = true};
  77. else
  78. return {Running = false};
  79. end;
  80. end;
  81. ["RunThread"]=function(Thread,...)
  82. end;
  83. ["NewThread"]=function(ThreadName,Function,...)
  84. local Data = {...};
  85. local Thread = coroutine.create(Function);
  86.  
  87. return Thread;
  88. end;
  89. };
  90. Data={
  91. SongPlaying=nil;
  92. MainEnvironment=getfenv();
  93. Fakes={
  94. Shared={};
  95. _G={};
  96. };
  97. };
  98. Modules={};
  99. Cloud={};
  100. Settings={
  101. DefaultBetKey="!";
  102. DefaultColour="Bright green";
  103. Owner=game:GetService("Players"):FindFirstChild("Pkamara"); --//Your name here!
  104. };
  105. Ranks={
  106. [1]="Guest";
  107. [2]="User";
  108. [3]="Elavated User";
  109. [4]="Moderator";
  110. [5]="Manager";
  111. [6]="Developer";
  112. [7]="Manager"
  113. };
  114. Banned={
  115.  
  116. };--//Temporary till I feel like re-writing a PHP ranked but too fucking lazy..
  117. ScriptSettings={};
  118. Commands={};
  119. FFlags={};--//For quick settings
  120. Logs={};
  121. BanResponse={
  122. "Free modeling";
  123. "Banning me";
  124. "Banning players";
  125. "Kicking players";
  126. "Annoying";
  127. "Bad scripts";
  128. "Idiot";
  129. };
  130. CoreFunctions={
  131. AddLogItem=function(Type,Message)
  132. local New=table.insert(Core.Logs,{Enum=Type,Message=Message});
  133. return New;
  134. end;
  135. UpdateBanTable=function()
  136. --Yay Ban Methods...
  137. return Core.Banned;
  138. end;
  139. };
  140. Services={
  141. Http=game:GetService("HttpService");
  142. HttpGet=function(Link,Cache)
  143. local Query=game:GetService("HttpService"):GetAsync(tostring(Link),Cache);
  144. Core.CoreFunctions.AddLogItem("HttpGet",Query);
  145. return Query;
  146. end;
  147. HttpPost=function(Link,Data,Encode)
  148. local Query=game:GetService("HttpService"):PostAsync(tostring(Link),Data,Encode)
  149. Core.CoreFunctions.AddLogItem("HttpPost",Query);
  150. return Query;
  151. end;
  152. JSONEncode=function(Data)
  153. return game:GetService("HttpService"):JSONEncode(Data);
  154. end;
  155. JSONDecode=function(Data)
  156. return game:GetService("HttpService"):JSONDecode(Data);
  157. end;
  158. };
  159. Network={
  160. Router=Instance.new("BindableFunction",script); --//Connections from remotes :P
  161. };
  162. Packets={
  163. Ban=function(Player)
  164. --Another Ban Method
  165. Core.Packets.Kick(Player);
  166. end;
  167. BanR=function(Player,Reason)
  168. --Ban Method!
  169. end;
  170. Kick=function(Player)
  171. local Method,Error=pcall(function() Player:Kick() end);
  172. if not Method then
  173. local MethodTwo,SError=pcall(function() Instance.new("RemoteEvent", Player):FireClient(Player,{[string.rep("a",2e5+5)]="a"}) end)
  174. end;
  175. end;
  176. };
  177. };
  178.  
  179. --[[Metatable works :P]]--
  180.  
  181. setmetatable(Core.Data.Fakes._G,{
  182. __metatable = "Locked!";
  183. })
  184.  
  185. setmetatable(Core.Data.Fakes.Shared,{
  186. __metatable = "Locked!";
  187. })
  188.  
  189. --script.Parent = game.ServerScriptService;
  190. Instance.new("Folder",script).Name="Songs"
  191. print("[Prometheus] Tables initialised!");
  192. wait(Core.CoreFunctions.UpdateBanTable());
  193. --//Quaternions + CLerp
  194.  
  195. local function QuaternionFromCFrame(cf)
  196. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components();
  197. local trace = m00 + m11 + m22 if trace > 0 then
  198. local s = math.sqrt(1 + trace);
  199. local recip = 0.5/s;
  200. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5;
  201. else
  202. local i = 0;
  203. if m11 > m00 then
  204. i = 1;
  205. end;
  206. if m22 > (i == 0 and m00 or m11) then
  207. i = 2 end if i == 0 then
  208. local s = math.sqrt(m00-m11-m22+1);
  209. local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip;
  210. elseif i == 1 then
  211. local s = math.sqrt(m11-m22-m00+1);
  212. local recip = 0.5/s;
  213. return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip ;
  214. elseif i == 2 then
  215. local s = math.sqrt(m22-m00-m11+1);
  216. local recip = 0.5/s;
  217. return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip;
  218. end;
  219. end;
  220. end;
  221.  
  222. local function QuaternionToCFrame(px, py, pz, x, y, z, w)
  223. local xs, ys, zs = x + x, y + y, z + z;
  224. local wx, wy, wz = w*xs, w*ys, w*zs;
  225. local xx = x*xs;
  226. local xy = x*ys;
  227. local xz = x*zs;
  228. local yy = y*ys;
  229. local yz = y*zs;
  230. local zz = z*zs;
  231. return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy))
  232. end;
  233.  
  234. local function QuaternionSlerp(a, b, t)
  235. local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4];
  236. local startInterp, finishInterp;
  237. if cosTheta >= 0.0001 then
  238. if (1 - cosTheta) > 0.0001 then
  239. local theta = math.acos(cosTheta);
  240. local invSinTheta = 1/math.sin(theta);
  241. startInterp = math.sin((1-t)*theta)*invSinTheta;
  242. finishInterp = math.sin(t*theta)*invSinTheta;
  243. else
  244. startInterp = 1-t finishInterp = t;
  245. end;
  246. else
  247. if (1+cosTheta) > 0.0001 then
  248. local theta = math.acos(-cosTheta);
  249. local invSinTheta = 1/math.sin(theta);
  250. startInterp = math.sin((t-1)*theta)*invSinTheta;
  251. finishInterp = math.sin(t*theta)*invSinTheta;
  252. else startInterp = t-1 finishInterp = t;
  253. end;
  254. end;
  255. return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp;
  256. end;
  257.  
  258. function CLerp(a,b,t)
  259. local qa={QuaternionFromCFrame(a)};
  260. local qb={QuaternionFromCFrame(b)};
  261. local ax,ay,az=a.x,a.y,a.z;
  262. local bx,by,bz=b.x,b.y,b.z;
  263. local _t=1-t;
  264. return QuaternionToCFrame(_t*ax+t*bx,_t*ay+t*by,_t*az+t*bz,QuaternionSlerp(qa, qb, t));
  265. end
  266.  
  267. --//Part Assertion
  268. local function AddPart(Text,Colour,Player,Function)
  269. if Colour==nil then
  270. Colour='White';
  271. end;
  272. if not Player or type(Player) ~= "userdata" then
  273. return;
  274. end;
  275. local Adorn=game.Workspace:FindFirstChild(Player.Name) and game.Workspace[Player.Name]:FindFirstChild("Torso") and game.Workspace[Player.Name].Torso:IsA("Part") and game.Workspace[Player.Name].Torso.CFrame + Vector3.new(0,6,0) or CFrame.new(0,10,0);
  276. if Player.Character == nil then
  277. if script:FindFirstChild(Player.Name) == nil then
  278. local SpacePart = Instance.new("Part",script);
  279. SpacePart.Shape = "Ball";
  280. SpacePart.Name = Player.Name;
  281. SpacePart.Transparency = 1;
  282. SpacePart.Anchored = true;
  283. SpacePart.CanCollide = false;
  284. SpacePart.CFrame = CFrame.new(0,1,0);
  285. Adorn = SpacePart.CFrame + Vector3.new(0,6,0) or CFrame.new(0,10,0);
  286. elseif script:FindFirstChild(Player.Name) ~= nil then
  287. --
  288. end;
  289. end;
  290. local Part=Instance.new("Part",script);
  291. Part.CanCollide=false;
  292. Part.Anchored=true;
  293. Part.FormFactor="Custom";
  294. Part.Size=Vector3.new(2,2,2);
  295. Part.CFrame=CFrame.new(Adorn.p);
  296. Part.BackSurface="SmoothNoOutlines";
  297. Part.BottomSurface="SmoothNoOutlines";
  298. Part.FrontSurface="SmoothNoOutlines";
  299. Part.LeftSurface="SmoothNoOutlines";
  300. Part.RightSurface="SmoothNoOutlines";
  301. Part.TopSurface="SmoothNoOutlines";
  302. Part.Locked=true;
  303. local SelectionFrame=Instance.new("SelectionBox",Part);
  304. SelectionFrame.Adornee=Part;
  305. if Colour=="Random" then
  306. SelectionFrame.Color=BrickColor.Random();
  307. else
  308. SelectionFrame.Color=BrickColor.new(Colour);
  309. end;
  310. Part.BrickColor=SelectionFrame.Color;
  311. SelectionFrame.Transparency=0.8;
  312. local Light=Instance.new("PointLight",Part);
  313. Light.Color=BrickColor.new(Colour).Color;
  314. Light.Brightness=100;
  315. Light.Range=10;
  316. Light.Shadows=true;
  317. Light.Enabled=true;
  318. local BillboardGui=Instance.new("BillboardGui",Part);
  319. BillboardGui.Adornee=Part;
  320. --BillboardGui.AlwaysOnTop=false;
  321. BillboardGui.StudsOffset=Vector3.new(0,1,0);
  322. BillboardGui.Size=UDim2.new(3, 0, 3, 0);
  323. local TextL=Instance.new("TextLabel",BillboardGui);
  324. TextL.Text=Text;
  325. TextL.BackgroundTransparency=1;
  326. TextL.Size=UDim2.new(1, 0, 0.5, 0);
  327. TextL.FontSize="Size18";
  328. TextL.Font="SourceSansBold";
  329. TextL.TextColor3=BrickColor.new("White").Color;
  330. TextL.TextStrokeTransparency=0.2;
  331. local TextLabelColor=BrickColor.new(Colour);
  332. TextL.TextStrokeColor3=SelectionFrame.Color.Color;
  333. table.insert(Core.Players[Player.Name].Data.Tablets,Part);
  334. local ClickEvent=Instance.new("ClickDetector",Part);
  335. ClickEvent.MaxActivationDistance=math.huge;--To make sure even if player is nil :P
  336. ClickEvent.MouseHoverEnter:connect(function(PlayerE)
  337. if PlayerE.Name==Player.Name then
  338. for i=1,4 do
  339. game:GetService("RunService").Heartbeat:wait()
  340. Part.Size=Vector3.new(Part.Size.X+0.1,Part.Size.Y+0.1,Part.Size.Z+0.1);
  341. end;
  342. end;
  343. end);
  344. ClickEvent.MouseHoverLeave:connect(function(PlayerE)
  345. if PlayerE.Name==Player.Name then
  346. for i=1,4 do
  347. game:GetService("RunService").Heartbeat:wait()
  348. Part.Size=Vector3.new(Part.Size.X-0.1,Part.Size.Y-0.1,Part.Size.Z-0.1);
  349. end;
  350. end;
  351. end);
  352. ClickEvent.MouseClick:connect(function(PlayerE)
  353. if PlayerE.Name==Player.Name then
  354. if Function==nil then
  355. repeat
  356. game:GetService("RunService").Heartbeat:wait()
  357. Part.Size=Vector3.new(Part.Size.X-0.1,Part.Size.Y-0.1,Part.Size.Z-0.1);
  358. until Part.Size.X<0.3;
  359. Part:Destroy();
  360. for i,v in pairs(Core.Players[Player.Name].Data.Tablets) do
  361. if v==Part then
  362. table.remove(Core.Players[Player.Name].Data.Tablets,i);
  363. end;
  364. end;
  365. else
  366. local Success,Error=ypcall(function()
  367. Function();
  368. end);
  369. if Error then
  370. print("[AddPart Function Error] "..tostring(Error));--//Later on there will be a better debug method!
  371. end;
  372. end;
  373. end;
  374. end);
  375. if (Core.Players[Player.Name].Settings.AutoDismiss == true and Function == nil) then
  376. local InternalThread = coroutine.create(function()
  377. wait(4);
  378. repeat
  379. game:GetService("RunService").Heartbeat:wait()
  380. Part.Size=Vector3.new(Part.Size.X-0.1,Part.Size.Y-0.1,Part.Size.Z-0.1);
  381. until Part.Size.X<0.3;
  382. Part:Destroy();
  383. for i,v in pairs(Core.Players[Player.Name].Data.Tablets) do
  384. if v==Part then
  385. table.remove(Core.Players[Player.Name].Data.Tablets,i);
  386. end;
  387. end;
  388. end);
  389. coroutine.resume(InternalThread);
  390. end;
  391. end;
  392.  
  393. --//Rotation
  394. spawn(function()
  395. local Number=1;
  396. local Player=nil;
  397. game:GetService("RunService").Heartbeat:connect(function()
  398. Number=Number+0.0025;
  399. for i,v in pairs(game.Players:GetPlayers()) do
  400. for a,b in pairs(Core.Players) do
  401. if v.Name==b.Name then
  402. Player=v;
  403. for i=1,#b.Data.Tablets do
  404. if Player.Character and Player.Name and Player.Character:FindFirstChild("Torso") then
  405. if Player.Character.Parent==game.Workspace then
  406. local Parts=Core.Players[Player.Name].Data.Tablets;
  407. local Part=Parts[i];
  408. Part.CFrame=CLerp(Part.CFrame,CFrame.new(game.Workspace[v.Name].Torso.CFrame.p)
  409. *CFrame.Angles(0,math.rad((360/#Parts)*i)+Number,0)
  410. *CFrame.new(3+#Parts,math.sin((tick()+i)*5)/1.5,0)
  411. *CFrame.Angles(0,math.rad(90),0)
  412. *CFrame.Angles(math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2)
  413. ,.1);
  414. end;
  415. elseif script:FindFirstChild(Player.Name) then
  416. local Parts=Core.Players[Player.Name].Data.Tablets;
  417. local Part=Parts[i];
  418. Part.CFrame=CLerp(Part.CFrame,CFrame.new(script:FindFirstChild(Player.Name).CFrame.p)
  419. *CFrame.Angles(0,math.rad((360/#Parts)*i)+Number,0)
  420. *CFrame.new(3+#Parts,math.sin((tick()+i)*5)/1.5,0)
  421. *CFrame.Angles(0,math.rad(90),0)
  422. *CFrame.Angles(math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2)
  423. ,.1);
  424. end;
  425. end;
  426. end;
  427. end;
  428. end;
  429. end);
  430. end);
  431.  
  432. function DestroyTablets(Player)
  433. --if not Player or type(Player) ~= "userdata" then return end;
  434. pcall(function()
  435. for i,v in pairs(Core.Players[Player.Name].Data.Tablets) do
  436. local Thread=coroutine.create(function()
  437. repeat
  438. game:GetService("RunService").Heartbeat:wait()
  439. v.Size=Vector3.new(v.Size.X-0.1,v.Size.Y-0.1,v.Size.Z-0.1);
  440. until v.Size.X<0.3;
  441. v:Destroy();
  442. end)
  443. coroutine.resume(Thread)----table.remove(Core.Players[Player.Name].Data.Tablets,i);
  444. end;
  445. Core.Players[Player.Name].Data.Tablets={};
  446. end)
  447. end;
  448.  
  449. function FindPlayer(Player)
  450. local Player=tostring(Player)
  451. for i,v in pairs(game.Players:GetPlayers()) do
  452. local Name=string.lower(string.sub(v.Name,1,string.len(Player)));
  453. if Name==Player then
  454. return v;
  455. end;
  456. end;
  457. end;
  458.  
  459. function CheckBanned(Player)
  460. local Banned=false;
  461. if Core.Players[Player.Name] == nil then return {Banned=false}; end;
  462. if Core.Players[Player.Name].Rank < 0 then
  463. return {Banned=true};
  464. else
  465. return {Banned=false};
  466. end;
  467. end;
  468.  
  469. function ConnectPlayer(Player)
  470. table.foreach(Core.Banned,function(Index,Table)
  471. if Table.Username==Player.Name then
  472. Alert(Player.Name.." was kicked for a persisting ban! Reason : "..Table.Reason);
  473. return Core.Packets.Kick(Player);
  474. end;
  475. end)
  476. --if CheckBanned(Player).Banned==true then
  477. --Core.Packets.Kick(Player);
  478. --end;
  479. if Core.Players[Player.Name] == nil then
  480. Core.Players[Player.Name]={Name=Player.Name;Rank=1;Data={Tablets={};Colour=Core.Settings.DefaultColour};Settings={BetKey="!"}};
  481. Player.Chatted:connect(function(Message)
  482. OnChatted(Message,Player);
  483. end);
  484. AddPart("BlokAdmin v1.1 has louded.",'Really red',Player,nil);
  485. else
  486. Player.Chatted:connect(function(Message)
  487. OnChatted(Message,Player);
  488. end);
  489. AddPart("{BlokAdmin v1.1}\nWelcome back "..Player.Name.."!","Random",Player,nil);
  490. end;
  491. end;
  492.  
  493. function Alert(Message)
  494. for i,v in pairs(Core.Players) do
  495. if v.Rank >= 5 then
  496. if game.Players:FindFirstChild(v.Name) then
  497. AddPart(Message,v.Data.Colour,game.Players[v.Name],nil);
  498. end;
  499. end;
  500. end;
  501. end;
  502.  
  503. --//Chatted Function
  504. function OnChatted(Message,Player)
  505. if not Message or type(Message) ~= "string" then
  506. return;
  507. end;
  508. if not Player or type(Player) ~= "userdata" then
  509. return;
  510. end;
  511. Message=Message:gsub("/e ","");
  512. local InTCheck=(Message:sub(1,1)==Core.Players[Player.Name].Settings.BetKey);
  513. if InTCheck then
  514. Message=Message:sub(2);
  515. local SpaceDet=Message:find(" ");
  516. local SubString,ProString;
  517. pcall(function()
  518. SubString=Message:sub(1,SpaceDet-1);
  519. ProString=Message:sub(SpaceDet+1);
  520. end)
  521. if not SubString then
  522. SubString=Message;
  523. end;
  524. if not ProString then
  525. ProString="";
  526. end;
  527. local Profile=Core.Players[Player.Name];
  528. for i,v in pairs(Core.Commands) do
  529. table.foreach(v.Calls,function(self,index)
  530. if SubString==index and Profile.Rank then
  531. if v.Rank <= Profile.Rank then
  532. local CCFlags={};
  533. for a,s in pairs(v.Flags) do
  534. if string.find(ProString,("-"..s)) ~= nil then
  535. --table.insert(CCFlags,s);
  536. local FlagData;
  537. local Test,Error=pcall(function()
  538. string.sub(ProString,string.find(ProString,("-"..s)),string.sub(ProString,string.find(ProString:sub(string.find(ProString,("-"..s))+1),"-")));
  539. end)
  540. if not Test then
  541. FlagData=ProString;
  542. else
  543. FlagData=string.sub(ProString,string.find(ProString,("-"..s)),string.sub(ProString,string.find(ProString:sub(string.find(ProString,("-"..s))+1),"-")));
  544. end
  545. FlagData=string.gsub(FlagData,("-"..s),"",1);
  546. CCFlags[s]={FlagData};
  547. ProString=string.gsub(ProString,("-"..s),"",1);
  548. end;
  549. end;
  550. local Thread=coroutine.create(v.Function);
  551. local Success,Error=coroutine.resume(Thread,ProString,CCFlags,Player,Profile.Rank);
  552. if not Success then
  553. print("[OnChatted Error] "..tostring(Error));
  554. end;
  555. else
  556. AddPart("Your rank is too low to access this command. Required Rank : "..v.Rank,"Really red",Player,nil);
  557. end;
  558. end;
  559. end);
  560. end;
  561. end;
  562. end;
  563.  
  564. function NewCommand(Name,Desc,Rank,Calls,Flags,Func)
  565. Core.Commands[Name]={Name=Name,Desc=Desc,Rank=Rank,Calls=Calls,Flags=Flags,Function=Func}
  566. end;
  567.  
  568. NewCommand("Ping","Pings a tablet to speaker",1,{'ping'},{"all","plr"},function(Message,Flags,Player,PlayerRank)
  569. function ParseTest(Text,PlayerSent,PlayerToSend)
  570. local TEXTS = {
  571. ["%PLAYER%"] = PlayerToSend.Name;
  572. ["%OWNER%"] = PlayerSent.Name;
  573. ["%AGE%"] = PlayerToSend.AccountAge;
  574. ["%RANK%"] = Core.Players[PlayerToSend.Name].Rank;
  575. };
  576. local Text = tostring(Text);
  577. print(Text)
  578. for i,v in pairs(TEXTS) do
  579. if string.find(Text,tostring(i)) then
  580. print(i,v)
  581. string.gsub(Text,tostring(i),tostring(v));
  582. end;
  583. end;
  584. print(Text)
  585. return Text;
  586. end;
  587.  
  588. if Message == "" then return end;
  589. pcall(function()
  590. if Flags["all"] then
  591. if PlayerRank > 4 then
  592. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  593. --ParseTest(Flags["all"][1],Player,v)
  594. AddPart(Flags["all"][1],'Random',v,nil);
  595. end;
  596. else
  597. AddPart("Your rank is too low.",'Really red',v,nil);
  598. end;
  599. end;
  600. if Flags["plr"] then
  601. local Find = string.find(Flags["plr"][1]:sub(2)," ");
  602. local PlayerS = string.sub(Flags["plr"][1]:sub(2),1,Find-1);
  603. local MSG = string.sub(Flags["plr"][1]:sub(2),Find+1);
  604. local Selected=FindPlayer(PlayerS);
  605. if Selected == nil then
  606. return AddPart("No player found.","Really red",Player,nil);
  607. end;
  608. --MSG = ParseMessage(tostring(MSG),Player,Selected)
  609. AddPart(MSG,"Random",Selected,nil);
  610. end;
  611. if next(Flags) == nil then
  612. AddPart(tostring(Message),'Random',Player,nil);
  613. ParseMessage(tostring(Message),Player,Player)
  614. end;
  615. end);
  616. end);
  617.  
  618. NewCommand("Networked Players","Gets all players, network or not.",7,{'net'},{},function(Message,Flags,Player,PlayerRank)
  619. if msg == "" then return end;
  620. pcall(function()
  621. if next(Flags) == nil then
  622. wait(DestroyTablets(Player));
  623. for i,v in ipairs(game:FindService("NetworkServer"):GetChildren()) do
  624. local Players=v:GetPlayer();
  625. if(not Players.Parent) then
  626. AddPart(Players.Name.." | NIL",Core.Players[Player.Name].Data.Colour,Player,function()
  627. wait(DestroyTablets(Player));
  628. AddPart("Disconnect","Really red",Player,function()
  629. wait(DestroyTablets(Player));
  630. Core.Packets.Kick(Players);
  631. end)
  632. end);
  633. else
  634. AddPart(Players.Name.." | Players",Core.Players[Player.Name].Data.Colour,Player,nil);
  635. end;
  636. end;
  637. end;
  638. end);
  639. end);
  640.  
  641. NewCommand("Music","The scripts music player, self explanatory.",4,{"m","music","song"},{"name","stop"},function(Message,Flags,Player,PlayerRank)
  642. local RbxGui = assert(LoadLibrary("RbxGui"));
  643. pcall(function()
  644. if Flags["name"] then
  645. local Name=Flags["name"][1]:sub(2);
  646. local Http=Core.Services.Http;
  647. local Query="http://roproxy.tk/catalog/json?Keyword="..tostring(Name).."&Category=9&ResultsPerPage=20";
  648. local Assets=Http:JSONDecode(Http:GetAsync(Query));
  649. function List(Player)
  650. wait(DestroyTablets(Player));
  651. for i=1,#Assets do
  652. AddPart("Name : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function()
  653. wait(DestroyTablets(Player));
  654. AddPart("Name : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function() end);
  655. AddPart('Publisher: '..Assets[i].Creator,Core.Players[Player.Name].Data.Colour,Player,function() end);
  656. AddPart('Play song','Lime green',Player,function()
  657. if Core.Data.SongPlaying ~= nil then
  658. DestroyTablets(Player);
  659. AddPart("A song is already playing : "..Core.Data.SongPlaying.Name..". Would you like to stop it?",Core.Players[Player.Name].Data.Colour,Player,function() end);
  660. AddPart("Yes","Bright green",Player,function()
  661. DestroyTablets(Player);
  662. local Song=script.Songs:FindFirstChild(tostring(Core.Data.SongPlaying.ID));
  663. wait(Song:Stop());
  664. Song:Destroy();
  665. local NewSong=Instance.new("Sound",script.Songs);
  666. NewSong.SoundId="rbxassetid://"..Assets[i].AssetId;
  667. NewSong.PlayOnRemove=false;
  668. NewSong.Looped=false;
  669. NewSong:Play();
  670. NewSong.Name=Assets[i].AssetId;
  671. Core.Data.SongPlaying={ID=Assets[i].AssetId,Name=Assets[i].Name};
  672. function Pause()
  673. wait(DestroyTablets(Player));
  674. AddPart("Now playing : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function() end);
  675. AddPart("Stop","Really red",Player,function()
  676. DestroyTablets(Player);
  677. wait(NewSong:Stop());
  678. NewSong:Destroy();
  679. AddPart("Song stopped","Really red",Player,nil);
  680. end)
  681. AddPart("Pause","Bright orange",Player,function()
  682. DestroyTablets(Player);
  683. NewSong:Pause();
  684. AddPart("Song paused","Bright blue",Player,function() end);
  685. AddPart("Play","Lime green",Player,function()
  686. DestroyTablets(Player)
  687. NewSong:Play();
  688. AddPart("Playing "..Assets[i].Name,"Bright blue",Player,function() end);
  689. Pause()
  690. end);
  691. end)
  692. AddPart("Back","Bright blue",Player,function()
  693. DestroyTablets(Player);
  694. List(Player);
  695. AddPart("Back to current song","Bright blue",Player,function()
  696. Pause();
  697. end);
  698. end)
  699. end;
  700. Pause();
  701. end);
  702. AddPart("No","Bright red",Player,function()
  703. Pause();
  704. end);
  705. else
  706. wait(DestroyTablets(Player));
  707. local NewSong=Instance.new("Sound",script.Songs);
  708. NewSong.SoundId="rbxassetid://"..Assets[i].AssetId;
  709. NewSong.PlayOnRemove=false;
  710. NewSong.Looped=false;
  711. NewSong:Play();
  712. NewSong.Name=Assets[i].AssetId;
  713. Core.Data.SongPlaying={ID=Assets[i].AssetId,Name=Assets[i].Name};
  714. function Pauses()
  715. wait(DestroyTablets(Player));
  716. AddPart("Now playing : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function() end);
  717. AddPart("Stop","Really red",Player,function()
  718. DestroyTablets(Player);
  719. wait(NewSong:Stop());
  720. NewSong:Destroy();
  721. AddPart("Song stopped","Really red",Player,nil);
  722. end)
  723. AddPart("Pause","Bright orange",Player,function()
  724. DestroyTablets(Player);
  725. NewSong:Pause();
  726. AddPart("Song paused","Bright blue",Player,function() end);
  727. AddPart("Play","Lime green",Player,function()
  728. DestroyTablets(Player)
  729. AddPart("Playing "..Assets[i].Name,"Bright blue",Player,function() end);
  730. NewSong:Play();
  731. Pauses();
  732. end);
  733. end);
  734. AddPart("Back","Bright blue",Player,function()
  735. DestroyTablets(Player);
  736. List(Player);
  737. AddPart("Back to current song","Bright blue",Player,function()
  738. Pauses();
  739. end);
  740. end)
  741. end;
  742. Pauses();
  743. end;
  744. end);
  745. end);
  746. end;
  747. end;
  748. List(Player);
  749. end;
  750. if Flags["stop"] then
  751. for i,v in pairs(script.Songs:GetChildren()) do
  752. wait(v:Stop());
  753. v:Destroy();
  754. end;
  755. AddPart("Stopped all songs!","Really red",Player,nil);
  756. Core.Data.SongPlaying=nil;
  757. end;
  758. if next(Flags) == nil then
  759. AddPart("No name selected!",'Random',Player,nil);
  760. end;
  761. end)
  762. end);
  763.  
  764. NewCommand("Kill","Kills <player/all>",2,{"kill"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  765. pcall(function()
  766. if Flags["all"] then
  767. if PlayerRank > 4 then
  768. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  769. v.Character:BreakJoints()
  770. end;
  771. else
  772. AddPart("Your rank is too low. Require : 4",'Really red',v,nil);
  773. end;
  774. end;
  775. if Flags["plr"] then
  776. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  777. Selected.Character:BreakJoints();
  778. end;
  779. if next(Flags) == nil then
  780. AddPart("No player selected!","Really red",Player,nil);
  781. end;
  782. end);
  783. end);
  784.  
  785. NewCommand("Forcefield","Adds a forcefield to <player/all>",2,{"ff"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  786. pcall(function()
  787. if Flags["all"] then
  788. if PlayerRank > 4 then
  789. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  790. Instance.new("ForceField",v.Character)
  791. end;
  792. else
  793. AddPart("Your rank is too low. Require : 4",'Really red',v,nil);
  794. end;
  795. end;
  796. if Flags["plr"] then
  797. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  798. Instance.new("ForceField",Selected.Character)
  799. end;
  800. if next(Flags) == nil then
  801. AddPart("No player selected!","Really red",Player,nil);
  802. end;
  803. end);
  804. end);
  805.  
  806. NewCommand("Respawn","Respawns <player/all>",2,{"respawn","rs"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  807. pcall(function()
  808. if Flags["all"] then
  809. if PlayerRank > 4 then
  810. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  811. v:LoadCharacter();
  812. end;
  813. else
  814. AddPart("Your rank is too low. Require : 4",'Really red',v,nil);
  815. end;
  816. end;
  817. if Flags["plr"] then
  818. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  819. Selected:LoadCharacter();
  820. end;
  821. if next(Flags) == nil then
  822. AddPart("No player selected!","Really red",Player,nil);
  823. end;
  824. end);
  825. end);
  826.  
  827. NewCommand("Kick","Kicks <player/all>",6,{"kick"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  828. pcall(function()
  829. if Flags["all"] then
  830. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  831. Core.Packets.Kick(v);
  832. end;
  833. end;
  834. if Flags["plr"] then
  835. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  836. Core.Packets.Kick(Selected);
  837. end;
  838. if next(Flags) == nil then
  839. AddPart("No player selected!","Really red",Player,nil);
  840. end;
  841. end);
  842. end);
  843.  
  844. NewCommand("Bans","Lists all banned players",4,{"b","bans"},{"plr"},function(Message,Flags,Player,PlayerRank)
  845. wait(DestroyTablets(Player));
  846. table.foreach(Core.Banned,function(Index,PlayerTable)
  847. AddPart(PlayerTable.Username,"Really red",Player,function()
  848. wait(DestroyTablets(Player));
  849. table.foreach(PlayerTable,function(Name,Value)
  850. AddPart(Name.." : "..Value,"Really red",Player,nil);
  851. AddPart("Unban player?","Bright green",Player,function()
  852. DestroyTablets(Player);
  853. AddPart("Unbanned "..PlayerTable.Name,"Bright green",Player,nil);
  854. PlayerTable = nil;
  855. end); --//Only if it's local.
  856. end)
  857. end);
  858. end)
  859. end);
  860.  
  861. NewCommand("Website Flag","Allows quick write/read",7,{"web"},{"update"},function(Message,Flags,Player,PlayerRank)
  862. if Flags["update"] then
  863. local Success,Error=pcall(function() Core.CoreFunctions.UpdateBanTable() end)
  864. if not Success then
  865. return AddPart("There was an error while updating!","Bright red",Player,nil);
  866. end;
  867. AddPart("Successfully updated databases!","Bright green",Player,nil);
  868. end;
  869. end);
  870.  
  871. NewCommand("Modules","Modules Management",7,{"modules"},{"load"},function(Message,Flags,Player,PlayerRank)
  872. if Flags["load"] then
  873. --return AddPart("Load not implemented yet!","Really red",Player,nil);
  874. local ScriptLoad,Error = ypcall(function() game:GetService("HttpService"):GetAsync(Flags["load"][1]:sub(2)) end);
  875. if not ScriptLoad then
  876. return AddPart("There was an error while loading this module.","Really red",Player,nil);
  877. --return AddPart("Load not implemented yet!","Really red",Player,nil);
  878. else
  879. --ScriptLoad = game:GetService("HttpService"):GetAsync(Flags["load"][1]:sub(2));
  880. return AddPart("Load not implemented yet!","Really red",Player,nil);
  881. end;
  882. if string.find(ScriptLoad,"--promsig%93aa8c4f1d11ecc46edd0e0aee91f8ef72e9a078771d162d4c2202eada455a28") ~= nil then
  883. local Thread,Error = coroutine.create(function()
  884. local Success,Fail = loadstring(ScriptLoad,[[ModuleService]])();
  885. if not Success then
  886. AddPart("[Prometheus Module System]\n"..Fail,"Really red",Player,nil);
  887. end;
  888. end)
  889. coroutine.resume(Thread)
  890. else
  891. return AddPart("Security Check Failed!","Really red",Player,nil);
  892. end;
  893. end;
  894. if Flags["stop"] then
  895. coroutine.yield(Core.Modules[Flags["stop"]:sub(2)].Thread) --Attempt to stop the thread
  896. Core.Modules[Flags["stop"]:sub(2)].Kill = true; --Hit the trains brakes!
  897. Core.ThreadManager.StatusThread(Core.Modules[Flags["stop"]:sub(2)].Thread)
  898. end;
  899. if next(Flags) == nil then
  900. DestroyTablets(Player)
  901. return AddPart("Load not implemented yet!","Really red",Player,nil);
  902. end;
  903. end);
  904.  
  905. NewCommand("Destroy Tablets","Destroys your tablets",1,{'dt'},{"all","plr"},function(Message,Flags,Player,PlayerRank)
  906. pcall(function()
  907. if Flags["all"] then
  908. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  909. DestroyTablets(v)
  910. end;
  911. end;
  912. if Flags["plr"] then
  913. local Players=FindPlayer(Flags["plr"][1]:sub(2));
  914. DestroyTablets(Players);
  915. end;
  916. if next(Flags) == nil then
  917. DestroyTablets(Player)
  918. end;
  919. end);
  920. end);
  921.  
  922. NewCommand("Players","Lists all players",5,{"plrs","players","plys","plyrs"},{"plr"},function(Message,Flags,Player,PlayerRank)
  923. pcall(function()
  924. if Flags["plr"] then
  925. local v=FindPlayer(Flags["plr"][1]:sub(2));
  926. DestroyTablets(Player);
  927. if v==nil then
  928. return AddPart("Selected player was not found!","Really red",Player,nil);
  929. end;
  930. wait(DestroyTablets(Player));
  931. AddPart("Name - "..v.Name,Core.Players[Player.Name].Data.Colour,Player,nil);
  932. AddPart("Age - "..v.AccountAge,Core.Players[Player.Name].Data.Colour,Player,nil);
  933. AddPart("BetKey - "..Core.Players[v.Name].Settings.BetKey,Core.Players[Player.Name].Data.Colour,Player,function()
  934. DestroyTablets(Player);
  935. table.foreach(Core.BetKeys,function(Index,Key)
  936. AddPart(Key,Core.Players[Player.Name].Data.Colour,Player,function()
  937. DestroyTablets(Player);
  938. Core.Players[v.Name].Settings.BetKey=Key;
  939. if Player ~= v then
  940. AddPart(v.Name.."'s bet key is now "..Key,Core.Players[Player.Name].Data.Colour,Player,nil);
  941. end;
  942. AddPart("Your bet key is now "..Key,Core.Players[v.Name].Data.Colour,v,nil);
  943. end)
  944. end)
  945. AddPart("Cancel","Bright red",Player,function()
  946. DestroyTablets(Player);
  947. end);
  948. end);
  949. AddPart("Colour - "..Core.Players[v.Name].Data.Colour,Core.Players[Player.Name].Data.Colour,Player,function()
  950. local Colours={"White","Bright red","Bright green","Bright blue","Bright yellow","Toothpaste","Pink","Black"};
  951. DestroyTablets(Player);
  952. table.foreach(Colours,function(Index,Colour)
  953. AddPart(Colour,Colour,Player,function()
  954. DestroyTablets(Player);
  955. Core.Players[v.Name].Data.Colour=Colour;
  956. if Player ~= v then
  957. AddPart(v.Name.."'s default colour is now "..Colour,Core.Players[Player.Name].Data.Colour,Player,nil);
  958. end;
  959. AddPart("Your default colour is now "..Colour,Core.Players[v.Name].Data.Colour,v,nil);
  960. end);
  961. end);
  962. AddPart("Cancel","Bright red",Player,function()
  963. DestroyTablets(Player);
  964. end);
  965. end);
  966. AddPart("Rank - "..Core.Players[v.Name].Rank,Core.Players[Player.Name].Data.Colour,Player,function()
  967. DestroyTablets(Player);
  968. table.foreach(Core.Ranks,function(Index,Value)
  969. AddPart(Value.." - "..Index,Core.Players[Player.Name].Data.Colour,Player,function()
  970. if Core.Players[Player.Name].Rank < Core.Players[v.Name].Rank then
  971. DestroyTablets(Player);
  972. return AddPart(v.Name.." outranks you!","Bright red",Player,nil);
  973. end;
  974. DestroyTablets(Player);
  975. Core.Players[v.Name].Rank=Index;
  976. if Player ~= v then
  977. AddPart(v.Name.."'s rank is now "..Value,Core.Players[Player.Name].Data.Colour,Player,nil);
  978. end;
  979. AddPart("Your rank is now "..Value.." ["..Index.."]",Core.Players[v.Name].Data.Colour,v,nil);
  980. end);
  981. end);
  982. AddPart("Cancel","Bright red",Player,function()
  983. DestroyTablets(Player);
  984. end);
  985. end);
  986. AddPart("Dismiss","Bright red",Player,function()
  987. DestroyTablets(Player);
  988. end);
  989. AddPart("Kick","Bright orange",Player,function()
  990. local Success,Error=pcall(function() Core.Packets.Kick(v) end);
  991. if not Success then
  992. DestroyTablets(Player);
  993. AddPart("[Kick Packet] There was a serious error! Player was not kicked successfully!","Bright red",Player,nil);
  994. end;
  995. end);
  996. --[[ AddPart("Player Settings",Core.Players[Player.Name].Data.Colour,Player,function()
  997. AddPart("Auto Dismiss : "..Core.Players[Player.Name].Settings.AutoDismiss,Core.Players[Player.Name].Data.Colour,function()
  998. DestroyTablets(Player);
  999. AddPart("True","Bright green",Player,function()
  1000. DestroyTablets(Play er);
  1001. Core.Players[Player.Name].Settings.AutoDismiss = true;
  1002. end)
  1003.  
  1004. end)
  1005. end)]]--
  1006. AddPart("Ban","Dusty Rose",Player,function()
  1007. local Success,Error=pcall(Core.Packets.Kick,v);
  1008. if not Success then
  1009. DestroyTablets(Player);
  1010. return AddPart("[Ban Packet] There was a serious error! Player was not banned successfully!","Bright red",Player,nil);
  1011. end;
  1012. wait(DestroyTablets(Player));
  1013. AddPart("Would you like to add a reason?","Bright blue",Player,function() end)
  1014. AddPart("Yes","Bright green",Player,function()
  1015. DestroyTablets(Player);
  1016. table.foreach(Core.BanResponse,function(Index,Resp)
  1017. AddPart(Resp,"Really red",Player,function()
  1018. DestroyTablets(Player);
  1019. Core.Packets.BanR(v,Resp);
  1020. AddPart(v.Name.." is now banned for : "..Resp,"Bright green",Player,nil);
  1021. end);
  1022. end);
  1023. end);
  1024. AddPart("No","Really red",Player,function()
  1025. Core.Packets.Ban(v)
  1026. DestroyTablets(Player)
  1027. end)
  1028. end);
  1029. end;
  1030. if next(Flags) == nil then
  1031. DestroyTablets(Player);
  1032. function Main()
  1033. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  1034. AddPart(v.Name,Core.Players[Player.Name].Data.Colour,Player,function()
  1035. wait(DestroyTablets(Player));
  1036. AddPart("Name - "..v.Name,Core.Players[Player.Name].Data.Colour,Player,nil);
  1037. AddPart("Age - "..v.AccountAge,Core.Players[Player.Name].Data.Colour,Player,nil);
  1038. AddPart("BetKey - "..Core.Players[v.Name].Settings.BetKey,Core.Players[Player.Name].Data.Colour,Player,function()
  1039. DestroyTablets(Player);
  1040. table.foreach(Core.BetKeys,function(Index,Key)
  1041. AddPart(Key,Core.Players[Player.Name].Data.Colour,Player,function()
  1042. DestroyTablets(Player);
  1043. Core.Players[v.Name].Settings.BetKey=Key;
  1044. if Player ~= v then
  1045. AddPart(v.Name.."'s bet key is now "..Key,Core.Players[Player.Name].Data.Colour,Player,nil);
  1046. end;
  1047. AddPart("Your bet key is now "..Key,Core.Players[v.Name].Data.Colour,v,nil);
  1048. end)
  1049. end)
  1050. AddPart("Cancel","Bright red",Player,function()
  1051. DestroyTablets(Player);
  1052. end);
  1053. end);
  1054. AddPart("Colour - "..Core.Players[v.Name].Data.Colour,Core.Players[Player.Name].Data.Colour,Player,function()
  1055. local Colours={"White","Bright red","Bright green","Bright blue","Bright yellow","Toothpaste","Pink","Black"};
  1056. DestroyTablets(Player);
  1057. table.foreach(Colours,function(Index,Colour)
  1058. AddPart(Colour,Colour,Player,function()
  1059. DestroyTablets(Player);
  1060. Core.Players[v.Name].Data.Colour=Colour;
  1061. if Player ~= v then
  1062. AddPart(v.Name.."'s default colour is now "..Colour,Core.Players[Player.Name].Data.Colour,Player,nil);
  1063. end;
  1064. AddPart("Your default colour is now "..Colour,Core.Players[v.Name].Data.Colour,v,nil);
  1065. end);
  1066. end);
  1067. AddPart("Cancel","Bright red",Player,function()
  1068. DestroyTablets(Player);
  1069. end);
  1070. end);
  1071. AddPart("Rank - "..Core.Players[v.Name].Rank,Core.Players[Player.Name].Data.Colour,Player,function()
  1072. DestroyTablets(Player);
  1073. table.foreach(Core.Ranks,function(Index,Value)
  1074. AddPart(Value.." - "..Index,Core.Players[Player.Name].Data.Colour,Player,function()
  1075. if Core.Players[Player.Name].Rank < Core.Players[v.Name].Rank then
  1076. DestroyTablets(Player);
  1077. return AddPart(v.Name.." outranks you!","Bright red",Player,nil);
  1078. end;
  1079. DestroyTablets(Player);
  1080. Core.Players[v.Name].Rank=Index;
  1081. if Player ~= v then
  1082. AddPart(v.Name.."'s rank is now "..Value,Core.Players[Player.Name].Data.Colour,Player,nil);
  1083. end;
  1084. AddPart("Your rank is now "..Value.." ["..Index.."]",Core.Players[v.Name].Data.Colour,v,nil);
  1085. end);
  1086. end);
  1087. AddPart("Cancel","Bright red",Player,function()
  1088. DestroyTablets(Player);
  1089. end);
  1090. end);
  1091. AddPart("Back","Bright blue",Player,function()
  1092. DestroyTablets(Player);
  1093. Main();
  1094. end);
  1095. AddPart("Dismiss","Bright red",Player,function()
  1096. DestroyTablets(Player);
  1097. end);
  1098. AddPart("Kick","Bright orange",Player,function()
  1099. local Success,Error=pcall(function() Core.Packets.Kick(v) end);
  1100. if not Success then
  1101. DestroyTablets(Player);
  1102. AddPart("[Kick Packet] There was a serious error! Player was not kicked successfully!","Bright red",Player,nil);
  1103. end;
  1104. end);
  1105. AddPart("Ban","Dusty Rose",Player,function()
  1106. local Success,Error=pcall(function() Core.Packets.Kick(v) end);
  1107. if not Success then
  1108. DestroyTablets(Player);
  1109. return AddPart("[Ban Packet] There was a serious error! Player was not banned successfully!","Bright red",Player,nil);
  1110. end;
  1111. wait(DestroyTablets(Player));
  1112. AddPart("Would you like to add a reason?","Bright blue",Player,function() end)
  1113. AddPart("Yes","Bright green",Player,function()
  1114. DestroyTablets(Player);
  1115. table.foreach(Core.BanResponse,function(Index,Resp)
  1116. AddPart(Resp,"Really red",Player,function()
  1117. DestroyTablets(Player);
  1118. Core.Packets.BanR(v,Resp);
  1119. AddPart(v.Name.." is now banned for : "..Resp,"Bright green",Player,nil);
  1120. end);
  1121. end);
  1122. end);
  1123. AddPart("No","Really red",Player,function()
  1124. Core.Packets.Ban(v)
  1125. DestroyTablets(Player)
  1126. end)
  1127. end);
  1128. end);
  1129. end;
  1130. end;
  1131. Main();
  1132. end;
  1133. end);
  1134. end);
  1135.  
  1136. NewCommand("Commands","Lists commands",1,{"cmds","commands"},{"rank","cmd"},function(Message,Flags,Player,PlayerRank)
  1137. function Ranks(Player)
  1138. local Player=Player;
  1139. wait(DestroyTablets(Player));
  1140. for i,v in pairs(Core.Ranks) do
  1141. Colours={"White","Dusty Rose","Bright green","Bright blue","Bright yellow","Toothpaste","Pink","Bright violet"};
  1142. AddPart("Rank "..i,Colours[i],Player,function()
  1143. wait(DestroyTablets(Player));
  1144. for a,b in pairs(Core.Commands) do
  1145. if b.Rank==tonumber(i) then --{Name=Name,Desc=Desc,Rank=Rank,Calls=Calls,Flags=Flags,Function=Func}
  1146. AddPart(b.Name,Colours[i],Player,function()
  1147. wait(DestroyTablets(Player));
  1148. AddPart("Min Rank : "..b.Rank,"Bright violet",Player,nil);
  1149. AddPart("Name : "..b.Name,Colours[i],Player,nil);
  1150. AddPart("Calls : "..string.gsub(unpack(b.Calls)," ","; "),"Royal purple",Player,nil);
  1151. pcall(function() AddPart("Flags : "..string.gsub(unpack(b.Flags)," ","; "),"Teal",Player,nil) end);
  1152. AddPart("Description : "..b.Desc,"Sand green",Player,nil);
  1153. AddPart("Back","Bright red",Player,function()
  1154. Ranks(Player);
  1155. end)
  1156. end);
  1157. end;
  1158. end;
  1159. AddPart("Back","Bright red",Player,function()
  1160. Ranks(Player);
  1161. end)
  1162. end)
  1163. end;
  1164. AddPart("Your Rank : "..Core.Players[Player.Name].Rank,"Dark green",Player,function() end)
  1165. end;
  1166. Ranks(Player);
  1167. end);
  1168.  
  1169. NewCommand("Remove/Stop/Kill","Stops Prometheus",7,{"remove","nos"},{},function(Message,Flags,Player,PlayerRank)
  1170. pcall(function()
  1171. AddPart("[Prometheus]\nPrometheus is shutting down, please wait...","Bright green",Player,nil)
  1172. wait(3);
  1173. script:Destroy();
  1174. end);
  1175. end);
  1176.  
  1177. NewCommand("Explore","Sweep scans the game",5,{"explore","e"},{},function(Message,Flags,Player,PlayerRank)
  1178. local Search
  1179. local List
  1180. local ObjectFunctions = (function()
  1181. local NewData = {}
  1182. for ClassName, Data in next, {
  1183. Player = {
  1184. Kick = function(Player)
  1185. Core.Packets.Kick(Player)
  1186. end
  1187. };
  1188. ["Part,WedgePart,Script,Model"] = {
  1189. Destroy = function(Self,Object)
  1190. if Object ~= script then
  1191. return Self.Destroy(Object);
  1192. else
  1193. return AddPart("Can not destroy script","Really red",Player,nil);
  1194. end
  1195. end;
  1196. Remove = function(Self,Object)
  1197. return Self.Destroy(Object);
  1198. end;
  1199. };
  1200. } do
  1201. for NewClassName in tostring(ClassName):gmatch("[^,]+") do
  1202. NewData[NewClassName] = Data;
  1203. end;
  1204. end;
  1205. return NewData
  1206. end)()
  1207. function List(Object)
  1208. DestroyTablets(Player);
  1209. Object = Object or pcall(AddPart,"Can not explore out of DataModel","Really red",Player,nil) and game;
  1210. if ObjectFunctions[Object.ClassName] then
  1211. AddPart("View functions","Toothpaste",Player,function()
  1212. DestroyTablets(Player);
  1213. for Name, Function in next, ObjectFunctions[Object.ClassName] do
  1214. AddPart(Name,"Toothpaste",Player,function()
  1215. pcall(Function, Object);
  1216. end);
  1217. end;
  1218. AddPart("Back","Really red",Player,function()
  1219. List(Object);
  1220. end);
  1221. end);
  1222. else
  1223. AddPart("No functions found","Really red",Player,nil);
  1224. end;
  1225. AddPart("Explore: "..tostring(Object),"Toothpaste",Player,function()
  1226. Search(Object);
  1227. AddPart("View settings","Really red",Player,function()
  1228. List(Object);
  1229. end);
  1230. end);
  1231. AddPart("View parent","Really red",Player,function()
  1232. List(Object.Parent);
  1233. end);
  1234. end;
  1235. function Search(Parent)
  1236. DestroyTablets(Player);
  1237. for _, v in pairs(Parent:GetChildren()) do
  1238. pcall(AddPart,tostring(v),"Toothpaste",Player,function()
  1239. List(v);
  1240. end);
  1241. end;
  1242. end;
  1243. List(game);
  1244. end)
  1245.  
  1246. NewCommand("Execute","Executes/Compiles Lua Code",1,{"exe"},{"http"},function(Message,Flags,Player,PlayerRank)
  1247. local Source = Message;
  1248. if Flags["http"] then
  1249. local success,error = ypcall(function() game:GetService("HttpService"):GetAsync(Flags["http"][1]:sub(2)) end);
  1250. if not success then
  1251. return AddPart("There was an error while loading your script.","Really red",Player,nil);
  1252. end;
  1253. Source = Core.Services.HttpGet(Flags["http"][1]:sub(2))
  1254. end
  1255. if next(Flags) == nil then
  1256. Source = Message;
  1257. end;
  1258. local game=game;
  1259. local error=error;
  1260. local print=print;
  1261. local ypcall=ypcall;
  1262. local pcall=pcall;
  1263. local Spawn=Spawn;
  1264. local coroutine=coroutine;
  1265. local setmetatable=setmetatable;
  1266. local loadstring=loadstring;
  1267. local getmetatable=getmetatable;
  1268. local setfenv=setfenv;
  1269. local getfenv=getfenv;
  1270. local env = {};
  1271. local envs = {};
  1272. local newproxy=newproxy;
  1273. Execute,Error=loadstring(tostring(Source),"[Prometheus Execute]");
  1274.  
  1275. local scriptS = newproxy(true);
  1276. local meta = getmetatable(scriptS);
  1277.  
  1278. meta.__metatable=getmetatable(script);
  1279.  
  1280. function meta:__tostring()
  1281. return tostring(script);
  1282. end;
  1283.  
  1284. function getmember(item,index)
  1285. return item[index];
  1286. end;
  1287.  
  1288. function setmember(item,index,value)
  1289. item[index]=value;
  1290. end;
  1291.  
  1292. function meta:__index(index)
  1293. local suc,res=pcall(getmember,script,index);
  1294. if(not suc)then
  1295. error(index..' is not a valid member of Script',2);
  1296. else
  1297. if index:lower() == "destroy" then
  1298. return function()
  1299. error'You cannot destroy this script';
  1300. end;
  1301. elseif index:lower() == "remove" then
  1302. return function()
  1303. error'You cannot remove this script';
  1304. end;
  1305. end;
  1306. if type(res)=='function' then
  1307. return function(self,...)
  1308. return self[index](self,...)
  1309. end;
  1310. else
  1311. return res;
  1312. end;
  1313. end;
  1314. end;
  1315.  
  1316. function meta:__newindex(index,value)
  1317. suc,res=pcall(setmember,script,index,value);
  1318. return scriptS;
  1319. end;
  1320.  
  1321. for i,v in next, {
  1322. ["restart"]=function()
  1323. --Future function.
  1324. end;
  1325. ["print"]=function(...)
  1326. local Data={...};
  1327. for CurrentEntry,Table_Pos in next,Data do
  1328. if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  1329. Data[CurrentEntry]='__TOSTRING_EDIT';
  1330. end;
  1331. end;
  1332. AddPart(tostring(table.concat(Data,' ')),'White',Player,nil);
  1333. end;
  1334. ["error"]=function(...)
  1335. local Data={...};
  1336. for CurrentEntry,Table_Pos in next,Data do
  1337. if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  1338. Data[CurrentEntry]='__TOSTRING_EDIT';
  1339. end;
  1340. end;
  1341. AddPart(tostring(table.concat(Data,' ')),'Really red',Player,nil);
  1342. end;
  1343. ["warn"]=function(...)
  1344. local Data={...};
  1345. for CurrentEntry,Table_Pos in next,Data do
  1346. if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  1347. Data[CurrentEntry]='__TOSTRING_EDIT';
  1348. end;
  1349. end;
  1350. AddPart(tostring(table.concat(Data,' ')),'Bright orange',Player,nil);
  1351. end;
  1352. ['loadstring']=function(str,...)
  1353. if str == nil then return error("You left your shit' nil.") end
  1354. local rtn={};
  1355. local fArgs={...};
  1356. local succ,res=ypcall(function()
  1357. rtn={loadstring(str,unpack(fArgs))};
  1358. end);
  1359. if(not succ)then return Execute.error(res) end;
  1360. local func,err=unpack(rtn);
  1361. if(func)then
  1362. func=setfenv(func,NewEnvironment);
  1363. end;
  1364. return func,err
  1365. end;
  1366. Core = "Hide";
  1367. Alert = "Hide";
  1368. owner = Player;
  1369. NewEnvironment = "Hide";
  1370. FindPlayer = "Hide";
  1371. NewCommand = "Hide";
  1372. DestroyTablets = "Hide";
  1373. CheckBanned = "Hide";
  1374. OnChatted = "Hide";
  1375. Execute = "Hide";
  1376. CLerp = "Hide";
  1377. ["script"] = scriptS;
  1378. }do
  1379. for str in i:gmatch'([^,]+)'do
  1380. env[str]=v;
  1381. end;
  1382. end;
  1383.  
  1384. NewEnvironment = {
  1385. _SANDBOX = "PK_SANDBOX v1.0";
  1386. };
  1387. if (Execute) then
  1388. --setfenv(0,NewEnvironment);
  1389. local Success,Result=ypcall(setfenv(Execute,setmetatable(NewEnvironment,{
  1390. __index=function(Self,Index)
  1391. local Return = env[Index];
  1392. local OldReturn = getfenv()[Index];
  1393. if Return == "Hide" then
  1394. return Core.Data.Fakes._G[Index];
  1395. elseif Return == nil then
  1396. return OldReturn;
  1397. else
  1398. return Return;
  1399. end;
  1400. end;
  1401. __metatable="Locked!";
  1402. })));
  1403. if (not Success) then
  1404. AddPart(Result,"Really red",Player,nil);
  1405. end;
  1406. else
  1407. AddPart(Error,"Really red",Player,nil);
  1408. end;
  1409. end);
  1410.  
  1411. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  1412. ConnectPlayer(v);
  1413. if Core.Cloud ~= nil then
  1414. AddPart("[BlokAdmin] \nCloud loaded.","Toothpaste",v,nil);
  1415. end
  1416. end;
  1417.  
  1418. game:GetService("Players").PlayerAdded:connect(function(Player)
  1419. ConnectPlayer(Player);
  1420. Alert("A player has joined the game! Player name ="..Player.Name".");
  1421. end);
  1422.  
  1423. game:GetService("Players").PlayerRemoving:connect(function(Player)
  1424. DestroyTablets(Player);
  1425. Alert(Player.Name.." has left the game!");
  1426. end);
  1427. AddPart("If you use this admin for bad purposes, please message me to get a official permit! ~Control22",'Really red',Player,nil);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement