How can I do this?, do I lerp the root part of the character?, and how can I lerp the character itself
What do you mean? If you want to move someone on the server set their rootparts network ownership to nil (which means server) and use humanoid:Move()
I believe you are trying to verify player movement.
If you just want player movement to happen solely on the server I think you are going to have huge issues with Input delay because of how much traffic is going to the server and back to all players, and that in a server of like 10 people.
But if you want to have this then I suggest you following this guide:
How to Move Player Character Movement to the Server (Server Authoritative Character Movement) - Resources / Community Tutorials - Developer Forum | Roblox
What he does is just set the network owner of the character to nil, which just removes Ownership of the Character from the client.
I’ll check it out, but I’m trying to figure out how to smoothly correct the players characters position, after applying client prediction
Can you show a video of what you mean?
I’m currently still working on it, I’m looking for tips/advice, on how I should do it, just general tips
do what, you need to describe the problem you are having or send a video, because currently I have not the slightest clue what you are talking about
I’ll try to send a video, later when I have access to my laptop, but to clarify, what I want to know is just advice on how to do server authoritative movement in general, what should I do for client prediction, and how I should reconcile movement/positions between the server and client, if the positions of the clients are different from the server, I have set the characters primary part, which is the humanoid root part to nil, and set their movement type to scriptable
Unless your game doesn’t require an inch of snappy / reactive movement, Server-Authoritative movement will make the game feel sluggish and rigid. When you start to move, it will be delayed, and you can’t very accurately predict player movement unless you have a very very niche movement or vehicle system.
What you describe would happen with server-only movement. Server-authoritative movement means that the character moves immediately on the controlling player’s client, and then the server has a chance to validate that movement before it replicates to all other players, potentially correcting it if the player moved in a way that shouldn’t be possible (like a speed or flying exploit). When a correction happens, the corrected position is sent to all players, including the originating player. In a case where the discrepancy was due to internet lag or packet loss, the originating player’s client would just see their position get corrected to the server’s result, potentially “rubber-banding” them if they overshot where they should be. If the position discrepancy was due to a modified client, that client might correct or may just remain out of sync, depending on the nature of the exploit.
Right now I’m just looking for advice on how I would fix the client side position if it were different from the server side position,
I’m Lerping the humanoid root part, and pivoting the players character but then the players character is no long in sync with the humanoid root part, depending on the direction movement, the character is either behind the root part, or in front of it.
Currently I’m not looking for someone to review the code, but rather give some insight on how to do it and learn
If you’re using my implementation, don’t. It’s bad and incorrect.
I do recommend you check out Chickynoid by MrChickenRocket.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.