Advertisement
c00lkiddv2016

Epix Admin

Jun 3rd, 2016
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ----------------------------------------------------------------------------------------
  2. -- Epix Inc. Server Suite --
  3. ----------------------------------------------------------------------------------------
  4. -- Epix Incorporated. Not Everything is so Black and White. --
  5. ----------------------------------------------------------------------------------------
  6.  
  7. local set=require(script.Settings) --This is where to grab settings from.
  8.  
  9. --Settings can be found in the Settings ModuleScript parented to this!
  10. --http://prntscr.com/5n9fv5
  11. --[[
  12. --__________________________________________________________________________________--
  13. --__________________________________________________________________________________--
  14. --__________________________________________________________________________________--
  15. --__________________________________________________________________________________--
  16. -- --
  17.  
  18. ___________ .__ .___
  19. \_ _____/_____ |__|__ ___ | | ____ ____
  20. | __)_\____ \| \ \/ / | |/ \_/ ___\
  21. | \ |_> > |> < | | | \ \___
  22. /_______ / __/|__/__/\_ \ |___|___| /\___ > /\
  23. \/|__| \/ \/ \/ \/
  24. --------------------------------------------------------
  25. Epix Incorporated. Not Everything is so Black and White.
  26. --------------------------------------------------------
  27.  
  28.  
  29. _ __ _ _ _ _
  30. | |/ /___| | |_ __ _ __| |_ _ _ ___ _ __| |_ ___
  31. | ' </ _ \ | _/ _` (_-< _| '_/ _ \ '_ \ ' \/ -_)
  32. |_|\_\___/_|\__\__,_/__/\__|_| \___/ .__/_||_\___|
  33. |_|
  34. ______ ______ ______ __ ______ ______ ______ ______ __ ______
  35. /\ ___\/\ ___\/\ ___\/\ \ /\ ___\/\ == \/\ __ \/\__ _/\ \/\ ___\
  36. \ \___ \ \ \___\ \ __\\ \ \___\ \ __\\ \ __<\ \ __ \/_/\ \\ \ \ \___ \
  37. \/\_____\ \_____\ \_____\ \_____\ \_____\ \_\ \_\ \_\ \_\ \ \_\\ \_\/\_____\
  38. \/_____/\/_____/\/_____/\/_____/\/_____/\/_/ /_/\/_/\/_/ \/_/ \/_/\/_____/
  39.  
  40.  
  41. --__________________________________________________________________________________--
  42. --__________________________________________________________________________________-- --
  43. --__________________________________________________________________________________--
  44. --__________________________________________________________________________________--
  45. -- -- ]]
  46.  
  47. --------------------------------------------------------------------------------------
  48. --##################################################################################--
  49.  
  50. --##[ WARNING: Changing anything below could result errors and break the script! ]##--
  51.  
  52. --##################################################################################--
  53.  
  54. --#############[ DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING! ]################--
  55.  
  56. --#################[ I WILL NOT HELP YOU IF YOU BREAK SOMETHING! ]##################--
  57.  
  58. --##################################################################################--
  59. --------------------------------------------------------------------------------------
  60.  
  61. --__________________________________________________________________________________--
  62. --__________________________________________________________________________________-- --
  63. --__________________________________________________________________________________--
  64. --__________________________________________________________________________________--
  65. -- -- --
  66. set.Debug=false --//DEBUG
  67.  
  68. --[ Check for Updates ]--
  69. function MainScriptFunction()
  70. if not set.Debug then
  71. script.Parent=game:service('ServerScriptService')
  72. end
  73. local updateCode=script:FindFirstChild("UPDATE_CODE_")
  74. if (updateCode and _G[updateCode.Value]) or _G['Epix Inc. Server Suite Update'] then
  75. local updateTable=_G['Epix Inc. Server Suite Update']
  76. if updateCode then
  77. updateTable=_G[updateCode.Value]
  78. end
  79. local updated,failed=ypcall(function()
  80. print('AutoUpdate: Grabbing update data...')
  81. for i,v in pairs(updateTable) do set[i]=v updateTable[i]=nil end
  82. _G['Epix Inc. Server Suite Update']=nil
  83. if updateCode then
  84. _G[updateCode.Value]=nil
  85. updateCode:Destroy()
  86. end
  87. end)
  88. if failed then
  89. print(script.Name..': AutoUpdate: Update Failed.')
  90. print('Please contact Sceleratis as this may be a bug.')
  91. print('Error: '..failed)
  92. print('If this error persist please check your settings. If needed disable AutoUpdate until the issue is solved.')
  93. end
  94. end
  95. local Plugins={}
  96. for i,v in pairs(script['Plugins']:children()) do
  97. table.insert(Plugins,v)
  98. end
  99. if set.Debug then
  100. print("~=! DEBUG MODE !=~")
  101. require(script.Parent:FindFirstChild("MainModule"))(set,Plugins)
  102. else
  103. require(set.MainModuleID)(set,Plugins)
  104. end
  105. end
  106.  
  107. set.RunTheScript=function()
  108. local yes,no=ypcall(MainScriptFunction)
  109. if no then
  110. local h=Instance.new('Hint',workspace)
  111. h.Text=no print(no)
  112. end
  113. end
  114. local ok,no=ypcall(function() local k=game:GetService('InsertService'):LoadAsset(set.LoaderID) if k then k:Destroy() end end)
  115. if set['AutoUpdate'] and ok then
  116. local k,n=ypcall(function()
  117. local news=game:GetService('InsertService'):LoadAsset(set.LoaderID):children()[1]
  118. local found=news.Version.Value
  119. local current=script.Version.Value
  120. print('Current version: '..current..' | Found version: '..found)
  121. if found>current then
  122. print('Updating...')
  123. local updateCode = Instance.new("StringValue",news)
  124. updateCode.Name="UPDATE_CODE_"
  125. updateCode.Value=math.random()..math.random()
  126. _G[updateCode.Value]=set
  127. news['Plugins']:Destroy()
  128. script['Plugins']:clone().Parent=news
  129. news.Parent=game:service('ServerScriptService')
  130. script:Destroy()
  131. else
  132. news:Destroy()
  133. set.RunTheScript()
  134. end
  135. end)
  136. if not k or n then
  137. print('AutoUpdate Broke: '..n..' | Skipping update')
  138. set.RunTheScript()
  139. end
  140. else
  141. print("AutoUpdate is Disabled")
  142. set.RunTheScript()
  143. end
  144.  
  145.  
  146. return {
  147.  
  148. --------------
  149. -- SETTINGS --
  150. --------------
  151.  
  152. ------------------------------
  153. -- true=on -- false=off --
  154. ------------------------------
  155.  
  156. --------------------------------------------------------------------------------------------------------------
  157. -- DO NOT MOVE THIS MODULESCRIPT --
  158. -- Make sure you READ BEFORE YOU EDIT! Please do not ask me questions about settings before reading. --
  159. -- Make sure there is a ; after each setting, as shown below! --
  160. -- Extra Information can be found in the Loader script. --
  161. -- Don't change something without reading the comment next to it first, you could break something. --
  162. -- If its in green, it means its a comment, don't edit it as it wont do anything. --
  163. -- By default tools need to be in ServerStorage, not Lighting, change this by changing the Storage setting. --
  164. --------------------------------------------------------------------------------------------------------------
  165.  
  166. ----------------------------------------------------------------------------------
  167. -- Please carefully read each setting's description BEFORE changing something --
  168. -- as you could break something if you set something the wrong way. --
  169. ----------------------------------------------------------------------------------
  170.  
  171. --------------------------
  172. -- Important Settings --
  173. --------------------------
  174.  
  175. ['LoaderID'] = 145629584; -- ID to use for updating this script (the MainModule loader). The Loader script MUST be in your models for Loader updating to work.
  176.  
  177. ['MainModuleID'] = 190572769; -- MainModule that gets loaded by the loader script. You can grab the MainModule script here: http://www.roblox.com/item.aspx?id=190572769
  178.  
  179. ['ChangedSettingsStick'] = true; --Do settings you change in-game save? (this includes bans, admins, etc etc)
  180.  
  181. ['SettingsToIgnore'] = {}; --Place settings to ignore here
  182.  
  183. ['DataStoreKey'] = "2341234j234hjJKh342K3JK$KJh3"; --Datastore key
  184.  
  185. ['Storage'] = game:service('ServerStorage'); --Set this to where you store things (such as tools) game:service('ServerStorage') is recommended as it does not replicate to clients. Use services, if you use things like game.Lighting it will break if Lighting is renamed.
  186.  
  187. ['CreatorDebugPowers']=true; --When true gives me place owner powers in your game. This is soley used for the purpose of debugging/fixing problems with the script. I have no interest of messing with your game :p
  188.  
  189. --------------
  190. -- Trello --
  191. --------------
  192.  
  193. ['Trello'] = false; --Pulls Bans/Admins from a Trello board every set number of seconds on every server of everygame this script is in that has Http enabled and uses the same BoardID
  194.  
  195. ['BoardID'] = '9HH6BEX2'; --Trello board ID, its in the URL of your board: https://trello.com/b/9HH6BEX2/epix-incorporated-synced-ban-list - The id for this board is 9HH6BEX2.
  196.  
  197. ['HttpWait'] = 30; --How often (in seconds) should the list(s) update? Recommended 10+ to avoid HttpService problems
  198. --[[
  199. NOTE: The board configured by default is our large constantly updated exploiter ban list.
  200. If you wish to keep 900+ known exploiters out of your game the defaults are the way to go.
  201.  
  202. You NEED to enable HttpEnabled in order for this to work! To enable it follow the below instructions:
  203. Run this following command in the command bar as shown in the screenshot: game:service('HttpService').HttpEnabled=true print('Enabled Http')
  204. Screen shot: http://prntscr.com/46uztz
  205.  
  206. How to set up your own multi-game list for your games:
  207.  
  208. Below instructions are for bans but can also be applied to admin lists,
  209. refer to "To use this for synced admin lists" under the instructions for admin lists info.
  210.  
  211. By default the Trello settings are set to use our ban list of exploiters, but you may
  212. want to change it so that you can set up and control your own multi-game, autoupdating
  213. list(s). So now I am going to tell you how to do that.
  214.  
  215. 1. Enable Http, refer to a few lines up to learn how to easily and quickly do that.
  216. 2. Make a Trello account (or sign in with google)
  217. -Go to http://trello.com, click "Log in with Google" or "Sign up-It's Free" and do the account making stuff it tells you to
  218. 3. After you sign up/log in you need to make a new board, click the + then click "New Board..." - http://prntscr.com/46v2fq
  219. 4. Give your board a name and click the "Change..." next to "This board will be private" and make sure you make the board public! - http://prntscr.com/46v4bf
  220. 5. Change one of the lists titles to "Ban List" In the screenshot I accidentally typed "cards" instead of "lists" - http://prntscr.com/46v5af
  221. 6. Add people to the bans by clicking "Add a card..." and then typing their username as the title, username:userid, or if its a group Group: groupname:groupid - http://prntscr.com/46v74e
  222. 7. Now you need to just set BoardID to your board's ID, refer to http://prntscr.com/46v74e for this, or refer to the comment next to the BoardID setting
  223. 8. You are done, just configure the BoardID and enable Http in each of your games and your multigame banlist is done, confure your board however you want as long as you leave the "Ban List" list that contains name and keep the board public so the script can read it!
  224. Use our site for reference: https://trello.com/b/9HH6BEX2/epix-incorporated-synced-ban-list
  225.  
  226. To use this for synced admin lists, simply repeat the above steps replacing Ban List with
  227. Admin List, Mod List, or Owner List, anyone added to these list will appear in
  228. the admin list with [Synced] next to their name, they will not be able to be unadmined.
  229. Admin lists do not yet support Group: NAME:ID however they do support Username:ID format.
  230. You can also add songs, mutes, and edit commands permissions via Trello!
  231. To add songs via Trello make a new list named "Music List" then just add songs in the format
  232. NAME:ID to have them show up in the music list. Adding mutes works the exact same way as bans, just name
  233. the list "Mute List" instead. To edit commands permissions make a new list named "Permissions" then simply
  234. add commands in the following format (WITH THEIR PREFIX!) COMMAND:LEVEL
  235. --]]
  236.  
  237. ---------------------
  238. -- Tables --
  239. ---------------------
  240.  
  241. ['Owners'] = {'c00lkiddv2016','cosminelxxl91','Voidacity'}; -- Are able to set Admins who can ban/etc... using :pa name, format is USERNAME or USERNAME=USERID
  242.  
  243. ['Admins'] = {'widows100','dianabonni15','andreachica15','XxLiveForKilled'}; -- Sets Admins who can use ban/kick/admin or shutdown, format is USERNAME or USERNAME=USERID
  244.  
  245. ['Mods'] = {}; -- Sets Moderators, basically admins who can't use ban/kick/admin/shutdown and other commands, format is USERNAME or USERNAME=USERID
  246.  
  247. ['BanList'] = {}; -- Add people to ban here. I personally recommend tomtim365 and his main alt, KohltastropheRBLX. He is the reason the anti new account settings were removed and caused many other problems. Format to use UserId is "Name=UserId" EX: "John32=192845", this bans any player named John32 or has an id of 192845 (This way they can't bypass the ban by changing their username) use $group=GROUPID to ban groups.
  248.  
  249. ['MuteList'] = {}; -- Add the names of people to mute (makes it so they cant talk), same format as bans.
  250.  
  251. ------------------------------
  252. -- Prefix/Split/Key Binds --
  253. ------------------------------
  254.  
  255. ['Prefix'] = ":"; -- This comes before each admin command (:kill scel)
  256.  
  257. ['AnyPrefix'] = "!"; -- This comes before each player command (commands that can be run by anyone, !rejoin, !ping, etc)
  258.  
  259. ['SpecialPrefix'] = ""; -- Prefix to use with special functions (!admin,!nonadmins,!all,!others,!random) By default this is now set to nothing to avoid confusion.
  260.  
  261. ['SplitKey'] = " "; -- This is what seperates command arguments eg: player raiders in :team player raiders
  262.  
  263. ['BatchKey'] = "|"; --This seperates arguments of the batch command (":batch kill bob/fire me Bright blue/fling scel")
  264.  
  265. ['ConsoleKey'] = "'"; --Key that opens the console, default is '
  266.  
  267. ['CustomKeyBinds'] = true; -- Allow players and admins set personal key binds?
  268.  
  269. ----------------------
  270. -- Basic Settings --
  271. ----------------------
  272.  
  273. ['Console'] = true; --Determines if the script's console can be used or not
  274.  
  275. ['AutoUpdate'] = true; -- Automatically get the newest version of the loader? You need to have the model in your inventory on your profile in order for autoupdate to work.
  276.  
  277. ['FunCommands'] = true; -- Set to false if you don't want any fun commands (For Strict Places)
  278.  
  279. ['HelpSystem'] = true; -- Enable the Help System? (!help command)
  280.  
  281. ['ChatLog'] = true; -- Log all chats for the server?
  282.  
  283. ['MaxNumberOfLogs'] = 1500; -- How many logs to keep until the oldest entries are removed (MAX is 5000)
  284.  
  285. ['JoinMessage'] = true; -- Display a message with player info when a player joins, set group id in group settings if you want it to display if a player is in a group or not and if so what rank they are.
  286.  
  287. ['DonorPerks'] = true; -- Sets if donors are allowed to show off that they donated, when people donate in your place you get 10% of what they payed!
  288.  
  289. ['PermBanKey'] = '0.49971007415998'; -- Key (Random String) to use in persistent perm ban (change if you perm banned someone by accident, make it 100% random, if you want a random key generator, put print(math.random()) into the command bar in studio and hit enter, then just copy what it gives you in the output window)
  290.  
  291. ['FreeAdmin'] = true; -- Set to true if you want everyone to get the set type of admin (not recommended)
  292.  
  293. ['FreeAdminType'] = 'Mod'; -- Type of admin for FreeAdmin (Mod/Admin/Owner)
  294.  
  295. ['AutoClean'] = true; -- AutoClean the server? (!clean)
  296.  
  297. ['AutoCleanDelay'] = 30; -- How long to wait between AutoCleans (in seconds)
  298.  
  299. ['PlayerCommands'] = true; -- Sets whether or not nonadmins can use player commands (!rejoin,!ping,!cmds,etc)
  300.  
  301. ['OwnersAreTrueOwners'] = true; -- This indicates whether or not Owners are considered True Owners, if set to true Owners get the same commands as the place owner (permban and other true owner cmds)
  302.  
  303. ['PMUsableByAnyone'] = false; -- Set this to true if you want it so anyone can use the PM command
  304.  
  305. ['AdminsSpawnWithGuis'] = false; -- This determines if admins spawn with the admin chat and cmd box, note the admin chat is disabled when custom chat is enabled (has a admin mode)
  306.  
  307. ['HelpGui'] = true; --This determines if players spawn with the helpgui or not, change its button Y Position in the GUI settings near the bottom of settings (Ctrl+F Search HelpGuiYPos).
  308.  
  309. ['UpdateShutdown'] = false; --Automatically shutdown the game if it was updated
  310.  
  311. ['MusicList'] = {{Name='SadPiano',Id=130798493}}; -- Add music to this table using the format: {Name='ExampleSong',Id=1234567} so that the table would look like local MusicList={{Name='ExampleSong',Id=1234567};{Name='ExampleSong2',Id=1234568}}, if you want to add pitch/volume simply insert Pitch and/or Volume EX: {Name='ExampleSong2',Id=1234568,Pitch=2,Volume=0.5}
  312.  
  313. ['CustomChat'] = false; --Custom chat system, aside from chat modes and various other things, the custom chat cannot be muted by exploiters and exploiters can not use it to run chat commands.
  314.  
  315. ['CustomChatType'] = 'Bubbles'; --Classic/Bubbles/Both, Determines chat mode, simular to ROBLOX's chat settings.
  316.  
  317. ['SeparatedChannels'] = false; --Determines if the custom chat modes can see eachother, if set to true, for example, anyone whose chat is set to "Team" won't see chats from "Global"
  318.  
  319. ['CustomPlayerList'] = true; --A very basic and simplistic playerlist that I do not plan to spend much time on, it shows names colored by team color, has a menu for each name (click the name) and does not yet show leader stats, not finished and plan to update in the future.
  320.  
  321. ['MessageOfTheDay'] = false; --Determines if the Message of the Day is shown to admins on-join, you can set your own decal/model to use with the message of the day below, you simply place the message into its description after you set its ID
  322.  
  323. ['MessageOfTheDayID'] = 166040615; --ID Of model/decal to grab the message of the day from (needs to be set as the decal/model's description)
  324.  
  325. ['BuggedCommandMatching'] = false; --Set to true if you want to use the old buggy string matching that let you do things like "Hello :kill me" (really you could always set the prefix to something like "Hello " so you can do "Hello kill me")
  326.  
  327. ['VoteKick'] = false; --Enable player vote kicking?
  328.  
  329. ['VoteKickPercentage'] = '75'; --Vote percentage of players in-game needed to kick a player
  330.  
  331. ['CommandComfirmation'] = false; --Tell the user that the command successfully ran?
  332.  
  333. ['CommandPermissions'] = {}; --Use this to change command permissions, format is (with prefix!!!) ['CommandPermissions'] = {{Command=":ff",Level=5},{Command="kick",Level=4}}; -3=FunCommand Owners+; -2=FunCommand Admins+; -1=FunCommand Mod+; 0=Any Player; 1=Donors;2=Mod+;3=Admin+;4=Owner+;5=Place Owner
  334.  
  335. ['SystemMessageTitle'] = "SYSTEM MESSAGE"; --Title to use in system messages (:sm messageHere)
  336.  
  337. ['DisplayAdvertisements'] = true; --Help support the admin and show advertisements in the help gui? If you choose to show them you are helping me, you can also add custom ones using the "CustomAds" setting :). Want your to appear on the help gui? Send me (Sceleratis) a PM!
  338.  
  339. ['CustomAds'] = {}; --Add custom advertisements to appear in the help gui here. You just need to add the advertisement's item ID and options using the format {Advert=DecalID,Action="Teleport: PlaceId" or "Purchase: ItemId"}. Advertisements are 390x90 pixels
  340.  
  341. ['NotificationSound'] = 138222365; --What sound is made when the user recieves a notifiaction? Set it to 0 for no sound.
  342.  
  343. ['Capes'] = {}; --Add capes here. Colors are BrickColors. Example & Format: ['Capes'] = {{Name="Superman",Material="Fabric",Color="Bright blue",Reflectance=0,ID=1241241},{Name="Bobguy",Material="Plastic",Reflectance=0,Color="Cyan",ID=12312312},{Name="etc",Material="etc",Color="etc",Reflectance=etc,ID=etc}};
  344.  
  345. ['JumpOnTeleport'] = false; --Jump a player before teleporting (for non-roblox seats)?
  346.  
  347. ---------------------
  348. -- Anti-Exploit --
  349. ---------------------
  350.  
  351. ['ExclusionList'] = {}; -- Add the names of people you want to exclude from the AntiExploit to this list, note that admins are already excluded
  352.  
  353. ['ExploitAlert'] = true; --Alerts admins when someone goes nil/chats something thought to be exploit related, this is likely no longer going to work as the anti nil will disconnect a player as they are leaving to make sure they are not lingering in the nil/causing problems. Only notified if the first kick failed.
  354.  
  355. ['AntiChatCode'] = true; -- Prevents non-admins from running code/commands via chat (Add new things to detect into the WordList table)
  356.  
  357. ['Detection'] = true; -- Will atModt to detect certain exploits
  358.  
  359. ['AntiRobloxLocked'] = true; -- Disconnects any player who is or becomes RobloxLocked. (Recommended you keem this enabled, if a player joins RobloxLocked they will not be hooked by the script, this removes them before they break something.)
  360.  
  361. ['AntiSpeed'] = true; -- Trys to stop speed "hackers"
  362.  
  363. ['AntiSelection'] = true; -- Disconnects a player if their selection changes (so if they are using studio tools like drag, move, resize, etc)
  364.  
  365. ['AntiNil'] = true; -- Crashes/Kicks any non-admins who atModt to go "nil"
  366.  
  367. ['AntiCheatEngine'] = false;-- Kicks a player if a Cheat Engine installation is detected on their computer, not 100%
  368.  
  369. ['AntiScriptsDisabled'] = true; -- If the client script cannot be loaded onto the player or takes to long to check in, the player is kicked
  370.  
  371. ['AntiAnimation'] = false; -- Prevents animation exploit
  372.  
  373. ['AntiNameIdChange'] = true; -- AtModts to stop players from locally changing their name/id to fool local scripts
  374.  
  375. ['AntiGod'] = false; -- Prevents non-admins from being godded
  376.  
  377. ['AntiLeak'] = false; -- Makes it a little harder for people to steal your game [BE WARNED, This can possibly ruin personal servers]
  378.  
  379. ['RenameGameObjects'] = false; -- Renames things like Lighting, Players, and Workspace, will break most scripts that are not coded to work in such situations and confuse most people using badly coded explorers or studio.
  380.  
  381. ['NerfExplosions'] = false; -- Makes it so any explosions get nerfed, meaning they wont do any damage.
  382.  
  383. ['AntiDelete'] = false; -- Prevents any scripts, parts, models, or unions in workspace from being deleted. Could cause some interesting problems in your game.
  384.  
  385. ['AntiDecals'] = false; -- Prevents decals from being added to Workspace, really though you should just use FilteringEnabled ;p
  386.  
  387. ['AntiSound'] = false; -- Prevents sounds not made by this script from getting inserted into Workspace.
  388.  
  389. ['WordList'] = {}; -- Add kick words to this list, will kick a player if they say something on the list, works with string patterns.
  390.  
  391. ['AntiBuildingTools'] = false; -- Prevents non-admins from getting "btools"
  392.  
  393. ['AntiTools'] = false; -- Removes any tools given to a non-admin that were not present at server start and not created by this script. Does not affect tools in StarterPack when the server starts.
  394.  
  395. ['AllowedToolsList'] = {}; --Allows you to specify the names of tools allowed when AntiTools is enabled
  396.  
  397. ['AntiGui'] = false; -- Prevents non-game/admin guis from being spawned on players, such as the account stealing GUI. Does not affect GUIs in StarterGui when the server starts.
  398.  
  399. ['AllowedGuiList'] = {}; --[[
  400. If there is a gui in your game that is not in startergui
  401. then add its name to this table, do note that if the
  402. name of the gui is just ScreenGui or something like
  403. that, if an exploiter inserts a gui with the same name
  404. it will not be removed, so make sure you make the name
  405. of the gui very specific.
  406. ]]
  407.  
  408. ---------------------
  409. -- Group Settings --
  410. ---------------------
  411.  
  412. ['GroupOnlyJoin'] = false; -- Makes it so ONLY people in the set group can join the game.
  413.  
  414. ['GroupId'] = 0; -- Id of group, used for info/join message, if set will display a user's rank when the info command is used on them.
  415.  
  416. ['Ranks'] = {};--Add group ranks to have admin/be banned here. Read below for help.
  417. --[[
  418. Format is {Group=GROUPID,Rank=RANKNAME/NUMBER,Type=ADMINTYPE}
  419. GROUPID is the ID of the group the rank belongs to and that the player must be in
  420. RANKNAME/NUMBER is either the name of the rank (Generals) or its number (252) if you want to admin rank 252 and every rank above it, simply set it to negative, so Rank=-252 will admin anyone in rank 252 and up
  421. ADMINTYPE is the type of admin players in the rank will get, this can be Mod, Admin, Owner, or Banned
  422. In the end your table should look something like this (THIS IS ONLY AN EXAMPLE, DO NOT USE IT):
  423. ['Ranks'] = {
  424. {Group=124324,Rank=142,Type='Mod'},
  425. {Group=1932348,Rank='Generals',Type='Owner'},
  426. {Group=1284124,Rank=-193,Type='Admin'},
  427. {Group=1399424,Rank=-1,Type='Banned'}
  428. };
  429. --]]
  430.  
  431. ---------------------
  432. -- VIP Admin --
  433. ---------------------
  434.  
  435. ['VipAdmin'] = false; -- If someone can have admin for owning an item
  436.  
  437. ['VipItems'] = {}; --Add VIP items here, format is {Item=ID,Type="Admin"}, so for example ['VipItems'] = {{Item=193945,Type="Mod"},{Item=125263,Type="Admin"}}
  438.  
  439. ['FriendAdmin'] = true; -- Set to true if you want people on your friendlist to have admin
  440.  
  441. ['FriendAdminType'] = 'Admin'; -- Type of admin friends will get if "FriendAdmin" is enabled
  442.  
  443. ---------------------
  444. -- GUI Settings --
  445. ---------------------
  446.  
  447. ['PrimaryColor'] = Color3.new(0,0,0); -- Primary GUI Color (Default black) (Remember, each 1 translates to a 255, keep that in mind when changing colors, use things like 124/255 to get the color you want)
  448.  
  449. ['SecondaryColor'] = Color3.new(1,1,1); -- Secondary GUI Color (Default white)
  450.  
  451. ['Font'] = 'Arial'; -- Text Font, can only be fonts usable on roblox (Arial, ArialBold, Legacy, SourceSans, SourceSansBold)
  452.  
  453. ['TextColor'] = Color3.new(1,1,1); -- Text Color (Default white)
  454.  
  455. ['TextStrokeTransparency'] = 0; -- Text Stroke Transparency (0-1)
  456.  
  457. ['TextStrokeColor'] = Color3.new(0,0,0); -- Color of the text stroke around letters (Default black)
  458.  
  459. ['Transparency'] = 0.2; -- GUI Transparency (0-1)
  460.  
  461. ['Animations'] = true; -- Determines if to animate stuff or not
  462.  
  463. ['MessageAnimations'] = true; -- Same as above but specifically for messages (the ones that cover the entire screen)
  464.  
  465. ['HelpGuiYPosScale'] = 0.5; --Determines the Y Position of the help gui button. Uses Scale NOT Offset.
  466.  
  467. ['HelpGuiYPosOffset'] = 0; --Help gui Y offset. Helps to fine tune the position of the help button.
  468.  
  469. ------------------------------------------------------
  470. -- END OF SETTINGS --
  471. ------------------------------------------------------
  472. }
  473.  
  474. --[[
  475. ---------------------
  476. -- IMPORTANT --
  477. ---------------------
  478.  
  479. Settings can be found in the Settings ModuleScript parented with this!
  480. http://prntscr.com/5n9fv5
  481.  
  482. For AutoUpdate to work this script's model needs to be in your inventory,
  483. if you got the script from anywhere other than my models the AutoUpdate
  484. will not work due to ROBLOX security nonsense. You can find the model
  485. here: http://www.roblox.com/item.aspx?id=145629584
  486. It is important to stay up to date!
  487.  
  488. To manually update, simply insert the new Loader script from your inventory,
  489. drag the "Settings" ModuleScript to it, and then remove the old version.
  490.  
  491. Previously known as Kohl's Admin [Epix Edition]
  492.  
  493. For information about LoadStringEnabled please refer to the following:
  494.  
  495. http://wiki.roblox.com/index.php?title=Security#LoadStringEnabled
  496. http://wiki.roblox.com/index.php?title=Points_tutorial#Restrictions
  497.  
  498. If you want to use the :s command you will need to set LoadStringEnabled
  499. to true. It can be found by going into studio, opening the explorer and properties
  500. windows, clicking on ServerScriptService and under properties checking
  501. LoadStringEnabled. Loadstring is only used in the script for Output and
  502. the scripting command. The script will function fine without it. Currently
  503. :ls and :cs are unusable due to updates that removed loadstring() abilities
  504. from the client, meaning no more local script building in-game.
  505. ------------------------------------------------------------------------
  506. IF THERE ARE NEW SETTINGS YOU WILL NEED TO MANUALLY UPDATE THE SCRIPT TO
  507. CHANGE THEM, THEY WILL OTHERWISE BE LEFT AS THE DEFAULT. (Unless you use :settings)
  508. ------------------------------------------------------------------------
  509. Please carefully read each setting's description BEFORE changing something
  510. as you could break something if you set something the wrong way.
  511. ------------------------------------------------------------------------
  512. Find A security flaw or bug?
  513. Know of a way to detect an exploit or make the AntiExploit better?
  514. Think of a way to make the script better?
  515. Send me a message!
  516.  
  517. ---------------------
  518. -- DISCLAIMER/INFO --
  519. ---------------------
  520.  
  521. Credit:
  522.  
  523. -Kohltastrophe (Scripth) for the original script this was based on and for sharing
  524. some of his ideas and commands, and his continued help and support.
  525.  
  526. -Sceleratis (me <3) for this script.
  527.  
  528. -einsteinK for the original SBL older versions used and his help with some things, legit best scripter I know.
  529.  
  530. -Arlikas for testing nearly anything I ask him to and being the best of help
  531.  
  532. -GigsD4X and the F3X team for the F3X tool, full credit to them. I only made it into a hopperbin for this script.
  533.  
  534. -Drezmor for his resize command. Fixed and edited by Kohltastrophe and myself.
  535.  
  536. -KingKeith55 for the stickify command
  537.  
  538. -Everyone who helped me with testing, suggested new ideas, features, and commands.
  539.  
  540. If you have any questions, need help, or want to contact me you can send
  541. me a Private Message on the main website (roblox.com) via my profile ("Send Message"
  542. under my avatar/character picture.)
  543.  
  544. If you want to support the real Kohltastrophe put the following on your profile:
  545. "Scripth is the real Kohltastrophe. Put this on your profile so people know."
  546.  
  547. Find members of the Epix Incoprorated team and myself from time to time on eKeynet's
  548. twitch stream! http://www.twitch.tv/keynettv
  549.  
  550. I am not responsible for anything that you do with this script. If you do something its on you.
  551.  
  552. ---------------------
  553. -- Tips and Tricks --
  554. ---------------------
  555.  
  556. :kill me,noob1,noob2,!random,%raiders,$123456,!nonadmins,#3,radius-5,friends,-sceleratis
  557. -- kills you, noob1, noob2, a random person, team raiders, people in group 123456, nonadmins, 3 random people, anyone within a 5 stud radius of you, friends, and exclude the user Sceleratis.
  558. You can also run silent commands using /e, for example:
  559. "/e :kill scel"
  560. *Note, by silent I just mean people won't see you chat it, it however will still show up in logs. Its better to just use the console.
  561.  
  562. You can also use a variety commands for different people;
  563. all -- Everyone in the server
  564. others -- Everyone but you
  565. me -- You
  566. admins -- Admins in the server
  567. nonadmins -- People who are not admins in the server
  568. random -- A random person, this can include you.
  569. friends -- Anyone on your friends list
  570. besties -- Anyone on your best friends list
  571. %TEAMNAME -- Ex: :kill %raiders will kill everyone in team Raiders.
  572. $GROUPID -- Let you run a command anyone in a specific group, if an ID is not given it will use the GroupId setting.
  573. -PLAYERNAME -- Lets you exclude players from commands. :kill !all,-scel will kill everyone but scel
  574. #NUMBER -- Lets you run a command on NUMBER of random people. :ff #5 will ff 5 random players.
  575. radius-NUMBER -- Lets you run a command on anyone within a NUMBER stud radius of you. :ff radius-5 will ff any player(s) within a 5 stud radius of you.
  576.  
  577. If you want to add cameras to your game (like saved into your game so you don't need to use the admin script to spawn them every new server)
  578. then just make a camera, needs to be a single part, so a sphere, brick, what ever it may be, make sure its anchored and locked
  579. just simply position it where you want in workspace, then make its name Camera: NAMEHERE
  580. so for example: Camera: Cam1
  581. the name is very important as the script will look for it in workspace when the game starts.
  582. make sure you name each camera something diffierent. You can preset waypoints the same way, just use Waypoint: instead of Camera:
  583.  
  584. MESSAGES/HINTS FOR OTHER SCRIPTS:
  585. If you would like to have the hints/messages from this script usable in other SERVER (not local)
  586. scripts, then simply put the follow at the top of your script,
  587.  
  588. message=_G['Message']
  589. hint=_G['Hint']
  590.  
  591. USAGE EXAMPLES:
  592. hint(msg,playerstable) - message(title,msg,playerstable)
  593.  
  594. (Do note that playerstable needs to be a table containing players NOT player names!
  595. Use game:service('Players'):children() to send a message to everyone.)
  596.  
  597. hint('Hello people',game:service('Players'):children()) <=== sends "Hello people" to all players in game
  598. hint('Heyo scel',{game:service('Players').Sceleratis}) <=== Sends "Heyo scel" to the player Sceleratis
  599. message('Server Message','Hello people',game:service('Players'):children()) <=== Makes a message with the title "Server Message" and a message of "Hello people"
  600. message('Message from swagyguy','Heyo celary man',{game:service('Players').Sceleratis}) <=== Works the same as above but only the player Sceleratis sees it
  601.  
  602. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement