If a client creates a brick in Workspace, and I use a server script to look for it, will it find it? FE is on.
No, the server script would not be able to find the client made object with FilteringEnabled on.
The reason the script will not find the part in Workspace is because client scripts can not make changes to the physical server when FilteringEnabled is turned on. FilteringEnabled is ROBLOX's protection feature to prevent client sided scripts from executing server necessary code. However with a few privileges granted from the server such as changing a player's walkspeed and firing RemoteEvents
and RemoteFunctions
.
The client can not make changes to Workspace, ServerStorage, ServerScriptService, etc on the server's behalf with FilteringEnabled on. Therefore, only the client script will be able to see changes. Since client produced objects do not replicate to the server, then Server Sided scripts have no access to them and will not be able to find them.
In order to produce a part, you would want a LocalScript to fire a RemoteEvent. With that RemoteEvent, you would want a Server Script to produce the brick.
Just think of it like this. A server can change and see objects within its server to display for all players. However, LocalScripts can only change and see objects within its client and may add or remove parts only within its client.
With FilteringEnabled, nothing from the client will be replicated to the server. Therefore, if the server tries to access something that the client tried to create, it will fail as the server doesn't have the data to even acknowledge it's existence.
To prove this, follow these steps:
In studio, set FilteringEnabled to true In studio, start a server with at least one player In the player window, insert a part into workspace In the server window, check the workspace to try to find the part
With FilteringEnabled you shouldn't be able to find the part you insert it. Now try it without FilteringEnabled and you'll find that the part will be sitting there in the workspace on the server.
FilteringEnabled
will stop any changes from being made to the server, for example using :GetPlayers and such will not work because it connects to a service from the server. As long as you don't use GetService() you can find parts in workspace just fine.
If this helped, accept and upvote!