When using -nullRHI to run a listen server headless, the replication seems to get broken. A cube with replicated movement start to react on the server with delay so that 5 shots within a couple seconds end up looking like it was spread over 10 seconds (the cube in fact starts spinning in the air as if shot by something invisible). The objects I’m testing with are just cubes with the replicate and replicated movement boxes checked, update frequency at 60 just to be safe. The only difference between not getting delays and getting delays is having the -nullRHI flag.
I figured out that the reason I was getting replication problems was because the server (now headless and no rendering) had too high an FPS (above 400fps). It seems that it tries to update the client on every frame, resulting in the client getting overwhelmed or having constant mismatch of location due to just the difference in granularity. Once I capped both server and client to 60fps, the problem went away. I considered whether there might be some frame dependency, but I’m not sure how that could be the case since the test is so simple (just cubes with replicate checkbox enabled).