Can't seem to make a simple BlueprintPure function

I’ve been at this for hours now and I just cannot seem to to successfully make a function callable by any blueprint.

Within the editor I right-clicked, New C++ class, choose Blueprint Function Library, hit Next – named it PublicFunctions (didn’t set public or private), then clicked Create Class.

After following many posts to troubleshoot I’ve come up with the following test function:

.h file



#pragma once

#include "Kismet/BlueprintFunctionLibrary.h"
#include "PublicFunctions.generated.h"

UCLASS()
class HEXIT_API UPublicFunctions : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
	
public:
	UFUNCTION(BlueprintPure, Category = "Utilities|PublicFunctions")
		static FString ReturnWord1(FString Word1, FString Word2);
	
	
};


.cpp file



// Fill out your copyright notice in the Description page of Project Settings.
//#include "PaperSprite.h"
#include "HexIt.h"
#include "PublicFunctions.h"

FString ReturnWord1(FString Word1, FString Word2)
{
	return Word1;
}


errors



Severity	Code	Description	Project	File	Line
Error	LNK2001	unresolved external symbol "public: static class FString __cdecl UPublicFunctions::ReturnWord1(class FString,class FString)" (?ReturnWord1@UPublicFunctions@@SA?AVFString@@V2@0@Z)	HexIt	game_path_here\HexIt.generated.cpp.obj	1
Error	LNK2019	unresolved external symbol "public: static class FString __cdecl UPublicFunctions::ReturnWord1(class FString,class FString)" (?ReturnWord1@UPublicFunctions@@SA?AVFString@@V2@0@Z) referenced in function "public: void __cdecl UPublicFunctions::execReturnWord1(struct FFrame &,void * const)" (?execReturnWord1@UPublicFunctions@@QEAAXAEAUFFrame@@QEAX@Z)	HexIt	game_path_here\PublicFunctions.cpp.obj	1



You need to tell the C++ compiler that the function belongs to the class in the .cpp file, like so:


FString UPublicFunctions::ReturnWord1(FString Word1, FString Word2)

Notice that the [FONT=Courier New]ClassName:: signature before the function’s name is required to implement class (or struct) functions in a separate file in C++, even if it’s just a static function.

I tried that in the past and received an error, but not this time. I think I was using “PublicFunctions::” rather than UPublicFunctions. Thanks!