function module.SetupMainVariables(w,o)main.hdAdminGroup={Id=4676369,Info={}}main.hdAdminGroupInfo={}main.settingsBanRecords={}main.alphabet={"\097";"\098","\099";"\100","\101";"\102";"\103";"\104","\105";"\106";"\107";"\108";"\109";"\110";"\111";"\112";"\113","\114";"\115";"\116";"\117","\118","\119";"\120";"\121","\122"}main.UserIdsFromName={}main.UsernamesFromUserId={}main.validSettings={"\084\104\101\109\101";"\078\111\116\105\099\101\083\111\117\110\100\073\100";"\078\111\116\105\099\101\086\111\108\117\109\101";"\078\111\116\105\099\101\080\105\116\099\104";"\069\114\114\111\114\083\111\117\110\100\073\100","\069\114\114\111\114\086\111\108\117\109\101","\069\114\114\111\114\080\105\116\099\104","\065\108\101\114\116\083\111\117\110\100\073\100","\065\108\101\114\116\086\111\108\117\109\101";"\065\108\101\114\116\080\105\116\099\104";"\080\114\101\102\105\120"}main.commandInfoToShowOnClient={"\078\097\109\101","\067\111\110\116\114\105\098\117\116\111\114\115","\080\114\101\102\105\120\101\115";"\082\097\110\107","\065\108\105\097\115\101\115","\084\097\103\115";"\068\101\115\099\114\105\112\116\105\111\110","\065\114\103\115","\076\111\111\112\097\098\108\101"}main.products={Donor=5745895,OldDonor=2649766}main.materials={"\080\108\097\115\116\105\099";"\087\111\111\100","\067\111\110\099\114\101\116\101","\067\111\114\114\111\100\101\100\077\101\116\097\108","\068\105\097\109\111\110\100\080\108\097\116\101","\070\111\105\108";"\071\114\097\115\115","\073\099\101";"\077\097\114\098\108\101","\071\114\097\110\105\116\101";"\066\114\105\099\107","\080\101\098\098\108\101";"\083\097\110\100";"\070\097\098\114\105\099";"\083\109\111\111\116\104\080\108\097\115\116\105\099";"\077\101\116\097\108","\087\111\111\100\080\108\097\110\107\115","\067\111\098\098\108\101\115\116\111\110\101","\078\101\111\110";"\071\108\097\115\115"}main.rankTypes={Auto=4;Perm=3,Server=2;Temp=1}if o=="\083\101\114\118\101\114"then main.pd={}main.sd={}main.permissions={specificUsers={},gamepasses={},assets={};groups={};friends=0;freeAdmin=0,vipServerOwner=0;vipServerPlayer=0;owner=true}main.commandInfo={}main.commandRanks={}main.infoOnAllCommands={Contributors={};Tags={},Prefixes={},Aliases={}}main.morphNames={}main.toolNames={}main.commands={}main.playersRanked={}main.playersUnranked={}main.settings.UniversalPrefix="\033"main.serverAdmins={}main.owner={}main.ownerId=game.CreatorId if game.CreatorType==Enum.CreatorType.Group then local o,w for A=1,10,1 do o,w=pcall(function()return(main.groupService:GetGroupInfoAsync(game.CreatorId)).Owner end)if o then break end task.wait(1)end if o then main.ownerId=w.Id main.ownerName=w.Name end end main.gameName=game.PlaceId>0 and(main.marketplaceService:GetProductInfo(game.PlaceId,Enum.InfoType.Asset)).Name or"\071\097\109\101\078\097\109\101\070\097\105\108\101\100\084\111\076\111\097\100"main.listOfTools={}main.ranksAllowedToJoin=0 main.permissionToReplyToPrivateMessage={}main.logs={command={},chat={}}main.isStudio=main.runService:IsStudio()main.serverBans={}main.blacklistedVipServerCommands={}main.banned={}main.commandBlocks={}for o=1,3,1 do pcall(function()main.physicsService:CreateCollisionGroup("\071\114\111\117\112"..o)end)end main.physicsService:CollisionGroupSetCollidable("\071\114\111\117\112\049","\071\114\111\117\112\050",false)elseif o=="\067\108\105\101\110\116"then main.qualifiers={"\109\101";"\097\108\108","\111\116\104\101\114\115","\114\097\110\100\111\109";"\097\100\109\105\110\115","\110\111\110\065\100\109\105\110\115","\102\114\105\101\110\100\115","\110\111\110\070\114\105\101\110\100\115","\078\066\067","\066\067";"\084\066\067","\079\066\067","\082\054","\082\049\053","\114\116\104\114\111","\110\111\110\082\116\104\114\111"}main.colors={}main.topbarEnabled=true main.blur=Instance.new("\066\108\117\114\069\102\102\101\099\116",main.camera)main.blur.Size=0 main.commandMenus={}main.commandsToDisableCompletely={laserEyes=true}main.commandsActive={}main.commandsAllowedToUse={}main.commandsWithMenus={Type1={laserEyes={"\073\110\102\111","\080\114\101\115\115 \097\110\100 \104\111\108\100 \116\111 \097\099\116\105\118\097\116\101\046"},fly={"\073\110\112\117\116","\083\112\101\101\100"},fly2={"\073\110\112\117\116","\083\112\101\101\100"},noclip={"\073\110\112\117\116","\083\112\101\101\100"};noclip2={"\073\110\112\117\116","\083\112\101\101\100"}},Type2={cmdbar2={}};Type3={bubbleChat={}}}main.commandSpeeds={fly=50,fly2=50,noclip=100,noclip2=25}for o,w in pairs(main.commandSpeeds)do local A=main.settings.CommandLimits[o]if A then local e=A.Limit if w>e then main.commandSpeeds[o]=e end end end main.infoFramesViewed={Speed=true}end table.sort(main.settings.Ranks,function(o,w)return o[1]<w[1]end)end return module

function module:SetupMainVariables(location)
	main.hdAdminGroup = {
		Id = 4676369;
		Info = {};
	}
	main.hdAdminGroupInfo = {}
	
	main.settingsBanRecords = {}
	main.alphabet = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
	main.UserIdsFromName = {}
	main.UsernamesFromUserId = {}
	main.validSettings = {"Theme", "NoticeSoundId", "NoticeVolume", "NoticePitch", "ErrorSoundId", "ErrorVolume", "ErrorPitch", "AlertSoundId", "AlertVolume", "AlertPitch", "Prefix"}
	main.commandInfoToShowOnClient = {"Name", "Contributors", "Prefixes", "Rank", "Aliases", "Tags", "Description", "Args", "Loopable"}
	main.products = {
		Donor = 5745895;
		OldDonor = 2649766;
	}
	main.materials = {"Plastic", "Wood", "Concrete", "CorrodedMetal", "DiamondPlate", "Foil", "Grass", "Ice", "Marble", "Granite", "Brick", "Pebble", "Sand", "Fabric", "SmoothPlastic", "Metal", "WoodPlanks", "Cobblestone", "Neon", "Glass",}
	main.rankTypes = {
		["Auto"] = 4;
		["Perm"] = 3;
		["Server"] = 2;
		["Temp"] = 1;
	}
	
	if location == "Server" then
		
		main.pd = {}
		main.sd = {}
		main.permissions = {
			specificUsers = {};
			gamepasses = {};
			assets = {};
			groups = {};
			friends = 0;
			freeAdmin = 0;
			vipServerOwner = 0;
			vipServerPlayer = 0;
			owner = true
		}
		
		main.commandInfo = {}
		main.commandRanks = {}
		main.infoOnAllCommands = {
			Contributors = {};	--table
			Tags = {};			--table
			Prefixes = {};		--dictionary
			Aliases = {};		--dictionary
		}
	
		main.morphNames = {}
		main.toolNames = {}
		
		main.commands = {}
		main.playersRanked = {}
		main.playersUnranked = {}
		main.settings.UniversalPrefix = "!";
		main.serverAdmins = {}
		main.owner = {}
		main.ownerId = game.CreatorId
		if game.CreatorType == Enum.CreatorType.Group then
			local success, ownerInfo
			for i = 1, 10 do
				success, ownerInfo = pcall(function() return main.groupService:GetGroupInfoAsync(game.CreatorId).Owner end)
				if success then
					break
				end
				task.wait(1)
			end
			if success then
				main.ownerId = ownerInfo.Id
				main.ownerName = ownerInfo.Name
			end
		end
		main.gameName = (game.PlaceId > 0 and main.marketplaceService:GetProductInfo(game.PlaceId, Enum.InfoType.Asset).Name) or "GameNameFailedToLoad"
		main.listOfTools = {}
		main.ranksAllowedToJoin = 0
		main.permissionToReplyToPrivateMessage = {}
		main.logs = {
			command = {};
			chat = {};
		}
		main.isStudio = main.runService:IsStudio()
		main.serverBans = {}
		main.blacklistedVipServerCommands = {}
		main.banned = {}
		main.commandBlocks = {}
		
		--Collisions
		for i = 1,3 do
			pcall(function() main.physicsService:CreateCollisionGroup("Group"..i) end)
		end
		main.physicsService:CollisionGroupSetCollidable("Group1", "Group2", false)
		
		
	elseif location == "Client" then
		
		main.qualifiers = {"me", "all", "others", "random", "admins", "nonAdmins", "friends", "nonFriends", "NBC", "BC", "TBC", "OBC", "R6", "R15", "rthro", "nonRthro"}
		main.colors = {}
		main.topbarEnabled = true
		main.blur = Instance.new("BlurEffect", main.camera)
		main.blur.Size = 0
		
		main.commandMenus = {}
		main.commandsToDisableCompletely = {laserEyes=true}
		main.commandsActive = {}
		main.commandsAllowedToUse = {}
		main.commandsWithMenus = {
			["Type1"] = {
				["laserEyes"] = {"Info", "Press and hold to activate."};
				["fly"] = {"Input", "Speed"};
				["fly2"] = {"Input", "Speed"};
				["noclip"] = {"Input", "Speed"};
				["noclip2"] = {"Input", "Speed"};
			};
			["Type2"] = {
				["cmdbar2"] = {};
			};
			["Type3"] = {
				["bubbleChat"] = {};
			};
		}
		main.commandSpeeds = {
			fly = 50;
			fly2 = 50;
			noclip = 100;
			noclip2 = 25;
		}
		for commandName, defaultSpeed in pairs(main.commandSpeeds) do
			local setting = main.settings.CommandLimits[commandName]
			if setting then
				local limit = setting.Limit
				if defaultSpeed > limit then
					 main.commandSpeeds[commandName] = limit
				end
			end
		end
		
		main.infoFramesViewed = {
			Speed = true;
		}

	end
	
	table.sort(main.settings.Ranks, function(a,b) return a[1] < b[1] end)
	
end



return module
