I have created a very simple conveyor belt using the AddActorWorldOffset node. It works fine offline and looks fine from other clients perspective, but is jittering for the controlling client who is on the belt.
This is the conveyor belt blueprint. I added a switch has authority in front of the each loop to ensure it only runs on the server but it did not fix the jittering.
These are the conveyor belt replication settings. I tried changing the update frequencies but the jittering wasn’t fixed either.
Then I tried using a Timeline and the BeginOverlap event so it will run on both server and clients, but it did not fix the problem:
[This is a video of the jittering problem.]
Does anyone have a clue how to fix the jittering?
Thanks already in advance for the help.
You’re not replicating the conveyor movement. The host needs to know that a client is on the conveyor and that the speed is affected so it can approve that information and send it to the server’s instance of the client player. The concept would work similar to
multiplayer walk/sprint setup .
Your client is on the conveyor and is moving correctly but what’s happening is, the server doesn’t know that the speed or offset is happening because it’s happening on the client so the server corrects it on the client which makes it look like the jittering you see. It’s just the server correcting the client movement based on the information it has.
There’s 2 versions of every actor. One on the client and one on the server, the goal is keeping all the variables in sync with each other and in multiplayer, you should let the host/server handle those things.
For anyone coming to this post from the future, after a lot of trial and error I finally came to the conclusion that in order to smoothly translate the character along the conveyor it would require some sort of extrapolation/interpolation to be implemented to use the AddActorOffset solution. If you’re lazy like me and don’t want to do that you can rely on physics to smoothly translate your characters/objects by spawning and adding collision boxes in multiple succession (every x seconds dependent on speed) and applying the offset to those, then destroy them on end overlap. Your characters should stand on top of the collision boxes and be carried along with it smoothly. Hopefully this video demonstrates what that would look like: ConveyorExample.mp4 - Google Drive