TArray Replication - Fast Changes --> Connection Lost

Hello,

we use a TArray to store the multi-selection of actors of a player. This Array is replicated. The Client uses a “mirror” array to store its current selection and then uses an RPC to inform the Server about the new selection. Everything seemed to work but further tests show that the client disconnects if the client changes big selections too quickly.

That means if the Client selects 100 actors and then it immediately selects 100 other actors it gets disconnected. But if we wait a second between the selection everything works fine. We may have to consider something we are not aware of when replicating a TArray?

Currently we are using Engine Version 4.4.1 and there are no errors in the output log.

Greetings DarthB

To check why it happens try changing the verbosity of the following logs:

  • LogNetSerialization
  • LogNet

To change the verbosity just use the following console command:

Log <category> <level> (Change verbosity level for a log category)

Lets see why you are getting disconnected.

Cheers,
Moss

Thank you Moss,

i first used verbose and then veryverbose as log category I think these outputs need more investigation:

LogNet:VeryVerbose: UpdateUnmappedObjects_r: Still unmapped. Offset: 160, NetGuid: 44
LogNet:VeryVerbose: UpdateUnmappedObjects_r: Still unmapped. Offset: 160, NetGuid: 44
LogNet: UChannel::ReceivedSequencedBunch: Bunch.bClose == true. ChIndex == 0. Calling ConditionalCleanUp.
LogNet: UChannel::CleanUp: [GameNetDriver] [BP_ArtistController_C_6] [BP_ArtistController_C_6]. ChIndex == 0. Closing connection.

I think the problem occurs earlier and is that bClose becomes true somehow. I will notify this thread if I make some progress.