Trying to access editor function - LNK2019

Hi there! I’ve been working in Blueprint for a long time, and have been making tools in it, so when the new Editor Widgets appeared I was stoked. I have been working on a Plugin and wanted to call a function in FBlueprintEditorCommands, but I cannot for the life of me get it to work. Any time I try to access anything to do with it (Or the file Kismet/Private/BlueprintEditorCommands.h where it resides) I get linker error LNK2019 (Unresolved External Symbol).

I have tried to include every header file I can think of (I even copied all #includes from another file that calls the function I want) and also included every Module I could think of (to my projects .Build.cs file) but to no avail.

So I somewhat desperately turn to you guys (Although I am well versed in Blueprint, I am quite new to Unreal C++), what am I missing, and how do I get access to it? How do you even figure out what you need to include?


Here’s my function trying to access the file:

void AExposeHelper::ReregisterCommands() {

	FBlueprintEditorCommands Hello = FBlueprintEditorCommands::Get();
}

And here is the file I am trying to access:

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "EditorStyleSet.h"
#include "Framework/Commands/Commands.h"

class FNodeSpawnInfo;
class UEdGraph;
class UEdGraphNode;

//////////////////////////////////////////////////////////////////////////
// FBlueprintEditorCommands

/** Set of kismet 2 wide commands */
class FBlueprintEditorCommands : public TCommands<FBlueprintEditorCommands>
{
public:

	FBlueprintEditorCommands()
		: TCommands<FBlueprintEditorCommands>( TEXT("BlueprintEditor"), NSLOCTEXT("Contexts", "BlueprintEditor", "Blueprint Editor"), NAME_None, FEditorStyle::GetStyleSetName() )
	{
	}	

	virtual void RegisterCommands() override;


	// File-ish commands
	TSharedPtr< FUICommandInfo > CompileBlueprint;
	TSharedPtr< FUICommandInfo > RefreshAllNodes;
	TSharedPtr< FUICommandInfo > DeleteUnusedVariables;
	TSharedPtr< FUICommandInfo > FindInBlueprints;

	TSharedPtr< FUICommandInfo > FindReferencesFromClass;
	TSharedPtr< FUICommandInfo > FindReferencesFromBlueprint;
	TSharedPtr< FUICommandInfo > RepairCorruptedBlueprint;

	// Edit commands
	TSharedPtr< FUICommandInfo > FindInBlueprint;
	TSharedPtr< FUICommandInfo > ReparentBlueprint;

	// View commands
	TSharedPtr< FUICommandInfo > ZoomToWindow;
	TSharedPtr< FUICommandInfo > ZoomToSelection;
	TSharedPtr< FUICommandInfo > NavigateToParent;
	TSharedPtr< FUICommandInfo > NavigateToParentBackspace;
	TSharedPtr< FUICommandInfo > NavigateToChild;

	// Preview commands
	TSharedPtr< FUICommandInfo > ResetCamera;
	TSharedPtr< FUICommandInfo > EnableSimulation;
	TSharedPtr< FUICommandInfo > ShowFloor;
	TSharedPtr< FUICommandInfo > ShowGrid;

	// Debugging commands
	TSharedPtr< FUICommandInfo > EnableAllBreakpoints;
	TSharedPtr< FUICommandInfo > DisableAllBreakpoints;
	TSharedPtr< FUICommandInfo > ClearAllBreakpoints;
	TSharedPtr< FUICommandInfo > ClearAllWatches;

	// New documents
	TSharedPtr< FUICommandInfo > AddNewVariable;
	TSharedPtr< FUICommandInfo > AddNewLocalVariable;
	TSharedPtr< FUICommandInfo > AddNewFunction;
	TSharedPtr< FUICommandInfo > AddNewMacroDeclaration;
	TSharedPtr< FUICommandInfo > AddNewAnimationGraph;
	TSharedPtr< FUICommandInfo > AddNewEventGraph;
	TSharedPtr< FUICommandInfo > AddNewDelegate;

	// Development commands
	TSharedPtr< FUICommandInfo > SaveIntermediateBuildProducts;
	TSharedPtr< FUICommandInfo > GenerateNativeCode;
	TSharedPtr< FUICommandInfo > ShowActionMenuItemSignatures;

	// SSC commands
	TSharedPtr< FUICommandInfo > BeginBlueprintMerge;
};

//////////////////////////////////////////////////////////////////////////
// FBlueprintSpawnNodeCommands

/** Handles spawn node commands for the Blueprint Editor */
class FBlueprintSpawnNodeCommands : public TCommands<FBlueprintSpawnNodeCommands>
{
public:

	FBlueprintSpawnNodeCommands()
		: TCommands<FBlueprintSpawnNodeCommands>(TEXT("BlueprintEditorSpawnNodes"), NSLOCTEXT("Contexts", "BlueprintEditor_SpawnNodes", "Blueprint Editor - Spawn Nodes by chord"), NAME_None, FEditorStyle::GetStyleSetName())
	{
	}	

	virtual void RegisterCommands() override;

	/**
	 * Returns a graph action assigned to the passed in chord
	 *
	 * @param InChord					The chord to use for lookup
	 * @param InDestGraph				The graph to create the graph action for, used for validation purposes and to link any important node data to the graph
	 * @param InOutDestPosition			Position to start placing nodes, will be updated to be at the next safe position for node placement
	 * @param OutNodes					All nodes spawned by this operation
	 */
	void GetGraphActionByChord(FInputChord& InChord, UEdGraph* InDestGraph, FVector2D& InOutDestPosition, TArray<UEdGraphNode*>& OutNodes) const;

private:
	/** An array of all the possible commands for spawning nodes */
	TArray< TSharedPtr< class FNodeSpawnInfo > > NodeCommands;
};

//////////////////////////////////////////////////////////////////////////
// FSCSEditorViewportCommands

class FSCSEditorViewportCommands : public TCommands<FSCSEditorViewportCommands>
{
public:

	FSCSEditorViewportCommands()
		: TCommands<FSCSEditorViewportCommands>(TEXT("SCSEditorViewport"), NSLOCTEXT("Contexts", "SCSEditorViewport", "SCS Editor Viewport"), NAME_None, FEditorStyle::GetStyleSetName())
	{}

	virtual void RegisterCommands() override;

	TSharedPtr< FUICommandInfo > DeleteComponent;
};

Thanks in advance // Skye OuO