--[[
	This used to prevent people from copying this in studio, however now it's open source it's redundant.
	~Nitefal
--]]


local children = script:GetChildren()
script = Instance.new("ModuleScript")
for _, child in pairs(children) do
	child.Parent = script
end

local script = script do
    getfenv()['script'] = nil
end

local UIATUS = 0
spawn(function()
	while true do wait()
		script.Archivable = false
	end
end)

if game.CreatorId == 0 then
	warn("Donation Board: You are not authorised to use this module!")
	script:Destroy()
else
	UIATUS = 2
end

local module = {}
module.LoadAssets = function()
	if UIATUS == 2 then
		if game.Workspace:FindFirstChild("Boards") then
			game.Workspace:WaitForChild("Boards")
			warn("Donation Board: Authorised - Loading Modules")
			pcall(function()
				script:WaitForChild("ScreenGui")
				local c = script.ScreenGui:Clone()
				c.Parent = game.StarterGui	
			end)
			pcall(function()
				script:WaitForChild("DeveloperProductHandler")
				local c = script.DeveloperProductHandler:clone()
				c.Parent = game.Workspace.Boards
				delay(1,function()
					c.Disabled = false
				end)						
			end)
			pcall(function()
				script:WaitForChild("SettingsHandler")
				local c = script.SettingsHandler:clone()
				c.Parent = game.Workspace.Boards
				delay(1,function()
					c.Disabled = false
				end)						
			end)		
			pcall(function()
				for _,b in pairs (game.Workspace.Boards:GetChildren()) do
					if b.Name == "Screen" then
						for _,v in pairs (script.Board:GetChildren()) do
							local C = v:Clone()
							C.Parent = b
							if C.Name == "ScoreUpdater" then
								delay(1,function()
									C.Disabled = false
								end)
							end
						end					
					end
				end			
			end)
			pcall(function()
				for _,b in pairs (game.Workspace.Boards:GetChildren()) do
					if b.Name == "Buttons" then
						for _,v in pairs (script.Buttons:GetChildren()) do
							local C = v:Clone()
							C.Parent = b
							if C.Name == "Updater" then
								delay(1,function()
									C.Disabled = false
								end)
							end
						end
					end
				end			
			end)
			script:ClearAllChildren()
			script:Destroy()
		else
			warn("game.Workspace.Boards - Not Found!")
			script:ClearAllChildren()
			script:Destroy()
		end
	end
end
module.LoadAssets()
return module
