--- Rainbow FX



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
