Right now my game isn't filtering enabled. It isn't finished, nowhere near, but should I do the change to FilteringEnabled right now or later in development?
As soon as you begin developing.
Most aspects of development are affected by Filtering Enabled. In every case where you would of relied on something being replicated from the client to the server, you'll need to do it differently. Consider:
-- in a local script in playerstarterscripts
local mouse = game.Players.LocalPlayer:GetMouse() mouse.Button1Down:connect(function() local part = Instance.new('Part',game.Workspace) end
When a player clicks his mouse a part will spawn on his computer's ( client ) version of the game.
If filtering enabled is off, because the replication ( cloning ) is automatic, the parts will replicate from his computer to roblox's computer back to everyone elses computer. Everyone will see the part.
If filtering enabled is on, the replication from his computer ( client ) will be filtered ( it wont happen ). Only he will see the part because it was never cloned ( replicated ) from his computer to the server.
All things that happen in local scripts happen on the client ( the computer of the player object who the local script is a descendant of ). So if filtering enabled is on, all things that happen in local scripts will only happen for the local player. It won't change anything on anyone elses computers.
That said, all events that fire with respect to a client's hardware ( keyboard, mouse ), like Button1Down or InputBegan. So anytime you want to have the player to effect the actual game with his mouse or keyboard, you'll be affected by filtering enabled. Heres some examples of things you'd have to develop differently with Fe on:
a gun, ability, pickaxe, stroller, clicking to gain points ( simulator ).
Basically everything the player does.