Replication filtering

Replication filtering is a feature that prevents property changes made on a game client from propagating to the server or other clients. It was formerly enabled by changing the value of the FilteringEnabled property of the , but is now turned on across all experiences and cannot be disabled. When replication filtering is enabled, changes made to properties of the (the game object) and its descendants will only replicate when initiated by the server or by the client who is considered the owner of a particular instance.
== Functionality ==
Because most exploiting uses the random-access memory's values, and then modifies them so that when the central processing unit queries the random-access memory cards for data values and then sends what it finds to the Roblox client and in turn, the Roblox Server, an exploiter may change nearly all aspects of a game on Roblox by simply modifying their client's interpretation of the game. Replication filtering prevents many forms of exploiting, since players in a game can now only modify how the game works and looks on their own client: their changes will not be replicated to the server and then to other players. As a result, game security was significantly increased. However, this feature caused some scripts in legacy games to break when they relied on the server replicating changes from the client. As a result, legacy games are generally broken by this change.
This works by separating the instance between the Roblox server and client, and discarding changes made by the client on the server. In some cases, like when a is unanchored, a client is designated the "owner" of that instance and can replicate certain property changes to the server and other clients. Network ownership is automatically assigned, but can be set manually using . Developers wishing to send data to the server are encouraged to use s and s, typically located in .
== Experimental Places ==
During the transition to forcing replication filtering in all experiences, those that did not have FilteringEnabled turned on were considered Experimental Places. Players under the age of 13 were not able to access these places. Experimental places were later discontinued.
== Notes ==
* When a modifies an object in the game, the change will be made on the client, but will not replicate to the server. For example, if a LocalScript creates a part, the part will only exist on that client's data model. The server will reject the change and not replicate it to the other clients. This makes it possible to make changes in the Workspace that only the local client will see.
* When this property is true, a Player's will not replicate to the server. It will only exist on the client. This means that s within PlayerGui will not run, and the server will be unable to access it. LocalScripts in the PlayerGui will still execute, however.
* Enable "PrintFilters" from Studio Settings > Network > PrintFilters to see what's being filtered. This is very useful for debugging scripts.
Category:Experience features