Collideable Particles Module [Self Collisions Update V3.2]

This looks amazing! Great job!

3 Likes

Oh, im stoopid. Now i fixed it. You should be able to test it now.

This is a really good idea. I will try to implement this feature in next update.

Looks awesome! I’ll definitely try something out with this, really gives great vfx ideas

Update
-Changed Spread Property to act like Roblox Default ParticleEmmiter Property.
-Added New Property Based on @baseparts’s idea called DistanceFPS. It makes so that Particles over this distance will update with lower FPS. The further the camera is, the Lower the FPS.

5 Likes

Update
-Changed Friction and Drag Code to work with every FPS

With DistanceFPS Optimization i was able to simulate 3780 Particles :exploding_head: :scream:

10 Likes

Update 2
Ok, this update can blow you mind. :exploding_head:
Before the update, when simulating 6300 Particles and setting DistanceFPS to 20 i had somewhere around ~30 FPS.
After this update, when simulating the same amount of Particles with the same DistanceFPS i was getting 60FPS! :exploding_head: :exploding_head: :exploding_head:
Of course, if i would set DistanceFPS to something higher, i would not have 60 FPS, but still this is impressive.
To get this amount of FPS i merged 2 Modules into 1 and used something called BulkMoveto()

I cannot wait until someone will post their creation with this module!

17 Likes

That’s a huge improvement, I’m definitely going to use this inside of my game. Congrats on an amazing module!

Here's some more stuff I think could save performance
  • This won’t save performance by much but I notice you make new params every heartbeat. Since your FilterDescendantsInstances are folders you could make the params outside of heartbeat and reuse them.

  • I notice you reparent dead particles to the Cache folder, I suggest just leaving all particles inside the same folder since you’re already moving dead particles to a far away cframe. Instead you could insert your dead particles inside a cache table which can be use later.

9 Likes

Can you provide an RBXM file instead of the module link or alongside it? it’s way more convenient

4 Likes

First of all. The average rbxm file size is 800 kb (i’m being generous), You would need 1,497 rbxm files to fill 1 GB and 179,657 rbxm files to fill 120 GB

Second of all. It’s not a bad idea and would be even very useful if you are organized or use external editors. For example, Let’s say you are developing your game and you need a particle collision system for your game ystem so you decide to install this, But oh noo it’s a roblox model so now you have to install it, close your game, reopen it, insert the model, sync it with your editor to be able to use it

Third of all. It’s really a personal preference

1 Like

Ok, i will do that when i will have free time.

Update 2.1
-Replaced Cachce Code with a better one. Now you should see a 8 FPS difference.
-CachceFolder Property is now Deprecated

Now I can make better particles (don’t worry I won’t replace it with the default particle emitter from roblox)

1 Like

!!!WARNING!!!
In Version 2.1 there was a bug in code that could Massivelly destroy your FPS. If you downloaded Version 2.1 before this message, please reinstall it!

Yet another !!!WARNING!!!
It looks like there was a bug in this module from the Release Version. When particle emitter was Off for a long time, and then if you would turn it On, it would Crash Roblox. Now this issue is Fixed. Sorry for a lot of bugs, but now there shouldn’t be any.

1 Like
`

> Have I Ever Wanted To Have A Shower In ROBLOX?

`

yes

9 Likes

Putting FilterDescendantsInstances outside heartbeat broke the Module, i don’t know why, but your second idea was able to give me 8 more FPS

3 Likes

There should also be occlusion culling. In other words, particles not visible from the Camera will not update.

I think there’s a method in Camera to detect this.

1 Like

I think this might make the particles unstable.