local function O(O,m)local e local function M()e={}e.LastUpdate=tick()e.Parts={}e.Fire={}for O=1,4,1 do local M=EFFECT_LIB.NewInvisiblePart()local T=Instance.new("\070\105\114\101")T.SecondaryColor=Color3.new(0,0,0)T.Parent=M e.Parts[O]=M table.insert(e.Fire,T)M.Parent=m end end local function T()local m=EFFECT_LIB.Loop(3)for M=1,#e.Parts,1 do e.Parts[M].CFrame=(((O:GetRenderCFrame()*CFrame.Angles(0,math.rad(m*360+(360/#e.Parts)*(M-1)),0))*CFrame.new(0,-3,-1.5))*CFrame.Angles(math.rad(-55),0,0))*CFrame.Angles(0,0,0)end local M=GenColor(tick(),10)for O,m in pairs(e.Fire)do m.Color=M end end local function a()m:ClearAllChildren()e=nil end return{Start=M,Update=T,Stop=a}end return O
--Main function
local function AttachAuraControl(source_part, eff_cont) --(source_part, effect_container)
	local AnimObj

	local function Start()
		AnimObj = {}
		AnimObj["LastUpdate"] = tick()

		AnimObj["Parts"] = {}
		AnimObj["Fire"] = {}

		for i = 1, 4 do
			local np = EFFECT_LIB.NewInvisiblePart()
			local fire = Instance.new("Fire")
			fire.SecondaryColor = Color3.new(0, 0, 0)
			fire.Parent = np

			AnimObj["Parts"][i] = np
			table.insert(AnimObj["Fire"], fire)

			np.Parent = eff_cont
		end
	end

	local function Update()
		local loop = EFFECT_LIB.Loop(3)

		for i = 1, #AnimObj["Parts"] do
			AnimObj["Parts"][i].CFrame = source_part:GetRenderCFrame()
				* CFrame.Angles(0, math.rad(loop * 360 + (360 / #AnimObj["Parts"] * (i - 1))), 0)
				* CFrame.new(0, -3, -1.5)
				* CFrame.Angles(math.rad(-55), 0, 0)
				* CFrame.Angles(0, 0, 0)
		end

		local get_col = GenColor(tick(), 10)
		for _, fr in pairs(AnimObj["Fire"]) do
			fr.Color = get_col
		end
	end

	local function Stop()
		eff_cont:ClearAllChildren()
		AnimObj = nil
	end

	return { Start = Start, Update = Update, Stop = Stop }
end

return AttachAuraControl
