function _Confetti.createParticle(k,h,M,c)local Z={}setmetatable(Z,_Confetti)local q=h.X if q<0 then q=q*-1 end local Q=0-q h=Vector2.new(h.X,h.Y+Q*.75)Z.EmitterPosition=k Z.EmitterPower=h Z.Position=Vector2.new(0,0)Z.Power=h local function s()local k=shapes[math.random(#shapes)]:Clone()k.Parent=M k.Rotation=math.random(360)k.Visible=true k.ZIndex=20 return k end Z.Label=s()Z.DefaultSize=30 Z.Size=1 Z.Side=-1 Z.OutOfBounds=false Z.Enabled=false Z.Cycles=0 return Z end

function _Confetti.createParticle(paramEmitter, paramForce, paramParent, paramColors)
	local _Particle = {}; setmetatable(_Particle, _Confetti);
	--colors = paramColors;
	-- Adjust forces.
	local xforce = paramForce.X; if (xforce < 0) then xforce = xforce * -1; end;
	local distanceFromZero = 0 - xforce;
	paramForce = Vector2.new(paramForce.X, paramForce.Y + (distanceFromZero * 0.75));
	--if (paramColors == nil) then paramColors = colors; end; 
	-- Confetti data.		
	_Particle.EmitterPosition = paramEmitter;
	_Particle.EmitterPower = paramForce;
	_Particle.Position = Vector2.new(0,0);
	_Particle.Power = paramForce;
	--_Particle.Color = paramColors[math.random(#paramColors)];
	local function getParticle()
		local label = shapes[math.random(#shapes)]:Clone();
		--label.ImageColor3 = _Particle.Color;
		label.Parent = paramParent;
		label.Rotation = math.random(360);
		label.Visible = true;
		label.ZIndex = 20;
		return label;
	end;
	_Particle.Label = getParticle();
	_Particle.DefaultSize = 30;
	_Particle.Size = 1; _Particle.Side = -1;
	_Particle.OutOfBounds = false;
	_Particle.Enabled = false;
	_Particle.Cycles = 0;	
	return _Particle;
end;