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.