FNetGUIDCache::SupportsObject: class_Name, object_path NOT Supported

I implemented Subobject replication like this:

bool AARCharacter::ReplicateSubobjects(class UActorChannel *Channel, class FOutBunch *Bunch, FReplicationFlags *RepFlags)
{
	bool WroteSomething = Super::ReplicateSubobjects(Channel, Bunch, RepFlags);

	for (const UGISItemData* item : StructRep)
	{
		if (item)
		{
			WroteSomething |= Channel->ReplicateSubobject(const_cast<UGISItemData*>(item), *Bunch, *RepFlags);
		}
	}

	return WroteSomething;
}

And then, for testing purposes:

void AARCharacter::BeginPlay()
{
	Super::BeginPlay();
	if (Role == ROLE_Authority)
	{
		UGISItemData* dmg = ConstructObject<UGISItemData>(UGISItemData::StaticClass(), this);
		StructRep.Add(dmg);
	}
}

void AARCharacter::GetLifetimeReplicatedProps(TArray< class FLifetimeProperty > & OutLifetimeProps) const
{
	Super::GetLifetimeReplicatedProps(OutLifetimeProps);

	DOREPLIFETIME(AARCharacter, StructRep);

}

And this is exact error:

FNetGUIDCache::SupportsObject: GISItemData /Game/Maps/UEDPIE_1_Example_Map.Example_Map:PersistentLevel.MyCharacter_C_0.GISItemData_1 NOT Supported.

Assertion failed: Object->IsSupportedForNetworking() [File:D:\Unreal\UnrealEngine-4.6\Engine\Source\Runtime\Engine\Private\PackageMapClient.cpp] [Line: 1402] 

UGISItemData, is in separate module (plugin), if that matter.

Fixed issues. To make it work, you must make UObject network supported, which means implementing these two functions:

bool IsNameStableForNetworking() const override;

bool IsSupportedForNetworking() const override
{
	return true;
}

At very least IsSupportedForNetworking() must return true. IsNameStableForNetworking() is useful, when objects are stable (means they are created upon construction time), not dynamically during gameplay.

3 Likes

Hello there I’m currently having issues with this .

The object relevant is a procedurally generated object created on blueprint. How should I proceed to do this without C++? Is there a blueprint solution to this?

[2015.11.26-15.20.16:738][ 87]LogNetPackageMap:Warning: FNetGUIDCache::SupportsObject: StaticMeshComponent /Game/PC_Maps/Playtest1_RoadNetwork.Playtest1_RoadNetwork:PersistentLevel.CurbGenerator4.StaticMeshComponent_163 NOT Supported.
[2015.11.26-15.20.16:769][ 89]LogNetPlayerMovement:Warning: ClientAdjustPosition_Implementation could not resolve the new relative movement base actor, ignoring server correction!

In case someone else stumbles upon this, make sure you have checked the Component Replicates box in components’ Add Component node.

Hmm , may I know what’s the reason this would solve the problem?

The components are net load on client and had no runtime changes at all.
Technically the client should be able to access the component which is 100% a similar of the server.

My gosh that was my problem! i had a huge auto generated world and those errors were throwing by the hundreds. I set it to component replicates and also set it to replicate in the BP actor class defaults, and now, no more errors. thank you!

Thank You Sir.

indeed!