I made this module a while ago if you need it for now
local Module = {}
local function EmitFunction(Emitter:ParticleEmitter):ParticleEmitter|nil
assert(typeof(Emitter) == "Instance" and Emitter:IsA("ParticleEmitter"), "Emitter must be a ParticleEmitter")
local EmitCount = Emitter:GetAttribute("EmitCount")
local EmitDelay = Emitter:GetAttribute("EmitDelay")
local EmitDuration = Emitter:GetAttribute('EmitDuration')
if not EmitCount or EmitCount < 1 then
EmitCount = 1
end
task.delay(EmitDelay, function()
if EmitDuration and EmitDuration > 0 then
local startTime = os.clock()
while os.clock() - startTime < EmitDuration do
Emitter:Emit(EmitCount)
wait(1/Emitter.Rate)
end
else
Emitter:Emit(EmitCount or Emitter.Rate)
end
end)
return Emitter
end
function Module:EmitParticles(VFXAttachment:Instance):nil
if VFXAttachment:IsA("ParticleEmitter") then
EmitFunction(VFXAttachment)
return
end
for _, Emitter in ipairs(VFXAttachment:GetChildren()) do
if Emitter:IsA('ParticleEmitter') then
EmitFunction(Emitter)
else
Module:EmitParticles(Emitter)
end
end
return nil
end
return Module
Yup, I’m aware of this issue - it’s on my todo list and I’ll fix it ASAP. For future issues, please report them on GitHub as it’s easier for me to track them!
Hey there, have thought of making these kinds of plugins for years, but have been too busy. I know a lot of things that can also be improved for this plugin, and would love to see them implemented.
– Add compression to the data.
– Automatically flag characteristics of a ParticleEmitter once imported for easy sorting (flipbook, 2x2, 4x4, 8x8)
In general I think this plugin could benefit a lot performantly from wise implementation of compression, and optimization of how assets are displayed. Great plugin btw.
What benefit would compression have? All files are saved locally, so size isn’t really a concern. If anything, the performance would get worse due to the overhead from the compression.
Compression can be as simple as rounding all numbers, and as complex as matching strings of information to mean other strings of information in key sequences, and that’s where cpu performance is a drag. Also, I thought i should mention that you need to make all the editors global (an option!), as in, one editor is not solely confined to a particle, another thing is that it does not detect .1 as a valid input (adjusting zoffset)
Also, when I select anything in a dropout box (such as shapestyle) I can’t automatically go to an option by typing the key it begins with, another problem. There are tiny things crucial to the work flow that need to be accounted for.
Also, I am really thankful for the work you put into this.
I’m not sure what you mean by making all the editors global per your explanation; could you give some more information? I’ve noted the ZOffset bug and the QoL change and will have a look whenever I can.
Yeah, so if I am changing something’s size, and switch to another particle the editor stays for that particle only, that’s not good design, roblox did it, but their implementation was completely garbage, don’t follow suit.