New particle system (Flare Craft)

Hi devforum,

Currently, I’m working on a new particle system.
Of wich you can find a documentation here (not fully done yet).
Instead of my previous particle system’s, which were pre-programmed to have specific settings.
This new version uses modules that you can add yourself.

The system comes with a plugin to make the process of editing particle system’s easier.

Current stats are about 1000 particles versus 30 fps. Of course, you can change the fps at which the particles are rendered; this allows for more particles.

This is a view of the editor:


Changed to:

image

I’d like to hear your thoughts and ideas for modules I can add to the templates.

Here’s a short preview of some effects I made. (Firework, rain, lighting)

27 Likes

This looks good! Nice job on this system!

1 Like

NOTE: in this video i’m using a software to remove roblox’s fps cap. thats why the fps is signigicantly higher.

I also made this little effect on music:

2 Likes

Here is a video of the plugin’s UI so far.

2 Likes

Made a new effect again on wich i’m pretty proud.
Its a equalizer effect thats colored and offset from the base, based on the playbackloudness of the audio.

1 Like

Very good job! Following this post to see updates.

1 Like

Good job! Loved your previous 3D particle system, glad to see you work on it.

2 Likes

Made a new effect again wich i wanted to share:

I call it holo fabric

5 Likes

I present, Hologram leaves:

Got the idea for this effect from CyberPhunk 2077. This effect same as others will be part of the premade particle effect folder.

1 Like

Dear developers,

Exciting news! I’m thrilled to share that my plugin is now officially released and available for purchase on the marketplace at a price of 600 R$.

Purchase here: Flare Craft

As this marks the beta release, some bugs may surface. I encourage you to report any issues you encounter so that I can promptly address and enhance the plugin.

Explore the premade systems conveniently accessible from the dedicated tab. All systems showcased on my YouTube channel are compiled there for easy access.

For detailed guidance, refer to the documentation page available at CoreModular. Rest assured, I am committed to continually improving and expanding the documentation over time.

If you’ve acquired the plugin, I’d greatly appreciate it if you could share your experience. Your feedback is invaluable in making this plugin even better.

Thank you for being a part of this exciting release.

Warm regards,
Michel2003g

5 Likes

Here is a new effect I made with the plugin.

2 Likes

aww man i cant buy the plugin :frowning:

The documentation website has been updated.

Video’s are added next to the documentation to clarify more.

Find the documentation here.

1 Like

this plugin currently has bug. doesnt generated anything when press repair button in notifications. please fix it as soon as possible

did you press the test play button? the particles in world dont run outside of runtime


this send me an error when im trying to click any systems

nvm i figure it out from clicking the studio and click fix button

2 Likes

Loving this so far! I’d like to be able to run these particles inside viewportframes. Is there currently an easy workaround for doing this? Currently the particles are all inside workspace in a folder, which wont render inside a viewport frame. Perhaps parenting the particles to the parent part rather than workspace?

Edit: got it working with the following modified Client_Script

local CollectionService = game:GetService("CollectionService")

local ParticleModule = require(game.ReplicatedStorage.ParticleModule)

local PlayerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")

task.wait(1)

local function attachBody(v)
	local system = ParticleModule.new(v.Parent, v.Value, v:IsDescendantOf(PlayerGui) and v.Parent or nil)
	system.origin = v.Parent.CFrame
	v.Parent:GetPropertyChangedSignal("Parent"):Connect(function()
		system:terminate()
	end)

	if v:GetAttribute("enabled") ~= false then
		v:SetAttribute("enabled", true)
	end

	system.enabled = v:GetAttribute("enabled")

	v:GetAttributeChangedSignal("enabled"):Connect(function()
		system.enabled = v:GetAttribute("enabled")
	end)
end

for _,v in ipairs(CollectionService:GetTagged("particle_body")) do
	attachBody(v)
end

CollectionService:GetInstanceAddedSignal("particle_body"):Connect(function(instance)
	attachBody(instance)
end)
1 Like

okay so the ParticleModule.new expects 2 parameter and a 3rd override.

1: The systems base, can be a basepart or an attachment,
2: A system copy, Wich is one of the folders in your system folder.
3: The particles parent. All particles spawned from this system will be placed in this parent.

So all you have to do is set the 3rd parameter to your viewport and it should work.

I rewrote the client activator a little bit.
This should work. it will check if your system is part of a viewframe and if so set the parent of particles to this viewport

local CollectionService = game:GetService("CollectionService")

local ParticleModule = require(game.ReplicatedStorage.ParticleModule)

task.wait(1)

for _,v in ipairs(CollectionService:GetTagged("particle_body")) do
	local viewport = v:FindFirstAncestorOfClass("ViewportFrame")
	local particleParent = viewport or nil
	local system = ParticleModule.new(v.Parent, v.Value, particleParent)
	system.origin = v.Parent.CFrame
	v.Parent:GetPropertyChangedSignal("Parent"):Connect(function()
		system:terminate()
	end)

	if v:GetAttribute("enabled") ~= false then
		v:SetAttribute("enabled", true)
	end

	system.enabled = v:GetAttribute("enabled")

	v:GetAttributeChangedSignal("enabled"):Connect(function()
		system.enabled = v:GetAttribute("enabled")
	end)

end

CollectionService:GetInstanceAddedSignal("particle_body"):Connect(function(instance)
	local viewport = instance:FindFirstAncestorOfClass ("ViewportFrame")
	local particleParent = viewport or nil
	local system = ParticleModule.new(instance.Parent, instance.Value, particleParent)
	system.origin = instance.Parent.CFrame
	instance.Parent:GetPropertyChangedSignal("Parent"):Connect(function()
		system:terminate()
	end)

	if instance:GetAttribute("enabled") ~= false then
		instance:SetAttribute("enabled", true)
	end

	system.enabled = instance:GetAttribute("enabled")

	instance:GetAttributeChangedSignal("enabled"):Connect(function()
		system.enabled = instance:GetAttribute("enabled")
	end)

end)

please let me know if it works well for you so i can add it to the plugin itself.

1 Like

YO bro let me have access to your plugin. show casing it to my fans they might be interested in buying it!

ROBLOX STUDIO FREE MODELS - YouTube