Failed to find a blueprint implementable while calling in c++

’ve been stuck on this for a few days and im wondering if anyone knows what this error means because I have a blueprint implementable event in my gamemode thats calling it inside the gamemode because I needed to get something with blueprints but the engine can’t seem to find it and I don’t know why this is happening because it had already been implemented

Fatal error: [File:D:\build++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp] [Line: 1323] Failed to find function None in BP_PlayerGameMode_C /Game/Maps/UEDPIE_0_FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.BP_PlayerGameMode_C_0

Sounds like a corrupt reference to me:

UFunction* UObject::FindFunctionChecked( FName InName ) const
{
	UFunction* Result = FindFunction(InName);
	if (Result == NULL)
	{
		UE_LOG(LogScriptCore, Fatal, TEXT("Failed to find function %s in %s"), *InName.ToString(), *GetFullName());
	}
	return Result;
}

When / where do you get this error? It might be a broken blueprint node referencing a deleted / broken / renamed function.

1 Like

I get this error in this piece of code right here:

void AFPSGameMode::EndGame(APawn* Instigator, bool IsSuccess)
{
	if(Instigator)
	{
		Instigator->DisableInput(nullptr);

		APlayerController* Controller = Cast<APlayerController>(Instigator->GetController());
		SetSpectateView(Controller);
		
	}
	if(IsSuccess)
	{
		OnGameFinished(Instigator, true);
	}
	else OnGameFinished(Instigator, false);
}

this is because I want to have blueprint functionality and the bp implementable function is not a deleted one nor renamed

I realised that it may be the generated cpp file that hasn’t been generated since then so if it is that then maybe there is a way to regenerate everything?

With given information I can’t determine the cause. The error references an engine file ScriptCore.cpp , not any of the AFPSGameMode you show in the other post. Does that generate another error?

Are you getting build errors in visual studio? are you including the .*.generated.h?

  • Next time you get the error in UE best post the log here.

It’s not much but the error on FPSAiGuard.cpp line 39, would be interesting the method content including that line.

1 Like

The only reason that part is erroring is because I’m calling the implementable on there

Can we see the content of that line and its method? Option B I’d suggest deleting the implemented BP method and recreating it as BP sometimes corrupts but that is not my first suggestion as it is a destructive action. fact is that there is an error in cpp

My code is right here I replied to you with it and i’ll try doing what you said

I tried doing it and the engine crashed now it only says:

Fatal error: [File:D:\build++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp] [Line: 1323] Failed to find function None in BP_PlayerGameMode_C /Game/Maps/UEDPIE_0_FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.BP_PlayerGameMode_C_0

Yes you sent me the code of

AFPSGameMode::EndGame

But I asked for FPSAiGuard.cpp line 39 since that was in the error.
If there is no other error left than “Failed to find function None” that is not enough info to debug this

That was because I was calling the bp implementable in there and now that I comment it out that part doesn’t crash, it has to do with the blueprint implmentable

Since it’s BlueprintImplementable it is already UFUNCTION so it must be visible to the reflection system. I can’t think of any reason why it should not be found besides a problem with blueprints itself since that is quite common. Can you reproduce the problem with a new BlueprintImplementable method? Does it happen on a new blueprint uasset? You might have to hook the Visual Studio debugger to the UE process and see if you can walk to the actual cause from UObject::FindFunctionChecked or UClass::FindFunctionByName by setting breakpoints

Since this is the first link that shows up when you look up “blueprintimplementableevent findfunctionchecked” I wanted to provide the answer to my problem.
A BlueprintImplementableEvent was not compiling in C++ because the parameter type was wrong. For TArray parameter types, remember you must pass by reference! TArray<>&

1 Like

Just adding some clarity for C++ noobs like me:

If you want a BlueprintImplementableEvent with a TArray as an input parameter, NOT an output parameter, you need a const keyword AND pass by reference:

UFUNCTION(BlueprintImplementableEvent, Category = "MyFunc")
void MyImplementableEvent(const TArray<FMyStruct>& StructArray);