return function(d,y)if type(d)~="\116\097\098\108\101"then d={d}end for d,I in ipairs(d)do local t={}for d,I in ipairs(I.Size.Keypoints)do table.insert(t,NumberSequenceKeypoint.new(I.Time,I.Value*y,I.Envelope*y))end I.Size=NumberSequence.new(t)I.Drag=I.Drag*y I.VelocityInheritance=I.VelocityInheritance*y I.Speed=NumberRange.new(I.Speed.Min*y,I.Speed.Max*y)I.Acceleration=Vector3.new(I.Acceleration.X*y,I.Acceleration.Y*y,I.Acceleration.Z*y)end end
--[[
	
	Scales a ParticleEmitter. MAY not support all properties. Supports tuple of particles.
	
	Functions.ScaleParticle(
		particles,				<-- |REQ| 	ParticleEmitter that will be scaled
		scale,					<-- |REQ|	Scale (int) 			
	)
	
--]]

return function(_t, scale)
	--- Allow for array of particles
	if type(_t) ~= "table" then
		_t = { _t }
	end

	--- Iterate through particles
	for _, p in ipairs(_t) do
		--- Size
		local newKeypoints = {}
		for _, keypoint in ipairs(p.Size.Keypoints) do
			table.insert(
				newKeypoints,
				NumberSequenceKeypoint.new(keypoint.Time, keypoint.Value * scale, keypoint.Envelope * scale)
			)
		end
		p.Size = NumberSequence.new(newKeypoints)

		--- Drag
		p.Drag = p.Drag * scale

		--- Velocity
		p.VelocityInheritance = p.VelocityInheritance * scale

		--- Speed
		p.Speed = NumberRange.new(p.Speed.Min * scale, p.Speed.Max * scale)

		--- Acceleration
		p.Acceleration = Vector3.new(p.Acceleration.X * scale, p.Acceleration.Y * scale, p.Acceleration.Z * scale)
	end
end
