Blueprint function now showing in blueprint

I’ve seen that this has been asked about quite a few times, but none of the solutions have worked for me. I’m new to writing Unreal Engine C++ and I’m writing a function library to access Usd attribute values from a stage and a prim, which could be useful within a blueprint too. This is to be part of a plugin with more functionality with Usd. This is my class:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "USDAttributeFunctionLibrary.generated.h"

namespace UE
{
	class FUsdPrim;
	class FSdfPath;
}

class AUsdStageActor;

/**
 * Library of functions to access USD Attributes of different types
 */
UCLASS()
class USDCAMERAFRAMERANGES_API UUSDAttributeFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
	
public:
	UFUNCTION(BlueprintCallable)
	static float GetUsdFloatAttribute(AUsdStageActor* StageActor, FString PrimName, FString AttrName);

private:
	static void GetSdfPathWithName(UE::FUsdPrim& CurrentPrim, FString TargetName, UE::FSdfPath& OutPath);

	
};

I can’t understand why it isn’t showing up? I’ve tried deleting the intermediate/binary folders for the plugin and project, I’ve rebuilt the project and generated new project code. When I’ve tried tutorials showing how to make blueprint functions they work with the same approach. Is it something to do with it being in a plugin?

As an update, I ended up just making a new separate plugin for it and it worked, but then any updates to the code aren’t changing. For example I have the following functions

UFUNCTION(BlueprintCallable, Category = "USD Attributes")
	static float GetUsdFloatAttribute(AUsdStageActor* StageActor, FString PrimName, FString AttrName);

	UFUNCTION(BlueprintCallable, Category = "USD Attributes")
	static int GetUsdIntAttribute(AUsdStageActor* StageActor, FString PrimName, FString AttrName);

	UFUNCTION(BlueprintCallable, Category = "USD Attributes")
	static double GetUsdDoubleAttribute(AUsdStageActor* StageActor, FString PrimName, FString AttrName);

Previously I just had the float and the double one. Now in the blueprints, it still only shows the float one and the double one, even if I remove them from the code, and the int one never shows up. Similar to before, I’ve deleted the intermediate, cache etc regenerated project files but nothing has come from it, it’s not updating.