I have a large amount of data that I need to replicate (common problem). It’s too big to send through without compression. So I’m using the built in compression. The problem I’m having is when I do this…
Pack.SetNumZeroed(CompressedSize);
FPlatformMemory::Memcpy(Pack.GetData(), Temp.GetData(), CompressedSize);
I get this crash.
Assertion failed: CmdIndexIterator->ChangelistIterator.ChangedIndex - OldChangedIndex <= ArrayChangedCount [File:D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\RepLayout.cpp] [Line: 1275]
UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:79]
UE4Editor_Core!FOutputDevice::LogfImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
UE4Editor_Core!AssertFailedImplV() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:101]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:439]
UE4Editor_Engine!FRepLayout::PruneChangeList_r() [d:\build\++ue4\sync\engine\source\runtime\engine\private\replayout.cpp:1458]
UE4Editor_Engine!FRepLayout::MergeChangeList() [d:\build\++ue4\sync\engine\source\runtime\engine\private\replayout.cpp:3250]
UE4Editor_Engine!FRepLayout::ReplicateProperties() [d:\build\++ue4\sync\engine\source\runtime\engine\private\replayout.cpp:870]
UE4Editor_Engine!FObjectReplicator::ReplicateProperties() [d:\build\++ue4\sync\engine\source\runtime\engine\private\datareplication.cpp:1341]
UE4Editor_Engine!UActorChannel::ReplicateActor() [d:\build\++ue4\sync\engine\source\runtime\engine\private\datachannel.cpp:2836]
UE4Editor_Engine!UNetDriver::ServerReplicateActors_ProcessPrioritizedActors() [d:\build\++ue4\sync\engine\source\runtime\engine\private\networkdriver.cpp:4005]
UE4Editor_Engine!UNetDriver::ServerReplicateActors() [d:\build\++ue4\sync\engine\source\runtime\engine\private\networkdriver.cpp:4365]
UE4Editor_Engine!UNetDriver::TickFlush() [d:\build\++ue4\sync\engine\source\runtime\engine\private\networkdriver.cpp:506]
UE4Editor_Engine!TBaseUObjectMethodDelegateInstance<0,UNetDriver,void __cdecl(float)>::ExecuteIfSafe() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:679]
UE4Editor_Engine!TBaseMulticastDelegate<void,float>::Broadcast() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:977]
UE4Editor_Engine!UWorld::Tick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\leveltick.cpp:1720]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1618]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3967]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
I’ve also tried to simply do a “Pack = Temp” array assignment. This however causes massive hitching in the game once a second. In the ServerReplicateActors function.