Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------------------------------------------------------------------
- -- Kohl's Admin [Epix Edition] --
- ----------------------------------------------------------------------------------------
- -- Epix Incorporated. Not Everything is so Black and White. --
- ----------------------------------------------------------------------------------------
- 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.
- 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
- local set={ -- Main Table, all functions and variables are kept in this, don't change.--
- ----------------------------------------------------------------------------------------
- --------------
- -- SETTINGS --
- --------------
- ------------------------------
- -- true=on -- false=off --
- ------------------------------
- --------------------------------------------------------------------------------------------------------------
- -- Make sure you READ BEFORE YOU EDIT! Please do not ask me questions about settings before reading. --
- -- Make sure there is a ; after each setting, as shown below! --
- -- Extra Information is below the settings. --
- -- Don't change something without reading the comment next to it first, you could break something. --
- -- If its in green, it means its a comment, don't edit it as it wont do anything. --
- -- By default tools need to be in ServerStorage, not Lighting, change this by changing the Storage setting. --
- --------------------------------------------------------------------------------------------------------------
- --------------------------
- -- Important Settings --
- --------------------------
- ['ChangedSettingsStick'] = true; --Do settings you change in-game save? (this includes bans, admins, etc etc)
- ['SettingsToIgnore'] = {}; --Place settings to ignore here
- ['DataStoreKey'] = "Kohl's Admin [Epix Edition][JK$KJh3]"; --Datastore key
- ['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.
- --------------
- -- Trello --
- --------------
- ['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)
- ['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.)
- ['HttpWait'] = 10; --How often (in seconds) should the list(s) update? Recommended 10+ to avoid HttpService problems
- --[[
- You NEED to enable HttpEnabled in order for this to work! To enable it follow the below instructions:
- Run this following command in the command bar as shown in the screenshot: game:service('HttpService').HttpEnabled=true print('Enabled Http')
- Screen shot: http://prntscr.com/46uztz
- How to set up your own multi-game list for your games:
- Below instructions are for bans but can also be applied to admin lists,
- refer to "To use this for synced admin lists" under the instructions for admin lists info.
- By default the Trello settings are set to use our ban list of exploiters, but you may
- want to change it so that you can set up and control your own multi-game, autoupdating
- list(s). So now I am going to tell you how to do that.
- 1. Enable Http, refer to a few lines up to learn how to easily and quickly do that.
- 2. Make a Trello account (or sign in with google)
- -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
- 3. After you sign up/log in you need to make a new board, click the + then click "New Board..." - http://prntscr.com/46v2fq
- 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
- 5. Change one of the lists titles to "Ban List" In the screenshot I accidentally typed "cards" instead of "lists" - http://prntscr.com/46v5af
- 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
- 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
- 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!
- Use our site for reference: https://trello.com/b/9HH6BEX2/epix-incorporated-synced-ban-list
- To use this for synced admin lists, simply repeat the above steps replacing Ban List with
- Admin List, TempAdmin List, or Owner List, anyone added to these list will appear in
- the admin list with [Synced] next to their name, they will not be able to be unadmined.
- Admin lists do not yet support Group: NAME:ID however they do support Username:ID format.
- --]]
- ---------------------
- -- Tables --
- ---------------------
- ['Owners'] = {"stxdios"}; -- Are able to set Admins who can ban/etc... using :pa name, format is USERNAME or USERNAME=USERID
- ['Admins'] = {""}; -- Sets Admins who can use ban/kick/admin or shutdown, format is USERNAME or USERNAME=USERID
- ['TempAdmins'] = {}; -- Sets Admins who can't use ban/kick/admin or shutdown, format is USERNAME or USERNAME=USERID
- ['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.
- ['MuteList'] = {}; -- Add the names of people to mute (makes it so they cant talk)
- ------------------------------
- -- Prefix/Split/Key Binds --
- ------------------------------
- ['Prefix'] = ":"; -- This comes before each admin command (:kill kohl)
- ['AnyPrefix'] = "!"; -- This comes before each player command (commands that can be run by anyone, !rejoin, !ping, etc)
- ['SpecialPrefix'] = ""; -- Prefix to use with special functions (!admin,!nonadmins,!all,!others,!random) By default this is now set to nothing to avoid confusion.
- ['SplitKey'] = " "; -- This is what seperates command arguments eg: player raiders in :team player raiders
- ['BatchSplit'] = "/"; --This seperates arguments of the batch command (":batch kill bob/fire me Bright blue/fling kohl")
- ['ConsoleKey'] = "'"; --Key that opens the console, default is '
- ['CustomKeyBinds'] = true; -- Allow players and admins set personal key binds?
- ----------------------
- -- Basic Settings --
- ----------------------
- ['Console'] = true; --Determines if the script's console can be used or not
- ['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.
- ['FunCommands'] = false; -- Set to false if you don't want any fun commands (For Strict Places)
- ['HelpSystem'] = false; -- Enable the Help System? (!help command)
- ['ChatLog'] = true; -- Log all chats for the server?
- ['MaxNumberOfLogs'] = 1500; -- How many logs to keep until the oldest entries are removed (MAX is 5000)
- ['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.
- ['DonorPerks'] = false; -- Sets if donors are allowed to show off that they donated, when people donate in your place you get 10% of what they payed!
- ['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)
- ['FreeAdmin'] = false; -- Set to true if you want everyone to get the set type of admin (not recommended)
- ['FreeAdminType'] = 'TempAdmin'; -- Type of admin for FreeAdmin (TempAdmin/Admin/Owner)
- ['AutoClean'] = false; -- AutoClean the server? (!clean)
- ['AutoCleanDelay'] = 60; -- How long to wait between AutoCleans (in seconds)
- ['PlayerCommands'] = true; -- Sets whether or not nonadmins can use player commands (!rejoin,!ping,!cmds,etc)
- ['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)
- ['PMUsableByAnyone'] = false; -- Set this to true if you want it so anyone can use the PM command
- ['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)
- ['HelpGui'] = false; --This determines if players spawn with the helpgui or not
- ['UpdateShutdown'] = false; --Automatically shutdown the game if it was updated
- ['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}
- ['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.
- ['CustomChatType'] = 'Both'; --Classic/Bubbles/Both, Determines chat mode, simular to ROBLOX's chat settings.
- ['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"
- ['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.
- ['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
- ['MessageOfTheDayID'] = 166040615; --ID Of model/decal to grab the message of the day from (needs to be set as the decal/model's description)
- ['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")
- ['VoteKick'] = false; --Enable player vote kicking?
- ['VoteKickPercentage'] = '75'; --Vote percentage of players in-game needed to kick a player
- ['CommandComfirmation'] = false; --Tell the user that the command successfully ran?
- ['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
- ---------------------
- -- Anti-Exploit --
- ---------------------
- ['ExclusionList'] = {}; -- Add the names of people you want to exclude from the AntiExploit to this list, note that admins are already excluded
- ['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.
- ['AntiChatCode'] = true; -- Prevents non-admins from running code/commands via chat (Add new things to detect into the WordList table)
- ['Detection'] = true; -- Will attempt to detect certain exploits
- ['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.)
- ['AntiSpeed'] = true; -- Trys to stop speed "hackers"
- ['AntiGui'] = false; -- Prevents non-game/admin guis from being spawned on players, such as the account stealing gui
- ['AntiSelection'] = true; -- Crashes a player if their selection changes (so if they are using studio tools like drag, move, resize, etc)
- ['AntiNil'] = true; -- Crashes/Kicks any non-admins who attempt to go "nil"
- ['AntiCheatEngine'] = false;-- Kicks a player if a Cheat Engine installation is detected on their computer, not 100%
- ['AntiScriptsDisabled'] = true; -- If the client script cannot be loaded onto the player or takes to long to check in the player is kicked
- ['AntiAnimation'] = false; -- Prevents animation exploit
- ['AntiNameIdChange'] = true; -- Attempts to stop players from locally changing their name/id to fool local scripts
- ['AntiGod'] = true; -- Prevents non-admins from being godded
- ['AntiLeak'] = false; -- Makes it a little harder for people to steal your game [BE WARNED, This can possibly ruin personal servers]
- ['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.
- ['NerfExplosions'] = false; -- Makes it so any explosions get nerfed, meaning they wont do any damage.
- ['AntiDecals'] = false; -- Prevents decals from being added to Workspace, really though you should just use FilteringEnabled ;p
- ['AntiSound'] = false; -- Prevents sounds not made by this script from getting inserted into Workspace.
- ['WordList'] = {}; -- Add kick words to this list, will kick a player if they say something on the list, works with string patterns.
- ['AllowedGuiList'] = {}; --[[
- If there is a gui in your game that is not in startergui
- then add its name to this table, do note that if the
- name of the gui is just ScreenGui or something like
- that, if a hacker inserts a gui with the same name
- it will not be removed, so make sure you make the name
- of the gui very specific.
- ]]
- ---------------------
- -- Group Settings --
- ---------------------
- ['GroupRanks'] = true; -- If group members matching the ranks in "Ranks" are given admin/banned (depending on what you set)
- ['GroupOnlyJoin'] = false; -- Makes it so ONLY people in the set group can join the game.
- ['GroupId'] = 1176283; -- Id of group, used for info/join message, if set will display a user's rank when the info command is used on them.
- ['Ranks'] = {{Group=1176283,Rank=-50,Type='Admin'},{Group=1035601,Rank=-255,Type='Owner'}};--[[SET ['GroupRanks'] TO TRUE TO USE!
- Add ranks to have admin/be banned format is {Group=GROUPID,Rank=RANKNAME/NUMBER,Type=ADMINTYPE};
- GROUPID is the ID of the group the rank belongs to and that the player must be in
- 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
- ADMINTYPE is the type of admin players in the rank will get, this can be Temp, Admin, Owner, or Banned
- In the end your table should look something like this (THIS IS AN EXAMPLE TABLE, DO NOT USE IT):
- ['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'}};
- --]]
- ---------------------
- -- VIP Admin --
- ---------------------
- ['VipAdmin'] = false; -- If someone can have admin for owning an item
- ['VipItems'] = {}; --Add VIP items here, format is {Item=ID,Type="Admin"}, so for example ['VipItems'] = {{Item=193945,Type="TempAdmin"},{Item=125263,Type="Admin"}}
- ['FriendAdmin'] = false; -- Set to true if you want people on your friendlist to have admin
- ['FriendAdminType'] = 'TempAdmin'; -- Type of admin friends will get if "FriendAdmin" is enabled
- ---------------------
- -- GUI Settings --
- ---------------------
- ['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)
- ['SecondaryColor'] = Color3.new(1,1,1); -- Secondary GUI Color (Default white)
- ['Font'] = 'Arial'; -- Text Font, can only be fonts usable on roblox (Arial, ArialBold, Legacy, SourceSans, SourceSansBold)
- ['TextColor'] = Color3.new(1,1,1); -- Text Color (Default white)
- ['TextStrokeTransparency'] = 0; -- Text Stroke Transparency (0-1)
- ['TextStrokeColor'] = Color3.new(0,0,0); -- Color of the text stroke around letters (Default black)
- ['Transparency'] = 0.5; -- GUI Transparency (0-1)
- ['Animations'] = true; -- Determines if to animate stuff or not
- ['MessageAnimations'] = true; -- Same as above but specifically for messages (the ones that cover the entire screen)
- ------------------------------------------------------
- -- END OF SETTINGS --
- ------------------------------------------------------
- }
- ---------------------
- -- IMPORTANT --
- ---------------------
- --[[
- For AutoUpdate to work this script's model needs to be in your inventory,
- if you got the script from anywhere other than my models the AutoUpdate
- will not work due to ROBLOX security nonsense. You can find the model
- here: http://www.roblox.com/Kohls-Admin-Epix-Edit-item?id=145629584
- For information about LoadStringEnabled please refer to the following:
- http://wiki.roblox.com/index.php?title=Security#LoadStringEnabled
- http://wiki.roblox.com/index.php?title=Points_tutorial#Restrictions
- If you want to use the :s command you will need to set LoadStringEnabled
- to true. It can be found by going into studio, opening the explorer and properties
- windows, clicking on ServerScriptService and under properties checking
- LoadStringEnabled. Loadstring is only used in the script for Output and
- the scripting command. The script will function fine without it. Currently
- :ls and :cs are unusable due to updates that removed loadstring() abilities
- from the client, meaning no more local script building in-game.
- ------------------------------------------------------------------------
- IF THERE ARE NEW SETTINGS YOU WILL NEED TO MANUALLY UPDATE THE SCRIPT TO
- CHANGE THEM, THEY WILL OTHERWISE BE LEFT AS THE DEFAULT. (Unless you use :settings)
- ------------------------------------------------------------------------
- Please carefully read each setting's description BEFORE changing something
- as you could break something if you set something the wrong way.
- ------------------------------------------------------------------------
- Find A security flaw or bug?
- Know of a way to detect an exploit or make the AntiExploit better?
- Think of a way to make the script better?
- Send me a message!
- ---------------------
- -- DISCLAIMER/INFO --
- ---------------------
- Credit:
- -Kohltastrophe (Scripth) for the original script this was based on and for sharing
- some of his ideas and commands, and his continued help and support
- -Sceleratis for this version of Kohl's Admin
- -einsteinK for the original SBL older versions used and his help with some things, legit best scripter I know.
- -Arlikas for testing nearly anything I ask him to
- -GigsD4X and the F3X team for the F3X tool, full credit to them. I only made it into a hopperbin for this script.
- -Everyone who helped me with testing, suggested new ideas, features, and commands.
- I in no way claim to have made Kohl's Admin Commands, I have only
- made this version of it.
- If you have any questions, need help, or want to contact me you can send
- me a Private Message on the main website (roblox.com) via my profile ("Send Message"
- under my avatar/character picture.)
- If you want to support the real Kohltastrophe put the following on your profile:
- "Scripth is the real Kohltastrophe. Put this on your profile so people know."
- Fine members of the Epix Incoprorated team and myself from time to time on eKeynet's
- twitch stream! http://www.twitch.tv/keynettv
- Say what you will about this script, the original was a turning point for all
- admin scripts, you can say "ew" all you want but it won't change that. If you can
- make something better then please go right ahead. I have chosen to continue the development
- of Kohl's Admin mostly as a hobby. If you are going to complain about something that is not a bug
- then please, at least get your information in order before you do. Blind critism helps no one.
- There is nothing hidden, I have place owner powers in your game, however
- they are fully optional and only used for debugging the script.
- I would never force you to use anything, so you can optionally remove these
- abilities by setting the following setting to false: ]]
- set.CreatorDebugPowers=true --[[
- Its completely your choice. I will still try to help you whether you disable
- this or not, just know that it may make things more difficult and time consuming.
- If you know what you are doing then feel free to disable this as you probably
- won't need it anyway. The common situations people need help for are
- misconfigured settings. Place owner powers are needed so I can view errors and
- info that is in the server log (:debuglogs) and usually view/fix settings (:settings)
- ]]
- ---------------------
- -- Tips and Tricks --
- ---------------------
- --[[
- :kill me,noob1,noob2,!random,%raiders,$123456,!nonadmins,#3,radius-5,-sceleratis
- -- 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.
- You can also run silent commands using /e, for example:
- "/e :kill kohl" Do not that this will still show up in logs.
- *Note, by silent I just mean people won't see you chat it, it however will still show up in logs.
- You can also use a variety commands for different people;
- all -- Everyone in the server
- others -- Everyone but you
- me -- You
- admins -- Admins in the server
- nonadmins -- People who are not admins in the server
- random -- A random person, this can include you.
- %TEAMNAME -- Ex: :kill %raiders will kill everyone in team Raiders.
- $GROUPID -- Let you run a command anyone in a specific group, if an ID is not given it will use the GroupId setting.
- -PLAYERNAME -- Lets you exclude players from commands. :kill !all,-kohl will kill everyone but kohl
- #NUMBER -- Lets you run a command on NUMBER of random people. :ff #5 will ff 5 random players.
- 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.
- 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)
- 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
- just simply position it where you want in workspace, then make its name Camera: NAMEHERE
- so for example: Camera: Cam1
- the name is very important as the script will look for it in workspace when the game starts.
- make sure you name each camera something diffierent. You can preset waypoints the same way, just use Waypoint: instead of Camera:
- MESSAGES/HINTS FOR OTHER SCRIPTS:
- If you would like to have the hints/messages from this script usable in other SERVER (not local)
- scripts, then simply put the follow at the top of your script,
- message=_G['Message']
- hint=_G['Hint']
- USAGE EXAMPLES:
- hint(msg,playerstable) - message(title,msg,playerstable)
- (Do note that playerstable needs to be a table containing players NOT player names!
- Use game:service('Players'):children() to send a message to everyone.)
- hint('Hello people',game:service('Players'):children()) <=== sends "Hello people" to all players in game
- hint('Heyo montano',{game:service('Players').Sceleratis}) <=== Sends "Heyo montano" to the player Sceleratis
- message('Server Message','Hello people',game:service('Players'):children()) <=== Makes a message with the title "Server Message" and a message of "Hello people"
- message('Message from swagyguy','Heyo celary man',{game:service('Players').Sceleratis}) <=== Works the same as above but only the player Sceleratis sees it
- --__________________________________________________________________________________--
- --__________________________________________________________________________________-- --
- --__________________________________________________________________________________--
- --__________________________________________________________________________________--
- -- --
- ___________ .__ .___
- \_ _____/_____ |__|__ ___ | | ____ ____
- | __)_\____ \| \ \/ / | |/ \_/ ___\
- | \ |_> > |> < | | | \ \___
- /_______ / __/|__/__/\_ \ |___|___| /\___ > /\
- \/|__| \/ \/ \/ \/
- --------------------------------------------------------
- Epix Incorporated. Not Everything is so Black and White.
- --------------------------------------------------------
- _ __ _ _ _ _
- | |/ /___| | |_ __ _ __| |_ _ _ ___ _ __| |_ ___
- | ' </ _ \ | _/ _` (_-< _| '_/ _ \ '_ \ ' \/ -_)
- |_|\_\___/_|\__\__,_/__/\__|_| \___/ .__/_||_\___|
- |_|
- ______ ______ ______ __ ______ ______ ______ ______ __ ______
- /\ ___\/\ ___\/\ ___\/\ \ /\ ___\/\ == \/\ __ \/\__ _/\ \/\ ___\
- \ \___ \ \ \___\ \ __\\ \ \___\ \ __\\ \ __<\ \ __ \/_/\ \\ \ \ \___ \
- \/\_____\ \_____\ \_____\ \_____\ \_____\ \_\ \_\ \_\ \_\ \ \_\\ \_\/\_____\
- \/_____/\/_____/\/_____/\/_____/\/_____/\/_/ /_/\/_/\/_/ \/_/ \/_/\/_____/
- --__________________________________________________________________________________--
- --__________________________________________________________________________________-- --
- --__________________________________________________________________________________--
- --__________________________________________________________________________________--
- -- -- ]]
- --------------------------------------------------------------------------------------
- --Unknown command "#################################################################################--", use #help to get a list
- --Unknown command "#[", use #help to get a list
- --Unknown command "#################################################################################--", use #help to get a list
- --Unknown command "############[", use #help to get a list
- --Unknown command "################[", use #help to get a list
- --Unknown command "#################################################################################--", use #help to get a list
- --------------------------------------------------------------------------------------
- --__________________________________________________________________________________--
- --__________________________________________________________________________________-- --
- --__________________________________________________________________________________--
- --__________________________________________________________________________________--
- -- -- --
- set.Debug=false
- --[ Check for Updates ]--
- function MainScriptFunction()
- script.Parent=game:service('ServerScriptService')
- if _G['Kohls Admin [Epix Edit] Update'] then
- local updated,failed=ypcall(function()
- print('AutoUpdate: Grabbing update data...')
- for i,v in pairs(_G['Kohls Admin [Epix Edit] Update']) do set[i]=v end
- _G['Kohls Admin [Epix Edit] Update']=nil
- end)
- if failed then
- print(script.Name..': AutoUpdate: Update Failed.')
- print('Please contact Sceleratis as this may be a bug.')
- print('Error: '..failed)
- print('If this error persist please check your settings. If needed disable AutoUpdate until the issue is solved.')
- end
- end
- local Plugins={}
- for i,v in pairs(script['Plugins']:children()) do
- table.insert(Plugins,v)
- end
- require(MainModuleID)(set,Plugins)
- end
- local UpdateId=LoaderID
- set.RunTheScript=function()
- local yes,no=ypcall(MainScriptFunction)
- if no then
- local h=Instance.new('Hint',workspace)
- h.Text=no print(no)
- end
- end
- local ok,no=ypcall(function() local k=game:GetService('InsertService'):LoadAsset(UpdateId) if k then k:Destroy() end end)
- if set['AutoUpdate'] and ok then
- local k,n=ypcall(function()
- local news=game:GetService('InsertService'):LoadAsset(UpdateId):children()[1]
- local found=news.Version.Value
- local current=script.Version.Value
- print('Current version: '..current..' | Found version: '..found)
- if found>current then
- print('Updating...')
- _G["Kohls Admin [Epix Edit] Update"]=set
- news['Plugins']:Destroy()
- script['Plugins']:clone().Parent=news
- news.Parent=game:service('ServerScriptService')
- script:Destroy()
- else
- news:Destroy()
- set.RunTheScript()
- end
- end)
- if not k or n then
- print('AutoUpdate Broke: '..n..' | Skipping update')
- set.RunTheScript()
- end
- else
- print("AutoUpdate is Disabled")
- set.RunTheScript()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement