AddMovementInput stops replicating when converting to 4.25

  1. You want to ensure your Actors are set to replicate, and replicatemovement is set to true.
  2. If your packaged project is configured to be Debug, you should be able to use ~ to bring up the console and use many of the relevant commands. I forgot all the nuances between development, shipping, and debug when packaging, but the Debug config should give you access to the console.
  3. When you want a server to have an actual player, thats a Listen Server. Be sure your PIE settings reflect that.
  4. Does your set up work if you just have a dedicated Server, but fail when you have a listen server? Like if you just PIE with a listen server, setting do things replicate as they should?
  5. What are you doing exactly to make it so a player (a client) becomes a server that others players can join to? If all the clients don’t recognize that player as the server/host, things aren’t going to work.

Hi,
I have released an Online Multiplayer on Steam using Unreal Engine 4.21 fully in Blueprints (uses Seamless travel). It is NOT a dedicated server type, one of the players creates a room and becomes the server, where the others join as clients.
“AddMovementInput” function was the main character control movement function. There are other functionalities, such as firing projectiles, moving flipbooks…etc.

I’ve converted the game from 4.21 to 4.25.3. After doing that:

Server controlled character operates perfectly, and is replicated to clients accordingly without any issues.
Client controlled character everything aside from Movement (AddMovementInput), works on the client-side and is reflected on the server side as well.
I tested the AddMovementInput by calling it from a replicated event: and the results are as follows-this was using a packaged with "shipment" setting:
Replication: None -> Client controlled character moves on the client side, but does not replicate to the server nor to other clients.
Replication: Client/Multicast-> Moves EXTREMELY slow on the client side, and replicates to the server as well, EXTREMELY slow.
Replication: Server->No movement on t he client side, no replication on the server side neither.

I have also tested the game with the game mode using default to narrow down the cause “PlayerController”, “GameState”, and still had the same results as the above.

I’ve tried StandAlone with multiple clients, but the results are so inconsistent with the packages version, I decided to not to rely on it.

NOTE: I’ve tested with migrating assets/blueprints into a cleanly made project in 4.25.3. Still fails the same exact way.

***Is there a new Replication setting that has been added that I am missing? Or changes to the replication configuration into 4.25?

I would like to report it through Bug reporting system, but I cannot pin point the exact failure other than converting to 4.25.3. I do not have “the steps” to report.

Furthermore, I cannot find a single WAY to debug package versions from Blueprints nor even StandAlone versions… Any help in that department would be highly appreciated!

Sorry for text only question, but that’s all I have. Please give me questions, so I can provide more information that is relatable.

Thank you in advanced!

I’ve been struggling with this for almost two weeks. So, thank you so much for the detailed reply!
I need to mention this again, the game was working perfectly, and is available on Steam in UE4.21.

  1. You want to ensure your Actors are set to replicate, and
    replicatemovement is set to true.
    This was already been set up on the controlled character.
  1. If your packaged project is configured to be Debug, you should be
    able to use ~ to bring up the console
    and use many of the relevant commands.
    I forgot all the nuances between
    development, shipping, and debug when
    packaging, but the Debug config should
    give you access to the console.
    Thank you. I’ll keep that in mind.
  1. When you want a server to have an actual player, thats a Listen Server.
    Be sure your PIE settings reflect
    that.
    I do not understand. Do you for Stand Alone? I never needed to use a Listen Server to test it back in 4.21, since the game was launching the server itself (using AdvancedSessions plugin)
  1. Does your set up work if you just have a dedicated Server, but fail when
    you have a listen server? Like if you
    just PIE with a listen server, setting
    do things replicate as they should?
    Steam does not allow dedicated servers. So, I built the game to use Listen Servers only. Replication used to work in PIE when I use Non-Seamless travel. But, since Steam demands Seamless travel I had to rewrite the game to use Seamless travel only. And Seamless travel does NOT work in PIE, but works only in Stand Alone. And PIE only started to allow more than Single Stand Alone window in 4.25. And, 4.25 is where my problems are at.
  1. What are you doing exactly to make it so a player (a client) becomes a
    server that others players can join
    to? If all the clients don’t recognize
    that player as the server/host, things
    aren’t going to work.
    I use AdvancedSessions to create a session (Listen Server), then clients do a FindSession, and Join that Session. It worked perfectly in 4.21.

Alright, there is alot to unpack here.

  1. I don’t mean as a Standalone, I mean check the Play as Listen server in the editor settings, and then test your set ups on both your listen server and your clients. From my own work with doing Replication set ups in 4.25.3 with PIE, I’ve found that you need to have the play as listen server checked for PIE editor replication to work. If you just have two clients, things don’t always seem work as they should. The authority portion of the switch has authority node doesn’t always work completely, with some capsule traces just not happening when I only have two clients and I select play as client. Checking the launch dedicated server settings and just having two clients didn’t work either. I have no idea why some of my own sets only worked when I had at least one client act as a listen server, and some authority nodes were triggered even with the two client settings. I’m telling you this because there is a chance you are facing the same issue I had.
  2. I’m not well versed in the nuances of seamless ravel and non-seamless travel. Though it seems to be some disconnect about your reply about seamless travel. The documentation notes that you have to use non-seamless travel when connecting for the first time as the client, among other things. (Travelling in Multiplayer | Unreal Engine Documentation). Therefore I don’t understand how you could only use seamless travel; they are just both tools that have a time and place. This isn’t my area of expertise, but make sure you are 100% confident in your travel set ups. If you left a player controller “behind” then things will break.
  3. I never used the Advanced Sessions Plugin. Read the code so understand its nuances, and if he already has some implementation of seamless/non-seamless travel. Might want to reach out to the plugin maker for advice about integrating his plugin with server travel.

Thank you again for the kind and detailed response!!! I will consider your kind points above. And, I will investigate and reply back to you.
It may take a few days. But, once I get to the bottom of this I will come back with a reply!

I found people facing this problem as well.

It turned out that the problem was from the Network Bandwidth default Engine configurations seem to have changed from 4.21 to 4.25. So when I converted my project that was working totally find on 4.21 to 4.25, this new bandwidth configurations limited the communication between clients and server. And, this in turn, had clients stuck in their places due to Replicated Calls and Values were saturating the bandwidth.

So, the answer I found that worked for my project was to add new limits in the Project’s config\DefaultEngine.ini file the following lines, this made the game operate properly in Stand Alone without lag:

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
MaxClientRate=100000
MaxInternetClientRate=100000
 
[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxClientRate=100000
MaxInternetClientRate=100000
 
[/Script/Engine.Player]
ConfiguredInternetSpeed=50000
ConfiguredLanSpeed=50000

And, also I had to add the following lines that made the game operate without lag in Packaged version. I add the following lines in the Project’s config\DefaultGame.ini:

[/Script/Engine.GameNetworkManager]
TotalNetBandwidth=6000000
MaxDynamicBandwidth=800000
MinDynamicBandwidth=4000

Thank you to the contributors.
References:

Movement replication on 4.25 - Multiplayer & Networking - Epic Developer Community Forums

Server RPC call rate? - Programming & Scripting - Epic Developer Community Forums

Reddit - Dive into anything

Luckily I found the answer!! :smiley:
Thank you for your help!

Wow. I was totally out of left field. The fact that these engine settings have changed from version to version smells like a mistake and should probably be submitted to Epic.

Thank you for continuously following up.
I made a bug report. I hope they are able to find the root issue.

Have a drink on me, sir! I can’t believe that all of my other tests and fix-attempts did nothing (except reverting to an old MCP) and this is what finally solved the PIE network issue! Character movements and interactions are now restored. I had a suspicion this was directly from upgrading to 4.25, as it wasn’t an issue before. It seems that Epic also had some issues with the VR template which gate baked into the projects config file, as they are constantly improvement and learning from their faults & bad philosophy about VR (same goes for Oculus), but it’s difficult to find out why they broke something that is this obscure. Again, many thanks to you!

Sorry for the late reponse!
I’m more than glad to be of help!! I know how it feels when things don’t go as expected and just seem to be burrowed in mystery :smiley:
Good luck mate!