I was getting a crash in my project on launching standalone from 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 current value (/Engine/Transient.REINST_Core2FunctionLibrary_C_0) of ’ 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 error message is generated and then inspect Node to see what function it was actually talking about. My full log is in here [FullProjectLog.][1].
In order to fix it, I had to remove call to blueprint function library function and pass information into 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 editor.
I tried to repro this in SwingNinja. I could get a crash, but it doesn’t crash in same way. log for SwingNinja crash is here: [SwingNinjaLog.][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 Coin blueprint after 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.