Description

Class ref is not passed to server within the struct in UE 4.19. Instead, the default value is passed to the server.

LogNetPackageMap: Warning: SanityCheckExport: CacheObject == NULL. NetGUID: 1, Object: /Game/BP_BaseActor.BP_BaseActor_C, Expected: BP_DerivedActor_C
LogNetPackageMap: Warning: SanityCheckExport: Name mismatch. NetGUID: 1, Object: /Game/BP_BaseActor.BP_BaseActor_C, Expected: BP_DerivedActor_C
LogNetPackageMap: Warning: SanityCheckExport: Outer mismatch. Object: /Game/BP_BaseActor.BP_BaseActor_C, NetGUID: 1, Current: /Game/BP_BaseActor, Expected: /Game/BP_DerivedActor

Steps to Reproduce

Open attached project in UE 4.18. Start in PIE window with 2 players. It will spawn a cube.

Open attached project in UE 4.19. Start in PIE window with 2 players. It will not spawn a cube, see description for log output

Detailed Steps:
1. Create a bp class based on actor (BP_BaseActor).
2. Create another bp class based on BP_BaseActor (BP_DerivedActor).
3. Add a Cube or similar component to BP_DerivedActor.
4. Create a BP struct including a class reference to BP_BaseActor with default BP_BaseActor.
5. Create reliable Server RPC which spawns an actor. RPC takes struct as parameter and spawns the class specified in the struct.
6. Call server RPC on client (for example on custom controller with Has Authority Remote).

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-57173 in the post.

2
Login to Vote

Fixed
ComponentUE - Networking
Affects Versions4.19
Target Fix4.20
Fix Commit4132750
Main Commit4133609
Release Commit4132750
CreatedApr 2, 2018
ResolvedJun 15, 2018
UpdatedJun 28, 2018