Filtering Enabled, or FE, is a form of anti-exploit that also changes the way games have to be scripted, which is why most classic games are broken.
To understand FE, one must first understand Roblox's Client-Server model.
Every player connected to a game is considered a client because of their relationship with the server. Like in life, how every person has their own experience of the world, every client has their own experience of the game. Changes to the game can be made on the client that only the client can see. For example, a part can be created on the client and it will only be visible and physically interactable with by that client - no other. These changes are made by using Local Scripts.
No matter what Roblox game you play, even if the player count is set to single-player, you are connected to a server. The server is dedicated to keeping the game experience consistent for every client that is connected - every player playing the game. If a player decides to jump, the server recognizes this action and replicates (copies) it to every client. If a part is created on the server, every client will see and be able to physically interact with it. Changes to the server are made by using Scripts, also referred to as "Server Scripts".
Well, prior to FE being introduced, absolutely any change made on the client would replicate on the server and in return, every client. This meant that exploiting was simple and easy, as injecting a script into their client would replicate on the server.
Want to use a script builder type script for fun? Just run it on your client and the server would gladly replicate that for you on every other client!
What FE does is as simple as blocking (most) client changes (such as injected scripts) from replicating on the server. There are a few exceptions. As user InsertYourself mentioned in a comment below: animations, physics, and character movement are all replicable.
Script builder type scripts won't be effective in any game. However, there are still ways to exploit certain games. Some games are more or less secure than others, depending on how well they are scripted with exploiting in mind. Some developers have even gone a step further and made their own anti-exploit unique to their game.
They were scripted with mainly Local Scripts before the introduction of FE. This way of scripting became incompatible with the introduction of FE, thus classic games were broken.