Error C2440 ' cannot convert from initializer list to Messages

I’m doing an Unreal/Visuals Studio Project that involves showing messages on the HUD when the player touches the NPC’s proximity. I’m trying to build the solution, but this error suddenly shows up on lines like this

hud->addMessage(Message(NpcMessage, 3.0f, FColor::Red));
, which wasn’t a problem before. I haven’t changed the code before and it worked fine. I think because of this I can’t open my UE file, since it gives the message I should ‘try rebuilding from the source manually’. Could someone please help me figure out why I’m getting this error

Avatar.h

#pragma once
#include "Weapons.h"
#include "NPC.h"
#include "Weapons.h"
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "Components/SphereComponent.h"
#include "Engine/Canvas.h"
#include "Engine/Font.h"
#include "Engine/World.h"
#include "Avatar.generated.h"

class APickupItem;
UCLASS()
class GOLDEGG_API AAvatar : public ACharacter
{
    GENERATED_BODY()

        TMap<FString, int> Backpack;
    bool inventoryShowing;
    void Pickup(APickupItem* item);
    TMap<FString, UTexture2D*> Icons;
    TMap<FString, UClass*> Classes;

    void ToggleInventory();

        void MoveForward(float amount);
    void MoveRight(float amount);
    void MoveLeft(float amount);
    void MoveBack(float amount);

    void Yaw(float amount);
    void Pitch(float amount);


public:
    // Sets default values for this character's properties
    AAvatar();
    UPROPERTY(EditAnywhere)
    float Hp = 100.f;
    float MaxHp = 100.f;
    Weapons* playerWeapons = new Weapons;
    int turns = 0;

    // Sets default values for this character's properties
    AAvatar(const FObjectInitializer& ObjectInitializer);
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PlayerMessage)
        FString PlayerMessage;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AttackMessage)
        FString AttackMessage;

    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Collision)
        USphereComponent* ProxSphere;

    UFUNCTION(BlueprintNativeEvent, Category = "Collision")
        void Prox(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp,
            int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PlayerMessage)
        FString name;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PlayerMessage)
        UTexture2D* Face;


protected:
    // Called when the game starts or when spawned
    virtual void BeginPlay() override;

public: 
    // Called every frame
    virtual void Tick(float DeltaTime) override;
    void MouseClicked();


    // Called to bind functionality to input
    virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;

};

Avatar.cpp

#include "Avatar.h"
#include "Engine.h"
#include "Engine/Canvas.h"
#include "Engine/Font.h"
#include "MyHUD.h"
#include "NPC.h"


// Sets default values
AAvatar::AAvatar(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
    // Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;
    ProxSphere = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(this, TEXT("Proximity Sphere"));
    ProxSphere->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepWorldTransform);
    ProxSphere->SetSphereRadius(150.0f);
    ProxSphere->OnComponentBeginOverlap.AddDynamic(this, &AAvatar::Prox);
    PlayerMessage = "Player Attacks";
    AttackMessage = "Player Switch Weapons & Skip Turn";
    UE_LOG(LogTemp, Warning, TEXT("constructor called"));

    playerWeapons->invSize = 3;

}

void AAvatar::Prox_Implementation(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp,
    int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
    APlayerController* PController = GetWorld()->GetFirstPlayerController();
    AMyHUD * hud = Cast<AMyHUD>(PController->GetHUD());
    if (!ensure(hud != nullptr)) return;
    if (turns == 3) 
    {
        hud->addMessage(Message(AttackMessage, 3.0f, FColor::Yellow));
        UE_LOG(LogTemp, Warning, TEXT("Player Switch Weapons and Skips Turn"));
        playerWeapons->switchWeapons();
        turns = 0;
    }
    else
    {
        hud->addMessage(Message(PlayerMessage, 3.0f, FColor::Green));
        Hp -= playerWeapons->damage;
        turns++;

    }
    if (Hp == 0)
        Hp = 100;



}

Message Struct on MyHUD.h

struct Message
{
    FString message;
    float time;
    FColor frontColor;
    FColor backColor;
    UTexture2D* tex;

    Message()
    {
        // Set the default time.
        time = 5.f;
        frontColor = FColor::White;
        backColor = FColor::Black;
    }

    Message(FString iMessage, float iTime, FColor iFrontColor, FColor iBackColor)
    {
        message = iMessage;
        time = iTime;
        frontColor = iFrontColor;
        backColor = iBackColor;
        tex = 0;
    }

    Message(UTexture2D* iTex, FString iMessage, float iTime, FColor iFrontColor, FColor iBackColor)
    {
        tex = iTex;
        message = iMessage;
        time = iTime;
        frontColor = iFrontColor;
        backColor = iBackColor;
    }
};