function WaitForChild(f,...)local K=false for k,Z in ipairs({...})do if type(Z)=="\098\111\111\108\101\097\110"then K=Z else while not f:FindFirstChild(Z)do wait(.033333333333333)if K then print(script.Name..("\058"..(f.Name..(" \087\097\105\116\105\110\103 \102\111\114 "..Z))))end end f=f[Z]end end return f end function ForEach(f,K)if type(f)=="\116\097\098\108\101"then for f,k in pairs(f)do K(k)end else for f,k in pairs(f:GetChildren())do K(k)end end end function MakeValue(f,K,k,Z)local n=Instance.new(f)n.Name=K n.Value=k n.Parent=Z return n end function TweenProperty(f,K,k,Z,n,x)local V=tick()local b=x.Value local w=Z-k while tick()-V<n and b==x.Value do f[K]=((tick()-V)/n)*w+k wait(.033333333333333)end f[K]=Z end
--[[Super Util]]
--
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
