I have a ‘Weapon’ Actor Component class, which is spawned at runtime by it’s owning actor and added to it’s inventory. These Components replicate, and are correctly created on the client and behave as they’re supposed to.
However, if I try to destroy this component on the Server WITHOUT destroying the actor that owns it (e.g, to replace the weapon via a powerup) - the client is kicked out of the session. This is the log:
[2016.07.07-18.08.36:084][779]LogNetPackageMap:Warning: GetObjectFromNetGUID: Server re-loading object (might have been GC'd). FullNetGUIDPath: [30]EMPTY
[2016.07.07-18.08.36:084][779]LogNetTraffic:Error: ReadContentBlockHeader: Client attempted to create sub-object. Actor: BP_Sabre_C_1
[2016.07.07-18.08.36:084][779]LogNet:Error: UActorChannel::ReadContentBlockPayload: ReadContentBlockHeader FAILED. Bunch.IsError() == TRUE. Closing connection. RepObj: NULL, Channel: 30
[2016.07.07-18.08.36:084][779]LogNet:Error: UActorChannel::ReceivedBunch: ReadContentBlockPayload FAILED. Bunch.IsError() == TRUE. Closing connection. RepObj: NULL, Channel: 30
[2016.07.07-18.08.36:084][779]LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:64492, Name: IpConnection_3, Driver: GameNetDriver IpNetDriver_2, IsServer: YES, PC: BP_BZPlayerController_C_1, Owner: BP_BZPlayerController_C_1, Channels: 32, Time: 2016.07.07-18.08.36
[2016.07.07-18.08.36:084][779]LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:64492, Name: IpConnection_3, Driver: GameNetDriver IpNetDriver_2, IsServer: YES, PC: BP_BZPlayerController_C_1, Owner: BP_BZPlayerController_C_1
[2016.07.07-18.08.36:085][779]LogNetTraffic:Error: UChannel::ReceivedRawBunch: Bunch.IsError() after ReceivedNextBunch 1
[2016.07.07-18.08.36:085][779]LogNetTraffic:Error: Received corrupted packet data from client 127.0.0.1. Disconnecting.
[2016.07.07-18.08.36:087][779]LogNet: UChannel::ReceivedSequencedBunch: Bunch.bClose == true. ChIndex == 0. Calling ConditionalCleanUp.
[2016.07.07-18.08.36:087][779]LogNet: UChannel::CleanUp: ChIndex == 0. Closing connection. [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:7777, Name: IpConnection_2, Driver: GameNetDriver IpNetDriver_3, IsServer: NO, PC: BP_BZPlayerController_C_0, Owner: BP_BZPlayerController_C_0
[2016.07.07-18.08.36:087][779]LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:7777, Name: IpConnection_2, Driver: GameNetDriver IpNetDriver_3, IsServer: NO, PC: BP_BZPlayerController_C_0, Owner: BP_BZPlayerController_C_0, Channels: 32, Time: 2016.07.07-18.08.36
[2016.07.07-18.08.36:087][779]LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:7777, Name: IpConnection_2, Driver: GameNetDriver IpNetDriver_3, IsServer: NO, PC: BP_BZPlayerController_C_0, Owner: BP_BZPlayerController_C_0
[2016.07.07-18.08.36:087][779]LogNet:Warning: Network Failure: GameNetDriver[ConnectionLost]: Your connection to the host has been lost.
[2016.07.07-18.08.36:088][779]LogNet:Warning: Network Failure: GameNetDriver[ConnectionLost]: Your connection to the host has been lost.
This is how I create the weapon objects. I wonder if perhaps I need to set some custom UObject flags on them or something? I literally can’t work this out at all since there’s no reason this should happen.