Floating Pawn player (Def. Pawn Class) doesn't replicate movement.
(Full disclosure: I promise I've read absolutely everything on here regarding this and watched the Epic tutorials on basic blueprints networking already to no avail.) :)
When my Floating Pawn player (Default Pawn class) moves on a client, the movement does not replicate to the server nor any other clients. If I'm playing ON the listen server, its player pawn movement does, indeed, replicate to all other clients.
Yes, my pawn actor is checked to replicate/replicate movement/net load.
No, switching the parent from default pawn to character class won't work for a variety of reasons: 1. It breaks the floating pawn movement, even if you try to to add a floating pawn movement component after the fact. 2. I don't need the skeletal mesh hookups or animations, etc. 3. The character class seems hard coded against floating pawn movement (even though it exposes variables for any other type of movement! :) ) It would be a ton of hacking/inefficiency just to strip away the character components just to get it to replicate. And yet, it breaks the floating pawn movement anyway.
SO! My questions are: How can I get the basic floating pawn of a default pawn class to replicate properly? There has to be a simpler way than stripping the character class.
Follow up: It's totally plausible that I don't know things :) and the character class CAN support floating pawn movement component but it's not as obvious as merely adding the floating pawn movement component like it was for the pawn class. I'd love to hear that someone got it to work!
Thank you ALL in advance!
Most components do not replicate by default. While you may have set your actor to replicate be sure you have also checked that the component itself replicates, not just some arbitrary "bReplicateMovement" variable attached to ACharacter. Also note that APawn does not handle MovementComponents for you. If you want easy plug-and-play movement components with proper client->server replication you will likely need to use ACharacter.
With this said I didn't even know a FloatingPawnMovement component existed. It's highly possible that its client->server FSavedMove stuff isn't implemented. More on that can be found here (it is C++-based).
answered Aug 11 '16 at 03:40 AM
The only class that comes with the engine that I know of, that has network smoothing and prediction, is the Character base pawn class, which assumes a vertical skeletal character with a capsule (can act like a sphere if you make the capsule reeeeally short).
So unless you want to program your own network smoothing and prediction, you might have to use Character-based pawn but set its character Movement Type enum var to "Flying". Not sure how this will work for 6DoF though since it assumes vertical character and might not know how to deal with pitching past -90 or +90 degrees, or banking much either.
answered Nov 26 '18 at 06:16 PM
If you still want to use a floating movement behavior in networking, simply create a new pawn movement component, copy all the stuff from floating movement component into your own movement component.
in the TickComponent, change if (Controller && Controller->IsLocalController()) to (Controller)
with this change the component works on the server. addinput vector on the server and the pawn will move on all clients.
answered Jun 05 '19 at 05:44 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here