UserWidget never Ticks

I defined a tick function in my custom widget as so:

UCLASS()
class THEARENA_API UArenaFriendsList : public UUserWidget
{
	GENERATED_BODY()

public:

        void Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime);

        // . . .
}

then in the cpp this is what I want tick to do:

void UArenaFriendsList::Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime)
{
	if (bSearchingForServers)
	{
		UpdateSearchStatus();
	}
}

However the tick function is never being called. What do I need to do to make it tick?

In short override the Tick_Implementation method and use the parameter list defined for the Tick method. You are currently using another signature as in my current 4.7.2 headers.

Put this in your header:

virtual void Tick_Implementation(FGeometry MyGeometry, float InDeltaTime) override; 

and this in your cpp file:

void UArenaFriendsList::Tick_Implementation(FGeometry AllottedGeometry, float InDeltaTime)
 {
     if (bSearchingForServers)
     {
         UpdateSearchStatus();
     }
 }

You have to use the method with the _Implementation postfix because Tick is defined as BlueprintNativeEvent. That means it is handled by the UnrealHeaderTool and code is generated to link the calls correctly if you’re generating an dervided blueprint class.

Content of Engine Code (UserWidget.h)

UFUNCTION(BlueprintNativeEvent, BlueprintCosmetic, Category="User Interface")

Have a nice Day!

DarthB