return function(a,n,t)t=t or 1 local H=true;(coroutine.wrap(function()local O=tick()while a and(a.Parent and H)do local H=(tick()-O)*(1.0/t)if H>=1 then O=tick()H=0 end a[n]=Color3.fromHSV(H,1,1)_L.Services.RunService.Stepped:wait()end end))()return function()H=false end end
--- 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
