Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Quick question about filtering enabled! ?

I have recently been trying to learn about fe and I've learned that if fe is on then the client cannot make any changes to the server. However I saw some guy at youtube who said that the server cannot make changes to the client or the client side is that true? Btw were should you put values that every player needs have one of there own?

Comments or answers are appreciated.

1 comment

0

With FilteringEnabled, the client cannot make changes to the server. So if you set a part color to yellow from a LOCALScript, only you can see that change, while other players in the server will see the part normally. If you change it from a normal script, everyone can see the change.

2 answers

Client -> Server

In the early days of Roblox there was practically no security which is why people used to create "anti-exploit" scripts to try and detect when someone was doing something they should not. This practice is now redundant mainly down to FE.

FE will stop the replication of most local changes (Animations and character physics are some which are allowed) and the server would just ignore the change. If filtering was turned off the server would receive this change and then replicate this to all the players in the game.

When FE is on it has a very beneficial side effect to game developers by keeping changes made by the client within the client. Previously we would have to use local parts to gain this kind of behavior but FE acts in a similar way. Using FE is now the standard way to create local parts and effects which is widely used by game ddevelopers.

Server -> Client

FE does not change the relationship at all between the server -> client. Changes made by the server need to be replicated and are "safe" to replicate to all of the player in the game.

The server cannot access things that the client "owns" ie their mouse, user settings and other local only services. Though there may be cases where input is replicated ie click detectors (which now work with FE) and vehicle seats.

So "server cannot make changes to the client" is both true and false

Requests

So how do we "ask" the server or client to do something? We use remote events and functions dependent upon our needs. These work in a similar to bindables except this will send and receive requests to the server and client.

Secure value

With FE you can practically place object values anywhere withing your game that replicates to the client since it will effectively become read only to the client. That being said, if the client does not need the data put it where its safe in server storage better still do not use a value holder and store data in a script.

I hope this helps. Please comment if you do not understand any parts or think I have missed any info out.

First, you should understand ROBLOX's Client-Server model. Here's a good image:

With FilteringEnabled enabled, any instances created are not Replicated to the server, therefor, they are not replicated to the other clients.

Any changes made by the server are automatically replicated to the server.

If you want each client to get a copy of an Instance, put the Instance in the ReplicatedStorage. The ReplicatedStorage is a storage that is replicated to each client when a client joins the server.

For more information:

ROBLOX Wiki: FilteringEnabled Note: In the wiki it is offsetting because they call it Experimental mode, but it's very helpful.

2 comments

0

ReplicatedStorage is a container which both the client and server can access. ReplicatedFirst is a container that replicates objects to the client as soon as they join.

0

if i have a value inside of replicatedStorage and change it it will change for every player in the game

This discussion is preserved as it was. New answers, comments, and votes are closed.