I have a C++ project with some third-party plugins in the project’s plugin folder.
When I package the project (Shipping), the plugins don’t get copied over and don’t work in the packaged game.
I can get it to work by copying the plugin directories into the Engine\Runtime\Plugins folder of the packaged project. But doing this also copies over source code and Intermediate files, plus other stuff that might not be used, which is a waste of space. And it’s a manual process.
Is there some automated way to make sure only the files/libraries I need from the plugins are included in the shipping build? I looked at the Packaging documentation but there isn’t even any mention of plugins. This seems like a very basic thing and it’s frustrating to not find straightforward documentation on it…?
GC FSM, UnrealEnginePython, WebUI, plus potentially others in the future. As I said, when I package the project as Shipping, they don’t work, since they are not in the build directory tree. They work fine once I copy them over manually. (And of course they work fine in the editor)
Am I missing something in the build or packaging config settings or something? I feel like it should be something simple…
[Edit] I should mention that this is with a custom 4.22.3 source build, packaging & running on Win64. Did I mess something up in my engine build? Does it “just work” for people using the Launcher version?
I have the same problem. I tried to put the list of my plugin files into Config/MYPLUGIN.ini, but that also didn’t work. And even manually copying the files to the package directory also does not work.
I still can’t start my package - I tried all possible directory structures for my plugin, without success. Using strace, I can see that the executable never tries to load my so-file (although it finds my ini-files and other so-files in my plugin directory), and I always get “please ensure the plugin is properly installed”. As I can’t buy a plugin under Linux, I can’t even buy an example. And I can’t find this in the documentation. If someone would be so kind to explain me the conditions for an UE4 package to find the so-file of a plugin…
The following code in the Build.cs of my plugin resulted in the so-file being copied to the package directory :
string LibBinaryPath = Path.GetFullPath(Path.Combine(ModuleDirectory, “…/…/Binaries”));
RuntimeDependencies.Add(new RuntimeDependency(Path.Combine(LibBinaryPath, “Linux”, “libUE4Editor-MYPLUGIN.so”)));
Unfortunaly, the package still refuses to load this file when I starts and throws “please ensure the plugin is properly installed”.