Advertisement
Guest User

Untitled

a guest
Aug 4th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.29 KB | None | 0 0
  1. ----------------------------------------------------------------------------------------
  2. -- Kohl's Admin [Epix Edition] --
  3. ----------------------------------------------------------------------------------------
  4. -- Epix Incorporated. Not Everything is so Black and White. --
  5. ----------------------------------------------------------------------------------------
  6. local 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.
  7. local MainModuleID = 190572769 -- MainModule that gets loaded by this. You can grab the MainModule script here: http://www.roblox.com/Kohls-Admin-Epix-Edition-Main-Module-item?id=190572769
  8. local set={ -- Main Table, all functions and variables are kept in this, don't change.--
  9. ----------------------------------------------------------------------------------------
  10.  
  11. --------------
  12. -- SETTINGS --
  13. --------------
  14.  
  15. ------------------------------
  16. -- true=on -- false=off --
  17. ------------------------------
  18.  
  19. --------------------------------------------------------------------------------------------------------------
  20. -- Make sure you READ BEFORE YOU EDIT! Please do not ask me questions about settings before reading. --
  21. -- Make sure there is a ; after each setting, as shown below! --
  22. -- Extra Information is below the settings. --
  23. -- Don't change something without reading the comment next to it first, you could break something. --
  24. -- If its in green, it means its a comment, don't edit it as it wont do anything. --
  25. -- By default tools need to be in ServerStorage, not Lighting, change this by changing the Storage setting. --
  26. --------------------------------------------------------------------------------------------------------------
  27.  
  28. --------------------------
  29. -- Important Settings --
  30. --------------------------
  31.  
  32. ['ChangedSettingsStick'] = true; --Do settings you change in-game save? (this includes bans, admins, etc etc)
  33.  
  34. ['SettingsToIgnore'] = {}; --Place settings to ignore here
  35.  
  36. ['DataStoreKey'] = "Kohl's Admin [Epix Edition][JK$KJh3]"; --Datastore key
  37.  
  38. ['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.
  39.  
  40. --------------
  41. -- Trello --
  42. --------------
  43.  
  44. ['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)
  45.  
  46. ['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 (by default uses our large exploiter ban list.)
  47.  
  48. ['HttpWait'] = 10; --How often (in seconds) should the list(s) update? Recommended 10+ to avoid HttpService problems
  49.  
  50. --[[
  51. You NEED to enable HttpEnabled in order for this to work! To enable it follow the below instructions:
  52. Run this following command in the command bar as shown in the screenshot: game:service('HttpService').HttpEnabled=true print('Enabled Http')
  53. Screen shot: http://prntscr.com/46uztz
  54.  
  55. How to set up your own multi-game list for your games:
  56.  
  57. Below instructions are for bans but can also be applied to admin lists,
  58. refer to "To use this for synced admin lists" under the instructions for admin lists info.
  59.  
  60. By default the Trello settings are set to use our ban list of exploiters, but you may
  61. want to change it so that you can set up and control your own multi-game, autoupdating
  62. list(s). So now I am going to tell you how to do that.
  63.  
  64. 1. Enable Http, refer to a few lines up to learn how to easily and quickly do that.
  65. 2. Make a Trello account (or sign in with google)
  66. -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
  67. 3. After you sign up/log in you need to make a new board, click the + then click "New Board..." - http://prntscr.com/46v2fq
  68. 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
  69. 5. Change one of the lists titles to "Ban List" In the screenshot I accidentally typed "cards" instead of "lists" - http://prntscr.com/46v5af
  70. 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
  71. 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
  72. 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!
  73. Use our site for reference: https://trello.com/b/9HH6BEX2/epix-incorporated-synced-ban-list
  74.  
  75. To use this for synced admin lists, simply repeat the above steps replacing Ban List with
  76. Admin List, TempAdmin List, or Owner List, anyone added to these list will appear in
  77. the admin list with [Synced] next to their name, they will not be able to be unadmined.
  78. Admin lists do not yet support Group: NAME:ID however they do support Username:ID format.
  79. --]]
  80.  
  81. ---------------------
  82. -- Tables --
  83. ---------------------
  84.  
  85. ['Owners'] = {"thanhhuynh"}; -- Are able to set Admins who can ban/etc... using :pa name, format is USERNAME or USERNAME=USERID
  86.  
  87. ['Admins'] = {}; -- Sets Admins who can use ban/kick/admin or shutdown, format is USERNAME or USERNAME=USERID
  88.  
  89. ['TempAdmins'] = {}; -- Sets Admins who can't use ban/kick/admin or shutdown, format is USERNAME or USERNAME=USERID
  90.  
  91. ['BanList'] = {}; -- Add people to ban here. 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.
  92.  
  93. ['MuteList'] = {}; -- Add the names of people to mute (makes it so they cant talk)
  94.  
  95. ------------------------------
  96. -- Prefix/Split/Key Binds --
  97. ------------------------------
  98.  
  99. ['Prefix'] = ":"; -- This comes before each admin command (:kill kohl)
  100.  
  101. ['AnyPrefix'] = "!"; -- This comes before each player command (commands that can be run by anyone, !rejoin, !ping, etc)
  102.  
  103. ['SpecialPrefix'] = ""; -- Prefix to use with special functions (!admin,!nonadmins,!all,!others,!random) By default this is now set to nothing to avoid confusion.
  104.  
  105. ['SplitKey'] = " "; -- This is what seperates command arguments eg: player raiders in :team player raiders
  106.  
  107. ['BatchSplit'] = "/"; --This seperates arguments of the batch command (":batch kill bob/fire me Bright blue/fling kohl")
  108.  
  109. ['ConsoleKey'] = "'"; --Key that opens the console, default is '
  110.  
  111. ['CustomKeyBinds'] = true; -- Allow players and admins set personal key binds?
  112.  
  113. ----------------------
  114. -- Basic Settings --
  115. ----------------------
  116.  
  117. ['Console'] = true; --Determines if the script's console can be used or not
  118.  
  119. ['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.
  120.  
  121. ['FunCommands'] = true; -- Set to false if you don't want any fun commands (For Strict Places)
  122.  
  123. ['HelpSystem'] = true; -- Enable the Help System? (!help command)
  124.  
  125. ['ChatLog'] = true; -- Log all chats for the server?
  126.  
  127. ['MaxNumberOfLogs'] = 1500; -- How many logs to keep until the oldest entries are removed (MAX is 5000)
  128.  
  129. ['JoinMessage'] = false; -- 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.
  130.  
  131. ['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!
  132.  
  133. ['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)
  134.  
  135. ['FreeAdmin'] = false; -- Set to true if you want everyone to get the set type of admin (not recommended)
  136.  
  137. ['FreeAdminType'] = 'TempAdmin'; -- Type of admin for FreeAdmin (TempAdmin/Admin/Owner)
  138.  
  139. ['AutoClean'] = false; -- AutoClean the server? (!clean)
  140.  
  141. ['AutoCleanDelay'] = 60; -- How long to wait between AutoCleans (in seconds)
  142.  
  143. ['PlayerCommands'] = true; -- Sets whether or not nonadmins can use player commands (!rejoin,!ping,!cmds,etc)
  144.  
  145. ['OwnersAreTrueOwners'] = false; -- 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)
  146.  
  147. ['PMUsableByAnyone'] = false; -- Set this to true if you want it so anyone can use the PM command
  148.  
  149. ['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)
  150.  
  151. ['HelpGui'] = true; --This determines if players spawn with the helpgui or not
  152.  
  153. ['UpdateShutdown'] = false; --Automatically shutdown the game if it was updated
  154.  
  155. ['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}
  156.  
  157. ['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.
  158.  
  159. ['CustomChatType'] = 'Both'; --Classic/Bubbles/Both, Determines chat mode, simular to ROBLOX's chat settings.
  160.  
  161. ['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"
  162.  
  163. ['CustomPlayerList'] = false; --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.
  164.  
  165. ['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
  166.  
  167. ['MessageOfTheDayID'] = 166040615; --ID Of model/decal to grab the message of the day from (needs to be set as the decal/model's description)
  168.  
  169. ['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")
  170.  
  171. ['VoteKick'] = false; --Enable player vote kicking?
  172.  
  173. ['VoteKickPercentage'] = '75'; --Vote percentage of players in-game needed to kick a player
  174.  
  175. ['CommandComfirmation'] = false; --Tell the user that the command successfully ran?
  176.  
  177. ['CommandPermissions'] = {}; --Use this to change command permissions, format is ['CommandPermissions'] = {{Command="ff",Level=5},{Command="kick",Level=4}}; -3=FunCommand, Owners+; -2=FunCommand, Admins+; -1=FunCommand, Temp+; 0=Any Player; 1=Donors;2=Temp+;3=Admin+;4=Owner+;5=Place Owner
  178.  
  179. ---------------------
  180. -- Anti-Exploit --
  181. ---------------------
  182.  
  183. ['ExclusionList'] = {}; -- Add the names of people you want to exclude from the AntiExploit to this list, note that admins are already excluded
  184.  
  185. ['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.
  186.  
  187. ['AntiChatCode'] = true; -- Prevents non-admins from running code/commands via chat (Add new things to detect into the WordList table)
  188.  
  189. ['Detection'] = true; -- Will attempt to detect certain exploits
  190.  
  191. ['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.)
  192.  
  193. ['AntiSpeed'] = true; -- Trys to stop speed "hackers"
  194.  
  195. ['AntiGui'] = false; -- Prevents non-game/admin guis from being spawned on players, such as the account stealing gui
  196.  
  197. ['AntiSelection'] = true; -- Crashes a player if their selection changes (so if they are using studio tools like drag, move, resize, etc)
  198.  
  199. ['AntiNil'] = true; -- Crashes/Kicks any non-admins who attempt to go "nil"
  200.  
  201. ['AntiCheatEngine'] = false;-- Kicks a player if a Cheat Engine installation is detected on their computer, not 100%
  202.  
  203. ['AntiScriptsDisabled'] = true; -- If the client script cannot be loaded onto the player or takes to long to check in the player is kicked
  204.  
  205. ['AntiAnimation'] = false; -- Prevents animation exploit
  206.  
  207. ['AntiNameIdChange'] = true; -- Attempts to stop players from locally changing their name/id to fool local scripts
  208.  
  209. ['AntiGod'] = true; -- Prevents non-admins from being godded
  210.  
  211. ['AntiLeak'] = false; -- Makes it a little harder for people to steal your game [BE WARNED, This can possibly ruin personal servers]
  212.  
  213. ['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.
  214.  
  215. ['NerfExplosions'] = false; -- Makes it so any explosions get nerfed, meaning they wont do any damage.
  216.  
  217. ['AntiDecals'] = false; -- Prevents decals from being added to Workspace, really though you should just use FilteringEnabled ;p
  218.  
  219. ['AntiSound'] = false; -- Prevents sounds not made by this script from getting inserted into Workspace.
  220.  
  221. ['WordList'] = {}; -- Add kick words to this list, will kick a player if they say something on the list, works with string patterns.
  222.  
  223. ['AllowedGuiList'] = {}; --[[
  224. If there is a gui in your game that is not in startergui
  225. then add its name to this table, do note that if the
  226. name of the gui is just ScreenGui or something like
  227. that, if a hacker inserts a gui with the same name
  228. it will not be removed, so make sure you make the name
  229. of the gui very specific.
  230. ]]
  231.  
  232. ---------------------
  233. -- Group Settings --
  234. ---------------------
  235.  
  236. ['GroupRanks'] = true; -- If group members matching the ranks in "Ranks" are given admin/banned (depending on what you set)
  237.  
  238. ['GroupOnlyJoin'] = false; -- Makes it so ONLY people in the set group can join the game.
  239.  
  240. ['GroupId'] = 129425; -- Id of group, used for info/join message, if set will display a user's rank when the info command is used on them.
  241.  
  242. ['Ranks'] = {{Group=129425,Rank=-13,Type='Admin'},{Group=129425,Rank=-17,Type='Owner'}};--[[SET ['GroupRanks'] TO TRUE TO USE!
  243. Add ranks to have admin/be banned format is {Group=GROUPID,Rank=RANKNAME/NUMBER,Type=ADMINTYPE};
  244. GROUPID is the ID of the group the rank belongs to and that the player must be in
  245. 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
  246. ADMINTYPE is the type of admin players in the rank will get, this can be Temp, Admin, Owner, or Banned
  247. In the end your table should look something like this (THIS IS AN EXAMPLE TABLE, DO NOT USE IT):
  248. ['Ranks'] = {{Group=124324,Rank=142,Type='Temp'},{Group=1932348,Rank='Generals',Type='Owner'},{Group=1284124,Rank=-193,Type='Admin'},{Group=1399424,Rank=-1,Type='Banned'}};
  249. --]]
  250.  
  251. ---------------------
  252. -- VIP Admin --
  253. ---------------------
  254.  
  255. ['VipAdmin'] = false; -- If someone can have admin for owning an item
  256.  
  257. ['VipItems'] = {}; --Add VIP items here, format is {Item=ID,Type="Admin"}, so for example ['VipItems'] = {{Item=193945,Type="TempAdmin"},{Item=125263,Type="Admin"}}
  258.  
  259. ['FriendAdmin'] = false; -- Set to true if you want people on your friendlist to have admin
  260.  
  261. ['FriendAdminType'] = 'TempAdmin'; -- Type of admin friends will get if "FriendAdmin" is enabled
  262.  
  263. ---------------------
  264. -- GUI Settings --
  265. ---------------------
  266.  
  267. ['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)
  268.  
  269. ['SecondaryColor'] = Color3.new(1,1,1); -- Secondary GUI Color (Default white)
  270.  
  271. ['Font'] = 'Arial'; -- Text Font, can only be fonts usable on roblox (Arial, ArialBold, Legacy, SourceSans, SourceSansBold)
  272.  
  273. ['TextColor'] = Color3.new(1,1,1); -- Text Color (Default white)
  274.  
  275. ['TextStrokeTransparency'] = 0; -- Text Stroke Transparency (0-1)
  276.  
  277. ['TextStrokeColor'] = Color3.new(0,0,0); -- Color of the text stroke around letters (Default black)
  278.  
  279. ['Transparency'] = 0.5; -- GUI Transparency (0-1)
  280.  
  281. ['Animations'] = true; -- Determines if to animate stuff or not
  282.  
  283. ['MessageAnimations'] = true; -- Same as above but specifically for messages (the ones that cover the entire screen)
  284.  
  285. ------------------------------------------------------
  286. -- END OF SETTINGS --
  287. ------------------------------------------------------
  288. }
  289. ---------------------
  290. -- IMPORTANT --
  291. ---------------------
  292. --[[
  293. For AutoUpdate to work this script's model needs to be in your inventory,
  294. if you got the script from anywhere other than my models the AutoUpdate
  295. will not work due to ROBLOX security nonsense. You can find the model
  296. here: http://www.roblox.com/Kohls-Admin-Epix-Edit-item?id=145629584
  297.  
  298. For information about LoadStringEnabled please refer to the following:
  299.  
  300. http://wiki.roblox.com/index.php?title=Security#LoadStringEnabled
  301. http://wiki.roblox.com/index.php?title=Points_tutorial#Restrictions
  302.  
  303. If you want to use the :s command you will need to set LoadStringEnabled
  304. to true. It can be found by going into studio, opening the explorer and properties
  305. windows, clicking on ServerScriptService and under properties checking
  306. LoadStringEnabled. Loadstring is only used in the script for Output and
  307. the scripting command. The script will function fine without it. Currently
  308. :ls and :cs are unusable due to updates that removed loadstring() abilities
  309. from the client, meaning no more local script building in-game.
  310. ------------------------------------------------------------------------
  311. IF THERE ARE NEW SETTINGS YOU WILL NEED TO MANUALLY UPDATE THE SCRIPT TO
  312. CHANGE THEM, THEY WILL OTHERWISE BE LEFT AS THE DEFAULT. (Unless you use :settings)
  313. ------------------------------------------------------------------------
  314. Please carefully read each setting's description BEFORE changing something
  315. as you could break something if you set something the wrong way.
  316. ------------------------------------------------------------------------
  317. Find A security flaw or bug?
  318. Know of a way to detect an exploit or make the AntiExploit better?
  319. Think of a way to make the script better?
  320. Send me a message!
  321.  
  322. ---------------------
  323. -- DISCLAIMER/INFO --
  324. ---------------------
  325. Credit:
  326.  
  327. -Kohltastrophe (Scripth) for the original script this was based on and for sharing
  328. some of his ideas and commands, and his continued help and support
  329.  
  330. -Sceleratis for this version of Kohl's Admin
  331.  
  332. -einsteinK for the original SBL older versions used and his help with some things, legit best scripter I know.
  333.  
  334. -Arlikas for testing nearly anything I ask him to
  335.  
  336. -GigsD4X and the F3X team for the F3X tool, full credit to them. I only made it into a hopperbin for this script.
  337.  
  338. -Everyone who helped me with testing, suggested new ideas, features, and commands.
  339.  
  340. I in no way claim to have made Kohl's Admin Commands, I have only
  341. made this version of it.
  342.  
  343. If you have any questions, need help, or want to contact me you can send
  344. me a Private Message on the main website (roblox.com) via my profile ("Send Message"
  345. under my avatar/character picture.)
  346.  
  347. If you want to support the real Kohltastrophe put the following on your profile:
  348. "Scripth is the real Kohltastrophe. Put this on your profile so people know."
  349.  
  350. Fine members of the Epix Incoprorated team and myself from time to time on eKeynet's
  351. twitch stream! http://www.twitch.tv/keynettv
  352.  
  353. Say what you will about this script, the original was a turning point for all
  354. admin scripts, you can say "ew" all you want but it won't change that. If you can
  355. make something better then please go right ahead. I have chosen to continue the development
  356. of Kohl's Admin mostly as a hobby. If you are going to complain about something that is not a bug
  357. then please, at least get your information in order before you do. Blind critism helps no one.
  358.  
  359. There is nothing hidden, I have place owner powers in your game, however
  360. they are fully optional and only used for debugging the script.
  361. I would never force you to use anything, so you can optionally remove these
  362. abilities by setting the following setting to false: ]]
  363. set.CreatorDebugPowers=true --[[
  364. Its completely your choice. I will still try to help you whether you disable
  365. this or not, just know that it may make things more difficult and time consuming.
  366. If you know what you are doing then feel free to disable this as you probably
  367. won't need it anyway. The common situations people need help for are
  368. misconfigured settings. Place owner powers are needed so I can view errors and
  369. info that is in the server log (:debuglogs) and usually view/fix settings (:settings)
  370. ]]
  371. ---------------------
  372. -- Tips and Tricks --
  373. ---------------------
  374. --[[
  375.  
  376. :kill me,noob1,noob2,!random,%raiders,$123456,!nonadmins,#3,radius-5,-sceleratis
  377. -- 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, and exclude Sceleratis.
  378. You can also run silent commands using /e, for example:
  379. "/e :kill kohl" Do not that this will still show up in logs.
  380. *Note, by silent I just mean people won't see you chat it, it however will still show up in logs.
  381.  
  382. You can also use a variety commands for different people;
  383. all -- Everyone in the server
  384. others -- Everyone but you
  385. me -- You
  386. admins -- Admins in the server
  387. nonadmins -- People who are not admins in the server
  388. random -- A random person, this can include you.
  389. %TEAMNAME -- Ex: :kill %raiders will kill everyone in team Raiders.
  390. $GROUPID -- Let you run a command anyone in a specific group, if an ID is not given it will use the GroupId setting.
  391. -PLAYERNAME -- Lets you exclude players from commands. :kill !all,-kohl will kill everyone but kohl
  392. #NUMBER -- Lets you run a command on NUMBER of random people. :ff #5 will ff 5 random players.
  393. 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.
  394.  
  395. 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)
  396. 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
  397. just simply position it where you want in workspace, then make its name Camera: NAMEHERE
  398. so for example: Camera: Cam1
  399. the name is very important as the script will look for it in workspace when the game starts.
  400. make sure you name each camera something diffierent. You can preset waypoints the same way, just use Waypoint: instead of Camera:
  401.  
  402. MESSAGES/HINTS FOR OTHER SCRIPTS:
  403. If you would like to have the hints/messages from this script usable in other SERVER (not local)
  404. scripts, then simply put the follow at the top of your script,
  405.  
  406. message=_G['Message']
  407. hint=_G['Hint']
  408.  
  409. USAGE EXAMPLES:
  410. hint(msg,playerstable) - message(title,msg,playerstable)
  411.  
  412. (Do note that playerstable needs to be a table containing players NOT player names!
  413. Use game:service('Players'):children() to send a message to everyone.)
  414.  
  415. hint('Hello people',game:service('Players'):children()) <=== sends "Hello people" to all players in game
  416. hint('Heyo montano',{game:service('Players').Sceleratis}) <=== Sends "Heyo montano" to the player Sceleratis
  417. message('Server Message','Hello people',game:service('Players'):children()) <=== Makes a message with the title "Server Message" and a message of "Hello people"
  418. message('Message from swagyguy','Heyo celary man',{game:service('Players').Sceleratis}) <=== Works the same as above but only the player Sceleratis sees it
  419.  
  420. --__________________________________________________________________________________--
  421. --__________________________________________________________________________________-- --
  422. --__________________________________________________________________________________--
  423. --__________________________________________________________________________________--
  424. -- --
  425.  
  426. ___________ .__ .___
  427. \_ _____/_____ |__|__ ___ | | ____ ____
  428. | __)_\____ \| \ \/ / | |/ \_/ ___\
  429. | \ |_> > |> < | | | \ \___
  430. /_______ / __/|__/__/\_ \ |___|___| /\___ > /\
  431. \/|__| \/ \/ \/ \/
  432. --------------------------------------------------------
  433. Epix Incorporated. Not Everything is so Black and White.
  434. --------------------------------------------------------
  435.  
  436.  
  437. _ __ _ _ _ _
  438. | |/ /___| | |_ __ _ __| |_ _ _ ___ _ __| |_ ___
  439. | ' </ _ \ | _/ _` (_-< _| '_/ _ \ '_ \ ' \/ -_)
  440. |_|\_\___/_|\__\__,_/__/\__|_| \___/ .__/_||_\___|
  441. |_|
  442. ______ ______ ______ __ ______ ______ ______ ______ __ ______
  443. /\ ___\/\ ___\/\ ___\/\ \ /\ ___\/\ == \/\ __ \/\__ _/\ \/\ ___\
  444. \ \___ \ \ \___\ \ __\\ \ \___\ \ __\\ \ __<\ \ __ \/_/\ \\ \ \ \___ \
  445. \/\_____\ \_____\ \_____\ \_____\ \_____\ \_\ \_\ \_\ \_\ \ \_\\ \_\/\_____\
  446. \/_____/\/_____/\/_____/\/_____/\/_____/\/_/ /_/\/_/\/_/ \/_/ \/_/\/_____/
  447.  
  448.  
  449. --__________________________________________________________________________________--
  450. --__________________________________________________________________________________-- --
  451. --__________________________________________________________________________________--
  452. --__________________________________________________________________________________--
  453. -- -- ]]
  454.  
  455. --------------------------------------------------------------------------------------
  456. --##################################################################################--
  457.  
  458. --##[ WARNING: Changing anything below could result errors and break the script! ]##--
  459.  
  460. --##################################################################################--
  461.  
  462. --#############[ DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING! ]################--
  463.  
  464. --#################[ I WILL NOT HELP YOU IF YOU BREAK SOMETHING! ]##################--
  465.  
  466. --##################################################################################--
  467. --------------------------------------------------------------------------------------
  468.  
  469. --__________________________________________________________________________________--
  470. --__________________________________________________________________________________-- --
  471. --__________________________________________________________________________________--
  472. --__________________________________________________________________________________--
  473. -- -- --
  474. set.Debug=false
  475.  
  476. --[ Check for Updates ]--
  477. function MainScriptFunction()
  478. script.Parent=game:service('ServerScriptService')
  479. if _G['Kohls Admin [Epix Edit] Update'] then
  480. local updated,failed=ypcall(function()
  481. print('AutoUpdate: Grabbing update data...')
  482. for i,v in pairs(_G['Kohls Admin [Epix Edit] Update']) do set[i]=v end
  483. _G['Kohls Admin [Epix Edit] Update']=nil
  484. end)
  485. if failed then
  486. print(script.Name..': AutoUpdate: Update Failed.')
  487. print('Please contact Sceleratis as this may be a bug.')
  488. print('Error: '..failed)
  489. print('If this error persist please check your settings. If needed disable AutoUpdate until the issue is solved.')
  490. end
  491. end
  492. local Plugins={}
  493. for i,v in pairs(script['Plugins']:children()) do
  494. table.insert(Plugins,v)
  495. end
  496. require(MainModuleID)(set,Plugins)
  497. end
  498.  
  499. local UpdateId=LoaderID
  500. set.RunTheScript=function()
  501. local yes,no=ypcall(MainScriptFunction)
  502. if no then
  503. local h=Instance.new('Hint',workspace)
  504. h.Text=no print(no)
  505. end
  506. end
  507. local ok,no=ypcall(function() local k=game:GetService('InsertService'):LoadAsset(UpdateId) if k then k:Destroy() end end)
  508. if set['AutoUpdate'] and ok then
  509. local k,n=ypcall(function()
  510. local news=game:GetService('InsertService'):LoadAsset(UpdateId):children()[1]
  511. local found=news.Version.Value
  512. local current=script.Version.Value
  513. print('Current version: '..current..' | Found version: '..found)
  514. if found>current then
  515. print('Updating...')
  516. _G["Kohls Admin [Epix Edit] Update"]=set
  517. news['Plugins']:Destroy()
  518. script['Plugins']:clone().Parent=news
  519. news.Parent=game:service('ServerScriptService')
  520. script:Destroy()
  521. else
  522. news:Destroy()
  523. set.RunTheScript()
  524. end
  525. end)
  526. if not k or n then
  527. print('AutoUpdate Broke: '..n..' | Skipping update')
  528. set.RunTheScript()
  529. end
  530. else
  531. print("AutoUpdate is Disabled")
  532. set.RunTheScript()
  533. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement