Disabling replication of specific objects or properties

As a developer on Roblox, it’s currently extremely hard to stop specific things- specifically physically simulated objects - from replicating to the client. This feature request is both for disabling the replication of specific, targeted objects entirely, or targeted properties of them.

Why would I want to disable replication of specific objects or properties? Recently I’ve been working on custom humanoids, and they’ve been working very well so far with just player controls. They work using 3 BodyMovers and physics. These BodyMovers are created on the client, and the properties of them are not replicated to other clients because of this. This works just as I need it to.

image

When these BodyMovers are on the server, however, they automatically replicate their values when they get updated. This isn’t good for me because the clients do not need this data at all, and I’d like to be able to handle a lot of enemies at any given time - they spend more than ~1.25KB/s each. This is not good when I want to have at least 30 of these enemies active at a time.

image
~38KB/s with 30 enemies moving in a single direction
It makes sense why it’s so high- 2 Vector values and 1 CFrame value (x30) ‘updating’ at 20Hz

If I were to have the ability to disable the replication of specific objects, I’d disable the BodyMovers replication and would have significantly lowered my network receive, allowing me to have even more active enemies and have a smoother performing game.
This is just one use case, when I’m sure there could be many. Another use case I could think of is disabling the replication of specific users if they are invisible/stealthed- that way, players even with cheats can’t know what they are doing or where they are.

This could probably be implemented in a few ways - it could be with a ReplicationService with a couple of functions, or it could be a property on every Instance.
This could also be implemented alongside @Sharksie’s Selective replication idea.

Tell me what you think, and if you’ve found any other use cases for this (or if you know a solution to my problem! If so, reply on this thread please!). Thanks!

108 Likes

Are we ever going to have this? This would be cool to have

25 Likes

Yo roblox come on vro we need this

I have AI controlled units and they use a custom movement system without physics. Anything above 10 units and my network send and receive skyrockets because roblox is replicating all the properties in real time whereas if I had the option I’d disable the roblox replication and simply replicate the target position and have a verification ping every second or so to confirm the server and client match unit positions during runtime.

4 Likes

This is a pretty good feature request. Bump :+1:

5 Likes

Would be great to have this. Bump :+1:

3 Likes

Still needed. It’s possible to make your own system for this but any system is pretty much always going to be very case specific and be built on top of the existing replication causing additional lag

4 Likes