How to unify particle emitters

Hello, i would like to know if there is a way to make out of multiple particle emitters, into one.
i mean like i got like an effect that is mad out of 4 particle emitters, but i need to unify all these 4 particle emitters into one,. one particle emitter.
Is there any way to do this?

Only if they use the same appearance

You would have to change each of the images as well as the different Properties you use for the single emitters and switch them with a script. I’m guessing this would be a whole lot more work.

Please give us as many details possible as to why you have to make them into one emitter?

Its because i have to Change the size of this,group of emitters that form a single effect togheter. So each emitter has it’s own texture and Size, and keeping in mind that are like 10 emitters, it would be basically impossible to modify their sizes and then get these effects on their original sizes ( The sizes are frequence of numbers, like a gradient, so it’s harder). if you got any ideas how to make what i want to do please tell me.
thanks in advice and sorry for the long message

also if you dont understand what i want to make tell me so i can explain myself better

Adjusting a models scale property also adjusts its descendant ParticleEmitters. Every property of the particle gets changed relatively, for example when scaling a model up the particles get faster and bigger. Scaling models also bypasses the particles’ size limit of 10.

Heres an example of models with different scales, each model has a part parented to them with a ParticleEmitter parented to those parts:

The models’ hierarchy is the following:
ParticleEmitter_Hierarchy1

If possible you could try using this for scaling the particles. You’d have to adjust the speed manually tho when resizing the particles since the bigger the model the faster the particles get.

1 Like

on god thank you so much i’ve been working on this thing all day it works, thanks again and have a good day

1 Like

Is there any way to reduce the number of emitters by combining say 2 or 3 images into one image so you need less emitters.

You could put the emitters in a folder then run through them using ipairs to change the properties.

for example:

for i, emitter in ipairs(Emitters) do  --Emitters is the name of the folder in my example
    if emitter.Name == "Orange Orb" then  -- example name
        emitter.Transparency = .2
        emitter.Size = 2
    elseif emitter.Name == "Bluestreak" then
        emitter.Transparency = .8
        emitter.Size = 13
    end
end

I’m not sure how you’d change the gradient scales though.

EKIT: just saw it was solved.

1 Like

No problem
Btw you don’t have to have the particles be descendants of a model constantly, you could use a function like this for example to scale a table of ParticleEmitters:

The function takes a table of particles then creates a new model to parent them under, then sets the scale of the model based on the parameters: originalScale and newScale

local function SetParticleScale(particleEmitters: {ParticleEmitter}, originalScale, newScale): number
	local temporaryModel: Model = Instance.new("Model")
	
	local emitterDataTable: {emitter: ParticleEmitter, originalParent: Instance} = {}
	for _, emitter: ParticleEmitter in particleEmitters do
		table.insert(emitterDataTable, {emitter, emitter.Parent})
		emitter.Parent = temporaryModel
	end
	
	-- Set scale based on given originalScale
	temporaryModel:ScaleTo(newScale / originalScale)
	
	for _, emitterData in emitterDataTable do
		local emitter: ParticleEmitter = emitterData[1]
		local originalParent: Instance = emitterData[2]
		emitter.Parent = originalParent
	end
	
	temporaryModel:Destroy()
	return newScale
end

Note: You have to keep track of the particles’ original scale for it to work as intended. Also once a particle has been scaled like this it cannot easily be scaled back to its original size if you don’t have its original scale saved as a variable.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.