[UE4 4.24 C++] Server RPC dropped after leaving replay

Hi All,

I’m working with the UE4 replay system and I’ve come across a problem. I’ve got the replays and everything working correctly, but the problem occurs after I stop and leave the replay.

Some of my UI systems use server functions to request what scenarios (or levels) are available, so after a replay my menus come up blank because the server functions aren’t being processed. I think the replay system overrides the network DemoNetDriver and all my server functions are being dropped because they are essentially being sent to the “replay server”?

Some context, these server functions are being called from the client to be run on the server. But when in visual studio and break-pointing, the server functions will be called but the Implementation_Server functions don’t get break-pointed. (just FYI I’m doing this in editor debug, so that’s not the problem)

I don’t really know if my theory is correct, but either way if you have any insight into this and know what I could do to fix it I would really appreciate your help!

-London

Just an update, after a replay your basically in a client state where you don’t have authority. The authority being the replay server which doesn’t respond to anything. I tried turning off the replay driver but honestly that just made the project more volatile, maybe there a correct way to do it but I couldn’t figure it out. So what I ended up doing was after a replay finished being shown and I wanted to do something else in the game I just had to put in a check to see if the replay driver was active. This wasn’t that bad because it basically just meant when I traveled to another map I just had to check the replay driver and call a slightly different server travel function. The only fix to the replay driver problem that I saw was when you traveled to another map. That would sort of wipe the slate clean and the program would act normally and regain authority.

So what I would recommend is that you construct how you view replays with the idea in mind that after its played you need to handle some special cases (if you using server rpcs and stuff like that).