Advertisement
BabyGoatz

Untitled

Aug 4th, 2015
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 88.35 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 Loading
  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. ["BabyGoatz"]={ --//Please leave this here. You don't have to though :P
  21. Name="BabyGoatz";
  22. Settings={
  23. BetKey="!";
  24. AutoDismiss=false;
  25. };
  26. Data={
  27. Tablets={};
  28. Colour="Toothpaste";
  29. };
  30. Rank=7;
  31. };
  32. ["LordRevorius"]={
  33. Name="LordRevorius";
  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.Name = Player.Name;
  280. SpacePart.Transparency = 1;
  281. SpacePart.Anchored = true;
  282. SpacePart.CanCollide = false;
  283. SpacePart.CFrame = CFrame.new(0,1,0);
  284. Adorn = SpacePart.CFrame + Vector3.new(0,6,0) or CFrame.new(0,10,0);
  285. elseif script:FindFirstChild(Player.Name) ~= nil then
  286. --
  287. end;
  288. end;
  289. local Part=Instance.new("Part",script);
  290. Part.CanCollide=false;
  291. Part.Anchored=true;
  292. Part.FormFactor="Custom";
  293. Part.Size=Vector3.new(2,2,2);
  294. Part.CFrame=CFrame.new(Adorn.p);
  295. Part.BackSurface="SmoothNoOutlines";
  296. Part.BottomSurface="SmoothNoOutlines";
  297. Part.FrontSurface="SmoothNoOutlines";
  298. Part.LeftSurface="SmoothNoOutlines";
  299. Part.RightSurface="SmoothNoOutlines";
  300. Part.TopSurface="SmoothNoOutlines";
  301. Part.Locked=true;
  302. local SelectionFrame=Instance.new("SelectionBox",Part);
  303. SelectionFrame.Adornee=Part;
  304. if Colour=="Random" then
  305. SelectionFrame.Color=BrickColor.Random();
  306. else
  307. SelectionFrame.Color=BrickColor.new(Colour);
  308. end;
  309. Part.BrickColor=SelectionFrame.Color;
  310. SelectionFrame.Transparency=0.8;
  311. local Light=Instance.new("PointLight",Part);
  312. Light.Color=BrickColor.new(Colour).Color;
  313. Light.Brightness=100;
  314. Light.Range=10;
  315. Light.Shadows=true;
  316. Light.Enabled=true;
  317. local BillboardGui=Instance.new("BillboardGui",Part);
  318. BillboardGui.Adornee=Part;
  319. --BillboardGui.AlwaysOnTop=false;
  320. BillboardGui.StudsOffset=Vector3.new(0,1,0);
  321. BillboardGui.Size=UDim2.new(3, 0, 3, 0);
  322. local TextL=Instance.new("TextLabel",BillboardGui);
  323. TextL.Text=Text;
  324. TextL.BackgroundTransparency=1;
  325. TextL.Size=UDim2.new(1, 0, 0.5, 0);
  326. TextL.FontSize="Size18";
  327. TextL.Font="SourceSansBold";
  328. TextL.TextColor3=BrickColor.new("White").Color;
  329. TextL.TextStrokeTransparency=0.2;
  330. local TextLabelColor=BrickColor.new(Colour);
  331. TextL.TextStrokeColor3=SelectionFrame.Color.Color;
  332. table.insert(Core.Players[Player.Name].Data.Tablets,Part);
  333. local ClickEvent=Instance.new("ClickDetector",Part);
  334. ClickEvent.MaxActivationDistance=math.huge;--To make sure even if player is nil :P
  335. ClickEvent.MouseHoverEnter:connect(function(PlayerE)
  336. if PlayerE.Name==Player.Name then
  337. for i=1,4 do
  338. game:GetService("RunService").Heartbeat:wait()
  339. Part.Size=Vector3.new(Part.Size.X+0.1,Part.Size.Y+0.1,Part.Size.Z+0.1);
  340. end;
  341. end;
  342. end);
  343. ClickEvent.MouseHoverLeave:connect(function(PlayerE)
  344. if PlayerE.Name==Player.Name then
  345. for i=1,4 do
  346. game:GetService("RunService").Heartbeat:wait()
  347. Part.Size=Vector3.new(Part.Size.X-0.1,Part.Size.Y-0.1,Part.Size.Z-0.1);
  348. end;
  349. end;
  350. end);
  351. ClickEvent.MouseClick:connect(function(PlayerE)
  352. if PlayerE.Name==Player.Name then
  353. if Function==nil then
  354. repeat
  355. game:GetService("RunService").Heartbeat:wait()
  356. Part.Size=Vector3.new(Part.Size.X-0.1,Part.Size.Y-0.1,Part.Size.Z-0.1);
  357. until Part.Size.X<0.3;
  358. Part:Destroy();
  359. for i,v in pairs(Core.Players[Player.Name].Data.Tablets) do
  360. if v==Part then
  361. table.remove(Core.Players[Player.Name].Data.Tablets,i);
  362. end;
  363. end;
  364. else
  365. local Success,Error=ypcall(function()
  366. Function();
  367. end);
  368. if Error then
  369. print("[AddPart Function Error] "..tostring(Error));--//Later on there will be a better debug method!
  370. end;
  371. end;
  372. end;
  373. end);
  374. if (Core.Players[Player.Name].Settings.AutoDismiss == true and Function == nil) then
  375. local InternalThread = coroutine.create(function()
  376. wait(4);
  377. repeat
  378. game:GetService("RunService").Heartbeat:wait()
  379. Part.Size=Vector3.new(Part.Size.X-0.1,Part.Size.Y-0.1,Part.Size.Z-0.1);
  380. until Part.Size.X<0.3;
  381. Part:Destroy();
  382. for i,v in pairs(Core.Players[Player.Name].Data.Tablets) do
  383. if v==Part then
  384. table.remove(Core.Players[Player.Name].Data.Tablets,i);
  385. end;
  386. end;
  387. end);
  388. coroutine.resume(InternalThread);
  389. end;
  390. end;
  391.  
  392. --//Rotation
  393. spawn(function()
  394. local Number=1;
  395. local Player=nil;
  396. game:GetService("RunService").Heartbeat:connect(function()
  397. Number=Number+0.0025;
  398. for i,v in pairs(game.Players:GetPlayers()) do
  399. for a,b in pairs(Core.Players) do
  400. if v.Name==b.Name then
  401. Player=v;
  402. for i=1,#b.Data.Tablets do
  403. if Player.Character and Player.Name and Player.Character:FindFirstChild("Torso") then
  404. if Player.Character.Parent==game.Workspace then
  405. local Parts=Core.Players[Player.Name].Data.Tablets;
  406. local Part=Parts[i];
  407. Part.CFrame=CLerp(Part.CFrame,CFrame.new(game.Workspace[v.Name].Torso.CFrame.p)
  408. *CFrame.Angles(0,math.rad((360/#Parts)*i)+Number,0)
  409. *CFrame.new(3+#Parts,math.sin((tick()+i)*5)/1.5,0)
  410. *CFrame.Angles(0,math.rad(90),0)
  411. *CFrame.Angles(math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2)
  412. ,.1);
  413. end;
  414. elseif script:FindFirstChild(Player.Name) then
  415. local Parts=Core.Players[Player.Name].Data.Tablets;
  416. local Part=Parts[i];
  417. Part.CFrame=CLerp(Part.CFrame,CFrame.new(script:FindFirstChild(Player.Name).CFrame.p)
  418. *CFrame.Angles(0,math.rad((360/#Parts)*i)+Number,0)
  419. *CFrame.new(3+#Parts,math.sin((tick()+i)*5)/1.5,0)
  420. *CFrame.Angles(0,math.rad(90),0)
  421. *CFrame.Angles(math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2,math.sin((tick()+i)*5)/2)
  422. ,.1);
  423. end;
  424. end;
  425. end;
  426. end;
  427. end;
  428. end);
  429. end);
  430.  
  431. function DestroyTablets(Player)
  432. --if not Player or type(Player) ~= "userdata" then return end;
  433. pcall(function()
  434. for i,v in pairs(Core.Players[Player.Name].Data.Tablets) do
  435. local Thread=coroutine.create(function()
  436. repeat
  437. game:GetService("RunService").Heartbeat:wait()
  438. v.Size=Vector3.new(v.Size.X-0.1,v.Size.Y-0.1,v.Size.Z-0.1);
  439. until v.Size.X<0.3;
  440. v:Destroy();
  441. end)
  442. coroutine.resume(Thread)----table.remove(Core.Players[Player.Name].Data.Tablets,i);
  443. end;
  444. Core.Players[Player.Name].Data.Tablets={};
  445. end)
  446. end;
  447.  
  448. function FindPlayer(Player)
  449. local Player=tostring(Player)
  450. for i,v in pairs(game.Players:GetPlayers()) do
  451. local Name=string.lower(string.sub(v.Name,1,string.len(Player)));
  452. if Name==Player then
  453. return v;
  454. end;
  455. end;
  456. end;
  457.  
  458. function CheckBanned(Player)
  459. local Banned=false;
  460. if Core.Players[Player.Name] == nil then return {Banned=false}; end;
  461. if Core.Players[Player.Name].Rank < 0 then
  462. return {Banned=true};
  463. else
  464. return {Banned=false};
  465. end;
  466. end;
  467.  
  468. function ConnectPlayer(Player)
  469. table.foreach(Core.Banned,function(Index,Table)
  470. if Table.Username==Player.Name then
  471. Alert(Player.Name.." was kicked for a persisting ban! Reason : "..Table.Reason);
  472. return Core.Packets.Kick(Player);
  473. end;
  474. end)
  475. --if CheckBanned(Player).Banned==true then
  476. --Core.Packets.Kick(Player);
  477. --end;
  478. if Core.Players[Player.Name] == nil then
  479. Core.Players[Player.Name]={Name=Player.Name;Rank=1;Data={Tablets={};Colour=Core.Settings.DefaultColour};Settings={BetKey="!"}};
  480. Player.Chatted:connect(function(Message)
  481. OnChatted(Message,Player);
  482. end);
  483. AddPart("[Prometheus]\nVersion 1.0",'Really red',Player,nil);
  484. else
  485. Player.Chatted:connect(function(Message)
  486. OnChatted(Message,Player);
  487. end);
  488. AddPart("[Prometheus]\nWelcome back "..Player.Name.."!","Random",Player,nil);
  489. end;
  490. end;
  491.  
  492. function Alert(Message)
  493. for i,v in pairs(Core.Players) do
  494. if v.Rank >= 5 then
  495. if game.Players:FindFirstChild(v.Name) then
  496. AddPart(Message,v.Data.Colour,game.Players[v.Name],nil);
  497. end;
  498. end;
  499. end;
  500. end;
  501.  
  502. --//Chatted Function
  503. function OnChatted(Message,Player)
  504. if not Message or type(Message) ~= "string" then
  505. return;
  506. end;
  507. if not Player or type(Player) ~= "userdata" then
  508. return;
  509. end;
  510. Message=Message:gsub("/e ","");
  511. local InTCheck=(Message:sub(1,1)==Core.Players[Player.Name].Settings.BetKey);
  512. if InTCheck then
  513. Message=Message:sub(2);
  514. local SpaceDet=Message:find(" ");
  515. local SubString,ProString;
  516. pcall(function()
  517. SubString=Message:sub(1,SpaceDet-1);
  518. ProString=Message:sub(SpaceDet+1);
  519. end)
  520. if not SubString then
  521. SubString=Message;
  522. end;
  523. if not ProString then
  524. ProString="";
  525. end;
  526. local Profile=Core.Players[Player.Name];
  527. for i,v in pairs(Core.Commands) do
  528. table.foreach(v.Calls,function(self,index)
  529. if SubString==index and Profile.Rank then
  530. if v.Rank <= Profile.Rank then
  531. local CCFlags={};
  532. for a,s in pairs(v.Flags) do
  533. if string.find(ProString,("-"..s)) ~= nil then
  534. --table.insert(CCFlags,s);
  535. local FlagData;
  536. local Test,Error=pcall(function()
  537. string.sub(ProString,string.find(ProString,("-"..s)),string.sub(ProString,string.find(ProString:sub(string.find(ProString,("-"..s))+1),"-")));
  538. end)
  539. if not Test then
  540. FlagData=ProString;
  541. else
  542. FlagData=string.sub(ProString,string.find(ProString,("-"..s)),string.sub(ProString,string.find(ProString:sub(string.find(ProString,("-"..s))+1),"-")));
  543. end
  544. FlagData=string.gsub(FlagData,("-"..s),"",1);
  545. CCFlags[s]={FlagData};
  546. ProString=string.gsub(ProString,("-"..s),"",1);
  547. end;
  548. end;
  549. local Thread=coroutine.create(v.Function);
  550. local Success,Error=coroutine.resume(Thread,ProString,CCFlags,Player,Profile.Rank);
  551. if not Success then
  552. print("[OnChatted Error] "..tostring(Error));
  553. end;
  554. else
  555. AddPart("Your rank is too low to access this command. Required Rank : "..v.Rank,"Really red",Player,nil);
  556. end;
  557. end;
  558. end);
  559. end;
  560. end;
  561. end;
  562.  
  563. function NewCommand(Name,Desc,Rank,Calls,Flags,Func)
  564. Core.Commands[Name]={Name=Name,Desc=Desc,Rank=Rank,Calls=Calls,Flags=Flags,Function=Func}
  565. end;
  566.  
  567. NewCommand("Ping","Pings a tablet to speaker",1,{'ping'},{"all","plr"},function(Message,Flags,Player,PlayerRank)
  568. function ParseTest(Text,PlayerSent,PlayerToSend)
  569. local TEXTS = {
  570. ["%PLAYER%"] = PlayerToSend.Name;
  571. ["%OWNER%"] = PlayerSent.Name;
  572. ["%AGE%"] = PlayerToSend.AccountAge;
  573. ["%RANK%"] = Core.Players[PlayerToSend.Name].Rank;
  574. };
  575. local Text = tostring(Text);
  576. print(Text)
  577. for i,v in pairs(TEXTS) do
  578. if string.find(Text,tostring(i)) then
  579. print(i,v)
  580. string.gsub(Text,tostring(i),tostring(v));
  581. end;
  582. end;
  583. print(Text)
  584. return Text;
  585. end;
  586.  
  587. if Message == "" then return end;
  588. pcall(function()
  589. if Flags["all"] then
  590. if PlayerRank > 4 then
  591. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  592. --ParseTest(Flags["all"][1],Player,v)
  593. AddPart(Flags["all"][1],'Random',v,nil);
  594. end;
  595. else
  596. AddPart("Your rank is too low.",'Really red',v,nil);
  597. end;
  598. end;
  599. if Flags["plr"] then
  600. local Find = string.find(Flags["plr"][1]:sub(2)," ");
  601. local PlayerS = string.sub(Flags["plr"][1]:sub(2),1,Find-1);
  602. local MSG = string.sub(Flags["plr"][1]:sub(2),Find+1);
  603. local Selected=FindPlayer(PlayerS);
  604. if Selected == nil then
  605. return AddPart("No player found.","Really red",Player,nil);
  606. end;
  607. --MSG = ParseMessage(tostring(MSG),Player,Selected)
  608. AddPart(MSG,"Random",Selected,nil);
  609. end;
  610. if next(Flags) == nil then
  611. AddPart(tostring(Message),'Random',Player,nil);
  612. ParseMessage(tostring(Message),Player,Player)
  613. end;
  614. end);
  615. end);
  616.  
  617. NewCommand("Networked Players","Gets all players, network or not.",7,{'net'},{},function(Message,Flags,Player,PlayerRank)
  618. if msg == "" then return end;
  619. pcall(function()
  620. if next(Flags) == nil then
  621. wait(DestroyTablets(Player));
  622. for i,v in ipairs(game:FindService("NetworkServer"):GetChildren()) do
  623. local Players=v:GetPlayer();
  624. if(not Players.Parent) then
  625. AddPart(Players.Name.." | NIL",Core.Players[Player.Name].Data.Colour,Player,function()
  626. wait(DestroyTablets(Player));
  627. AddPart("Disconnect","Really red",Player,function()
  628. wait(DestroyTablets(Player));
  629. Core.Packets.Kick(Players);
  630. end)
  631. end);
  632. else
  633. AddPart(Players.Name.." | Players",Core.Players[Player.Name].Data.Colour,Player,nil);
  634. end;
  635. end;
  636. end;
  637. end);
  638. end);
  639.  
  640. NewCommand("Music","The scripts music player, self explanatory.",4,{"m","music","song"},{"name","stop"},function(Message,Flags,Player,PlayerRank)
  641. local RbxGui = assert(LoadLibrary("RbxGui"));
  642. pcall(function()
  643. if Flags["name"] then
  644. local Name=Flags["name"][1]:sub(2);
  645. local Http=Core.Services.Http;
  646. local Query="http://roproxy.tk/catalog/json?Keyword="..tostring(Name).."&Category=9&ResultsPerPage=20";
  647. local Assets=Http:JSONDecode(Http:GetAsync(Query));
  648. function List(Player)
  649. wait(DestroyTablets(Player));
  650. for i=1,#Assets do
  651. AddPart("Name : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function()
  652. wait(DestroyTablets(Player));
  653. AddPart("Name : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function() end);
  654. AddPart('Publisher: '..Assets[i].Creator,Core.Players[Player.Name].Data.Colour,Player,function() end);
  655. AddPart('Play song','Lime green',Player,function()
  656. if Core.Data.SongPlaying ~= nil then
  657. DestroyTablets(Player);
  658. 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);
  659. AddPart("Yes","Bright green",Player,function()
  660. DestroyTablets(Player);
  661. local Song=script.Songs:FindFirstChild(tostring(Core.Data.SongPlaying.ID));
  662. wait(Song:Stop());
  663. Song:Destroy();
  664. local NewSong=Instance.new("Sound",script.Songs);
  665. NewSong.SoundId="rbxassetid://"..Assets[i].AssetId;
  666. NewSong.PlayOnRemove=false;
  667. NewSong.Looped=false;
  668. NewSong:Play();
  669. NewSong.Name=Assets[i].AssetId;
  670. Core.Data.SongPlaying={ID=Assets[i].AssetId,Name=Assets[i].Name};
  671. function Pause()
  672. wait(DestroyTablets(Player));
  673. AddPart("Now playing : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function() end);
  674. AddPart("Stop","Really red",Player,function()
  675. DestroyTablets(Player);
  676. wait(NewSong:Stop());
  677. NewSong:Destroy();
  678. AddPart("Song stopped","Really red",Player,nil);
  679. end)
  680. AddPart("Pause","Bright orange",Player,function()
  681. DestroyTablets(Player);
  682. NewSong:Pause();
  683. AddPart("Song paused","Bright blue",Player,function() end);
  684. AddPart("Play","Lime green",Player,function()
  685. DestroyTablets(Player)
  686. NewSong:Play();
  687. AddPart("Playing "..Assets[i].Name,"Bright blue",Player,function() end);
  688. Pause()
  689. end);
  690. end)
  691. AddPart("Back","Bright blue",Player,function()
  692. DestroyTablets(Player);
  693. List(Player);
  694. AddPart("Back to current song","Bright blue",Player,function()
  695. Pause();
  696. end);
  697. end)
  698. end;
  699. Pause();
  700. end);
  701. AddPart("No","Bright red",Player,function()
  702. Pause();
  703. end);
  704. else
  705. wait(DestroyTablets(Player));
  706. local NewSong=Instance.new("Sound",script.Songs);
  707. NewSong.SoundId="rbxassetid://"..Assets[i].AssetId;
  708. NewSong.PlayOnRemove=false;
  709. NewSong.Looped=false;
  710. NewSong:Play();
  711. NewSong.Name=Assets[i].AssetId;
  712. Core.Data.SongPlaying={ID=Assets[i].AssetId,Name=Assets[i].Name};
  713. function Pauses()
  714. wait(DestroyTablets(Player));
  715. AddPart("Now playing : "..Assets[i].Name,Core.Players[Player.Name].Data.Colour,Player,function() end);
  716. AddPart("Stop","Really red",Player,function()
  717. DestroyTablets(Player);
  718. wait(NewSong:Stop());
  719. NewSong:Destroy();
  720. AddPart("Song stopped","Really red",Player,nil);
  721. end)
  722. AddPart("Pause","Bright orange",Player,function()
  723. DestroyTablets(Player);
  724. NewSong:Pause();
  725. AddPart("Song paused","Bright blue",Player,function() end);
  726. AddPart("Play","Lime green",Player,function()
  727. DestroyTablets(Player)
  728. AddPart("Playing "..Assets[i].Name,"Bright blue",Player,function() end);
  729. NewSong:Play();
  730. Pauses();
  731. end);
  732. end);
  733. AddPart("Back","Bright blue",Player,function()
  734. DestroyTablets(Player);
  735. List(Player);
  736. AddPart("Back to current song","Bright blue",Player,function()
  737. Pauses();
  738. end);
  739. end)
  740. end;
  741. Pauses();
  742. end;
  743. end);
  744. end);
  745. end;
  746. end;
  747. List(Player);
  748. end;
  749. if Flags["stop"] then
  750. for i,v in pairs(script.Songs:GetChildren()) do
  751. wait(v:Stop());
  752. v:Destroy();
  753. end;
  754. AddPart("Stopped all songs!","Really red",Player,nil);
  755. Core.Data.SongPlaying=nil;
  756. end;
  757. if next(Flags) == nil then
  758. AddPart("No name selected!",'Random',Player,nil);
  759. end;
  760. end)
  761. end);
  762.  
  763. NewCommand("Kill","Kills <player/all>",2,{"kill"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  764. pcall(function()
  765. if Flags["all"] then
  766. if PlayerRank > 4 then
  767. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  768. v.Character:BreakJoints()
  769. end;
  770. else
  771. AddPart("Your rank is too low. Require : 4",'Really red',v,nil);
  772. end;
  773. end;
  774. if Flags["plr"] then
  775. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  776. Selected.Character:BreakJoints();
  777. end;
  778. if next(Flags) == nil then
  779. AddPart("No player selected!","Really red",Player,nil);
  780. end;
  781. end);
  782. end);
  783.  
  784. NewCommand("Forcefield","Adds a forcefield to <player/all>",2,{"ff"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  785. pcall(function()
  786. if Flags["all"] then
  787. if PlayerRank > 4 then
  788. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  789. Instance.new("ForceField",v.Character)
  790. end;
  791. else
  792. AddPart("Your rank is too low. Require : 4",'Really red',v,nil);
  793. end;
  794. end;
  795. if Flags["plr"] then
  796. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  797. Instance.new("ForceField",Selected.Character)
  798. end;
  799. if next(Flags) == nil then
  800. AddPart("No player selected!","Really red",Player,nil);
  801. end;
  802. end);
  803. end);
  804.  
  805. NewCommand("Respawn","Respawns <player/all>",2,{"respawn","rs"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  806. pcall(function()
  807. if Flags["all"] then
  808. if PlayerRank > 4 then
  809. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  810. v:LoadCharacter();
  811. end;
  812. else
  813. AddPart("Your rank is too low. Require : 4",'Really red',v,nil);
  814. end;
  815. end;
  816. if Flags["plr"] then
  817. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  818. Selected:LoadCharacter();
  819. end;
  820. if next(Flags) == nil then
  821. AddPart("No player selected!","Really red",Player,nil);
  822. end;
  823. end);
  824. end);
  825.  
  826. NewCommand("Kick","Kicks <player/all>",6,{"kick"},{"plr","all"},function(Message,Flags,Player,PlayerRank)
  827. pcall(function()
  828. if Flags["all"] then
  829. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  830. Core.Packets.Kick(v);
  831. end;
  832. end;
  833. if Flags["plr"] then
  834. local Selected=FindPlayer(Flags["plr"][1]:sub(2));
  835. Core.Packets.Kick(Selected);
  836. end;
  837. if next(Flags) == nil then
  838. AddPart("No player selected!","Really red",Player,nil);
  839. end;
  840. end);
  841. end);
  842.  
  843. NewCommand("Bans","Lists all banned players",4,{"b","bans"},{"plr"},function(Message,Flags,Player,PlayerRank)
  844. wait(DestroyTablets(Player));
  845. table.foreach(Core.Banned,function(Index,PlayerTable)
  846. AddPart(PlayerTable.Username,"Really red",Player,function()
  847. wait(DestroyTablets(Player));
  848. table.foreach(PlayerTable,function(Name,Value)
  849. AddPart(Name.." : "..Value,"Really red",Player,nil);
  850. AddPart("Unban player?","Bright green",Player,function()
  851. DestroyTablets(Player);
  852. AddPart("Unbanned "..PlayerTable.Name,"Bright green",Player,nil);
  853. PlayerTable = nil;
  854. end); --//Only if it's local.
  855. end)
  856. end);
  857. end)
  858. end);
  859.  
  860. NewCommand("Website Flag","Allows quick write/read",7,{"web"},{"update"},function(Message,Flags,Player,PlayerRank)
  861. if Flags["update"] then
  862. local Success,Error=pcall(function() Core.CoreFunctions.UpdateBanTable() end)
  863. if not Success then
  864. return AddPart("There was an error while updating!","Bright red",Player,nil);
  865. end;
  866. AddPart("Successfully updated databases!","Bright green",Player,nil);
  867. end;
  868. end);
  869.  
  870. NewCommand("Modules","Modules Management",7,{"modules"},{"load"},function(Message,Flags,Player,PlayerRank)
  871. if Flags["load"] then
  872. --return AddPart("Load not implemented yet!","Really red",Player,nil);
  873. local ScriptLoad,Error = ypcall(function() game:GetService("HttpService"):GetAsync(Flags["load"][1]:sub(2)) end);
  874. if not ScriptLoad then
  875. return AddPart("There was an error while loading this module.","Really red",Player,nil);
  876. --return AddPart("Load not implemented yet!","Really red",Player,nil);
  877. else
  878. --ScriptLoad = game:GetService("HttpService"):GetAsync(Flags["load"][1]:sub(2));
  879. return AddPart("Load not implemented yet!","Really red",Player,nil);
  880. end;
  881. if string.find(ScriptLoad,"--promsig%93aa8c4f1d11ecc46edd0e0aee91f8ef72e9a078771d162d4c2202eada455a28") ~= nil then
  882. local Thread,Error = coroutine.create(function()
  883. local Success,Fail = loadstring(ScriptLoad,[[ModuleService]])();
  884. if not Success then
  885. AddPart("[Prometheus Module System]\n"..Fail,"Really red",Player,nil);
  886. end;
  887. end)
  888. coroutine.resume(Thread)
  889. else
  890. return AddPart("Security Check Failed!","Really red",Player,nil);
  891. end;
  892. end;
  893. if Flags["stop"] then
  894. coroutine.yield(Core.Modules[Flags["stop"]:sub(2)].Thread) --Attempt to stop the thread
  895. Core.Modules[Flags["stop"]:sub(2)].Kill = true; --Hit the trains brakes!
  896. Core.ThreadManager.StatusThread(Core.Modules[Flags["stop"]:sub(2)].Thread)
  897. end;
  898. if next(Flags) == nil then
  899. DestroyTablets(Player)
  900. return AddPart("Load not implemented yet!","Really red",Player,nil);
  901. end;
  902. end);
  903.  
  904. NewCommand("Destroy Tablets","Destroys your tablets",1,{'dt'},{"all","plr"},function(Message,Flags,Player,PlayerRank)
  905. pcall(function()
  906. if Flags["all"] then
  907. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  908. DestroyTablets(v)
  909. end;
  910. end;
  911. if Flags["plr"] then
  912. local Players=FindPlayer(Flags["plr"][1]:sub(2));
  913. DestroyTablets(Players);
  914. end;
  915. if next(Flags) == nil then
  916. DestroyTablets(Player)
  917. end;
  918. end);
  919. end);
  920.  
  921. NewCommand("Players","Lists all players",5,{"plrs","players","plys","plyrs"},{"plr"},function(Message,Flags,Player,PlayerRank)
  922. pcall(function()
  923. if Flags["plr"] then
  924. local v=FindPlayer(Flags["plr"][1]:sub(2));
  925. DestroyTablets(Player);
  926. if v==nil then
  927. return AddPart("Selected player was not found!","Really red",Player,nil);
  928. end;
  929. wait(DestroyTablets(Player));
  930. AddPart("Name - "..v.Name,Core.Players[Player.Name].Data.Colour,Player,nil);
  931. AddPart("Age - "..v.AccountAge,Core.Players[Player.Name].Data.Colour,Player,nil);
  932. AddPart("BetKey - "..Core.Players[v.Name].Settings.BetKey,Core.Players[Player.Name].Data.Colour,Player,function()
  933. DestroyTablets(Player);
  934. table.foreach(Core.BetKeys,function(Index,Key)
  935. AddPart(Key,Core.Players[Player.Name].Data.Colour,Player,function()
  936. DestroyTablets(Player);
  937. Core.Players[v.Name].Settings.BetKey=Key;
  938. if Player ~= v then
  939. AddPart(v.Name.."'s bet key is now "..Key,Core.Players[Player.Name].Data.Colour,Player,nil);
  940. end;
  941. AddPart("Your bet key is now "..Key,Core.Players[v.Name].Data.Colour,v,nil);
  942. end)
  943. end)
  944. AddPart("Cancel","Bright red",Player,function()
  945. DestroyTablets(Player);
  946. end);
  947. end);
  948. AddPart("Colour - "..Core.Players[v.Name].Data.Colour,Core.Players[Player.Name].Data.Colour,Player,function()
  949. local Colours={"White","Bright red","Bright green","Bright blue","Bright yellow","Toothpaste","Pink","Black"};
  950. DestroyTablets(Player);
  951. table.foreach(Colours,function(Index,Colour)
  952. AddPart(Colour,Colour,Player,function()
  953. DestroyTablets(Player);
  954. Core.Players[v.Name].Data.Colour=Colour;
  955. if Player ~= v then
  956. AddPart(v.Name.."'s default colour is now "..Colour,Core.Players[Player.Name].Data.Colour,Player,nil);
  957. end;
  958. AddPart("Your default colour is now "..Colour,Core.Players[v.Name].Data.Colour,v,nil);
  959. end);
  960. end);
  961. AddPart("Cancel","Bright red",Player,function()
  962. DestroyTablets(Player);
  963. end);
  964. end);
  965. AddPart("Rank - "..Core.Players[v.Name].Rank,Core.Players[Player.Name].Data.Colour,Player,function()
  966. DestroyTablets(Player);
  967. table.foreach(Core.Ranks,function(Index,Value)
  968. AddPart(Value.." - "..Index,Core.Players[Player.Name].Data.Colour,Player,function()
  969. if Core.Players[Player.Name].Rank < Core.Players[v.Name].Rank then
  970. DestroyTablets(Player);
  971. return AddPart(v.Name.." outranks you!","Bright red",Player,nil);
  972. end;
  973. DestroyTablets(Player);
  974. Core.Players[v.Name].Rank=Index;
  975. if Player ~= v then
  976. AddPart(v.Name.."'s rank is now "..Value,Core.Players[Player.Name].Data.Colour,Player,nil);
  977. end;
  978. AddPart("Your rank is now "..Value.." ["..Index.."]",Core.Players[v.Name].Data.Colour,v,nil);
  979. end);
  980. end);
  981. AddPart("Cancel","Bright red",Player,function()
  982. DestroyTablets(Player);
  983. end);
  984. end);
  985. AddPart("Dismiss","Bright red",Player,function()
  986. DestroyTablets(Player);
  987. end);
  988. AddPart("Kick","Bright orange",Player,function()
  989. local Success,Error=pcall(function() Core.Packets.Kick(v) end);
  990. if not Success then
  991. DestroyTablets(Player);
  992. AddPart("[Kick Packet] There was a serious error! Player was not kicked successfully!","Bright red",Player,nil);
  993. end;
  994. end);
  995. --[[ AddPart("Player Settings",Core.Players[Player.Name].Data.Colour,Player,function()
  996. AddPart("Auto Dismiss : "..Core.Players[Player.Name].Settings.AutoDismiss,Core.Players[Player.Name].Data.Colour,function()
  997. DestroyTablets(Player);
  998. AddPart("True","Bright green",Player,function()
  999. DestroyTablets(Play er);
  1000. Core.Players[Player.Name].Settings.AutoDismiss = true;
  1001. end)
  1002.  
  1003. end)
  1004. end)]]--
  1005. AddPart("Ban","Dusty Rose",Player,function()
  1006. local Success,Error=pcall(Core.Packets.Kick,v);
  1007. if not Success then
  1008. DestroyTablets(Player);
  1009. return AddPart("[Ban Packet] There was a serious error! Player was not banned successfully!","Bright red",Player,nil);
  1010. end;
  1011. wait(DestroyTablets(Player));
  1012. AddPart("Would you like to add a reason?","Bright blue",Player,function() end)
  1013. AddPart("Yes","Bright green",Player,function()
  1014. DestroyTablets(Player);
  1015. table.foreach(Core.BanResponse,function(Index,Resp)
  1016. AddPart(Resp,"Really red",Player,function()
  1017. DestroyTablets(Player);
  1018. Core.Packets.BanR(v,Resp);
  1019. AddPart(v.Name.." is now banned for : "..Resp,"Bright green",Player,nil);
  1020. end);
  1021. end);
  1022. end);
  1023. AddPart("No","Really red",Player,function()
  1024. Core.Packets.Ban(v)
  1025. DestroyTablets(Player)
  1026. end)
  1027. end);
  1028. end;
  1029. if next(Flags) == nil then
  1030. DestroyTablets(Player);
  1031. function Main()
  1032. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  1033. AddPart(v.Name,Core.Players[Player.Name].Data.Colour,Player,function()
  1034. wait(DestroyTablets(Player));
  1035. AddPart("Name - "..v.Name,Core.Players[Player.Name].Data.Colour,Player,nil);
  1036. AddPart("Age - "..v.AccountAge,Core.Players[Player.Name].Data.Colour,Player,nil);
  1037. AddPart("BetKey - "..Core.Players[v.Name].Settings.BetKey,Core.Players[Player.Name].Data.Colour,Player,function()
  1038. DestroyTablets(Player);
  1039. table.foreach(Core.BetKeys,function(Index,Key)
  1040. AddPart(Key,Core.Players[Player.Name].Data.Colour,Player,function()
  1041. DestroyTablets(Player);
  1042. Core.Players[v.Name].Settings.BetKey=Key;
  1043. if Player ~= v then
  1044. AddPart(v.Name.."'s bet key is now "..Key,Core.Players[Player.Name].Data.Colour,Player,nil);
  1045. end;
  1046. AddPart("Your bet key is now "..Key,Core.Players[v.Name].Data.Colour,v,nil);
  1047. end)
  1048. end)
  1049. AddPart("Cancel","Bright red",Player,function()
  1050. DestroyTablets(Player);
  1051. end);
  1052. end);
  1053. AddPart("Colour - "..Core.Players[v.Name].Data.Colour,Core.Players[Player.Name].Data.Colour,Player,function()
  1054. local Colours={"White","Bright red","Bright green","Bright blue","Bright yellow","Toothpaste","Pink","Black"};
  1055. DestroyTablets(Player);
  1056. table.foreach(Colours,function(Index,Colour)
  1057. AddPart(Colour,Colour,Player,function()
  1058. DestroyTablets(Player);
  1059. Core.Players[v.Name].Data.Colour=Colour;
  1060. if Player ~= v then
  1061. AddPart(v.Name.."'s default colour is now "..Colour,Core.Players[Player.Name].Data.Colour,Player,nil);
  1062. end;
  1063. AddPart("Your default colour is now "..Colour,Core.Players[v.Name].Data.Colour,v,nil);
  1064. end);
  1065. end);
  1066. AddPart("Cancel","Bright red",Player,function()
  1067. DestroyTablets(Player);
  1068. end);
  1069. end);
  1070. AddPart("Rank - "..Core.Players[v.Name].Rank,Core.Players[Player.Name].Data.Colour,Player,function()
  1071. DestroyTablets(Player);
  1072. table.foreach(Core.Ranks,function(Index,Value)
  1073. AddPart(Value.." - "..Index,Core.Players[Player.Name].Data.Colour,Player,function()
  1074. if Core.Players[Player.Name].Rank < Core.Players[v.Name].Rank then
  1075. DestroyTablets(Player);
  1076. return AddPart(v.Name.." outranks you!","Bright red",Player,nil);
  1077. end;
  1078. DestroyTablets(Player);
  1079. Core.Players[v.Name].Rank=Index;
  1080. if Player ~= v then
  1081. AddPart(v.Name.."'s rank is now "..Value,Core.Players[Player.Name].Data.Colour,Player,nil);
  1082. end;
  1083. AddPart("Your rank is now "..Value.." ["..Index.."]",Core.Players[v.Name].Data.Colour,v,nil);
  1084. end);
  1085. end);
  1086. AddPart("Cancel","Bright red",Player,function()
  1087. DestroyTablets(Player);
  1088. end);
  1089. end);
  1090. AddPart("Back","Bright blue",Player,function()
  1091. DestroyTablets(Player);
  1092. Main();
  1093. end);
  1094. AddPart("Dismiss","Bright red",Player,function()
  1095. DestroyTablets(Player);
  1096. end);
  1097. AddPart("Kick","Bright orange",Player,function()
  1098. local Success,Error=pcall(function() Core.Packets.Kick(v) end);
  1099. if not Success then
  1100. DestroyTablets(Player);
  1101. AddPart("[Kick Packet] There was a serious error! Player was not kicked successfully!","Bright red",Player,nil);
  1102. end;
  1103. end);
  1104. AddPart("Ban","Dusty Rose",Player,function()
  1105. local Success,Error=pcall(function() Core.Packets.Kick(v) end);
  1106. if not Success then
  1107. DestroyTablets(Player);
  1108. return AddPart("[Ban Packet] There was a serious error! Player was not banned successfully!","Bright red",Player,nil);
  1109. end;
  1110. wait(DestroyTablets(Player));
  1111. AddPart("Would you like to add a reason?","Bright blue",Player,function() end)
  1112. AddPart("Yes","Bright green",Player,function()
  1113. DestroyTablets(Player);
  1114. table.foreach(Core.BanResponse,function(Index,Resp)
  1115. AddPart(Resp,"Really red",Player,function()
  1116. DestroyTablets(Player);
  1117. Core.Packets.BanR(v,Resp);
  1118. AddPart(v.Name.." is now banned for : "..Resp,"Bright green",Player,nil);
  1119. end);
  1120. end);
  1121. end);
  1122. AddPart("No","Really red",Player,function()
  1123. Core.Packets.Ban(v)
  1124. DestroyTablets(Player)
  1125. end)
  1126. end);
  1127. end);
  1128. end;
  1129. end;
  1130. Main();
  1131. end;
  1132. end);
  1133. end);
  1134.  
  1135. NewCommand("Commands","Lists commands",1,{"cmds","commands"},{"rank","cmd"},function(Message,Flags,Player,PlayerRank)
  1136. function Ranks(Player)
  1137. local Player=Player;
  1138. wait(DestroyTablets(Player));
  1139. for i,v in pairs(Core.Ranks) do
  1140. Colours={"White","Dusty Rose","Bright green","Bright blue","Bright yellow","Toothpaste","Pink","Bright violet"};
  1141. AddPart("Rank "..i,Colours[i],Player,function()
  1142. wait(DestroyTablets(Player));
  1143. for a,b in pairs(Core.Commands) do
  1144. if b.Rank==tonumber(i) then --{Name=Name,Desc=Desc,Rank=Rank,Calls=Calls,Flags=Flags,Function=Func}
  1145. AddPart(b.Name,Colours[i],Player,function()
  1146. wait(DestroyTablets(Player));
  1147. AddPart("Min Rank : "..b.Rank,"Bright violet",Player,nil);
  1148. AddPart("Name : "..b.Name,Colours[i],Player,nil);
  1149. AddPart("Calls : "..string.gsub(unpack(b.Calls)," ","; "),"Royal purple",Player,nil);
  1150. pcall(function() AddPart("Flags : "..string.gsub(unpack(b.Flags)," ","; "),"Teal",Player,nil) end);
  1151. AddPart("Description : "..b.Desc,"Sand green",Player,nil);
  1152. AddPart("Back","Bright red",Player,function()
  1153. Ranks(Player);
  1154. end)
  1155. end);
  1156. end;
  1157. end;
  1158. AddPart("Back","Bright red",Player,function()
  1159. Ranks(Player);
  1160. end)
  1161. end)
  1162. end;
  1163. AddPart("Your Rank : "..Core.Players[Player.Name].Rank,"Dark green",Player,function() end)
  1164. end;
  1165. Ranks(Player);
  1166. end);
  1167.  
  1168. NewCommand("Remove/Stop/Kill","Stops Prometheus",7,{"remove","nos"},{},function(Message,Flags,Player,PlayerRank)
  1169. pcall(function()
  1170. AddPart("[Prometheus]\nPrometheus is shutting down, please wait...","Bright green",Player,nil)
  1171. wait(3);
  1172. script:Destroy();
  1173. end);
  1174. end);
  1175.  
  1176. NewCommand("Explore","Sweep scans the game",5,{"explore","e"},{},function(Message,Flags,Player,PlayerRank)
  1177. local Search
  1178. local List
  1179. local ObjectFunctions = (function()
  1180. local NewData = {}
  1181. for ClassName, Data in next, {
  1182. Player = {
  1183. Kick = function(Player)
  1184. Core.Packets.Kick(Player)
  1185. end
  1186. };
  1187. ["Part,WedgePart,Script,Model"] = {
  1188. Destroy = function(Self,Object)
  1189. if Object ~= script then
  1190. return Self.Destroy(Object);
  1191. else
  1192. return AddPart("Can not destroy script","Really red",Player,nil);
  1193. end
  1194. end;
  1195. Remove = function(Self,Object)
  1196. return Self.Destroy(Object);
  1197. end;
  1198. };
  1199. } do
  1200. for NewClassName in tostring(ClassName):gmatch("[^,]+") do
  1201. NewData[NewClassName] = Data;
  1202. end;
  1203. end;
  1204. return NewData
  1205. end)()
  1206. function List(Object)
  1207. DestroyTablets(Player);
  1208. Object = Object or pcall(AddPart,"Can not explore out of DataModel","Really red",Player,nil) and game;
  1209. if ObjectFunctions[Object.ClassName] then
  1210. AddPart("View functions","Toothpaste",Player,function()
  1211. DestroyTablets(Player);
  1212. for Name, Function in next, ObjectFunctions[Object.ClassName] do
  1213. AddPart(Name,"Toothpaste",Player,function()
  1214. pcall(Function, Object);
  1215. end);
  1216. end;
  1217. AddPart("Back","Really red",Player,function()
  1218. List(Object);
  1219. end);
  1220. end);
  1221. else
  1222. AddPart("No functions found","Really red",Player,nil);
  1223. end;
  1224. AddPart("Explore: "..tostring(Object),"Toothpaste",Player,function()
  1225. Search(Object);
  1226. AddPart("View settings","Really red",Player,function()
  1227. List(Object);
  1228. end);
  1229. end);
  1230. AddPart("View parent","Really red",Player,function()
  1231. List(Object.Parent);
  1232. end);
  1233. end;
  1234. function Search(Parent)
  1235. DestroyTablets(Player);
  1236. for _, v in pairs(Parent:GetChildren()) do
  1237. pcall(AddPart,tostring(v),"Toothpaste",Player,function()
  1238. List(v);
  1239. end);
  1240. end;
  1241. end;
  1242. List(game);
  1243. end)
  1244.  
  1245. NewCommand("Execute","Executes/Compiles Lua Code",1,{"exe"},{"http"},function(Message,Flags,Player,PlayerRank)
  1246. local Source = Message;
  1247. if Flags["http"] then
  1248. local success,error = ypcall(function() game:GetService("HttpService"):GetAsync(Flags["http"][1]:sub(2)) end);
  1249. if not success then
  1250. return AddPart("There was an error while loading your script.","Really red",Player,nil);
  1251. end;
  1252. Source = Core.Services.HttpGet(Flags["http"][1]:sub(2))
  1253. end
  1254. if next(Flags) == nil then
  1255. Source = Message;
  1256. end;
  1257. local game=game;
  1258. local error=error;
  1259. local print=print;
  1260. local ypcall=ypcall;
  1261. local pcall=pcall;
  1262. local Spawn=Spawn;
  1263. local coroutine=coroutine;
  1264. local setmetatable=setmetatable;
  1265. local loadstring=loadstring;
  1266. local getmetatable=getmetatable;
  1267. local setfenv=setfenv;
  1268. local getfenv=getfenv;
  1269. local env = {};
  1270. local envs = {};
  1271. local newproxy=newproxy;
  1272. Execute,Error=loadstring(tostring(Source),"[Prometheus Execute]");
  1273.  
  1274. local scriptS = newproxy(true);
  1275. local meta = getmetatable(scriptS);
  1276.  
  1277. meta.__metatable=getmetatable(script);
  1278.  
  1279. function meta:__tostring()
  1280. return tostring(script);
  1281. end;
  1282.  
  1283. function getmember(item,index)
  1284. return item[index];
  1285. end;
  1286.  
  1287. function setmember(item,index,value)
  1288. item[index]=value;
  1289. end;
  1290.  
  1291. function meta:__index(index)
  1292. local suc,res=pcall(getmember,script,index);
  1293. if(not suc)then
  1294. error(index..' is not a valid member of Script',2);
  1295. else
  1296. if index:lower() == "destroy" then
  1297. return function()
  1298. error'You cannot destroy this script';
  1299. end;
  1300. elseif index:lower() == "remove" then
  1301. return function()
  1302. error'You cannot remove this script';
  1303. end;
  1304. end;
  1305. if type(res)=='function' then
  1306. return function(self,...)
  1307. return self[index](self,...)
  1308. end;
  1309. else
  1310. return res;
  1311. end;
  1312. end;
  1313. end;
  1314.  
  1315. function meta:__newindex(index,value)
  1316. suc,res=pcall(setmember,script,index,value);
  1317. return scriptS;
  1318. end;
  1319.  
  1320. for i,v in next, {
  1321. ["restart"]=function()
  1322. --Future function.
  1323. end;
  1324. ["print"]=function(...)
  1325. local Data={...};
  1326. for CurrentEntry,Table_Pos in next,Data do
  1327. if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  1328. Data[CurrentEntry]='__TOSTRING_EDIT';
  1329. end;
  1330. end;
  1331. AddPart(tostring(table.concat(Data,' ')),'White',Player,nil);
  1332. end;
  1333. ["error"]=function(...)
  1334. local Data={...};
  1335. for CurrentEntry,Table_Pos in next,Data do
  1336. if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  1337. Data[CurrentEntry]='__TOSTRING_EDIT';
  1338. end;
  1339. end;
  1340. AddPart(tostring(table.concat(Data,' ')),'Really red',Player,nil);
  1341. end;
  1342. ["warn"]=function(...)
  1343. local Data={...};
  1344. for CurrentEntry,Table_Pos in next,Data do
  1345. if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
  1346. Data[CurrentEntry]='__TOSTRING_EDIT';
  1347. end;
  1348. end;
  1349. AddPart(tostring(table.concat(Data,' ')),'Bright orange',Player,nil);
  1350. end;
  1351. ['loadstring']=function(str,...)
  1352. if str == nil then return error("Argument #1 (string expected, got nil)") end
  1353. local rtn={};
  1354. local fArgs={...};
  1355. local succ,res=ypcall(function()
  1356. rtn={loadstring(str,unpack(fArgs))};
  1357. end);
  1358. if(not succ)then return Execute.error(res) end;
  1359. local func,err=unpack(rtn);
  1360. if(func)then
  1361. func=setfenv(func,NewEnvironment);
  1362. end;
  1363. return func,err
  1364. end;
  1365. Core = "Hide";
  1366. Alert = "Hide";
  1367. owner = Player;
  1368. NewEnvironment = "Hide";
  1369. FindPlayer = "Hide";
  1370. NewCommand = "Hide";
  1371. DestroyTablets = "Hide";
  1372. CheckBanned = "Hide";
  1373. OnChatted = "Hide";
  1374. Execute = "Hide";
  1375. CLerp = "Hide";
  1376. ["script"] = scriptS;
  1377. }do
  1378. for str in i:gmatch'([^,]+)'do
  1379. env[str]=v;
  1380. end;
  1381. end;
  1382.  
  1383. NewEnvironment = {
  1384. _SANDBOX = "PK_SANDBOX v1.0";
  1385. };
  1386. if (Execute) then
  1387. --setfenv(0,NewEnvironment);
  1388. local Success,Result=ypcall(setfenv(Execute,setmetatable(NewEnvironment,{
  1389. __index=function(Self,Index)
  1390. local Return = env[Index];
  1391. local OldReturn = getfenv()[Index];
  1392. if Return == "Hide" then
  1393. return Core.Data.Fakes._G[Index];
  1394. elseif Return == nil then
  1395. return OldReturn;
  1396. else
  1397. return Return;
  1398. end;
  1399. end;
  1400. __metatable="Locked!";
  1401. })));
  1402. if (not Success) then
  1403. AddPart(Result,"Really red",Player,nil);
  1404. end;
  1405. else
  1406. AddPart(Error,"Really red",Player,nil);
  1407. end;
  1408. end);
  1409.  
  1410. for i,v in pairs(game:GetService("Players"):GetPlayers()) do
  1411. ConnectPlayer(v);
  1412. if Core.Cloud ~= nil then
  1413. AddPart("The Cloud is active","Bright blue",v,nil);
  1414. end
  1415. end;
  1416.  
  1417. game:GetService("Players").PlayerAdded:connect(function(Player)
  1418. ConnectPlayer(Player);
  1419. Alert(Player.Name.." has joined the game!");
  1420. end);
  1421.  
  1422. game:GetService("Players").PlayerRemoving:connect(function(Player)
  1423. DestroyTablets(Player);
  1424. Alert(Player.Name.." has left the game!");
  1425. end);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement