How do i give the effect that the combat system is smoother to hide the delay everytime you want to use a move

how do i give the effect that the combat system is smoother to hide the delay (which is at least 100 ms no matter how much optimization i do) every time you want to use a move.

i can’t move the moves to the client side because the client would never know when they’re actually allowed to use those moves, they could be stunned which are values stored on the server

What is causing the delay? Is it a wait you have to do to?

server ping after pressing the button i have to press to do the move and it makes the combat look so slow

Oh, well I’m not too sure how you could fix that or make it look smoother. Goodluck with it! Sorry that I could not help.

well you could play the animations on the client if you’re doing it on the server

how would i check if the player isn’t stunned on the client without communication or delay

for checking if a player is stunned you can manipulate values or remote events/functions
(but why would you need to check if a player is stunned without communication or delay ??? that’s very difficult to do)

if the server is in the process or in the middle of firing the client to tell it that it can’t use moves and the same client presses that button then it will activate when its not supposed to and nothing will happen on the server but it will show that client that something happened

If you are stunning your player by adding a value to a humanoid…
You could use:

Humanoid:FindFirstChild(“stunned”)

This will check the humanoid for anything named stunned. I’m not sure if this answers your question though.

(you can use this on the local script)

well unfortunately it’s impossible/very difficult to achieve a <1 ms latency with server client communication.