Few questions about FireAllClients

  1. Is there any risk of losing data while sending information through FireAllClients()?

  2. is changing a property of a instance (server side) replicated to the users as fast and as costless as sending the information by FireAllClients()?

  1. Is FireAllClients() the best way to send simple information like numbers, strings, vector3s, etc… To all clients?

  2. Is the speed from server to client and client to server the same? if is not on average how much faster or slower does the information travel server to client compared to client to server?

  1. I don’t believe there is any risk of losing data using FireAllClients(), I have personally never experienced it not even once, however I can only speak from my own personal experience on this. To get a completely 1000% accurate answer on this I think a Roblox engineer would have to speak on this. I believe the only way information could be missed by the client is if the packet was sent, but the player left the game before they could receive it. If the packet is lost as it travels to the client and the client is still connected I believe Roblox just keeps trying to send it until it is received by the client, however again not 100% sure as I don’t know the inner workings of Roblox as their network engineers would.
  2. I believe it is replicated just as fast. Honestly the difference will be barely negligible if negligible at all. We are talking fractions of fractions of a second. The exact same process is happening, you are just manually firing the event instead of Roblox doing it for you. I recommend you change all properties the way Roblox intended on the server so they replicate across, it will make working on your game that much easier, instead of managing your events manually which will be needlessly complicated
  • 2.1 If you did this in a local script that means the message wouldn’t have to be sent from the Roblox servers to the players client, as it would all be processed on the client which would increase the speed immensely, however remember that changes to whatever you are changing would only be on each players client, they would not be replicated to anyone else, and even if the code is the same, peoples internet speed are different, and computers are also different speeds, so the changes would not be synchronised. You can see this in effect if you go play Tower of hell
  • 2.2 Roblox uses the standard star network type, which means messages are sent to all clients at the same time. However if your game had so many players it started to lag the server, you would start to see a difference.
  1. Yes, it depends on the scenario but if you are trying to send a string or other to all clients then it’s perfect for that. If you are making changes to the map, then just change it on the server and it will automatically replicate changes to all clients just as fast as it would if you were to use :FireAllClients()
  2. Yes, it will be the same speed, however different players will have different internet speeds, which will also fluctuate. This means it may take a few tenths of a second for the message to reach one players computer than it will another players who has a faster internet connection. The average players ping is about 50milliseconds, however some players ping can reach as high as 200ms. Ping is how long it takes for the client to both send and receive a message from the server.
  1. No, Roblox said that if a remote event fails to fire, it will fire again

  2. Sending information through remote events is better because the values are directly given rather than listening to an propertychangedsignal multiple times

  3. Yes

  4. Speed depends on the user’s connection and the server’s status.
    If the player has bad connection, then replicating stuff, sending and recieving signals through remotes is slower.
    If the server is handling too much stuff, then changing stuff is slower. But the client replicating the change and recieving remote events still depends on the user’s internet speed

1 Like