My original idea was to use a RemoteFunction to check the debounce timer so that the RemoteEvent can't be spammed but i'm afraid that there would be delays since it is being done on the server.
I did a bit of research and another solution i found was to simply add a debounce on the server script so that the RemoteEvent can't be fired super fast but this is also done on the server so there would definitely be delays.
Which of these method would be the best? Or if neither of them are efficient methods then what are some suggestions i can get to prevent exploiters from spam firing RemoteEvents?

5 comments
^even with a lot of lag, and a lot of delays, there is no problem using this method.
So on line 7, do i also have to include the time the remote event has to wait before firing again?
Yes, so it doesnt instantly go nil, and exploiters can't spam that remote event. If it worked accept my answer please ;)
Make sure to do this check in a slightly different way on the client because the client might have a millisecond of lag at the wrong time and end up getting kicked.
Thanks!