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