So, I already made a crawling system, but the issue is that its based on a RemoveEvent.
How it works is:
Player presses Left Control > Fire remote > Server recieves > Start crawling
The obvious issue here is that it might take time for the server to recieve data because of ping.
I dont want to set the WalkSpeed on the client, because you cant overwrite local walkspeed from the server (for some reason, I dont think there are any ways to bypass this)
(Also yes, I need to change walkspeed from the server later for the morphs)
This really isn’t too big of a deal, unless you already observe latency currently. You could load the animation on the client to show their input is doing something, even if it doesn’t affect their walkspeed.
Allow the client to do the crawling entirely on their client. The server should make sure that the character is not performing any weird behavior. This way will split the load to some decent gameplay experience without causing latency with remotes. I am not exactly sure how server would monitor this, either remotes or other indicators.
I don’t get what you mean.
He gave an answer, you can move it to the client and simply have the server watch and make sure the client don’t do anything strange. (Such as make a server-side event fire whenever the walkspeed changes, and check to see if it’s a walkspeed you accept.) If you need to know if the player is crawling (like set a value) Then just ignore the latency issue, you can set the walkspeed from server. Character.Humanoid.WalkSpeed = 40 will work on server.