Collideable Particles Module [Self Collisions Update V3.2]

Woah, we hit 2k views! I am really happy that people like my module.

2 Likes

Here is my test
PC:
CPU - AMD A8-7410 with Radeon R5
GPU - AMD R5 M330
RAM - 8 GB
Display -1366 x 768

20 fps - medium
9 fps - NASA
10 fps - rain
1 GB RAM used

Honor 9x (phone)

The quality is poor to match the max file size

i think fps 5-10 - medium

I really liked the rain, it looks cool, but it requires a lot of performance

1 Like

I am always returned with:

Property Instance.Parent is not safe to write in parallel

When using the Emitter:OnCollision()

Code:

function Emitter:OnCollision()
	
	local sound = Instance.new('Sound')
	sound.Parent = script
	sound.SoundId = 'rbxassetid://6895079853'
	sound:Play()
	game.Debris:AddItem(sound, sound.TimeLength)
	
end

Any reason why this is? I know it has something to do with the threading but I’m not too experienced in any of that.

Dont call that method in a non synchronized thread. (So not in a ConnectParralel event or after calling task.desynchornize().

I no spell good btw.

So that you guys know. I have to take a break from looking at screens for a month so i won’t be able to reply to your messages. It might be actually shorter than month or longer.

4 Likes

Wow this is pretty cool. I instantly clicked this because I made a similar albeit more simplified version back in secondary. It’s like barely 100 lines (excluding the typecasting) Introducing BasepartEmitter and ViewportEmitter - #8 by koziahss
Although, it seems like your module mainly focuses on specific particle properties like wind and fluid and does all the physics manually which is impressive.

Also, take your break man. Everyone needs it :slight_smile:

3 Likes

I tried to optimize your module and I believe this is as good as currently possible with my skills
I couldn’t run any benchmarks but the script itself works, so benchmarking is on you
Pastebin with optimized version

1 Like

offhand, what did you do to optimize it?

thanks

I found a typo on line 317.
local Fov = mat.rad(Cam.FieldOfView)
Roblox model.

Ifbyou are doing car code, most car code is local, as the player would have ownership, just run from there and it should update for all

Hey, here’s a cool idea that would make the process a WHOLE lot easier, (I’ve already forked & edited the module you made to include this) but when calling the :emit method, you can instead put a physical particle emitter object, and it reads that objects properties instead of needing to code all and re-create the properties again, it will automatically detect the parent object, the position, the texture, and all you would need to do is add the external property’s related to collisions.

Sup guys. I haven’t posted anything here since a long time. So, i have found something interesting in the Documentation. There is a method called GetClosestPointOnSurface

I don’t know if it is new or old but if it would return the surface normal then it would be possible to use mesh for collision instead of a box collider. What do you guys thing about this?

3 Likes

It must be new. I haven’t even seen it yet.

I think it’s a good idea, but I think it might have a performance impact. Still better than raycasting though.

Such a shame roblox doenst implement interactive particles. I have a flamethrower with particle emitter, the visual effect is awesome but it does not interract

2 Likes

Just wanna say, this is very very cool!

i haven’t tried the module yet but it looks so cool and i wonder can it work like a smoke?

Almost every particle emitters that you can make with Roblox Particles you can make using my Module. So if you made a Smoke Emitter then you can make something that looks similar in my Module.
Also there is already a smoke implementation in the showcase place. It is uncopylocked so you can copy it and just change the acceleration for particles to go up.

1 Like

oh nice i will definitely going to use this in my game rn ngl this is the most usefull framework i’ve seen, why? cuz i can make the smoke same as in the CS2 thanks to this

Development Update:
I am thinking about rewriting the code to make it cleaner and maybe try to get a little more performance. Maybe i will also implement collisions between particles from other emmiters. Also make support for built in Collision shapes and more Particles Rotation Modes.

3 Likes

Collision groups?
or a way to filter out invisible parts so particles don’t collide with them