I want to handle particles on client, but what if you enable a particle emitter on the client, and then someone joins the game, do they see the particle enabled or not?
I just fire a remote event to that particular client once they join and I know they have loaded, or at least the listener is connected. I have a remote event that’s used a single time by every newcomer to let the server know loading has finished and it may be included in server processes.
If the particle state depends on the timing, I’d consider if player really has to see it (taking into account that they just joined), and if they have to, does the effect have to be in some sort of a sync (with other clients, server etc.). In that case you can send a time stamp from server, and client takes the current time to find the elapsed time.
Effect.OnClientEvent:Connect(function(timestamp, ...)
local offset = workspace:GetServerTimeNow() - timestamp
-- play effect, but start at given time position
end)
The way I like to handle particles/effects that need to be there for longer periods of times (for example auras) is to either just put them on the server if possible (ParticleEmitters are rendered by the client, not the server even if they’re created on the server) or have a BoolValue (created on the server) and have client check for this BoolValue and add/enable the particle if it’s not there.