Net Serializing Warnings on Non-Replicated Components

I have been having issues trying to figure out why the engine is outputting the following warnings.

LogNetPackageMap:Warning: FNetGUIDCache::SupportsObject: StaticMeshComponent /Game/Maps/UEDPIE_1_BaseMap.BaseMap:PersistentLevel.BP_Blitz_C_1.StaticMeshComponent_3 NOT Supported.
LogNetPackageMap:Warning: FNetGUIDCache::SupportsObject: DrawFrustumComponent /Game/Maps/UEDPIE_1_BaseMap.BaseMap:PersistentLevel.BP_Blitz_C_1.DrawFrustumComponent_3 NOT Supported.

The object the first warning is referring to is the editor-only camera mesh that is attached to the camera component for my character. The second one refers to another editor only component as well.
I am also getting this warning for a WidgetInteractor component that is spawned only for local players and attached to the possessed character, this object is marked not to replicate.

Has anyone else ran into this issue? Why is the engine trying to net serialize non-replicated objects?

1 Like

Hey StangCeps,

I’ve come across a thread where the user experiencing a similar warning and posted a solution that they were able to work out:

Also, here is the related code from PackageMapClient.cpp

bool FNetGUIDCache::SupportsObject( const UObject* Object ) const
{
	// NULL is always supported
	if ( !Object )
	{
		return true;
	}

	// If we already gave it a NetGUID, its supported.
	// This should happen for dynamic subobjects.
	FNetworkGUID NetGUID = NetGUIDLookup.FindRef( Object );

	if ( NetGUID.IsValid() )
	{
		return true;
	}

	if ( Object->IsFullNameStableForNetworking() )
	{
		// If object is fully net addressable, it's definitely supported
		return true;
	}

	if ( Object->IsSupportedForNetworking() )
	{
		// This means the server will explicitly tell the client to spawn and assign the id for this object
		return true;
	}

	UE_LOG( LogNetPackageMap, Warning, TEXT( "FNetGUIDCache::SupportsObject: %s NOT Supported." ), *Object->GetFullName() );
	//UE_LOG( LogNetPackageMap, Warning, TEXT( "   %s"), *DebugContextString );

	return false;
}

Let me know if that helps with your issue, otherwise we can continue to look into it.

Have a great day

I finally got the time to dig into the cause of the warnings and thought I would share my findings in case anyone else is receiving these warnings and wondering why.

By the way, the referred thread was not related to my issue: .

The warnings for the StaticMeshComponent and DrawFrustumComponent were being generated by the replication of the CameraComponent that is attached to my game character. This is a subclassed camera component that replicates transform info so remotes can track other player’s heads (VR game).

These warnings were generated by the initial replication of the AttachedComponents array for the CameraComponent. Since these components are not set to replicate, as the engine is serializing the array, it sees that these components do not replicate, generates the warnings, and just serializes null for the elements in the array, as it should.

For the default CameraComponent, these attached components are only created when compiled with WITH_EDITORONLY_DATA, so the warnings will only be present in those builds.

2 Likes

So ? What should i do to remove these error.? I am developing a VR Multiplayer game and i am getting same error.2nd client gets disconnects at the start of game and goes in to spectator mode.I was developing a custom VR Characater class.

Getting this Warning spam when spawning static mesh components to represent arrows in a player’s quiver. I’m happy to not have the overhead of replicating these. It would be nice if we could disable the warning if its not an antipattern to allow clients to spawn attach static meshes.

Or am I overestimating the replication overhead 10+ StaticMeshComponents in a multiplayer environment?

Or is Epic trying to save us and we should allow replication on replicated characters? (enabling replication removes the errors, but requires handing everything on the server)