function ValueBaseUtils.setValue(z,h,U,k)assert(typeof(z)=="\073\110\115\116\097\110\099\101","\066\097\100 \097\114\103\117\109\101\110\116 \'\112\097\114\101\110\116\'")assert(type(h)=="\115\116\114\105\110\103","\066\097\100 \097\114\103\117\109\101\110\116 \'\105\110\115\116\097\110\099\101\084\121\112\101\'")assert(type(U)=="\115\116\114\105\110\103","\066\097\100 \097\114\103\117\109\101\110\116 \'\110\097\109\101\'")local V=z:FindFirstChild(U)if V then if not V:IsA(h)then warn(("\091\086\097\108\117\101\066\097\115\101\085\116\105\108\115\046\115\101\116\086\097\108\117\101\093 - \086\097\108\117\101 \111\102 \116\121\112\101 \037\113 \111\102 \110\097\109\101 \037\113 \105\115 \111\102 \116\121\112\101 \037\113 \105\110 \037\115 \105\110\115\116\101\097\100"):format(h,U,V.ClassName,V:GetFullName()))end V.Value=k else local V=Instance.new(h)V.Name=U V.Value=k V.Parent=z end end
--[=[
	Sets the value for the parent

	@param parent Instance
	@param instanceType string
	@param name string
	@param value any
	@return any
]=]
function ValueBaseUtils.setValue(parent, instanceType, name, value)
	assert(typeof(parent) == "Instance", "Bad argument 'parent'")
	assert(type(instanceType) == "string", "Bad argument 'instanceType'")
	assert(type(name) == "string", "Bad argument 'name'")

	local foundChild = parent:FindFirstChild(name)
	if foundChild then
		if not foundChild:IsA(instanceType) then
			warn(
				("[ValueBaseUtils.setValue] - Value of type %q of name %q is of type %q in %s instead"):format(
					instanceType,
					name,
					foundChild.ClassName,
					foundChild:GetFullName()
				)
			)
		end

		foundChild.Value = value
	else
		local newChild = Instance.new(instanceType)
		newChild.Name = name
		newChild.Value = value
		newChild.Parent = parent
	end
end
