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.