function WaitForChild(t,...)local l=false for q,N in ipairs({...})do if type(N)=="\098\111\111\108\101\097\110"then l=N else while not t:FindFirstChild(N)do wait(.033333333333333)if l then print(script.Name..("\058"..(t.Name..(" \087\097\105\116\105\110\103 \102\111\114 "..N))))end end t=t[N]end end return t end function ForEach(t,l)if type(t)=="\116\097\098\108\101"then for t,q in pairs(t)do l(q)end else for t,q in pairs(t:GetChildren())do l(q)end end end function MakeValue(t,l,q,N)local o=Instance.new(t)o.Name=l o.Value=q o.Parent=N return o end function TweenProperty(t,l,q,N,o,g)local S=tick()local w=g.Value local G=N-q while tick()-S<o and w==g.Value do t[l]=((tick()-S)/o)*G+q wait(.033333333333333)end t[l]=N end
--
function WaitForChild(parent,...)
	local debugPrint = false
	for _, i in ipairs({...}) do
		if type(i)=='boolean' then
			debugPrint = i
		else
			while not parent:FindFirstChild(i) do  
				wait(1/30) 
				if debugPrint then
					print(script.Name..':'..parent.Name..' Waiting for '.. i)
				end
			end
			parent=parent[i]
		end
	end
	return parent
end

function ForEach(parent,func)
	if type(parent)=='table' then
		for _,i in pairs(parent) do
			func(i)
		end
	else
		for _,i in pairs(parent:GetChildren()) do
			func(i)
		end
	end
end

function MakeValue(class,name,value,parent)
	local temp = Instance.new(class)
	temp.Name = name
	temp.Value = value
	temp.Parent = parent
	return temp
end	

function TweenProperty(obj, propName, inita, enda, length,sentinel)
	local startTime = tick()
	local mySentinel = sentinel.Value
	local diff = enda-inita
	while tick()-startTime<length and mySentinel==sentinel.Value do
		obj[propName] = (((tick()-startTime)/length)*diff)+inita
		wait(1/30)
	end
	obj[propName] = enda	
end
