Reliability types for RemoteEvent

As a Roblox developer, it is currently impossible to send network messages over anything other than a reliable ordered channel. This is a huge problem for networked game state that needs to be sent very frequently. Re-transmissions and acknowledgements are nice for data that must get there eventually, but it really blows for state that is just going to be immediately sent again in the next network step.

The biggest use case for something like this is custom character replication. We only care about the most recent position and orientation of a replicated character, and we don’t want old stale state to be re-transmitted to us.

I propose adding the property RemoteEvent.Reliability which determines the reliability type of network messages sent using it. This property would be an enum, and could include ReliableOrdered (the way it works now), Unreliable (packets may be dropped), and UnreliableSequenced (same as unreliable, but only the most recent message is accepted).

Being able to send unreliable messages is a bare necessity for creating low-latency multiplayer games. In my opinion this would allow developers to fine tune their games’ networking in order to deliver a more consistent experience.

27 Likes

Support. This would be invaluable for things like sending player position data, where we don’t care about the position one second ago - if we missed it, we’ll get another message right away!

2 Likes

This would be very useful. I can already imagine things that would become just better, like my custom vehicles.

Hopefully we can get something like this.