DemoNetDriver - Using Memory Streamer

Hello,

I’m setting up a replay system for my game and it works fine using the NULL Streamer system.
However I’m looking to implement a killcam rather than the NULL Streamer ‘save to disk’, ‘view later’ concept.

How do I setup the DemoNetDriver to use the Memory Streamer?

Really struggling to find much information about it, any help would be appreciated.

The UE4 doc states this (but I’m not sure what to actually change):

DemoNetDrivers use the NULL Streamer by default, but can override this by receiving the URL option “ReplayStreamerOverride” set to the name of a different Streamer Factory’s module, such as “InMemoryNetworkReplayStreaming” or “HttpNetworkReplayStreaming”. The default value, “NullNetworkReplayStreaming”, can be changed by setting the “DefaultFactoryName” variable in the “NetworkReplayStreaming” section of your project’s DefaultEngine.Ini file. This can also be accomplished by calling InitBase and providing the appropriate URL argument as a parameter.

Thanks (and sorry if obvious!)

1 Like

It was fairly easy to add. Below is all I needed.

Recording a replay

TArray<FString> Options;
Options.Add("ReplayStreamerOverride=InMemoryNetworkReplayStreaming");
StartRecordingReplay(NewName, NewName, Options);

Playing back a replay

TArray<FString> Options;
Options.Add("ReplayStreamerOverride=InMemoryNetworkReplayStreaming");
PlayReplay(ReplayURL, nullptr, Options);

However, the InMemoryNetworkReplayStreamer isn’t built by default so I had to add this to my projects Build.cs

DynamicallyLoadedModuleNames.AddRange(
new string[] {
    "InMemoryNetworkReplayStreaming"
}
);
1 Like

Awesome, thanks!

Hi,
did you achieved to make it work?
I tryed your solution but when I try to play the recorded replay I’ve got “Failed. DemoNotFound” in logs

Plz help

Do you mind emphasizing what changes you made. I am a blueprinter and am trying to expose these functions to BP. This part I understand. Although most of C++ I do not. I would really love to get a killcam working as it isnt something any tutorials are made for. If i can get it working i think i might make one bc its a fairly common thing in AAA games. Thanks in adv.

Thank you very much. Your post got me a step closer to figuring this out. I am now using the memory streamer successfully. However, I only needed to add the memory streamer options to the functions, didn’t even need to add to the ‘build.cs’. When I tried I got a compiler error. After removing it, it worked. Now my next issue… how do I stop playing the recording, i.e. go back to main world instead of recorded world? Thanks in advance. If I can get this working completely, I will create a tutorial for others as it is well needed.

1 Like

Did you get this figured out? I can’t even get the memory streamer to get working. Other streamer seems to work, though

I have had the same issue. I have given up for now to work on other things but i will circle back most likely at some point. If anyone else finds updates please post as this is a common issue for many.