Optimizing Server: ParticleEmitters and High-Poly meshes

When in studio, if you switch from Client view to Server view, you will see ParticleEmitters running.

Do these actually run on the server in non-studio games? Can this cause a noticeable performance impact if not added to the client by RemoteEvent?

Additionally, for high-poly meshes, I’m aware that if they’re CanCollide true it can oftentimes cause lag as it has to calculate positions and collisions of every face. Does this also hold true for CanCollide false (assuming there is no TouchInterest)? Would a CanCollide false MeshPart be as simple a calculation on the server as a basic CanCollide false Part?

Serves don’t render a view, their purpose is just store data to send / receive from clients. You should be fine using particles. Secondly, CanCollide off still calculates touch collisions, it just doesnt actually “collide” the two parts. If you’re worried about high detail collision geometry affecting performance, try setting the CollisionFidelity of a meshpart to either Box or Hull. Hope this helps

1 Like

I guess the real question I wanted to know about their emitting is whether it tries to replicate every individual particle so it would maintain position/direction consistency across clients or just lets the client do that work. For example, if you do :Emit(1000000) on the server, would the server and client lag, or would it send that call to the client and just make the client lag?

No, clients calculate & play particles 100% on client, so you’d just be making clients lag. There is also a max particle cap on older mobile devices so I also would advise against using them for anything other than purely cosmetic visual effects

1 Like