So, per the title, I sometimes get weird blueprint compile errors that occur when the blueprint I’m compiling calls functions in a blueprint function library. I include a screenshot of the error. This occurs even when there have been no changes in either blueprint.
To fix, open the function library, compile it, check it out and save it. Then re-compile the calling blueprint. Sometimes you might need to delete the node that called the function, and then re-create it in the calling blueprint.
Our team is on 4.6.0. For stability we have been sticking to this version.
I’m not sure how to repro on a clean project, so I couldn’t tell you. I can tell you that I created the CharBPLibrary Function Library so as to abstract as much BP code away from our CharacterBP class as possible. Our CharacterBP inherits from a C class and then has child classes for different character types as well. We were getting lots of issues with data and inheritance and in particular I got another consistent editor corruption (crash on launch editor) when I made a particular type cast in BP on the CharacterBP parent blueprint. So I started putting work in the CharBPLibrary instead so I didn’t have to edit the character BP as often and risk issues with that.
Oh, and to help you narrow it down – I also get errors on trying to save, before compilation has been successful (i.e. before I check out and recompile the library class and then go back and recompile the character class).
At various stages, absolutely. However we have used Fix Up on any redirectors when necessary. Moreover, if a moved file was the problem, would it be possible to open the function library BP, recompile and resave it, in order to restore the reference and allow the other BP to compile? Because that is the behavior we are seeing.
Neat – could you point me towards documentation for the quickest way to do that? I’d definitely be willing to take a stab at it. In our project we build our own editor and engine from source. But if I have to download a binary version of the editor to store elsewhere I could do that.
I have a blueprint that calls function library blueprints. I cannot compile this blueprint without first compiling the function libraries.
Until I do, it gives errors like:
Error The current value (/Engine/Transient.REINST_Stamina_C_1) of the ’ Target ’ pin is invalid: /Engine/Transient.REINST_Stamina_C_1 isn’t a Stamina_C (specified on pin self)
If you open 4.7 and then try to open a project that was created in 4.6, it’ll ask if you want to Convert a Copy, Convert In Place, Skip Conversion or Cancel (to open that pre-4.7 project in 4.7).
That said, if Bullborn is correct and this same bug exists in 4.7.2, there’s no need to convert. Have you tried his solution - compiling the function/macro libraries and then compiling the blueprint with the error?