This was posted by Radioaktiivinen and I thought it needed more attention. It explains all the problems I have with FilteringEnabled that haven’t really been formally addressed.
[quote=‘Radioaktiivinen’]
The problem with FilteringEnabled is that it forces the developer to deal with all that prediction/interpolation/extrapolation that ‘real’ developers spend a lot of time with, and they have more control than us.
The problem why we have trouble doing those things properly is that roblox only gives us partial control over networking.
Primarily, we cant easily make server-local parts. FilteringEnabled is just a hacky all-or-nothing way to make client stuff local, and it even throws a warning if you use it to do localparts, and the parts stop being local if you turn the feature off.
A ‘Replicates’ checkbox would be more flexible. Using one, EVERY machine could have its own representation of a particular object (lets say a tool). The local player can have a local, smooth version of the tool. The server can have a simplified single block version. The other clients can render the tool if you are close enough.
Lets take another example, a car. The only way to make it smooth to the client, is to have the client car be 100% local. But we also need a server car. We cant have both currently because server overrides client. The client then would tell the server ‘I drove here’ and if it doesnt seem too crazy, the server agrees and directs the car to drive there the same route.
Even better would be selective replication. So only the local player would have a local version of the tool. The local player would tell the server about the tool, and the server makes it own version, and replicates it to all but the local player. Less work.
So:
-A ‘Replicates’ checkbox
-A ‘IgnoreNetworkChanges’ checkbox that allows you to prevent the server from affecting some object locally? (eg the tool you are holding so the server side tool affects all other clients but not you.)?[/quote]
EDIT: Original post.