Add movement input not working on client

Whenever I run a test using these settings with my floating pawn, the client does not properly move. it jitters for a moment then rubber bands back to its position.

the server properly updates and replicates its movement as a server pawn to the client.

on my pawn i have replicates and replicate movement both checked, and i have a floating pawn movement component added (not using character movement here – just add movement so i can get the pawn to fly as a space ship).

i also haven’t set up the add movement input call under any RPC because i heard on here that add movement is automatically replicated by the engine? is this assumption correct? do i need to replicate the value for movement after all but not replicate the add movement input node itself? i’m a little confused here so any help will really be appreciated.

please let me know if u guys have any idea what might be going on here? been stuck on this for a few days…

and by the way here are videos from the server and client so you guys have them in case you want to help. as you can see, server moves fine, but the client gets stuck and rubberbands back to its original position. really odd behavior indeed!

SERVER BEHAVIOR (works and replicates to client)

https://i.imgur.com/qCjYbV8.gif

CLIENT BEHAVIOR (rubberbands back to starting position / does not replicate to server)

https://i.imgur.com/FrywL9T.gif

hey, just tried this, with the states you describe. it did not work for me yet but thanks for response. any other ideas guys??

full description of what happens : the server moves but client does not move at all with this setting.

I could only get player inputs to work using a RPC with run on server selected and reliable not ticked (and also run in editor ticked)

Ok sorry, i was stuck on this for a while, i thought that was all i did to get it working but may be forgetting somthing, one thing is i wasnt using a player controller like you and had just enabled input in the ship bp itself for when it was in use.

hello. just tried what you said - same behavior on my end when i try this in pawn code as when i was using gameplaypc still. ( i deleted the gameplay pc inputaxis node to try it in the pawn code itself). if you have any other ideas i would love to try! this problem is really having me stumped.

what i tried from your pawn suggestion:

Im really not sure, I do also remeber when i was looking into it i read that some were having a similar issue due to somthing with using the pawn type BP, i never had that issue since i started out just using an actor class for the ship, if you dont find an answer or fix im happy to send you a basic skeleton actor class with working client inputs that you can rebuild you ship class onto if you like

hi, i just tried cloning my project and setting the pawn bp i had to an actor by going to class settings and changing the parent class it inherits after backing up the entire project - i am having some issues because i have a lot of code structured around the pawn class - so i may revert to that project for now.

i also tried to not use an RPC, but just a replicated variable for the inputaxis value and call the function locally with replicates and replicate movement enabled, that still has the same locking issue as i mentioned before.

now when i try to use add force instead of add impulse, and use accel enabled: true in the add force node, it does WORK functionally, but the problem is it still has microstutters for the client. i am noticing a bit less stutters and lags on the clients, but it is still just barely noticable to the point that it might dissuade people from buying my game on steam. i guess i might have to just live with the lag for now and suffer a slight sales loss? i mean the entire game works, even with multiplayer – but it is only smooth for the server and the client still lags right now.

here’s what i have for my add force code that works for server host and produces some slight lag for client:

you’re welcome to send me the file you mention, maybe on google drive or something, and i can take a look at it, and i would certainly appreciate your help there, but the rebuilding process of focusing the possed entity to an actor from a pawn would probably take me weeks to do because i do again have a lot of code structured around my pawn class for as my main possessed entity that plays the game (calls to cast to the pawn, referencing the pawn in various places, etc.).

and again if anyone else has any ideas please help :frowning: so stumped right now.

switched back to add force for now to get possessed pawn objects to move.

going to try to work on setting up a dedicated server to reduce client lag as well.

I have similar problem. Do you find a solution?

I ended up using a unreal marketplace asset called “SixDof” with builtin functionality for movement. It handles everything including prediction / movement properly with most conditions.

Oh, ok! Thanks for information.

I solved a similar problem with this article help: Character Movement Component | Unreal Engine Documentation.

I use my custom subclass of CharacterMovementComponent. I am calling AddMovementInput from clientside, and verify movement in overriden function ServerMove of my component subclass in serverside.

1 Like

Have you tried apply function on client? Like this:

MainThrust → Event ShipTrustClient

ShipTrustClient → ShipThrust

Be sure to replicate your ship and movement of it.

Hi, sorry i ended up using another solution for this… sixdof on the unreal marketplace for my ship movements for the game.