very common beginner problem. you're desyncing the worldstate on the client from the server. in simple terms, you call disableWalking on the server, and then call restoreWalking on the client. Your code doesn't show anything that will tell the server about this, so the server thinks the client still has its walking disabled. the solution is very obvious, simple, and mundane that even a beginner can fix it: simply communicate to the server what the client has done using remote events. another solution is to do it entirely on one side (pick either server or client and do everything there), noting that gui button presses dont automagically get sent to the server so you'd still need a remote event there.