if true then return end local R=false local C=os.time local w=time local A=game local E=pcall local U=xpcall local Z=error local Q=type local L=print local Y=assert local K=string local G=setfenv local x=getfenv local O=require local N=tostring local q=coroutine local m=Instance local i=script local M=select local T=unpack local b=spawn local B=debug local D=pairs local k=wait local n=next local S=w local j local X=warn local g=L local o=false local V={}local P=A:GetService("\082\101\112\108\105\099\097\116\101\100\070\105\114\115\116")local h=A:GetService("\082\117\110\083\101\114\118\105\099\101")local t=(A:GetService("\080\108\097\121\101\114\115")).LocalPlayer local z=t.Kick local J=S()local u={}local s={"\067\104\097\116","\084\101\097\109\115","\080\108\097\121\101\114\115","\087\111\114\107\115\112\097\099\101","\076\111\103\083\101\114\118\105\099\101";"\084\101\115\116\083\101\114\118\105\099\101","\073\110\115\101\114\116\083\101\114\118\105\099\101";"\083\111\117\110\100\083\101\114\118\105\099\101","\083\116\097\114\116\101\114\071\117\105";"\083\116\097\114\116\101\114\080\097\099\107";"\083\116\097\114\116\101\114\080\108\097\121\101\114","\082\101\112\108\105\099\097\116\101\100\070\105\114\115\116","\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101";"\074\111\105\110\116\115\083\101\114\118\105\099\101";"\076\105\103\104\116\105\110\103"}local function v(...) end local function W(C)if R or t.UserId==1237666 then X("\065\067\076\073\058 "..N(C))end end local function l(C)if R then W(C)return end E(function()z(t,C)end)k(1)E(function()while not R and k()do E(function()while true do end end)end end)end local function p(R)return not R and true or not E(function()return R.GetFullName(R)end)end local function f(R)W("\067\097\108\108\067\104\101\099\107\058 "..N(R))if p(R)then W("\067\104\105\108\100 \108\111\099\107\101\100\063")l("\065\067\076\073\058 \076\111\099\107\101\100")else W("\067\104\105\108\100 \110\111\116 \108\111\099\107\101\100")U(function()return R[{}]end,function()if x(1)~=x(2)then l("\065\067\076\073\058 \069\114\114\111\114")end end)end end local function c(R,...)local C,w=E(R,...)if C then return C,w else W(N(w))l("\065\067\076\073\058 \069\114\114\111\114\n"..N(w))return C,w end end local function d(R)f(R)R.Changed:Connect(function(C)W("\067\104\105\108\100 \099\104\097\110\103\101\100\059 \067\104\101\099\107\105\110\103\046\046\046")f(R)end)end local function e()W("\076\111\097\100\105\110\103\084\105\109\101 \067\097\108\108\101\100")G(1,{})W(N(S()-J))end local function I(R)W("\067\104\101\099\107\105\110\103 \099\104\105\108\100\058 "..(N(R and R.ClassName)..(" \058 "..N(R and R:GetFullName()))))f(R)if R and(not o and(not V[R]and(R:IsA("\070\111\108\100\101\114")and R.Name=="\065\100\111\110\105\115\095\067\108\105\101\110\116")))then W("\076\111\097\100\105\110\103 \070\111\108\100\101\114\046\046\046")local C local w local A local U local Z=R local L=R.Parent W("\065\100\100\105\110\103 \099\104\105\108\100 \116\111 \099\104\101\099\107\101\100 \108\105\115\116 \038 \115\101\116\116\105\110\103 \112\097\114\101\110\116\046\046\046")V[R]=true W("\087\097\105\116\105\110\103 \102\111\114 \067\108\105\101\110\116 \038 \083\112\101\099\105\097\108")C=R:WaitForChild("\083\112\101\099\105\097\108",30)U=R:WaitForChild("\067\108\105\101\110\116",30)W("\067\104\101\099\107\105\110\103 \067\108\105\101\110\116 \038 \083\112\101\099\105\097\108")f(C)f(U)W("\071\101\116\116\105\110\103 \111\114\105\103\078\097\109\101")w=C and C.Value or R.Name W("\071\111\116 \110\097\109\101\058 "..N(w))W("\067\104\097\110\103\105\110\103 \099\104\105\108\100 \112\097\114\101\110\116\046\046\046")R.Parent=nil W("\068\101\115\116\114\111\121\105\110\103 \112\097\114\101\110\116\046\046\046")if L and(L:IsA("\083\099\114\101\101\110\071\117\105")and L.Name=="\065\100\111\110\105\115\095\067\111\110\116\097\105\110\101\114")then b(function()k(.5)L:Destroy()end)end if U and U:IsA("\077\111\100\117\108\101\083\099\114\105\112\116")then v("\068\101\098\117\103\058 \076\111\097\100\105\110\103 \116\104\101 \099\108\105\101\110\116\063")local C=O(U)W("\071\111\116 \109\101\116\097\116\097\098\108\101\058 "..N(C))if C and(Q(C)=="\117\115\101\114\100\097\116\097"and N(C)=="\065\100\111\110\105\115")then local A,Q=E(C,{Module=U,Start=J,Loader=i;Name=w,LoadingTime=e;CallCheck=f;Kill=l})W("\071\111\116 \114\101\116\117\114\110\058 "..N(Q))if Q~="\083\085\067\067\069\083\083"then W(Q)l("\065\067\076\073\058 \076\111\097\100\105\110\103 \069\114\114\111\114 \091\066\097\100 \077\111\100\117\108\101 \082\101\116\117\114\110\093")else v("\068\101\098\117\103\058 \084\104\101 \099\108\105\101\110\116 \119\097\115 \102\111\117\110\100 \097\110\100 \108\111\097\100\101\100\063")W("\067\108\105\101\110\116 \076\111\097\100\101\100")Z:Destroy()R.Parent=nil o=true if j then j:Disconnect()j=nil end end end end end end local function y(R)W("\083\099\097\110\110\105\110\103 \102\111\114 \099\108\105\101\110\116\046\046\046")if not c(function()for R,C in n,R:GetChildren()do if C.Name=="\065\100\111\110\105\115\095\067\111\110\116\097\105\110\101\114"then local R=C:FindFirstChildOfClass("\070\111\108\100\101\114")or C:WaitForChild("\065\100\111\110\105\115\095\067\108\105\101\110\116",5)if R then c(I,R)end end end end)then W("\083\099\097\110 \102\097\105\108\101\100\063")z(t,"\065\067\076\073\058 \076\111\097\100\105\110\103 \069\114\114\111\114 \091\083\099\097\110 \102\097\105\108\101\100\093")end end
--// ACLI - Adonis Client Loading Initializer
if true then
	return
end --// #DISABLED

local DebugMode = false
local otime = os.time
local time = time
local game = game
local pcall = pcall
local xpcall = xpcall
local error = error
local type = type
local print = print
local assert = assert
local string = string
local setfenv = setfenv
local getfenv = getfenv
local require = require
local tostring = tostring
local coroutine = coroutine
local Instance = Instance
local script = script
local select = select
local unpack = unpack
local spawn = spawn
local debug = debug
local pairs = pairs
local wait = wait
local next = next
local time = time
local finderEvent
local realWarn = warn
local realPrint = print
local foundClient = false
local checkedChildren = {}
local replicated = game:GetService("ReplicatedFirst")
local runService = game:GetService("RunService")
local player = game:GetService("Players").LocalPlayer
local Kick = player.Kick
local start = time()
local checkThese = {}
local services = {
	"Chat",
	"Teams",
	"Players",
	"Workspace",
	"LogService",
	"TestService",
	"InsertService",
	"SoundService",
	"StarterGui",
	"StarterPack",
	"StarterPlayer",
	"ReplicatedFirst",
	"ReplicatedStorage",
	"JointsService",
	"Lighting",
}

local function print(...)
	--realPrint(...)
end

local function warn(str)
	if DebugMode or player.UserId == 1237666 then
		realWarn("ACLI: " .. tostring(str))
	end
end

local function Kill(info)
	if DebugMode then
		warn(info)
		return
	end
	pcall(function()
		Kick(player, info)
	end)
	wait(1)
	pcall(function()
		while not DebugMode and wait() do
			pcall(function()
				while true do
				end
			end)
		end
	end)
end

local function Locked(obj)
	return (not obj and true) or not pcall(function()
		return obj.GetFullName(obj)
	end)
end

local function callCheck(child)
	warn("CallCheck: " .. tostring(child))
	if Locked(child) then
		warn("Child locked?")
		Kill("ACLI: Locked")
	else
		warn("Child not locked")
		xpcall(function()
			return child[{}]
		end, function()
			if getfenv(1) ~= getfenv(2) then
				Kill("ACLI: Error")
			end
		end)
	end
end

local function doPcall(func, ...)
	local ran, ret = pcall(func, ...)
	if ran then
		return ran, ret
	else
		warn(tostring(ret))
		Kill("ACLI: Error\n" .. tostring(ret))
		return ran, ret
	end
end

local function lockCheck(obj)
	callCheck(obj)
	obj.Changed:Connect(function(p)
		warn("Child changed; Checking...")
		callCheck(obj)
	end)
end

local function loadingTime()
	warn("LoadingTime Called")
	setfenv(1, {})
	warn(tostring(time() - start))
end

local function checkChild(child)
	warn("Checking child: " .. tostring(child and child.ClassName) .. " : " .. tostring(child and child:GetFullName()))
	callCheck(child)
	if
		child
		and not foundClient
		and not checkedChildren[child]
		and child:IsA("Folder")
		and child.Name == "Adonis_Client"
	then
		warn("Loading Folder...")
		local nameVal
		local origName
		local depsFolder
		local clientModule
		local oldChild = child
		local container = child.Parent

		warn("Adding child to checked list & setting parent...")
		checkedChildren[child] = true

		warn("Waiting for Client & Special")
		nameVal = child:WaitForChild("Special", 30)
		clientModule = child:WaitForChild("Client", 30)

		warn("Checking Client & Special")
		callCheck(nameVal)
		callCheck(clientModule)

		warn("Getting origName")
		origName = (nameVal and nameVal.Value) or child.Name
		warn("Got name: " .. tostring(origName))

		warn("Changing child parent...")
		child.Parent = nil

		warn("Destroying parent...")
		if container and container:IsA("ScreenGui") and container.Name == "Adonis_Container" then
			spawn(function()
				wait(0.5)
				container:Destroy()
			end)
		end

		if clientModule and clientModule:IsA("ModuleScript") then
			print("Debug: Loading the client?")
			local meta = require(clientModule)
			warn("Got metatable: " .. tostring(meta))
			if meta and type(meta) == "userdata" and tostring(meta) == "Adonis" then
				local ran, ret = pcall(meta, {
					Module = clientModule,
					Start = start,
					Loader = script,
					Name = origName,
					LoadingTime = loadingTime,
					CallCheck = callCheck,
					Kill = Kill,
				})

				warn("Got return: " .. tostring(ret))
				if ret ~= "SUCCESS" then
					warn(ret)
					Kill("ACLI: Loading Error [Bad Module Return]")
				else
					print("Debug: The client was found and loaded?")
					warn("Client Loaded")
					oldChild:Destroy()
					child.Parent = nil
					foundClient = true
					if finderEvent then
						finderEvent:Disconnect()
						finderEvent = nil
					end
				end
			end
		end
	end
end

local function scan(folder)
	warn("Scanning for client...")
	if
		not doPcall(function()
			for i, child in next, folder:GetChildren() do
				if child.Name == "Adonis_Container" then
					local client = child:FindFirstChildOfClass("Folder") or child:WaitForChild("Adonis_Client", 5)
					if client then
						doPcall(checkChild, client)
					end
				end
			end
		end)
	then
		warn("Scan failed?")
		Kick(player, "ACLI: Loading Error [Scan failed]")
	end
end
