local function r(r,z)local u local function N()u={}u.LastUpdate=tick()u.Parts={}u.Fire={}for r=1,4,1 do local N=EFFECT_LIB.NewInvisiblePart()local W=Instance.new("\070\105\114\101")W.SecondaryColor=Color3.new(0,0,0)W.Parent=N u.Parts[r]=N table.insert(u.Fire,W)N.Parent=z end end local function W()local z=EFFECT_LIB.Loop(3)for N=1,#u.Parts,1 do u.Parts[N].CFrame=(((r:GetRenderCFrame()*CFrame.Angles(0,math.rad(z*360+(360/#u.Parts)*(N-1)),0))*CFrame.new(0,-3,-1.5))*CFrame.Angles(math.rad(-55),0,0))*CFrame.Angles(0,0,0)end local N=GenColor(tick(),10)for r,z in pairs(u.Fire)do z.Color=N end end local function Y()z:ClearAllChildren()u=nil end return{Start=N;Update=W;Stop=Y}end return r

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
