Screenspace 3d widget only shows for first player in split-screen

This is fairly old, but the problem persists and I was unable to find a ready answer. I did create a function in a child of UWidgetComponent to enable setting the owner by ControllerId. This did result in being able to control which player’s screen the widget rendered. I used this with widgetComponets that are scaled by distance to the player and created a component for each local player beyond the first as needed. I have not used C++ much in a long while so someone else will have to chime in if there is an issue with this:

Header:

		UFUNCTION(BlueprintCallable, Category = UserInterface)
		void setOwner(const int32 ControllerId);


CPP:

//Set WidgetCompoenet Owner by ControllerId
void UOwnableWidgetComponent::setOwner(const int32 ControllerId)
{
	if (!GetWorld()) return;
	ULocalPlayer* InPlayer = GEngine->GetLocalPlayerFromControllerId(GetWorld(), ControllerId);
	UWidgetComponent::SetOwnerPlayer(InPlayer);
};

279959-capture.png