I was getting a crash in my project on launching standalone from the editor and I narrowed it down to a macro in a blueprint my macro library calling a function in my blueprint function library. I was getting these log messages when it happened:
[2015.01.08-19.17.25:701][ 0]LogBlueprint:Error: [compiler] Error The current value (/Engine/Transient.REINST_Core2FunctionLibrary_C_0) of the ’ Target ’ pin is invalid: /Engine/Transient.REINST_Core2FunctionLibrary_C_0 isn’t a Core2FunctionLibrary_C (specified on pin self)
I had to set a breakpoint in KismetCompilerMisc.cpp, Line 944 where the error message is generated and then inspect the Node to see what function it was actually talking about. My full log is in here [FullProjectLog.zip][1].
In order to fix it, I had to remove the call to the blueprint function library function and pass the information into the macro library macro.
Is calling blueprint library functions not allowed in macro library macros? My expectation is that it would be supported or at least prevented by the editor.
I tried to repro this in SwingNinja. I could get a crash, but it doesn’t crash in the same way. The log for SwingNinja crash is here: [SwingNinjaLog.zip][2]
To repro:
- Create a Blueprint Function Library with a function “Get Character Box Component”, taking a “Character” type input. Defined like this:
- Create a Macro Library based on Actor with a macro “GetMyCharcterBoxExtents” taking a “Character” type input. and Vector output. Defined like this:
- Modify the Coin blueprint after the PlaySoundAtLocation call like this:
-
Launch in PIE, notice print string when picking up coin is appearing and no crash.
-
Launch in Stand Alone, notice crash when picking up coin.