Well when you have an FPS that makes the player have to reload their gun in order to kill their enemies, there's always gonna be a player who exploits it and has infinite ammo.

Now If I handle everything that is important in one LocalScript and everything that is not important in a few module scripts like animations, GUIs and more should I be safe from exploiters making infinite ammo?

If I handle it on the server which prevents that infinite ammo exploit which is great, but then causes input lag which isn't so great for the clients.

What method should I use and why? Is either good?