HP Progress Bar won't move when the character is attacked.

UOLHpBarWidget::Initialize() is not an interface. It is just a member method in UOLHpBarWidget overriding the inherited method UUserWidget::Initialize()

The declaration below just declares a pointer (an empty address in memory)

UCLASS()
class LIFEOFLUCK_API UOLHpBarWidget : public UUserWidget
. . .
protected:
	class UProgressBar* HpBar;	// HpBar
. . .

at this point HpBae is nullptr because there is no object in it. This is why if(HpBar)... retunrs false and UE_LOG(LogTemp, Error, TEXT("Nooooo HpBar")); is executed.

The line below creates a progress bar and assigns it to HpBar

bool UOLHpBarWidget::Initialize()
. . .
    HpBar = WidgetTree->ConstructWidget<UProgressBar>(UProgressBar::StaticClass());
. . .