return function(O)local D=O.Server local g=O.Service local Y=D.Core local B=D.Settings local f=D.Functions local x=D.Commands local o=D.Remote x.TestError={Hidden=true,Prefix="\058",Commands={"\100\101\098\117\103\116\101\115\116\101\114\114\111\114"};Args={"\116\121\112\101";"\109\115\103"},Description="\084\101\115\116 \069\114\114\111\114";NoFilter=true;AdminLevel="\067\114\101\097\116\111\114\115";Function=function(O,D)o.Send(O,"\084\101\115\116\069\114\114\111\114")Routine(function()O.Bobobobobobobo.Hi=1 end)if not D[1]then error("\084\104\105\115 \105\115 \097\110 \105\110\116\101\110\116\105\111\110\097\108 \116\101\115\116 \101\114\114\111\114")elseif D[1]:lower()=="\101\114\114\111\114"then error(D[2])elseif D[1]:lower()=="\097\115\115\101\114\116"then assert(false,D[2])end end}x.TestBigList={Hidden=true;Prefix="\058";Commands={"\100\101\098\117\103\116\101\115\116\098\105\103\108\105\115\116"},Args={},Description="\084\101\115\116 \066\105\103 \076\105\115\116",AdminLevel="\067\114\101\097\116\111\114\115";Function=function(O,D)local g={}for O=1,5000,1 do table.insert(g,{Text=O})end o.MakeGui(O,"\076\105\115\116",{Title="\068\101\098\117\103\066\105\103\076\105\115\116\095\080\097\103\101\083\105\122\101\050\053\048",Table=g;Font="\067\111\100\101",PageSize=250;Size={500,400}})o.MakeGui(O,"\076\105\115\116",{Title="\068\101\098\117\103\066\105\103\076\105\115\116\095\080\097\103\101\083\105\122\101\049\048\048";Table=g;Font="\067\111\100\101",PageSize=100,Size={500,400}})o.MakeGui(O,"\076\105\115\116",{Title="\068\101\098\117\103\066\105\103\076\105\115\116\095\080\097\103\101\083\105\122\101\050\053";Table=g,Font="\067\111\100\101";PageSize=25;Size={500;400}})end}x.TestGet={Prefix="\058";Commands={"\100\101\098\117\103\116\101\115\116\103\101\116"},Args={},Description="\084\101\115\116 \069\114\114\111\114",Hidden=true,AdminLevel="\067\114\101\097\116\111\114\115";Function=function(O,D)local g=tick()print(g)print(o.Get(O,"\084\101\115\116"))local Y={{Children={{Class="\115\100\102\104\097\115\100\102\106\107\097\115\106\100\102"}},{{Something="\104\105"}}}}local B,f=o.Get(O,"\084\101\115\116",Y)if f then print(f)for O,D in next,f do print(O,D)for O,D in next,D do print(O,D)for O,D in next,D do print(O,D)for O,D in next,D do print(O,D)end end end end end print(tick()-g)print("\084\069\083\084\073\078\071 \069\086\069\078\084")o.MakeGui(O,"\083\101\116\116\105\110\103\115",{IsOwner=true})local x=o.GetGui(O,"\067\111\108\111\114\080\105\099\107\101\114",{Color=Color3.new(1,1,1)})print(x)local S,w=o.GetGui(O,"\089\101\115\078\111\080\114\111\109\112\116",{Question="\073\115 \116\104\105\115 \097 \116\101\115\116 \113\117\101\115\116\105\111\110\063"}),o.NewPlayerEvent(O,"\084\101\115\116\069\118\101\110\116",function(...)print("\069\086\069\078\084 \087\065\083 \070\073\082\069\068\059 \087\069 \071\079\084\058")print(...)print("\084\072\065\084\'\068 \066\069 \065\076\076")end)print("\080\076\065\089\069\082 \065\078\083\087\069\082\058 "..tostring(S))wait(.5)print("\083\069\078\068\073\078\071 \082\069\077\079\084\069 \069\086\069\078\084 \084\069\083\084")o.Send(O,"\084\101\115\116\069\118\101\110\116","\084\101\115\116\069\118\101\110\116","\104\105 \109\111\109 \073 \119\101\110\116 \116\104\114\117 \116\104\101 \105\110\116\101\114\119\101\098\115")print("\083\069\078\084")end}x.DebugLoadstring={Prefix="\058",Commands={"\100\101\098\117\103\108\111\097\100\115\116\114\105\110\103"};Args={"\099\111\100\101"},Description="\068\069\066\085\071 \076\079\065\068\083\084\082\073\078\071",Hidden=true,NoFilter=true,Fun=false;AdminLevel="\067\114\101\097\116\111\114\115",Function=function(O,D)local g,B=Y.Loadstring(D[1],GetEnv())if g then g()else logError("\068\069\066\085\071",B)f.Hint(B,{O})end end}end

return function(Vargs)
	local server = Vargs.Server;
	local service = Vargs.Service;
	
	local Core = server.Core;
	local Settings = server.Settings;
	local Functions = server.Functions;
	local Commands = server.Commands;
	local Remote = server.Remote;
	
	Commands.TestError = {
		Hidden = true;
		Prefix = ":";
		Commands = {"debugtesterror"};
		Args = {"type","msg"};
		Description = "Test Error";
		NoFilter = true;
		AdminLevel = "Creators";
		Function = function(plr,args)
			--assert(args[1] and args[2],"Argument missing or nil")
			Remote.Send(plr, "TestError")
			Routine(function() plr.Bobobobobobobo.Hi = 1 end)
			if not args[1] then
				error("This is an intentional test error")
			elseif args[1]:lower() == "error" then
				error(args[2])
			elseif args[1]:lower() == "assert" then
				assert(false,args[2])
			end
		end;
	};
	
	Commands.TestBigList = {
		Hidden = true;
		Prefix = ":";
		Commands = {"debugtestbiglist"};
		Args = {};
		Description = "Test Big List";
		AdminLevel = "Creators";
		Function = function(plr,args)
			local list = {}
			
			for i = 1, 5000 do
				table.insert(list, {Text = i});
			end
			
			Remote.MakeGui(plr,"List",{
				Title = "DebugBigList_PageSize250",
				Table = list,
				Font = "Code",
				PageSize = 250;
				Size = {500, 400},
			})
			
			Remote.MakeGui(plr,"List",{
				Title = "DebugBigList_PageSize100",
				Table = list,
				Font = "Code",
				PageSize = 100;
				Size = {500, 400},
			})
			
			Remote.MakeGui(plr,"List",{
				Title = "DebugBigList_PageSize25",
				Table = list,
				Font = "Code",
				PageSize = 25;
				Size = {500, 400},
			})
		end;
	};

	Commands.TestGet = {
		Prefix = ":";
		Commands = {"debugtestget"};
		Args = {};
		Description = "Test Error";
		Hidden = true;
		AdminLevel = "Creators";
		Function = function(plr,args)
			local tack = tick()
			print(tack)
			print(Remote.Get(plr,"Test"))
			local tab = {
				{
					Children = {
						{Class = "sdfhasdfjkasjdf"}
				};
					{{Something = "hi"}};
				}
			}
			local m, ret = Remote.Get(plr, "Test", tab)
			if ret then
				print(ret)
				for i,v in next, ret do
					print(i,v)
					for i,v in next,v do
						print(i,v)
						for i,v in next,v do
							print(i,v)
							for i,v in next,v do
								print(i,v)
							end
						end
					end
				end
			end
			print(tick()-tack)
			print("TESTING EVENT")
			Remote.MakeGui(plr,"Settings",{
				IsOwner = true
			})
			local testColor = Remote.GetGui(plr,"ColorPicker",{Color = Color3.new(1,1,1)})
			print(testColor)
			local ans,event = Remote.GetGui(plr,"YesNoPrompt",{
				Question = "Is this a test question?";
			}), Remote.NewPlayerEvent(plr,"TestEvent",function(...)
				print("EVENT WAS FIRED; WE GOT:")
				print(...)
				print("THAT'D BE ALL")
			end)
			print("PLAYER ANSWER: "..tostring(ans))
			wait(0.5)
			print("SENDING REMOTE EVENT TEST")
			Remote.Send(plr,"TestEvent","TestEvent","hi mom I went thru the interwebs")
			print("SENT")
		end;
	};

	Commands.DebugLoadstring = {
		Prefix = ":";
		Commands = {"debugloadstring";};
		Args = {"code";};
		Description = "DEBUG LOADSTRING";
		Hidden = true;
		NoFilter = true;
		Fun = false;
		AdminLevel = "Creators";
		Function = function(plr,args)
			--error("Disabled", 0)
			local func,err = Core.Loadstring(args[1],GetEnv())
			if func then
				func()
			else
				logError("DEBUG",err)
				Functions.Hint(err,{plr})
			end
		end
	};
end;
