Blueprint can't "See" C++-exposed Blueprint functions (BlueprintCallable)- throws error in log

Hey guys,

Engine version: 4.18.3 (vanilla).

I’ve given up debugging my multiplayer game as a dedicated server and client(s) in PIE due to various strange replication issues and have opted to follow Ramma’s setup with batch files (see this link: A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums ); and that’s how I used to develop in UDK3 as well so it just works for me. Just recently I’ve run into a problem with a Blueprint not calling a function in the owning player controller so I created a new dummy function called StupidTestFunc. The StupidTestFunc BP node just takes an FString from the HUD and in the local player controller, prints a message to the log. This is called from a UMG HUD Widget owned by that local player. The odd thing is, this works in PIE but I get the following error when I launch a Standalone server and Client (both throw the error below).

"The Setup"

UE415HUD_WBP - A Blueprint widget that extends from User Widget. It is instantiated by my HUD class in BeginPlay and added to the viewport. This works flawlessly (as other HUD widgets on it are visible, work, etc.). Note that “Existing” Blueprint functionality works in this, player controller and otherwise, as well (I click buttons and images update in my HUD which reference data in the owning local player controller, etc.).

Here’s a code snippet showing the definition of function and body. They happily compile in VS. It’s properly connected in Blueprints and it happily compiles the Blueprints in the editor.


StupidTestFunc is defined as:

// UE415NetGamePlayerController.h

public:
UFUNCTION(BlueprintCallable, Category = "Debugging")
void StupidTestFunc(FString TestString);

// UE415NetGamePlayerController.cpp
void AUE415NetPlayerController::StupidTestFunc(FString TestString)
{
	UE415LogWarn("======= String value: %s", *TestString);
}

"The Error"

LogBlueprint: Error: [Compiler UE415HUD_WBP] In use pin no longer exists on node StupidTestFunc . Please refresh node
or break links to remove pin.

LogBlueprint: Error: [Compiler UE415HUD_WBP] In use pin no longer exists on node StupidTestFunc . Please refresh node
or break links to remove pin.

LogBlueprint: Error: [Compiler UE415HUD_WBP] In use pin Target no longer exists on node StupidTestFunc . Please refresh node or
break links to remove pin.

LogBlueprint: Error: [Compiler UE415HUD_WBP] In use pin TestString no longer exists on node StupidTestFunc . Please refresh nod
e or break links to remove pin.

LogBlueprint: Error: [Compiler UE415HUD_WBP] Could not find a function named “StupidTestFunc” in ‘UE415NetPlayerController’.
Make sure ‘UE415NetPlayerController’ has been compiled for StupidTestFunc


I’ve cleaned and rebuilt my solution in VS, refreshed my Visual Studio project from the editor and I’m out of ideas. Anyone have any suggestions? I fear this might be a case of either my blueprint somehow being corrupted or something else I’m missing. This is basically a “throw away” project for me; something to play around with and experiment with but I’m quite concerned by this behaviour as I have no explanation for this.

Cheers,

-Nate

Update:

Things I’ve tried to fix it:

  • Opening the Blueprint and pressing
    Refresh All Nodes. (Yes, it saves
    after a successful compile but I
    click Save anyway.)
  • Opening the
    Blueprint and pressing F7. (Same as
    above: Yes, it saves after a
    successful compile but I click Save
    anyway.)
  • Creating a brand new widget
    that extends from User Widget, copy
    and paste everything from the
    original widget into the new one
    (including the Blueprint script “back
    end” of the UI) with no success- The
    exact same results as the reported
    issue down to the errors in the log.

It would be really cool if someone more knowledgeable than I or from Epic would chime in; this isn’t great if I can’t run the game outside of the editor. I spoke with some friends who’ve had this happen and they had to restore the Blueprint from source control because it was their last option and it worked for them. I -might- have the option to do that.

Edit: Updated.

bump**bump

Can we see your BP code?

Sorry for the delay. Here ya go.

![alt text]Capture1

Bumpbumpbump

Already tried that with no joy :frowning: Thanks for your input though.

In Blueprint Editor select File and click on “Refresh All nodes”

did you delete the Intermediate folder?

Yes and rebuilt the solution in VS so I could launch the editor and game again.

Maybe there is a broken *.uasset. Check your Content folder for things that don’t belong there

Will do. My other option is going to be to revert to a previous version and see if that fixes it. It’ll have to wait till I get home though. Keep in mind this thing happily works in editor so any changes I make to the blueprint work if I launch PIE session. I’m also going to be updating the ticket in case anyone else does some archeology and discovers this question.