Nativize missing plugin headers

If you have a plugin that add new nodes to the game and you use that nodes in Blueprints then at compile the native code it return errors and says can’t find the headers of the plugin nodes where the nodes are defined.

Project side plugins, with new Blueprint nodes, that you use in the game classes.

Hi Hevedy,

I tried packaging a project with a Blueprint Function Library plugin, and when I added an Blueprint that used one of the functions from the plugin and packaged with nativized Blueprints turned on, the package process completed successfully. Do you have any additional information you could provide about your packaging settings? Also, if you have some sample code for a node that you are trying to create that may be helpful as well.

Will try to make a sample or something to repo it, can you try to package your project and use the plugin for now ?

I tried adding 's Victory Plugin to the same project (I removed the other plugin) and made sure that I was calling one of the code functions in a Blueprint, then packaged the project with nativized Blueprints. It still completed successfully for me.

Well then give me 2 days to find a way : )

Okay found the problem is related with the defined structs in plugins, at call an struct and split in into a Blueprint and create new one etc

WindPlayerController__pf312663040.h(4): fatal error C1083: Cannot open include file: ‘PurplePluginSettingsConfig.h’: No such file or directory

There is a event calling the struct from the plugin in the controller BP file.

Just try to package for Win x32 you will see the error and will fail.

Hi Hevedy,

Thank you for providing the sample project. With that, I was able to determine what appears to be happening, as well as reproduce the issue in my own project.

The code for your project is located in a folder that is not being checked when the nativized Blueprints are being built. You currently have the code located in < Project >/Plugins/PurplePlugin/Source/PurplePlugin/Core. This works fine when building the project in Visual Studio, and the plugin will work fine in the Editor. However, when the nativized Blueprints are being built during the packaging process, this folder is not recognized as a location where the plugin’s code can be found. I ran some tests and was able to determine that if the code is located in the root source folder (where the plugin’s Build.cs file is located), or the Core folder is renamed to Public (and the PublicIncludePaths is updated appropriately in the Build.cs file), then packaging will complete successfully. If you want to be able to organize your plugin source code within the Public folder, you can do so. I only tested this using a Public folder, but presumably it would work in combination with a Private folder as well. Unfortunately this is currently a limitation of UBT, and not a bug.

Another thing I noticed is that you appear to have the PublicIncludePaths and PrivateIncludePaths both including the same folder. I do not believe that this is contributing to the issue (it did not seem to make a difference in my tests), but logically it is incorrect. Public include paths should contain paths to folders with files that would be available to other modules to access. Private include paths should contain paths to folders with files that only the plugin would have access to. It doesn’t make sense to have a path to the same folder in each one.

Okay, well is a bit rare since only happen with structs but work with any other node from the plugin. Good to know then, will probably switch to that way.

I have the same issue with a plugin that is in a blueprint project, the nativized build cannot find the plugin header files, I’ve read the answer and didn’t understand a thing, I need to nativize the blueprint assets for performance reasons, can you give me simple steps something in layman terms?