return function(B,v,C)C=C or 1 local l=true;(coroutine.wrap(function()local T=tick()while B and(B.Parent and l)do local l=(tick()-T)*(1.0/C)if l>=1 then T=tick()l=0 end B[v]=Color3.fromHSV(l,1,1)_L.Services.RunService.Stepped:wait()end end))()return function()l=false end end



return function(gui, property, speed)
	--- Variables
	speed = speed or 1
	--
	local running = true
	
	--- Main
	coroutine.wrap(function()
		local _tick = tick()
		--
		while gui and gui.Parent and running do
			--- Math
			local i = (tick() - _tick) * (1.0 / speed)
			if i >= 1 then  
				_tick = tick()  
				i = 0  
			end
			
			--- Apply
			gui[property] = Color3.fromHSV(i, 1, 1)
			
			--- Wait
			_L.Services.RunService.Stepped:wait()
		end
	end)()
	
	--- Return function to cancel this behavior
	return function()
		running = false
	end
end
