Complete movement control of the player on Server (Skill movement)

Hello !

I have a question hard to test because it involve RemoteFunction performances.

I’m working on a game which can have attacks/skills which can move the player. Let’s take a dash with iframes for exemple.
So I decided to let the server handle everything about the skills except the visual part.

But… the movement is kind of both. If the player use a skill, the server say ok you can ! oh and by the way, move like this pls ! Then the player trigger, animation, vfx and the movement. Would that be the correct answer ? The event is in a critical moment, so any lag would be a broken skill.

That’s why I’m wondering, should I let the server do the move ? But only when the skill is triggered ? It will still need to ask the player to not move with an event. While I’m writting this I realize that there will still need to send the answer to “can I do it?” to the player… so maybe there is no choice anyway.

So the thing I was wondering : Should I try to fully control the movement with the server ? Like only sending the move vector, or maybe even just inputs. And then the server move the player character. But will the remote function be smooth ? It looks like it the less performant stuff there is.

Of course if you have any good architecture for that I’m all ears ^^
Thanks !

1 Like

Pretty sure that would lead to bad user experience as the player’s ping may be from 80-200 which will cause a very much noticeable delay between input and movement.

Also you may want to stray away from RemoveFunction and just use RemoteEvents or UnreliableRemoteEvents.

Reality is sad ^^
But how to do it safely then ? Even adding linear velocity or any physic stuff doesn’t stop the move function in the controller. And I even use a cframe rotation in the character controller.

You said event, but sending event for the inputs won’t do the trick right ?

AH, would the answer be to set WalkSpeed to 0 then use a linearvelocity from the server?