KismetTraceUtils unresolved external symbol in custom plugin

Hello. For a couple of weeks i have a proplem with compiling a plugin with kismet functions.

I need to create custom blueptint node with some trace functions.
I`ve created a blank project and added a c++ Blueprint Library plugin using editor.

Added dependency to kismet module in all *.cs files:
Project *.build.cs:

using UnrealBuildTool;
public class PluginsTestProject : ModuleRules
{
	public PluginsTestProject(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Kismet", "GnomeMod"});

		PrivateDependencyModuleNames.AddRange(new string[] { "Engine", "Kismet" });
	}
}  

Plugin *.build.cs:


using UnrealBuildTool;
public class GnomeMod : ModuleRules
{
	public GnomeMod(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
		
		PublicIncludePaths.AddRange(
			new string[] {
				// ... add public include paths required here ...
			}
			);
				
		
		PrivateIncludePaths.AddRange(
			new string[] {
			}
			);
			
		
		PublicDependencyModuleNames.AddRange(
			new string[]
			{
				"Core",
				"CoreUObject",
                "Engine",
                "Slate",
                "SlateCore",
                "Kismet",
				"InputCore"
			}
			);
			
		
		PrivateDependencyModuleNames.AddRange(
			new string[]
			{
				"CoreUObject",
				"Engine",
				"Slate",
				"SlateCore",
				"Kismet"
			}
			);
		
		
		DynamicallyLoadedModuleNames.AddRange(
			new string[]
			{
			}
			);
	}
}

Here is plugin problematic function:

bool UGnomeModBPLibrary::LineTraceSingle(const UObject* WorldContextObject, const FVector Start, const FVector End, ETraceTypeQuery TraceChannel, bool bTraceComplex, const TArray<AActor*>& ActorsToIgnore, EDrawDebugTrace::Type DrawDebugType, FHitResult& OutHit, bool bIgnoreSelf, FLinearColor TraceColor, FLinearColor TraceHitColor, float DrawTime)
{
	static const FName LineTraceSingleName(TEXT("LineTraceSingle"));
	FCollisionQueryParams Params;
	Params = ConfigureCollisionParams(LineTraceSingleName, bTraceComplex, ActorsToIgnore, bIgnoreSelf, WorldContextObject);
	return true;
}

The problem is in ConfigureCollisionParams function. If i click on it in IDE - it shows me its definition in KismetTraceUtils.h . So it`s visible to Visual studio.
But if i build project a get an error.

If I remove ConfigureCollisionParams line like this:

{
	static const FName LineTraceSingleName(TEXT("LineTraceSingle"));
	FCollisionQueryParams Params;
	return true;
}

Everything builds well.

Here is error:

unresolved external symbol "struct FCollisionQueryParams __cdecl ConfigureCollisionParams(class FName,bool,class TArray<class AActor *,class TSizedDefaultAllocator<32> > const &,bool,class UObject const *)" (?ConfigureCollisionParams@@YA?AUFCollisionQueryParams@@VFName@@_NAEBV?$TArray@PEAVAActor@@V?$TSizedDefaultAllocator@$0CA@@@@@1PEBVUObject@@@Z) referenced in function "public: static bool __cdecl UGnomeModBPLibrary::LineTraceSingle(class UObject const *,struct UE::Math::TVector<double>,struct UE::Math::TVector<double>,enum ETraceTypeQuery,bool,class TArray<class AActor *,class TSizedDefaultAllocator<32> > const &,enum EDrawDebugTrace::Type,struct FHitResult &,bool,struct FLinearColor,struct FLinearColor,float)" (?LineTraceSingle@UGnomeModBPLibrary@@SA_NPEBVUObject@@U?$TVector@N@Math@UE@@1W4ETraceTypeQuery@@_NAEBV?$TArray@PEAVAActor@@V?$TSizedDefaultAllocator@$0CA@@@@@W4Type@EDrawDebugTrace@@AEAUFHitResult@@3UFLinearColor@@7M@Z) 

So what can i do to use Kismet functions at all and ConfigureCollisionParams in my case? I`ve added kismet module everywhere, all imports, and nothing helps.

Thank you.

KismetTraceUtils is in Engine module not Kismet, so you don’t have to include Kismet module to use it.
However when using modules like this you can only use exported symbols, ie. functions marked with ENGINE_API (or other APIs for other modules), as well as functions implemented inline (full body in the header).
ConfigureCollisionParams has a definition in the header, but is implemented in cpp file and is not exported, so it is not visible to other modules. It may work in a monolithic build (shipping games) but not in modular builds (dlls) that rely on symbols export/import.
You’re probably better off copying/remaking that function for your own usage.

Thank you. ENGINE_API was the case.