Hello, I am making a combat game and I have a problem where a BoolValue called UsingMove is used on the server to stop the client activating moves when another is already happening. Server ping (ususally around 50ms) is enough to use around 2 or more moves at the same time until UsingMove is set to true. How can I make a debounce to avoid this?
You should use a RemoteEvent instead, it gives you more guarantees about the order that information is sent.
You should have server code that receives the event from a client and activates the move. This code should be what enforces your game rules about only using one move at a time. The client can do things like start animations immediately so that the game doesn’t feel laggy, but your client code should also prevent the user from starting moves that the server will not accept anyway, either because they are using too many at once or the move is not available. This means you will probably have some checks that are duplicated between your client and server code, which you should put in a module so you don’t have repeated code.