[4.8 Promoted] Extra parameters on BP callable functions not detected after hot-reload

When adding new parameters to functions on components which are “BlueprintCallable”, existing BPs reference this function will fail to compile until the node is manually removed and re-added.

Steps to reproduce:

  • Start new project
  • Place empty actor in the level
  • Save the level and add a BP to this actor
  • Do File | Add new c++ class
  • Create new “ActorComponent” class with whatever name
  • In either X-Code or Visual Studio add a new function “void TestFunction(float value)” + it’s implementation in the cpp
  • Build
  • Go back to the editor and observe the hot reload
  • Click on actor in scene
  • Add newly created c++ component onto this actor
  • Edit the actor’s BP
  • Add a call to the components test function
  • Observe that the call function node has the correct “value” pin present
  • Go back to XCode or Visual Studio
  • Change function and implementation to be “void TestFunction(float value, float value2)”
  • Build
  • Go back to editor and wait for hot reload
  • Notice after the hot reload that the call function node still only has one parameter pin (value)
  • Expect to see “value2” pin appear
  • Click compile on BP
  • Note the compile error about the missing pin
  • Pin still does not appear
  • Delete the call function node
  • Add it back
  • Note the “value2” pin is now present

Tommy.

Hey TommyBear-

I was able to reproduce the BP node’s input pins not updating after a hot reload. This has been reported (UE-13981) for further investigation.

Cheers

Doug Wilson

Hi, this bug still occurs in 4.8.3 and furthermore is unfixable if it happens on custom events - using the Assign action generates the wrong class type on the event.

This bug is unrecoverable if it happens on custom events - using the Assign action generates the wrong class type on the event.